IMPORTANT NOTICE: Since I no longer have an Edimax router I am no longer maintaining these pages. I'm leaving them here in case people find them useful. I will accept updates to these pages in the form of reStructured text (see the link at the bottom of the page). If you would like to take over the maintenance of this site please contact me. Finally, if you want to see what I've been up to lately, checkout the Bifferboard :).

Bifferos 25/3/2009

Software for ADM5120-based Routers

This site is for software for the Omnima EMB, Edimax BR-6104K(P), and Sweex LB000021 routers. These devices all have 16MB RAM and 2MB flash, are based on an Infinion ADM5120 SoC processor and are rather cheap!

Quick links: Project page, Browse SVN


Midge (Linux 2.4)

Midge is one of the oldest operating systems for use with the ADM5120. Midge is based on an old fork of OpenWrt from a time when OpenWrt developers thought it was pointless to support anything with less than 4MB of flash. That situation has now changed, but Midge keeps a fairly devoted following, both in Russian and English as evidenced by the forum. Midge has support for USB storage devices and can be made to boot a rootfs from a USB stick, thereby breaking the 2MB storage limitation.

OpenWrt (Linux 2.6)

OpenWrt has been around for a while now, but only really kicked off on 2MB flash ADM5120 when an OpenWrt developer with the hardware and the inclination (juhosg) ironed out most of the USB driver bugs in late 2007. OpenWrt's strength is also it's biggest weakness: agressively tracking the latest Kernel releases means it lacks the stability of Midge, however it does has support for the latest devices.

I've put some info in the OpenWrt-related section.


I created Squidge because I wanted a straightforward way of having an OpenWrt-based (Linux 2.6) system with USB-root, whilst keeping the maximum RAM available for applications. Unlike Midge (and OpenWrt), Squidge is only relevant to routers with a USB port. Squidge used to be hosted here but has now moved to the Squidge Sourceforge site.


I made some attempts to get NetBSD working on an Edimax BR-6104K. I've written this up on the NetBSD page, however Paul Chakravarti seems to have progressed this on his page.

I'm not doing much with NetBSD these days because I can't install the 386 version on VirtualBox, it refuses to install on any of the 386 hardware I have, and it seems a lot less configurable than linux, e.g. if I want to disable console on serial port (quite handy for embedded work when you only have one accessible UART), I seem to have to hack the kernel to pieces.

ADM5120 without an OS

If you don't want to use an OS at all, you can look at bootloader code from various projects (Linux, NetBSD) to see how to initialise the chip and make it do your bidding. I've thrown together a simple mips assembler example as a starting point. This is compatible wih the standard Edimax bootloader.


I've created a firmware upload tool to automate the flashing of firmware on the routers: Firmware upload tool.

Technical Information

ADM5120 LinuxMIPS

ADM5120 Switch - LinuxMIPS

BR6104 - LinuxMIPS


Quite a few people have written up their projects with these boards.

Where to buy