Skip to content

Releases: mysensors/MySensors


09 Dec 19:01
Choose a tag to compare

Highlights in this release

Add support for RPI4 (#1364)

Transport and crypto HAL update (#1282)

Rename "soft ack" to echo (#1292)

Add log parser (#1138

RF24 improvements (#1316)

...and many other bug fixes and tweaks

Important information:

If you encounter compilation issues, update your board definitions:

  • AVR 1.8.2
  • ESP8266 2.6.2
  • ESP32 1.0.4
  • SAMD 1.8.4
  • nRF5 0.6.0 (Sandeep Mistry)
  • STM32F1 2019.12.8 (stm32duino)


Special thanks to the following people who have contributed code to this release:

  • Alfredo
  • desander
  • hannesweisbach
  • ltigges
  • Mikael Falkvidd
  • Patrick Fallberg
  • pragtich
  • Rik Jansen
  • tekka
  • Yveaux


MySensors 2.3.2 release

  • CI: Update Arduino IDE 1.8.8 (#1238)
  • Update test sketches (#1243)
  • Update CI scripts and ESP32 main (#1244)
  • Debug: Recursive wait() calls (#1249)
  • RPI: Fix compilation error (#1247)
  • Add MQTT Wifi connection status check (#1248)
  • MQTT GW: Subscribe topic concatenation refactored (#1240)
  • Allow definition of MY_OTA_RETRY and MY_OTA_RETRY_DELAY (#1241)
  • Add hwSPI to HAL (#1234)
  • Add unified HwDebugPrint() (#1251)
  • Maintenance: ethernet and MQTT code (#1250)
  • Update recursive wait() call warning (#1252)
  • Add Arduino IDE library badge to README (#1254)
  • Code maintenance (#1261)
  • Fix UDP transport and update GW examples (#1262)
  • Cleanup: Remove RFM69 listenmode references (#1263)
  • Code maintenance (#1264)
  • Rpi: flush log file (#1269)
  • CI: Update Arduino IDE 1.8.9 (#1274)
  • Enable heartbeat for GW-only mode (#1273)
  • Add CPU frequency to core debug info (#1275)
  • Code maintenance (#1279)
  • AVR: Fix frequency measurement (#1280)
  • Fix GW transport (#1281)
  • Added getSleepRemaining to core (#1286)
  • Transport and crypto HAL update (#1282)
  • Fix TransportHAL debug output (#1287)
  • Fix TransportHAL debug output (#1288)
  • Transport doc (#1291)
  • Add more checks for missing keywords (#1293)
  • Rename RadioSettingGrpPub to TransportSettingGrpPub (#1295)
  • Document esp8266 limitation for MY_RX_MESSAGE_BUFFER_FEATURE (#1296)
  • Rename "soft ack" to echo (#1292)
  • Update CI (#1298)
  • Fix serial protocol parser (#1301)
  • Update CI and SAMD board defs (#1302)
  • Append instead of overwrite CXXFLAGS (#1304)
  • Add CXXFLAGS to configure output (#1305)
  • Add info on ESP32, STM32, nRF5 and SoftSPI (#1307)
  • Fix issues after CPPcheck 1.88 update (#1308)
  • Energy meter pulse sensor itslav (#1306)
  • Revert "Energy meter pulse sensor itslav (#1306)" (#1310)
  • Code maintenance (#1309)
  • Revert the revert 1306 energy meter pulse sensor itslav (#1313)
  • RF24 improvements (#1316)
  • Fix protocol header (#1319)
  • Move noACK control to transportSendWrite() (#1317)
  • Fix inverted noACK flag (#1321)
  • Create FUNDING.yml (#1323)
  • Exclude items from the Arduino library package (#1324)
  • Initial commit (#1325)
  • MyTransport update (#1329)
  • Clarify MY_DEBUG_OTA define (#1331)
  • Add log parser (#1338)
  • Add id failed to logparser (#1339)
  • Delete logparser.js
  • Add a few improvements to the log parser (#1340)
  • ESP32/ESP8266: place ISR in IRAM (#1348)
  • Cumulative update (#1347)
  • Fix segmentation fault (#1346)
  • Update MyMessage.cpp (#1352)
  • Code maintenance (#1355)
  • CI: Update Arduino boards (#1356)
  • Make it clear when checks pass (#1360)
  • Update mystools/ for WSL (#1361)
  • Add MY_RS485_DE_INVERSE define to invert the device enable pin polarity (#1358)
  • Fix potential buffer overflow (#1365)
  • Fix double free (#1366)
  • ESP8266: Update to 2.6.1 (#1370)
  • Add fuse chapter to signing troubleshooting (#1369)
  • RPI: Add support for RPI4 (#1364)
  • Bumping version to 2.3.2-rc.1 (#1362)


14 Dec 10:04
Choose a tag to compare

Highlights in this release

RF24: Add delay after power-up (#1193)

Update #1184, RFM69 frequency band support for India

Improve transport function & debug messages (#1191)

Allow flash strings in present() to save RAM (#1198)

Important information:

  • The NRF24 defines have been renamed to RF24 to use naming that's consistent with the other transport defines.
  • ESP8266 board definitions 2.4.2 or later are REQUIRED for use with this release. If you use ESP8266 board definitions 2.4.1 or earlier you will get an error saying fatal error: gdb_hooks.h: No such file or directory #include "gdb_hooks.h"


Special thanks to the following people who have contributed code to this release:

  • freynder
  • Jeeva Kandasamy
  • Lee Nelson
  • tekka
  • Yveaux
  • Marcelo Aquino
  • Mikael Falkvidd
  • Patrick Fallberg


MySensors 2.3.1 release

f4fd69eb131cd5d by Mikael Falkvidd at 2018-12-14 08:53:20


121648f34bb45ab by tekka at 2018-11-12 20:36:10

Update PubSubClient 2.7 (#1224)

4b14f5a7401e732 by tekka at 2018-11-11 14:06:37

Implement CPUTemperature() (#1225)

bde7dadca6c50d5 by tekka at 2018-11-04 12:27:28

Display release number (#1217)

06bdb991b6012c3 by tekka at 2018-11-03 09:04:32

MY_DEBUGDEVICE output (#1221)

4104cdbb980eb35 by tekka at 2018-10-23 21:26:16

Revert "Allow splash screen to redirect to MY_DEBUGDEVICE if defined (#1057) (#1210)" (#1220)

This reverts commit f5676a3.
d1805db3484e5e9 by tekka at 2018-10-23 19:38:13

Allow splash screen to redirect to MY_DEBUGDEVICE if defined (#1057) (#1210)

  • Allow splash screen to redirect to MY_DEBUGDEVICE if defined (#1057)
    f5676a362207b89 by Lee Nelson at 2018-10-22 18:55:39

Code updates & harmonization (#1201)

8e8f44b40252e9d by tekka at 2018-10-21 14:55:24

Jenkins:Update Arduino 1.8.7 (#1215)

b6ab7aaf03354bf by tekka at 2018-10-21 11:10:21

Add GatewayESP32OTA example (#1216)

5a7f3a4faee19e1 by tekka at 2018-10-21 11:10:07

Fix internal message forwarding (#1205)

5d159a6c57209e9 by tekka at 2018-09-12 09:27:12

Allow flash strings in present() to save RAM (#1198)

b346214b1988a57 by tekka at 2018-09-04 07:00:38

Fix SPIDEV on Armbian Stretch (#1200)

Fix #1195
1c33609556e10b1 by Marcelo Aquino at 2018-09-04 06:59:32

Update Jenkins to use Arduino 1.8.6 (#1199)

0b51d5c1476086f by tekka at 2018-08-31 09:17:02

RF24: Add delay after power-up (#1193)

7214b0d4577ba9b by tekka at 2018-08-30 19:14:29

Nrf24 lowlevel (#1192)

  • Implemented nRF24 constant carrier wave

For testing purposes only! Not used by regular MySensors stack.

  • Please Jenkins for unused functions

  • Add RPD retrieval
    966c5d70e12ba41 by Embedded Innovation at 2018-08-30 19:14:10

Inclusion mode: change pinmode to INPUT_PULLUP (#1197)

Issue 1196: #1196

According to arduino references we should instead use INPUT_PULLUP
as of Arduino 1.0.1
cff369679b96afb by freynder at 2018-08-30 19:13:44

Improve transport function & debug messages (#1191)

6d24ab1bb52ed44 by tekka at 2018-08-29 12:52:01

AVR: Fix variable scope in SHA256 ASM (#1188)

  • AVR: Disable SHA256 ASM implementation

  • AVR: Fix variable scope in SHA256 ASM
    ea7f7bec79573a5 by tekka at 2018-08-26 15:39:47

Add lowlevel nRF24 functions (#1190)

  • Implemented nRF24 constant carrier wave

For testing purposes only! Not used by regular MySensors stack.

  • Please Jenkins for unused functions
    5051d516dcb42cc by Embedded Innovation at 2018-08-26 15:38:46

RF24: Fix TX issue regarding PA+LNA modules (#1189)

46568ba14a6b6e6 by tekka at 2018-08-26 12:46:16

Code maintenance (#1186)

6ffe29cb5fcfa33 by tekka at 2018-08-22 18:50:16

Update #1184, RFM69 frequency band support for India (#1185)

c8d951d3df05a23 by Jeeva Kandasamy at 2018-08-21 17:31:10

Introduce CryptoHAL, optimize crypto functions (#1178)

2e406f51350f46c by tekka at 2018-08-21 17:30:11

Direct node2node traffic (#1174)

831e0e8cd232f7e by tekka at 2018-08-21 17:20:06

GW: Send discovery message after startup

4a94fcfd4fafaf7 by Olivier at 2018-08-15 12:32:08

Update library props and fix typo (#1173)

57e3294bcc82b8e by tekka at 2018-08-07 14:00:48

Add CPPFLAGS to configure output (#1168)

Printing the CPPFLAGS might help people notice when they are
not including all parameters on one line.
d0d0ee7e5ee6f30 by Mikael Falkvidd at 2018-08-06 17:15:47

ESP8266: Updates to support 2.4.2 board defs (#1169)

2badd59a71a096b by tekka at 2018-08-04 18:40:54

Prevent toggle ACTIVATE (#1164)

Fix issue #1163. Prevent toggling advanced features on nRF24L01 non-plus versions.
c6a970be8ba27ba by Embedded Innovation at 2018-07-30 11:14:36

Development version 2.3.1-alpha (#1154)

75538934955572c by Patrick Fallberg at 2018-06-25 07:21:45


18 Jun 14:35
Choose a tag to compare

Highlights in this release

New gateways

  • TinyGSM based gateway support for ESP8266. Thanks @thucar.


  • Config files are used to store more settings (security keys, gateway settings, etc)
  • More security settings available


  • The simple password flag has been redesigned:
    • MY_SIGNING_SIMPLE_PASSWD only affects signing.
    • MY_ENCRYPTION_SIMPLE_PASSWD only affects encryption.
    • MY_SECURITY_SIMPLE_PASSWD enable both signing and encryption flags.
  • Software AES encryption now available for RFM85 radios


Pin changes

  • ESP8266 changes RFM69/95 default IRQ pin to D1.


MySensors 2.3.0 release

15351cdd5b92248 by Patrick Fallberg at 2018-06-18 14:15:50

Linux: Add rfm95 configure options (#1135)

b84cd6ac4ecacdd by Marcelo Aquino at 2018-06-16 17:19:32

Pre-register PR build statuses on GitHub (#1145)

This enables GitHub to show all statuses planned for execution.
88a0d70e4d66984 by Patrick Fallberg at 2018-06-16 14:41:37

Avoid data array overflow (#1142)

Occurs through packet collisions. Sometimes a wrong length is received.
a28b7036caa787f by seeers at 2018-06-16 11:32:10

Jenkins: Update CI scripts + Arduino IDE 1.8.5 (#1144)

f934d7c46f92f51 by tekka at 2018-06-10 11:05:47

Jenkins: Update ESP8266 board defs 2.4.1 (#1143)

fc99db60e0f870d by tekka at 2018-06-10 08:59:48

Remove redundant keyword identifiers (#1140)

The third field of keywords.txt is used to provide Arduino Language
Reference links, which are accessed from the Arduino IDE by
highlighting the keyword and then selecting "Find in Reference"
from the Help or right click menu. Adding values to this field that
do not match any existing reference pages results in a "Could not
open the URL" error.
9f987a98f951772 by per1234 at 2018-06-08 08:29:06

Add software AES encryption to RFM95 transport HAL (#1054)

Also clean up capabilities flags a bit and fix test-sketch
for rfm95 to use proper encryption flag.
bbaa9399d6e68f1 by Patrick Fallberg at 2018-05-29 22:09:24

Fix syntax error in MyGatewayTransportEthernet (#1132)

Code doesn't compile very well if statements are missing
a semicolon at the end.

This error snuck in in
59b15f5824bf060 by Mikael Falkvidd at 2018-05-18 13:46:12

Refine cppcheck analysis (#1133)

  • Details link on github for cppcheck now goes straight to the report
  • Removed umatched suppression from the cppcheck suppression file
    4e1d69dbb232bd8 by Patrick Fallberg at 2018-05-18 06:35:43

Add error message when HAL is undefined (#1131)

ba7027ce1d4ba81 by Avamander at 2018-05-16 08:34:14

Update cast in msg.set (#1130)

A while ago, MySensors changed to use int32_t
instead of long int (and similar for other data
types). This change was not applied to all examples,
causing some examples to fail compilation for
ESP8266 with the following message:

call of overloaded 'set(long int)' is ambiguous

This update changes the casts to match the new style.
This fixes
Thanks to for reporting.
0b9af6d713aaa17 by Mikael Falkvidd at 2018-05-14 19:32:11

Fixed some minor typos in comments (#1082)

  • Fixed typo in the username
    f5ed26c778c1810 by Marco Bakera at 2018-05-06 18:22:56

Remove use of titles by CI Butler (#1125)

c08b80cb90b434c by Martin Hjelmare at 2018-05-04 16:35:00

Kill Gitler and make way for The Butler (#1124)

The Butler is a more polite and helpful replacement to the
grumpy old Gitler.
The Butler will do his utmost to assist new (and old)
contributors to the MySensors cause.
d9e05eb39c387ce by Patrick Fallberg at 2018-05-04 07:38:24

Add transport sanity check before entering loop() (#1116)

153850de808023e by tekka at 2018-05-01 20:33:26

Fix RFMxx deadlock and minor optimization (#1099)

3c07390323fb104 by tekka at 2018-05-01 20:31:16

Add sleep forever by sleep(0); (#1113)

For battery powered sensors which wake up by the RST Pin its useful
to sleep the cpu forever. When using this command:
the code will be stripped down to hwSleep(0);.
But this will not sleep the cpu forever.
1c5853ce79fb62b by Tombula at 2018-05-01 14:59:04

Word corrections (#1114)

Consolidate WiFi defines (#1110)

Great work @tekka007
bb7766197c982eb by tekka at 2018-05-01 14:54:43

Add more missing keywords (#1111)

This fixes
and also adds Doxygen and syntax highlighting
for the following keywords:
e0988e6d9e368f1 by Mikael Falkvidd at 2018-04-10 18:22:39

Clarify default defines (#1106)

Moved example values after the @brief portion of Doxygen,
so the default (empty/undefined) values are visible
in Doxygen.
a8429868e770ce8 by Mikael Falkvidd at 2018-04-10 12:58:11

Add Doxygen for MQTT_USER and MQTT_PASSWORD (#1105)

This fixes
df1bb7fcc538a0c by Mikael Falkvidd at 2018-04-10 05:56:17

Fix spelling mistakes (#1104)

f2d9f72cf488b86 by Mikael Falkvidd at 2018-04-09 21:31:50

Add keywords that already have Doxygen (#1108)

Found some keywords that already have Doxygen comments
but were not present in keywords.txt
bb80732eada0443 by Mikael Falkvidd at 2018-04-09 21:27:19

ESP32: Support HW (#865)

This fixes #968
eaf1b9452bef48f by tekka at 2018-04-07 12:46:01

Remove faulty wiring instructions from ESP gateways (#1100)

This fixes
has been updated to include GPIOn instructions
(in addition to the existing Dn instructions).

Thanks to RWoerz for reporting this discrepancy.

Also, the "barebone" boot wiring has been moved to
d1aa419efe612bf by Mikael Falkvidd at 2018-04-07 08:42:52

Add missing keywords 2 (#1087)

  • Add missing keywords and blacklist

These keywords already exist in Doxygen and should be highlighted
in the Arduino IDE.

Some keywords should not be highlighed and are therefore added
to the blacklists at end of keywords.txt

  • Sort keywords in each section

  • Add blacklist of MY_MQTT_TOPIC_PREFIX
    9809eb6270ae6c9 by Mikael Falkvidd at 2018-04-05 20:25:05

RF24: Minor power optimization (#1069)

2994d83e53cda28 by tekka at 2018-04-04 18:48:36

Linux: Support keys in config file (#1093)

  • Signing and encryption keys are set through the configuration file.
  • SoftEeprom update.
    3c0b2727a569072 by Marcelo Aquino at 2018-04-04 18:43:13

MY_GATEWAY_TINYGSM support. GSM gateway using a modem module (#1097)

Added TinyGSM driver and GatewayGSMMQTTClient example
4d90c00f984e3af by thucar at 2018-04-04 14:40:11

Linux: RF24 interrupt trigger workaround (#1094)

Fix #870
b5a2fc226fe6475 by Marcelo Aquino at 2018-03-27 21:07:57

Linux: Minor log fix (#1092)

Use colored log messages only on the terminal.
fb95a84e6f6eaeb by Marcelo Aquino at 2018-03-25 18:51:41

Linux: Fix stability problem with ethernet (#1091)


25 Jan 09:52
Choose a tag to compare

Lots of new stuff

Note that the default DEFAULT_RF24_CS_PIN on Arduino Mega (and maybe others) has changed from 10 to SS.


MySensors 2.2.0 release

64be32a19a2bdfb by Mikael Falkvidd at 2018-01-24 19:56:53

Update for upcoming release (#994)

8d3d7ae6b8e9c04 by Patrick Fallberg at 2018-01-24 09:11:48


Thanks to @TokTias for this idea and a starting point for the code.

This PR replaces #1029
467b7e000ab22fb by Mikael Falkvidd at 2018-01-23 09:26:01

Relax Gitler on commit headline length (#1031)

The guide we are referring to
( )
shoot for 50 characters, but consider 72 the hard limit

so let Gitler consider 72 the hard limit (instead of 50).
d9059d7bd512d7b by Mikael Falkvidd at 2018-01-19 16:52:07

Correct misspells (#1028)

af3452f91c15b60 by tekka at 2018-01-11 21:26:08

SignalReport disabled by default (#1027)

1feae06d7f31d9c by tekka at 2018-01-11 06:46:43

Linux/SerialPort: Log success message (#1021)

This log message makes the Serial gateway print the serial port path,
similar to how the Ethernet gateway prints IP and port.

Example log output:
mysgw: Serial port /dev/MyCoolTTY (115200 baud) created
ca73ae20d6c078e by Mikael Falkvidd at 2018-01-07 13:52:08

Linux: Fix null ptr exception (#1025)

6434d2fa99f0915 by tekka at 2018-01-07 13:51:28

Update doxygen (#1024)

b51c77b2bf1e643 by tekka at 2018-01-01 11:55:06

Doxygenize MyGatewayTransport (#1023)

d557cb3d34976b6 by tekka at 2018-01-01 11:13:18

RFM69: Fix compiler warnings (#1020)

292dc849cca0ba4 by tekka at 2017-12-28 12:07:09

Add MY_RS485_SOH_COUNT option (#1014)

b148d828ad14979 by rejoe2 at 2017-12-18 15:57:53

Update reference to Code Contribution Guidelines (#1011)

As mentioned by per1234 in
we should make it easier to find the full code contribution

Since we have multiple git repos, we don't want to duplicate the
guidelines in each repo. Instead, we link to the canonical source
27b0177d2654adb by Mikael Falkvidd at 2017-12-09 09:08:43

MySensors 2.2.0-rc.2 (#1000)

26232da4d80d97b by tekka at 2017-12-06 22:04:22

Use correct separator in keywords.txt (#1008)

The Arduino IDE currently requires the use of a tab separator between
the name and identifier. Without this tab the keyword is not
6337b8bf71d5a32 by per1234 at 2017-12-06 22:03:39

Fix FOTA updates with smart sleep (#999)

a80879e056cd30c by tekka at 2017-12-06 22:02:57

Harmonize debug outputs (#1002)

a9c49f0210e6f74 by tekka at 2017-12-05 03:03:39

Add MY_DEBUGDEVICE to redirect debug output (#1006)

  • Add MY_DEBUGDEVICE to redirect debug output

MY_DEBUGDEVICE, if defined, will replace MY_SERIALDEVICE
for the purpose of printing debug messages. This only
applies to debugging.
bfcb125e72fb32f by Lee Nelson at 2017-12-03 18:34:58

Update board name MyNRF5Board -> MyBoardNRF5 (#997)

8d9af98a55d2262 by d00616 at 2017-11-20 18:55:30

NRF5 ESB fix two states (#996)

e39b2be7aff85da by d00616 at 2017-11-19 12:48:29

NRF5 ESB fix Errata #78,#102,#106 (#995)

aabddc841cd526f by d00616 at 2017-11-18 16:02:38

Update RelayActuator example (#973)

Based on feedback from skywatch,

We'll need to update the wiring instructions on as well.
506d23581daab75 by Mikael Falkvidd at 2017-11-17 20:18:15

BCM driver: include inttypes (#983)

This makes it possible to compile the Raspberry Pi gateway on
Raspbian 9 (stretch), even without adding
(as was suggested in
#955 but was
insufficient for remediating this problem)

The compile problem was inadvertently introduced in

This change fixes the problem discussed in
1e3305959e67cc9 by Mikael Falkvidd at 2017-11-17 20:16:01

Script documentation generation and UML support (#992)

Documentation is now generated by invoking a shell script
which takes care of all the plumbing.
There is now also support of inlineing PlantUML syntax with
Doxygen. This inlining takes the form of
'PlantUML specific syntax'
The inlineing can be made in C syntax comment blocks.
Doxygen will then include the generated UML diagram when
rendering the HTML documentation.
All generated images will be placed under Documentation/img
which is the default search path for Doxygen.
356b783e1906735 by Patrick Fallberg at 2017-11-16 21:21:01

Add documentation for MyCapabilities (#989)

Also fixed spelling error in the MySigning documentation.

Fixes #902
1f8d810ff46e5e3 by Patrick Fallberg at 2017-11-13 11:34:50

RF24: Fix logical operator (#990)

d44ecd95dd93f94 by tekka at 2017-11-12 10:12:06

RFM69: Add missing SPI namespace (#987)

3830c5dde06bafa by tekka at 2017-11-11 17:26:14

Provide link to Gitler report for gitler asserts (#986)

This will help "offending" contributors to find what
is wrong.
809663e6480e96f by Patrick Fallberg at 2017-11-11 16:56:56

Use dedicated namespace for radio SPI (#985)

4f0a4ee021c658a by tekka at 2017-11-11 14:59:54

Clarify TSM:ID:FAIL message (#984)

As discussed in
and numerous other forum threads, many people don't understand
that id generation is done by the controller.

Many new users start out their first MySensors network with a
gateway, a single sensor node and no controller. Since MySensors
defaults to AUTO node id, the node gets stuck on TSM:ID:FAIL,
like this:

This change adds a clarifying note about the controller in the
doxygen documentation.
a23ab14494d28f9 by Mikael Falkvidd at 2017-11-11 09:41:09

Fix RFM95 reset (#982)

I've verified that the datasheet says to go low, and checked that the commit history does not indicate a reason for doing otherwise.
d43c755508203a7 by tekka at 2017-11-10 17:23:36

NVM: consideration of SoftDevice memory layout (#977)

0042cd4beea19e9 by d00616 at 2017-11-07 20:54:00

CppCheck cleanup (#975)

  • Add support for inline cppcheck suppressions
  • Clean out all known cppcheck issues
  • Terminate toll-gate on found cppcheck issues
    2d5404de979498f by Patrick Fallberg at 2017-11-07 19:37:36

Reshuffle arch files (#974)

e2ac85afbbb9f4d by tekka at 2017-11-06 20:24:38

Jenkins: Add STM32F1 support (#972)

b892aef6c31cfcf by tekka at 2017-11-05 13:19:42

Harmonize type definitions (#970)

9663d4c6b7e8968 by tekka at 2017-11-04 13:38:33

Jenkins: Drop redundant targets (#969)

30516cf87e24e79 by tekka at 2017-11-02 22:03:52

Update debug message table (#965)

1f07d7eafec5d69 by tekka at 2017-10-30 19:22:50

Revert attempt to bu...


18 Jan 21:09
Choose a tag to compare

Bugfix release


  • OTA: Add incoming FW block check
  • Add support for SPIDEV
  • Fix getControllerConfig()
  • Rename MyHwATmega328 to MyHwAVR
  • AVR: Restrict fast pin function use
  • Fix signing presentation bug


30 Dec 17:55
Choose a tag to compare

Major changes:

  • Bug fixes and lots of improvements under the hood
  • Added support for Raspberry Pi
  • New transport layer: RFM95 (LoRa mode)
  • Improved debug messages, see here.
  • RAM-based routing tables (for supported HWs)
  • Improved message handling, additional checks for incoming messages


09 Jul 21:49
Choose a tag to compare

Major version change

  • Library size reduced ~20% by removing a lot of C++ overhead.
  • Full configuration of library behaviours and features directly from sketch code. Makes codebender builds much easier and allows you to make configuration without editing MyConfig.h.
  • No more MySensors constructor mess with radio drivers and signing backends. All setup and initialization is handled “behind-the-scene”.
  • Calls to process() is handled in the background automatically.
  • Structural change: Embedding of drivers and libraries in a structured way instead of using the weird arduino-build-system util-folder which includes everything when building.
  • All gateway variants available as examples without any need for re-configuration (E.g. SOFT-SPI automatically enabled for W5100).
  • Gateway just another sensor node! So now you can have wired ethernet sensors and wireless ESP8266 sensors without any radio attach if you want.
  • AES encryption (RF24)
  • Introducing a presentation() function in sketch - This allows controller to re-request presentation and do re-configuring node after startup.
  • Optional receive() function in sketch replaces begin(callback).
  • sendHeartbeat() - Allows node to send heartbeat and controller to ping nodes.
  • Ethernet/ESP8266 gateway supports setting static ip and using dhcp
  • Ethernet/ESP8266 gateway allowing communication using UDP.
  • Ethernet/ESP8266 gateway can now act as a client which opens a socket to controller at startup. NOTE: This has to be supported by controller.
  • MQTT client gateway on ESP8266 or Arduino+W5100 Ethernet adapter
  • ESP8266 stability improvements
  • Serial transport layer (RS232/RS485) with dePin management.
  • Added variable V_CUSTOM - For sending/requesting custom data to/from controller and between nodes. Preferable using S_CUSTOM device. This variable-type is controller specific so use it with care in the officially provided examples.
  • New sensors types and variables: S_INFO, S_GAS, S_GPS, V_TEXT, V_CUSTOM, V_POSITION, V_VAR, V_VA, V_POWER_FACTOR
  • Deprecated sensors: S_LIGHT (use S_BINARY)
  • Deprecated variables: V_DIMMER (use V_PERCENTAGE), V_HEATER (use V_HVAC_FLOW_STATE), V_LIGHT (use V_STATUS)
  • New command I_DISCOVER - retrieve active nodes and topology.
  • Detection of mis-wired RFM69 radios.
  • MyMessage:getCommand()
  • Cleanup Github Repo:
    • Moved MYSBootloader to separate Github repository.
    • Moved NodeJsController to separate Github repository.
  • “Smart sleep” variants of all sleep methods that allows nodes to receive buffered messages/commands from controller that was issued while node was sleeping. When calling the smartSleep() variant, the goes to sleep and sends a heartbeat message after waking up (informing controller that node is awake) and waits MY_SMART_SLEEP_WAIT_DURATION to process any incoming buffered messages from the controller. NOTE: Controller must support this feature.
  • Optional before() method in sketch - for initialisations that needs to take place before radio has been setup (using SPI).
  • New conditional parameters to wait(unsigned long ms, uint8_t cmd, uint8_t msgtype) loops until time passed or specified command received.
  • New RF24 driver by @tekka007. Stripped C++ code, 2-fold speed increase, Radio code reduced about 2kb, Eliminate non-essential register polling/writing, Uses 2 RX pipes
  • Possible to re-assign/reallocate node ids by sending I_ID_RESPOSE to a node.
  • AVR/SAMD hardware moded to separate GitHub repository and accessible using board manager by adding
  • Support SAMD architecture (Arduino Zero, MySensors Gateway Hardware)
  • transportInit()-method used to reinitialize radio after full power-down of radio. Useful when using one of the GPIOs to power radio (or via MOSFET).
  • Move OTA FW update code to MyOTAFirmwareUpdate
  • Implement I_DEBUG to report various parameters such as CPU frequency, CPU voltage, free mem, routing info and function to do a “factory reset” by clearing the MySensors EEPROM area
  • Added library status indication callback. User can install callback to handle status & error information from the library.
  • Improved error LED feedback. A 'headless' sensor can report error codes by counting the number of blinks of the error led.
  • Overhauled transport with focus on reliability and stability (most important changes/enhancements):
    • state machine for transport-related tasks
    • node checks connection to GW during transport initialisation
    • parent node assignments are handled as preferred parent with fallback mechanism
    • regular transport sanity checks for GW and repeater nodes
    • repeater node checks uplink connection to GW before advertising as repeater during find parent state
    • in case of transport failure (HW or link): power-down (PDT) for a defined time and re-initialisation
  • Node registration: node has to register to the GW/controller in order to send sensor data (default state configurable)
  • For maintenance reasons, examples depending on external libraries have been removed, to be placed in a separate repository (work in progress).


07 Feb 12:04
Choose a tag to compare

Maintenance release to resolve issue with "getters"

  • Received payloads will have a NULL char appended
    if the message targets "this" node so that the
    "getters" work as expected.


20 Jan 08:53
Choose a tag to compare

Maintenance release to fix signing compilation

  • _doSign variable renamed to doSign


19 Jan 12:24
Choose a tag to compare

Security maintenance release

  • Backport of bugfix (#259) in repeaters when forwarding signed messages
  • Prevent SecureActuator from accepting ACKs as commands
  • Make sure nodes not supporting signing informs gateway
  • Fixes addressing bug in _doSign bitfield
  • Stabilizes Jenkins