Networked RFID Reader / Audio Player with Power over Ethernet

Marc Boon, June 2010

AbstractKBM3 board

The KBM RFID reader / audio player is low-frequency RFID reader combined with a MP3 audio player / SHOUTcast client. It is powered over ethernet according to the IEEE 802.3af PoE specification. It was designed for a permanent installation at the Kinderboekenmuseum in The Hague, The Netherlands, which opens in December 2010.


The KBM RFID reader is based on the PIC18F67J60 microcontroller with integrated 10Base-T ethernet interface and 128kB Flash. The microcontroller is complemented with dual 64kB serial SRAMs for ethernet and audio buffering, and 4MB serial Flash memory for storing audio files.

The KBM RFID reader can be powered over ethernet when connected to a IEEE 802.3af compliant PoE router, or powered by a external 5-7V DC power supply using a standard 2.1mm power jack when connected to a unpowered network. Power consumption is about 2W.

MP3 player

The MP3 audio player is a VS1011E from VLSI Solution, Finland. This chip is a pre-programmed digital signal processor (DSP) which contains all the circuitry and firmware to decode digital audio files in WAV or MP3 format and can drive stereo headphones or active speakers directly. The KBM RFID uses a mono speaker driven in differential mode between the Left and Right channel outputs.
The maximum throughput is about 400 kbit/s, which is sufficient to feed the DSP with its maximum MP3 bit rate of 320 kbit/s, but limits the playback capability of uncompressed WAV files to 16-bit mono or 8-bit stereo at 22 kHz sample rate.

RFID reader

The RFID reader is based on the SM125-IC from SonMicro, Turkey. This chip is a pre-programmed CY8C27443 mixed-signal microcontroller (PSoC) from Cypress Semiconductor. The firmware is developed by SonMicro, and implements all functions necessary to read and write EM4100 (or compatible) 125 kHz RFID tags. The SM125 has independent I2C and UART serial ports and some digital I/O ports to indicate tag presence and reader status. It operates with an external loop antenna composed of about a hundred windings of enameled copper wire. The RFID reader has a range of about 8 cm.


The electronic design and the pcb layout was made using the Eagle layout editor. All code is written in C and compiled with the free edition of the Microchip C compiler for the PIC18 family of microcontrollers. The network code is build upon Microchip's Open-Source TCP/IP stack.
The RFID reader implements HTTP client/server and TFTP server protocols. Normal operation is controlled through a HTTP API, the firmware can be updated over TFTP.


The RFID reader is mounted in a standard electric wiring box for in-wall mounting. Dimensions are about 75x75x55 mm.
Some photos of a prototype here.