Hardware architecture for UDP in WIFI

Hello,
In the project I'm working on, I have to connect to a device through a WIFI network. This WIFI device supports WPA and includes a DHCP server. I have to send/read data to/from this device through Ethernet in the two following ways:

  1. using a TCP client (configuration data)
  2. using an UDP client (video, status data, ...)

I thing to the following hardware architecture: Arduino UNO + Arduino WIFI shield. I had a look at the WIFI class of the library, but could only find methods for TCP exchanges. Is UDP supported in this hardware/software configuration ? If not, what is the suitable configuration ?

Best regards.
Paul-Henri

The Atmega 32UC3 has a stack that supports both TCP and UDP but no one has implemented a high level library in Arduino which can access the UDP functionality.

jfenwick:
The Atmega 32UC3 has a stack that supports both TCP and UDP but no one has implemented a high level library in Arduino which can access the UDP functionality.

That doesn't compute for me. The driver for the wifi interface shouldn't be involved in layer 4... it should be abstracted, right? why would implementation of UDP be any different for this board versus any other ethernet adapter?

djjoshuad:
The driver for the wifi interface shouldn't be involved in layer 4... why would implementation of UDP be any different for this board versus any other ethernet adapter?

Because the ATMega chips have a pittance of memory and clock cycles. They need help.

Thank you for all those information. I understand that currently I can't use the WIFI board to dialog with my WIFI equipment through UDP. Do you know another Arduino product which could enable me to connect in WIFI and support UDP ?

I can say with confidence that the normal ethernet shield works fine with UDP. In one implementation, I'm currently using a Seeed Studios ethernet shield and a TP-Link TL-WR702N as wireless bridge (they call it a client, both terms work). The TP-Link "nano router" is a cheap and easy way to get an arduino device onto a wireless network. It also handles all of the wireless encryption for you, saving cycles on the arduino device. At about $31 for the seeed shield and $20 for the TP-Link, I am more than happy with the result. I send syslog data via UDP with that device all the time without any issues. Multiple arduinos close together could theoretically share a TP-Link router. I've no reason to believe that wouldn't work but I've not tested it.

FWIW, the Seeed studios version is a bit cheaper than the standard "official" ethernet shield. For the case mentioned above I didn't need the SD card slot that the official shield offers. The Seeed shield was about 65% of the cost of the official shield I own, and it's very high quality.

Thanks a lot for your answer ! I think I will purchase those two modules !

I'm intrigued to know how those TP-LINK bridges get their wireless configuration.

There is some initial setup involved, but it's browser-based and easy. You just need to configure it once using a computer, then let the arduino take over use of the device. For a $20 product, the GUI is surprisingly good. I don't currently have one, but as I understand it the WR703N (a step up from the WR702N I have) can be used without the ethernet shield (and the ethernet libraries), using the UART provided via USB. Ultimately that seems like the most cost-effective option. Of course, the 703 also is supported by openwrt... so you could really just use the arm processor in the 703 to perform many of your tasks. I intend to try all of that out some day :slight_smile: