Bridging ISM radio and wifi for lunch money

The ESP8266 has taken the maker community by storm and the hype is well deserved. Before the ESP we had the HopeRF ISM radio RFM12 and its successor RFM69. So is the ESP8266 an RFM69 killer? I would say no. Hell no even 🙂 The RFM69 is still very well suited for certain applications and the ESP8266 will not run for 2+ years on a set of AA batteries. The two can however play nicely together as a low cost ISM/wifi bridge. I did a custom PCB for this in the shape of a somewhat large USB stick, dubbed “Espism”.


Currently it works as an ISM sniffer posting the received packets on the MQTT topic espism-<macaddr>. Packets are posted in hex followed by the RSSI value:

A set of four LEDs indicate received packets. Well three LEDs as I made a mistake on the ground plane. The MQTT server IP and RFM69 network information is hard coded into the binary.

I ported Andreas Heßling’s STM32 RFM driver to the lovely ESP Open RTOS, my swiss army knife for ESP8266 development. The type-A right angle 90 degreee USB connector and 3x6x2.5mm push button can be found for little money on eBay. The push button currently serves no purpose but the plan is to perform a “master reset” of the device using this button. The rest of the BOM consists of 0603 resistors and capacitors, an LM1117 3.3V regulator and a SOT23 P-mosfet for driving the 0603 LEDs. Oh, and the ESP12F talking to an RFM69CW. The BOM should add up to about the price of lunch.

Code and schematics on Github as always.

Factory programming ESP8266 gadgets

The FTDI connector can be found on just about any ESP8266 design. If you are building a gadget to be deployed somewhere and not a full blown development board, the FTDI connector is somewhat overkill. And it is quite large. A few pins could be shaved off but we still have a through hole connector invading the other side of the PCB.

I ended up designing my own connector and it has been used sucessfully in all of my recent projects. The connector consists of five test points providing power, GND, TXO, RXI and GPIO0 for boot control. It takes very little single sided PCB space and is inspired by the TagConnect I use at work. Note that the power provided through the connector is unregulated.

I also designed a pogo pin connector to mate the test points and a small board with a DC barrel connector and the FTDI connector. This board has two switches for power and boot mode selection.

If you look carefully on the pogo pin adapter you see that the power pin is somewhat retracted. As the adapter will be hand held, the four other pins can be aligned to the device and with a gentle push power will be applied.

The pins used are P75-B1 1.02 mm (40 mil) [eBay] and the 9x4x8.5mm 3 way switches are also on eBay.

Schematics and my Eagle library with the device connector (“ESPROG-DEVICE”) as always on Github.