Embedded system friendly WiFi dongle?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Embedded system friendly WiFi dongle?

Jump to solution
18,544 Views
kai_liu
Senior Contributor I

I am going to develop an USB host application with low cost WiFi USB dongle on FRDM-KL25Z. The WiFi dongle is much cheaper than industrial WiFi modules.

I am not sure if anyone has similar experiences before. WiFi dongle used to be very tough to develop since most of them have proprietary firmware and other issues.

Is there any embedded system friendly WiFi dongle?

I do find RL3070 from Ralink, it seems popular in hackable WiFi equipment.

Any comments are welcome.

Tags (2)
0 Kudos
1 Solution
5,760 Views
kai_liu
Senior Contributor I

After researching internet for latest open source development board. I found following information to share with community members.

AR9331, WiFi router SoC, used by Arduino Yun

Atheros Silicon based embedded UART/WiFi module, used by DigiX

Ralink RT5350F WiFi router SoC, used by Uruk

TI/Murata C3000 WiFi module, used by SparkCore

Ralink RL3070 USB dongle

Atheros AR9271 USB dongle

Realtek RTL8818 USB dongle

Atheros AR6102 SDIO module

Most of the embedded WiFi module uses UART/SPI bus, the USB dongles are suitable for KL25Z USB OTG, but only works in USB F/S, but USB dongles are  cheaper than embedded versions.

The datasheets for above parts are not fully available from vendors' web site. So it takes time to dig.

View solution in original post

0 Kudos
23 Replies
4,993 Views
galadragos
Contributor III

Found some Broadcom chips that work on SPI and apparently are used in Apple EyePhones (typo intended).

Google BCM4325, BCM4329.

0 Kudos
4,993 Views
kai_liu
Senior Contributor I

Since this topic pulls me back over and over. I could like to update some information for your information.

USB dongle for KL/K, so far I haven't kicked it off yet. However I do find some alternative solutions locally, not via USB host, but via SPI/SDIO port.

WM-G-MR-09 (Marvell 88W8686) Embedded Wifi module, around CNY25, (=4USD). There are some bare metal solutions based upon STM32F4XX/5XX. All features have been implemented, including firmware download, TCP/IP stack, web server and WPA. The dev kit is about USB60.

Since it uses STM32F4XX, if we decide to port this solution. KL25/K20 is can not be used, K60/K70 is suitable.

0 Kudos
4,998 Views
vedad
Contributor II

You can check WHZ7188 WiFi module.

0 Kudos
4,997 Views
bowerymarc
Contributor V

WhizNets is not very forthcoming about price... best I can tell from press releases those modules are $49.99 - way too expensive.  You can get wifi dongles for $5-6 in 1's, less than $3 in 1K qty.  If WhizNet meets those prices, I'd call it low cost, as the OP was interested in.

0 Kudos
4,998 Views
vedad
Contributor II

Hi Marc,

I am not sure about the current price but i think it must be competative. Why don't you check with them once?

0 Kudos
4,994 Views
bowerymarc
Contributor V

considering you raised the part number, i'd expect you would investigate.

0 Kudos
4,993 Views
egoodii
Senior Contributor III

Some suppliers don't offer 'public' part pricing.  They want to control all aspects of 'information flow' to potential adoptees.

0 Kudos
4,998 Views
monzie
Contributor II

I have just begun an attempt to use a RAlink Technology usb wifi device with the imx53 qsb.

There does not seem to be an easy way to do this.

To the embedded linux device driver experts out there I have 2 questions:

1.  Am I correct that getting a Ralink wifi device working correctly with the qsb is hard?  Or did I miss something obvious?

2.  Is it possible?

0 Kudos
4,998 Views
varsmolta
Contributor V

It should work.

1. Have you built the kernel module for your ralink chipset?

2. Do you have the firmware *.bin file on your target?

If the above two are there, then look at "dmesg | tail" when you insert your usb dongle and please reply what you see

0 Kudos
4,999 Views
monzie
Contributor II

After some hours of effort I got it working.

0 Kudos
4,999 Views
monzie
Contributor II

To get the wifi dongle working I compiled a new kernel using these instructions:

i.MX53 Quick Start - Linux on ARM - eewiki

Then the dongle worked as soon as I plugged it in.

A better solution is to switch to the beaglebone black.  Their community is larger and more responsive.  The default kernel and build system is not ancient.  Questions on their forum actually get answered.

Notice how useful this particular thread was - NOT!.

I had zero problems getting a $5 USB dongle working in adhoc and infrastructure mode with the beaglebone black.

Robert Nelson's kernel build instructions are excellent and one of the best things to happen to the embedded ARM community.

BeagleBone Black - Linux on ARM - eewiki

0 Kudos
4,999 Views
kai_liu
Senior Contributor I

I am trying to support WiFi USB dongle on bare metal MCU, rather than hosted MPU. Thanks for your info anyway, I am trying to buy a BBB.

