Ebulobo* 0.2 (ESP8266/RFM69HW Gateway) – Part 2

*current PCBs are being named after volcanoes beginning with ‘E’ – Wikipedia

As discussed in a previous post I’ve been working on a simple UKHASnet gateway and had managed to put together a prototype of a ESP8266 based gateway where the ESP communicates with the RFM69 via SPI. The original prototype was a ESP8266 deadbug soldered onto the back a RFM69 breakout board and once I had got the software working the next step was to transfer it all to a PCB to make it all more stable and solid.

The key part was to make it into a cheap, simple to put together board that could be the basis of future UKHASnet networks and I hope that a few will be available on hasnet.supplies.

Components

  • ESP8266-03
  • RFM69HW
  • MCP1700 3.3v Voltage Regulator
  • 2* 1uF capacitors
  • 1* 10k ohm resistor
  • 1* 1k ohm resistor
  • USB Male connector (as a power source)
  • 5 pin 2.54mm header for programming

Requirements and Design

The aim was to use ESP8266 and reflash the onboard processor with the Arduino development environment to allow easy porting of the current UKHASnet code. The ESP would act as the main microprocessor and control the RFM69 over SPI. Any packets received by the RFM69 would then be uploaded by the ESP via wifi to the main servers on the internet acting as a self contained gateway.

To make it easy to power I added a USB male header to the board which when plugged into a usb socket (such as on the backs of wifi routers) would provide 5v. This would then be regulated by the MCP1700 down to 3.3v which would then supply the ESP8266 and RFM69. This is also a 2 pin header which breaks out Vin and GND in case an alternative source is used. ebuloboImage

Programming the ESP8266 is via serial and so GND, Tx and Rx are broken out to another header, to reflash the ESP8266 its necessary to pull GPIO0 to ground on boot and so GPIO0 is also included in the header to make it easy to add a jumper to set this up.

The ESP8266 also requires GPIO15 and GPIO2 to have pullup/pulldown resistors and so through hole packages were used. The whole board is either through hole or easy circuit board soldering and can be assembled in about 5 minutes.

Sourcing

The PCB was ordered from dirtypcb under their protopack deal which gives you 10 boards for $14, to speed up development I did opt for the slightly more expensive delivery option (as the china airmail can take up to 6 weeks) and the boards arrived after about 10 days.

The key expensive parts were the ESP8266 and RFM69HW which I ordered via Aliexpress from Hong Kong in bulk. Other parts such as USB header, MCP1700 voltage regulator, SMA connector and capacitors were ordered from UK sources such as Proto-Pic or from Ebay.

Construction

There was a delay in construction of the nodes as had to wait for the slow post from Hong Kong for the ESP8266-03 and RFM69HWs but once they arrived I was able to commence building. Initially I was having problems reflashing the ESP modules and it turns out that the groundplane didn’t get laid down (perhaps a problem in the gerber file creation) and so it was necessary to add the SMA connector to ensure that all the ground traces were connected. It was then easy to flash the nodes with the latest firmware, I still haven’t managed to add the configuration of the node setting via the EPS8266 web page and so instead that node ID is hard coded but could always be reflashed.ebulobo1

Setting up an Ebulobo board

All the current Ebulobo boards come pre-assembled, it is necessary to add an antenna for the RFM69 via the SMA socket and should work out of the box.

  1. On plugging the board into a USB socket the ESP will start up an open wireless access point called ESP***** depending on the ESP serial number
  2. Connected to this network with either a laptop, tablet or phone.
  3. A login should be triggered on connecting, if not then browse to 192.168.4.1
  4. This will bring up a webpage which allows you to select your home network and setup the Ebulobo node to use that wifi network to upload packets.
  5. Once selected the node will reboot and connect to your home wifi, any packets received will be uploaded to the internet. In the future it’ll will always connect to that wifi network.
  6. If you wanted to change the network you could turn off the old wifi network temporarily and then start the node, when it can’t find its regular network it’ll then start again by opening up the open access wireless point.

Reflashing

It might be necessary to reflash the node if there is new firmware or you want to change some of the settings such as the node ID or add in a location string. The easiest way to reflash the ESP8266’s firmware is over serial and these pins are broken out to the JP2 header:

  1. Ground
  2. Rx
  3. Tx
  4. Ground
  5. GPIO0

The first link pins 5 and 4 together with a jumper and then attach a serial port (i.e. FTDI USB/Serial convertor) to pins 1, 2 and 3. As described http://jamescoxon.net/?p=159 you’ll need to download the Arduino IDE and then the ESP8266 set of libraries and board definitions which can all be done through the main program.

Conclusion

Overall I’m pleased with the outcome of developing these boards, slightly disappointed that the ground plane didn’t come out very well but it doesn’t appear to be effecting the performance of the board. Next step will be to build a few more nodes and see if other people find them easy to use. Hopefully will make it easier to expand UKHASnet.

Future Improvements

  • Update firmware so that its possible to configure the node ID and location when setting up for the first time.
  • Fix the PCB and add a footprint for a sensor or two.
  • Add the ability to host a webpage which would allow people to transmit custom messages via the UKHASnet network.

Links