Saturday, 9 February 2013

Wifi Client Bridge (for Aruino project)

(aka how to get Ethernet devices attached to a wireless network without awkward cable runs)

Previously I wrote about an Arduino based temperature and light sensor that could send it's reading to the web over Twitter. This made use of the Ethernet shield that is available for the Arduino. This post describes how to connect this wired Ethernet device to a wireless network using a wireless router.

WiFi Client Bridge
A WiFi Client Bridge allows a secondary wireless router to share a wireless network it receives via it's WiFi interface (from a  primary wireless router) to devices attached to it via Ethernet. In this set-up the Ethernet connected devices behave as if they are directly attached to the primary wireless router.

Most routers designed for home use are capable of acting as a client bridge, although the software inside the router (the firmware) often prevents you from using the device in this fashion. This problem can be overcome by replacing the firmware that ships with the router by one of several alternatives, I used DD-WRT for this project but OpenWRT and others have the same functionality.

Wireless configuration page on router running DD-WRT firmware

The individual router firmware project websites have lists of compatible routers (I got a second-hand Buffalo WHR-G125 from eBay for £6) and instructions for replacing (flashing) the firmware.

Both DD-WRT and OpenWRT have instructions for setting up a client bridged network:
Assuming that the primary router has a correctly configured DHCP server connecting Ethernet devices to the internet is as simple as plugging them into the secondary router. This is a useful way of placing Ethernet devices in places where running Ethernet cables would be awkward.

Arduino with Ethernet shield attached to a wireless network through a router in client bridge mode