Ben NanoNote Wi-Fi

From Qi-Hardware
Jump to: navigation, search

There are two proven ways of using Wi-Fi (802.11) connectivity with the Ben NanoNote:

  • Using Wi-Fi devices based on the KS7010 Wi-Fi chip from KeyStream
  • Using a wireless router running an OpenWrt build that supports Ethernet over USB

Obviously, connecting the Ben NanoNote using USB or Ben WPAN to a personal computer (laptop, desktop, netbook) that already resides on a wireless network will also provide Wi-Fi connectivity, but this page concerns itself with solutions requiring peripheral devices only.


[edit] KeyStream KS7010 Devices

KeyStream was a small Japanese startup (about 30 people) focusing on mobile Wi-Fi chips, their first and only main product being the KS3021 RF chip and the KS7010 Wi-Fi baseband chip. They were acquired by Renesas in April 2009, and are now continuing as the KeyStream brand inside Renesas. The technology will probably appear in other Renesas chips in the future.
Known users of these chips are:

  • Microsoft Zune 30, and probably other Zune models as well
  • Spectec SDW-821 full-size SD (SDIO) Wi-Fi card
  • Spectec SDW-823 microSD (SDIO) Wi-Fi card
  • (note that all other Spectec Wi-Fi cards use MTK Wi-Fi chips without Linux drivers!)

In October 2009, Renesas released driver sources licensed under the GPL (version 007 for Linux 2.6.24), and a binary firmware (v0.2f), available at ks7010_sdio_v007.tar.bz2.

[edit] Ben Nanonote Wi-Fi How-To

  • The original driver from KeyStream was a little bit modified in other to match with Ben Nanonote recent kernel (
  • You can find this driver as stand-alone driver in the openwrt-xburst layout:
|-- Makefile
`-- src
   |-- Kconfig
   |-- Makefile
   |-- eap_packet.h
   |-- ks7010_config.c
   |-- ks7010_sdio.c
   |-- ks7010_sdio.h
   |-- ks_debug.c
   |-- ks_debug.h
   |-- ks_hostif.c
   |-- ks_hostif.h
   |-- ks_wlan.h
   |-- ks_wlan_ioctl.h
   |-- ks_wlan_net.c
   |-- michael_mic.c
   `-- michael_mic.h
  • You have to check the proper section in the openWrt menu in order to include this driver: Kernel modules -> Wireless Drivers -> kmod-ks7010
KS7010 in OpenWrt
SDW-823 microSD
  • You have to copy two files ks7010sd.rom and ks79xx.cfg from the original tarball in the Nanonote's "/lib/firmware" folder too.
|-- Firmware
|   `-- ks7010sd.rom
`-- GPL
    `-- Src
        `-- sdio
            `-- ks79xx.cfg

[edit] Vendor Features

  • Wi-Fi modes
Infrastructure mode and ad-hoc mode 
Linux Wireless extension 29
  • Throughput
TCP Tx       15.3Mbps
TCP Rx       19.2Mbps
UDP Tx       12.6Mbps
UDP Rx       14.9Mbps

[edit] WPA-PSK (Pre Shared Key) Session

  • Set up the correct WPA supplicant file to match with the AP:
root@BenNanoNote:~# cat /etc/wpa_supplicant/wpa_supplicant.conf 
  • Check if the ks7010 is working fine:
root@BenNanoNote:~# iwconfig 
lo        no wireless extensions.
usb0      no wireless extensions.
eth0      IEEE 802.11b/g  ESSID:"default"  
         Mode:Managed  Frequency:2.457 GHz  Access Point: Not-Associated   
         Bit Rate:11 Mb/s   
         RTS thr:off   Fragment thr:off
         Encryption key:off
         Power Management:off
         Link Quality=0/100  Signal level=0 dBm  Noise level=0 dBm
         Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
         Tx excessive retries:0  Invalid misc:0   Missed beacon:0
  • Raise the wpa_supplicant command:
root@BenNanoNote:~# wpa_supplicant -Dwext -ieth0 -d  -c /etc/wpa_supplicant/wpa_supplicant.conf
  • Get the IP and surf!:
root@BenNanoNote:~# udhcpc eth0
udhcpc (v1.14.4) started
Sending discover...
Sending select for
Lease of obtained, lease time 86400
udhcpc: ifconfig eth0 netmask broadcast +
udhcpc: setting default routers:
udhcpc: setting dns servers:
root@BenNanoNote:~# nslookup
Address 1:
Address 1:
Address 2:
Address 3:
root@BenNanoNote:~# ping
PING ( 56 data bytes
64 bytes from seq=0 ttl=47 time=735.883 ms
64 bytes from seq=1 ttl=48 time=648.022 ms
64 bytes from seq=2 ttl=48 time=1270.320 ms
64 bytes from seq=3 ttl=48 time=936.241 ms
--- ping statistics ---
5 packets transmitted, 4 packets received, 20% packet loss
round-trip min/avg/max = 648.022/897.616/1270.320 ms

[edit] To Do

  • Create a qi-hardware project with the driver
  • Determine the exact feature set of the driver
  • Cleanup the driver sources and get upstream feedback

[edit] Known Issues

  • Driver doesn't support removing and reinserting the card

[edit] Wireless Routers and Ethernet over USB

Wireless routers like the TP-Link TL-MR3020 can be made to support Ethernet over USB and thus act as a networked host, in place of a normal networked personal computer, to which the Ben NanoNote can then be attached. This is described in the Make Ben Nanonote access Wireless over USB guide which actually refers to the TP-Link TL-MR11U.

[edit] Other Possibilities

Some other ideas that might also provide wireless connectivity if brought to fruition:

  • Interfacing a wireless controller (like the AR9271 or other chipsets supporting Free Software drivers and firmware) to the 8:10 port and writing a wireless networking driver or adapter for the existing drivers
  • Interfacing a USB Host controller to the 8:10 port and writing a USB Host controller driver which might then be able to allow existing, suitable wireless drivers to operate with USB networking dongles (such as the FSF-certified Penguin Wireless N USB Adapter for GNU / Linux (TPE-N150USB))
  • Interfacing wireless SD card products to the 8:10 port, taking advantage of the apparent signal compatibility between SD and microSD form factors (probably subject to electrical or power constraints) and existing wireless drivers (although this may end up involving proprietary binary drivers and firmware)
Personal tools