emonTx V3.4 RFM69CW Hanging at Startup - Incorrect Firmware ISSUE

It has come to my attention that in the past week or two a few of our emonTx V3.4 units might have been shipped with the new RFM69CW RF module but with firmware for the older RFM12B RF module. The result of this the unit hangs at startup (red LED stays on).

If you have a USB to UART programmer it's possible to verify which firmware code is running. To help identify which module you have fitted see the photo http://openenergymonitor.org/emon/sites/default/files/RFM Radios.png

Here is an example of the serial debug output (9600 baud) at startup of the correct firmware for the RFM69CW:

emonTx V3 Discrete Sampling V1.60 RFM69CW
POST.....wait 10s
CT 1 Calibration: 90.90
CT 2 Calibration: 90.90
CT 3 Calibration: 90.90
CT 4 Calibration: 16.67
RMS Voltage on AC-AC Adapter input is: ~1V
AC-AC adapter NOT detected - Apparent Power measurements enabled
Assuming VRMS to be 230V
Assuming powering from batteries / 5V USB - power saving mode enabled
NO CT's detected, sampling from CT1 by default
Unable to detect DS18B20 temperature sensor
RFM69CW Initiated: 
Node: 10 Freq: 433Mhz Network: 210
20194 0 0 0 505 0  

Here is an example of the serial debug output at startup of the correct firmware for the RFM69CW:

emonTx V3 Discrete Sampling V1.60 RFM12B
POST.....wait 10s

If the unit has an RFM69CW fitted (at this unit has), the unit will now hang.

If this is the case we are very sorry there are two options:

1. Send the unit back to use (we will cover postage) and we'll re-program and test the unit and return it to you.  Please contact us at support@openenergymonitor.zendesk.com

2. Upload the correct code yourself using Arduino IDE or Avrdude command line (we will credit your account with £5 to compensate you for the hassle) and send you a USB to UART programming cable free of charge if you require. 

Using Arduino IDE to compile from source

Setup Arduino IDE following: http://openenergymonitor.org/emon/buildingblocks/setting-up-the-arduino-environment 

Compile and upload: https://github.com/openenergymonitor/emonTxFirmware/blob/master/emonTxV3/RFM/emonTxV3.4/emonTxV3_4_DiscreteSampling/emonTxV3_4_DiscreteSampling.ino

Make sure #define RF69_COMPAT 1 to enable RFM69CW on line 44 at then  top of the sketch,. 

Using pre compiled .hex & Avrdude commandline

Alternatively there is a pre-compiled .hex file which can be uploaded directly using AVRdude linux command line:


$ avrdude  -u -c arduino -p ATMEGA328P -P /dev/ttyUSB0 -b 115200 -U flash:w:/home/oem/firmware/emonTxFirmware/emonTxV3/RFM/emonTxV3.4/emonTxV3_4_DiscreteSampling/V1_6_emonTxV3_RFM69CW_DiscreteSampling.cpp_433.hex