Often, embedded developers face an unexpected hurdle when commencing promising new projects - the hardware cost. As a result, said projects never get actively developped or even started because a suitable low cost development platform is not available. New developers shy away from complex 32-bit embedded systems because they think that months of hardware development or the purchase of an expensive evaluation board is needed. This page aims to dispell that myth by demonstrating a low cost development system built from a consumer network router.
A PDF brochure is available.
There is a plethora of low cost network hardware on the market today, including routers, switches, hubs, broadband modems, firewalls, and wireless access points. Unbeknownst to the users, almost every network appliance in use contains a relatively powerful 32-bit CPU (typically an ARM7TDMI core) clocked at 50 to 100 MHz, with capacious memory and a variety of peripherals. These pages describe the transformation of one particular network appliance, a broadband router, into a inexpensive but powerful system for ARM-based embedded development.
The hardware platform consists of a modified network appliance - an off-the-shelf home or small office internet router. The router in question is the XH1151 Broadband Router (http://www.dse.co.nz/cgi-bin/dse.storefront/en/product/XH1151) which is available in New Zealand from Dick Smith Electronics (http://www.dse.co.nz).
The the router is based on the Winbond W90N740 network microcontroller, which contains an ARM7TDMI CPU core. The CPU is supported by 4 MB of SDRAM and 1 MB of flash memory on board, two ethernet ports (one of them is connected via a 4-port switch to 4 ethernet ports), a serial port (not installed), and a USB1.1 host port. The circuit board is similar to the following (there are two revisions on the market currently, differing only in their power supply arrangements):
The specifications of the router board combined with its low cost make it well suited to repurposing as a development kit for creating complex embedded systems. To develop your own applications, several modifications need to be made to the board; (1) install the parts needed to enable the serial port; and (2) install the JTAG debug port. Support for both modifications is built into the router board, but the required parts are not installed at the time of manufacture to reduce the per-unit cost. At a later stage, when you want to try an the uClinux operating system on the router, you can do one more modification, to change the processor to little-endian mode.
See Hardware Modifications and Hardware Details.
The unmodified router board runs the Nucleus RTOS (http://www.acceleratedtechnology.com/embedded/nuc_rtos.html) (not free), and a custom closed-source Bootloader (which we are continuing to use for development).
The GNU ARM toolchain fully supports the W90N740 CPU - to install the toolchain, refer to GNU Toolchain Setup. We have configured JTAGER, an open-source JTAG tool, to work with the modified router board, using a Simple JTAG Adapter.
Using the GNU toolchain, several Example Programs have been written, to demonstrate various hardware features of the board, and to test that the hardware modifications worked.
To make the most of the powerful hardware features of the router (network, USB host) a proper operating system is needed. We have ported uClinux to the board, and would eventually like to use the open-source U-Boot (http://sourceforge.net/projects/u-boot) bootloader.
We envisage a large number of interesting applications for this low cost ARM development system, whether they be hobbyist or university student projects, prototypes, or demonstrations. If you are stuck for an idea for a project to get you started, here are some ideas:
The Hardware Recycling Initiative (http://hri.sourceforge.net/) aims to port Linux (http://www.linux.org) or uClinux (http://www.uclinux.org) to a wide range of low cost network hardware for use by hobbyists, students or open-source projects.
Nathan Daniel (http://www.drgw.net/~maverick/electronics/wbipcams/) has discovered that several popular network web cameras use the same CPU that our router uses, and they run uClinux.
There is a mailing list set up for developers using the development system described on these pages, for other users of the W90N740 CPU, and for anyone else that is interested. For more information, look here (http://www.freelists.org/list/w90n740) or to subscribe send an email with "subscribe" in the subject line to w90n740-request@freelists.org (mailto:w90n740-request@freelists.org).