Wifi Ideas? Are they possible?

would it be possible to either wire up a normal usb wifi dongle to the Arduino for sending data via wifi or using a wrt54g without any extra chips in it ( using usb arduino )

wire up a normal usb wifi dongle to the Arduino for sending data via wifi

No the arduino is not a USB host.

using a wrt54g without any extra chips in it

Don't know what you mean.

First you need a USB Host shield or so http://www.sparkfun.com/products/9628 as the standard Arduino is a USB slave and a wifi stick is too. Then you need to write some kind of driver and I wonder if the 30KB of an Arduino is enough. But then again if the wifistick is smart and its interface is simple it could be done.

In short as far as I know it is not done before, and looks quite impossible.


With respect to the wrt54g how do you want to connect to it? It has only rj45 connections with signals an Arduino can't generate. A 10 Mbit ethernet connection at least need a 10 Mhz signal and an Arduino is only 16 Mhz so it is impossible to receive a packet ( according to nyquist you need to sample at leat at 20Mhz to read a 10 Mhz signal.

So unless you open up the wrt54g and find some interesting serial SPI or I2C port an Arduino can't do it.

update: wrt54g is a router from linksys, one that is often modded

using a wrt54g without any extra chips in it

The WRT54G is a Linksys router. Many people have opted to put a router onto their robotics to avoid having to buy a wifi shield. In many cases people have extra routers laying around (or can pick one up cheap at a second hand store or a yard sale). This is a nice alternative. The robot broadcasts the wireless network, and then other devices connect to it.

You'll have to look into some other projects that use that exact router to make sure you can tap into it. Usually it involves opening up the case and soldering onto the RX and TX pins, if they are exposed and availiable.

You shouldn't need any extra chips besides what is inside the router box, as long as it has serial RX / TX pins that you can connect to.

according to nyquist you need to sample at leat at 20Mhz to read a 10 Mhz signal.

That is a popular misconception and applies to the recovery of analogue information. With digital information data is transferred in the edges and timing so sampling like this is not going to do anything for you.

Your conclusions however that you can't handle 10MHz signals on a 16MHz processor is valid.

the wrt has the 2 serial type ports on the front but all the things i find online require an extra chip

Thats probably a max232 or similar chip, used to convert the TTL seerial levels of Arduinos serial port to "real" serial levels.

This is needed if the router has a serial port that would normally connect to a PC, which i most likely the case.

The serial converter Ic is dirt cheap and not difficult to use.

@mike

With digital information data is transferred in the edges and timing so sampling like this is not going to do anything for you.

But even IRQ based you need to 1 cpu cycle to detect the edge and at least 1 cpu cycle to store that information => implying at least twice the speed. Only DMA (afaik) could work at 10 Mhz but Arduino doesn't support it and it would burst after ~30+ micros :(

Could you explain me the "nyquist" formula for digital signals? URL?

I said:-

Your conclusions however that you can’t handle 10MHz signals on a 16MHz processor is valid.

There is not a “nyquist” formula for digital signals as you put it, the nyquist criteria is for repetitive signals.

The router serial probably outputs a TTL signal, so may directly connect to the arduino. Note that the routers probably need to be reflashed with a new linux program.

WRT HACK http://www.rwhitby.net/projects/wrt54gs found on http://www.allaboutjake.com/network/linksys/wrt54g/hack/

Check out this page. It has some good instructions:

http://www.dd-wrt.com/wiki/index.php/WRT54GL_MAX232_Serial

It also mentions that the WRT54G outputs TTL directly off the router. You only need the MAX232 chip if you want to interface it directly with at +/- 12V serial attached to a computer. If you’re just attaching the router to the Arduino, you won’t need any extra chips.