With the upcoming release of the emonTx5 I found myself creating another set of AVR-DB firmwares that were mostly identical to the firmwares running on the emonTx4 and emonPi2. The number of firmware variants would have grown to ~18 firmwares and it was getting cumbersome to use a file compare tool to make sure that the firmwares stayed mostly the same.
I decided to bite the bullet and try to rationalise the available firmwares by creating a common set of base firmwares for all three hardware units, with #define
compile options to apply specific hardware variant changes among other options.
This works is now done and the new set of firmwares have been released. The emoncms pre-compiled firmware upload tool and the command line emonupload.py tool have also been updated.
If you already have a working emonTx4 or emonPi2 system, there is NO NEED TO UPDATE your existing firmware. While there are changes to serial configuration, if you already have a calibrated system and dont need to use this tool then there is no rush to update.
The available firmwares and descriptions of capabilities are listed on the firmware page for each hardware variant:
These list the pre-compiled firmwares available via the update tool and reference the base firmwares that each firmware is built from. To give an example, the standard emonPi2 1phase 6CT firmware: emonPi2_DB_6CT_1phase is built from the base firmware emon_DB_6CT.
This table gives a good overview of the available pre-compiled firmwares for each hardware variant and their capabilities:
Hardware | Firmware | CTâs Channels | Temperature Sensors | Pulse |
---|---|---|---|---|
EmonTx4 | emonTx4_CM_6CT_temperature | 6 | 3 (6 optional) | 1 |
emonTx4_DB_6CT_1phase | 6 | 0 | 1* | |
emonTx4_DB_6CT_3phase | 6 | 0 | 1* | |
emon_DB_12CT (1-3 phase) | 12 | 0 | 3* | |
EmonTx5 | emonTx5_CM_6CT_temperature | 6 | 3 (6 optional) | 1 |
emonTx5_DB_6CT_1phase | 6 | 0 | 1* | |
emonTx5_DB_6CT_3phase | 6 | 0 | 1* | |
emon_DB_12CT (1-3 phase) | 12 | 0 | 3* | |
emonPi2 (Zero) | emonPi2_DB_6CT_1phase | 6 | 6+ (Pi) | 1* |
emonPi2_DB_6CT_3phase | 6 | 6+ (Pi) | 1* | |
emon_DB_12CT (1-3 phase) | 12 | 6+ (Pi) | 3* | |
emonPi2_CM_6CT (current only) | 6 | 6+ (Pi) | 1 | |
emonPi2 (Pi4) | emonPi2_DB_6CT_1phase | 6 | 6+ (Pi) | 1* |
emonPi2_DB_6CT_3phase | 6 | 6+ (Pi) | 1* | |
emonPi2_CM_6CT (current only) | 6 | 6+ (Pi) | 1 |
These are built from 3 base firmwares in the avrdb_firmware repository: