Skip navigation
Electronic Design

WiFi For Arduino

The Arduino form factor was based on Atmel's 8-bit AVR ATmega microcontroller. It has since progressed to a range of more powerful micros including Microchip's PIC32 based on the MIPS architecture and found on Digilent's Max32 board (see PIC32 Arduino Modules). I've been using the Digilent Max32 with the Ethernet Network Shield but this tends to be a bit difficult for robotics. That is why I was happy to check out Digilent's WiFi Shield (Fig. 1).


Figure 1. Digilent's WiFi Shield uses Microchip's MRF24WB0MA WiFi module. It also has a microSD socket.

The WiFi Shield includes Microchip MRF24WB0MA WiFi module along with a microSD socket. More on the latter later.The WiFi module supports 802.11b 1 and 2 Mbit/s data rates. The software drivers supports WEP security as well as the more advanced WPA.

This feature list is more than adequate for Arduino platforms. 802.11g or 802.11n would simply be overkill although the faster 32-bit platforms might be able to take advantage of the added bandwidth. It can securely connect to any 802.11b/g/n router or access point. It work fine with the Belkin and Linksys routers I have in the lab. Communication with the module is via SPI. It has an integrated PCB antenna with a range up to 400m.

The shield comes in a box by itself. I had to download the software from Digilent's website. These include the DNETcK and DWIFIcK network libraries, DNETcK and DWIFIcK. These are based on Microchip Applications Library software. Connecting to the network was a trivial software excercise. Mostly it is a matter of getting the device fuction arguments correct.

As noted, the WiFi Shield also has a microSD card connector. Most Arduino motherboards lack removable storage and this addition fills in the missing piece. It uses the same SPI interface with a different chip select. There are also four LEDs on the shield that can be used to provide status information. These are controlled by I/O pins.

Digilent's WiFi Shield can work with other Arduino motherboards but it may take a little work to get the software to work with another IDE. I have not tried that approach since I do not have another Arduino motherboard handy.

Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.