0 Kudos
4,998 Views
rogerfl
Contributor III

Hi,

Just wanted to thank you for the info, but I'm not in a position to spend enough time on it to accomplish what I wanted.  Kai Liu, your research made me understand better how difficult the project would be. I'm impressed.

Just small suggestion: It is probably not desirable/feasible to attempt higher than UDP level in a stack without more memory and performance than a low-end Kinetis, but that's not a bad thing. A ton of apps would benefit from just cheap slow UDP connectivity. Good luck! I think it would be a very valuable solution.

Roger

0 Kudos
4,998 Views
vladimirkhusain
Contributor III

Here is a link to an application note that describes how to get WiFi connectivity on the Kinetis K70/K61 using a USB "dongle". This is a 150MHz Kinetis device running uClinux:

http://www.emcraft.com/index.php/som/k70/usb-wifi-with-k70

4,998 Views
monzie
Contributor II

Where you successful in getting the wifi module working?

If yes can you share details of your work?

If no what hardware are you working with?  I will purchase the same hardware and work on the problem with you.

Just found this list of wifi products along with the associated drivers and chipsets, seems useful.

USB - Linux Wireless

0 Kudos
4,998 Views
kai_liu
Senior Contributor I

Hi, Ramon,

At this moment, I am just do some background research to evaluate its effort to build a baremetal WiFi via USB host/OTG port. It seems many work to support USB dongle on a baremetal board than uCLinux. I haven't kick off the project yet.

I am developing a new KL25Z based board, which leverages its USB OTG port to support ADB (to Android).

If it can support WiFi+TCP/IP socket, and Bluetooth dongle. The board can be more popular. That is the motivate of my intention to develop a baremetal solution to USB WiFi dongle.

The list is useful, but most of the parts are not available any more. Currently I am considering

  • RL3037 from Ralink (4USD for one dongle)
  • RTL8188CUS from Realtek (5USD)
  • RL5350F UART/WiFi module from Ralink (10USD)

All sources come from taobao.com (alibaba.com for international buyer).

Update:

Today I got two local brand WiFi dongles. Netcore NW336 (RTL8188CUS) and B-Link BL-LW05-A(RL3070). They are all B/G/N for 150Mbps.

Because I can only find out RTL8187L datasheet (with register and USB description) so far, and Realtek is recommended by Wikipedia for its GPL and without 3rd party firmware. I decided to start with RTL8188CUS.

It may need a lot of resources for RAM/ROM to support USB dongle driver and TCP/IP stack. I will port USB dongle only to support uIP stack.

4,998 Views
rogerfl
Contributor III

Is there an update on a bare metal Realtek Wifi driver effort?

0 Kudos
4,998 Views
kai_liu
Senior Contributor I

Hi, Roger,

I have not spent too much time on it, because I am working on RSA authentication for my Android peripheral board.

Actually I got two WiFi dongles from retail market, one is RT3070 based, one is RTL8188TVS based. They are popular in embedded work for WiFi hacking and STB/Smart TV. The enclosed CD-ROM of these dongles have Linux driver source code.

However, when I connect them to Ubuntu 12.04 LTS. I found RT3070 is much friendly.

I would like propose it as an open source project, since it may require more time than my plan. 

Yours sincerely

Allan K Liu

0 Kudos
4,998 Views
bowerymarc
Contributor V

very interested in your progress!  Obviously the Freedom is too small to run uClinux.  So then how to port?

You mentioned uIP but I hope you mean lwIP, the newer version?  lwIP Wiki

Or maybe the answer is to try to compile the ralink driver with something POSIX compliant? 

There's a POSIX shim for FreeRTOS here: Freertos posix Development - Open Circuits

And FreeRTOS itself is pretty tiny and you can find a PE component for it followling links from  www.mcueclipse.org

Hope it gives you some interesting stuff to investigate!

0 Kudos
4,998 Views
varsmolta
Contributor V

I have a RTL8192CU USB dongle and am using yocto (3.0.35_1.1.0 kernel). I was able to rebuild kernel with the drivers and they load fine:

rtl8192cu: MAC address: 08:86:3b:a3:93:6a

rtl8192cu: Board Type 0

rtl8192cu: rx_max_size 15360, rx_urb_num 8, in_ep 1

ieee80211 phy3: Selected rate control algorithm 'rtl_rc'

usbcore: registered new interface driver rtl8192cu

But rfkill keeps the wlan interface Soft-Blocked even after I execute 'rfkill unblock all':

root@imx6qsabrelite:~# rfkill unblock all

root@imx6qsabrelite:~# rfkill list

3: phy3: wlan

        Soft blocked: yes

        Hard blocked: no

I've also tried this with a Ralink RT2571W dongle (rt2x00usb kernel driver module) and same result. So there could be a problem with the rfkill driver in the kernel. Have you come across this problem?

Thanks

0 Kudos