MySensors library and examples
...and many other bug fixes and tweaks
If you encounter compilation issues, update your board definitions:
Special thanks to the following people who have contributed code to this release:
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:
f4fd69eb131cd5d by Mikael Falkvidd [email protected] at 2018-12-14 08:53:20
121648f34bb45ab by tekka at 2018-11-12 20:36:10
4b14f5a7401e732 by tekka at 2018-11-11 14:06:37
bde7dadca6c50d5 by tekka at 2018-11-04 12:27:28
06bdb991b6012c3 by tekka at 2018-11-03 09:04:32
4104cdbb980eb35 by tekka at 2018-10-23 21:26:16
This reverts commit f5676a362207b895f4f71c793e0c8a5a319247df. d1805db3484e5e9 by tekka at 2018-10-23 19:38:13
8e8f44b40252e9d by tekka at 2018-10-21 14:55:24
b6ab7aaf03354bf by tekka at 2018-10-21 11:10:21
5a7f3a4faee19e1 by tekka at 2018-10-21 11:10:07
5d159a6c57209e9 by tekka at 2018-09-12 09:27:12
b346214b1988a57 by tekka at 2018-09-04 07:00:38
Fix #1195 1c33609556e10b1 by Marcelo Aquino at 2018-09-04 06:59:32
0b51d5c1476086f by tekka at 2018-08-31 09:17:02
7214b0d4577ba9b by tekka at 2018-08-30 19:14:29
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
Issue 1196: https://github.com/mysensors/MySensors/issues/1196
According to arduino references we should instead use INPUT_PULLUP as of Arduino 1.0.1 https://www.arduino.cc/en/Tutorial/DigitalPins cff369679b96afb by freynder at 2018-08-30 19:13:44
6d24ab1bb52ed44 by tekka at 2018-08-29 12:52:01
AVR: Disable SHA256 ASM implementation
AVR: Fix variable scope in SHA256 ASM ea7f7bec79573a5 by tekka at 2018-08-26 15:39:47
For testing purposes only! Not used by regular MySensors stack.
46568ba14a6b6e6 by tekka at 2018-08-26 12:46:16
6ffe29cb5fcfa33 by tekka at 2018-08-22 18:50:16
c8d951d3df05a23 by Jeeva Kandasamy at 2018-08-21 17:31:10
2e406f51350f46c by tekka at 2018-08-21 17:30:11
831e0e8cd232f7e by tekka at 2018-08-21 17:20:06
4a94fcfd4fafaf7 by Olivier at 2018-08-15 12:32:08
57e3294bcc82b8e by tekka at 2018-08-07 14:00:48
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
2badd59a71a096b by tekka at 2018-08-04 18:40:54
Fix issue #1163. Prevent toggling advanced features on nRF24L01 non-plus versions. c6a970be8ba27ba by Embedded Innovation at 2018-07-30 11:14:36
75538934955572c by Patrick Fallberg at 2018-06-25 07:21:45
15351cdd5b92248 by Patrick Fallberg at 2018-06-18 14:15:50
b84cd6ac4ecacdd by Marcelo Aquino at 2018-06-16 17:19:32
This enables GitHub to show all statuses planned for execution. 88a0d70e4d66984 by Patrick Fallberg at 2018-06-16 14:41:37
Occurs through packet collisions. Sometimes a wrong length is received. a28b7036caa787f by seeers at 2018-06-16 11:32:10
f934d7c46f92f51 by tekka at 2018-06-10 11:05:47
fc99db60e0f870d by tekka at 2018-06-10 08:59:48
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
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
Code doesn't compile very well if statements are missing a semicolon at the end.
This error snuck in in https://github.com/mysensors/MySensors/pull/1110 59b15f5824bf060 by Mikael Falkvidd at 2018-05-18 13:46:12
ba7027ce1d4ba81 by Avamander at 2018-05-16 08:34:14
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 https://github.com/mysensors/MySensors/issues/1129 Thanks to https://github.com/henfri for reporting. 0b9af6d713aaa17 by Mikael Falkvidd at 2018-05-14 19:32:11
c08b80cb90b434c by Martin Hjelmare at 2018-05-04 16:35:00
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
153850de808023e by tekka at 2018-05-01 20:33:26
3c07390323fb104 by tekka at 2018-05-01 20:31:16
For battery powered sensors which wake up by the RST Pin its useful to sleep the cpu forever. When using this command: sleep(INTERRUPT_NOT_DEFINED, MODE_NOT_DEFINED, 0, false); 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
Great work @tekka007 bb7766197c982eb by tekka at 2018-05-01 14:54:43
This fixes https://github.com/mysensors/MySensors/issues/1089 and also adds Doxygen and syntax highlighting for the following keywords: MY_GATEWAY_MQTT_CLIENT MY_GATEWAY_SERIAL MY_IP_GATEWAY_ADDRESS MY_IP_SUBNET_ADDRESS MY_MQTT_CLIENT_ID MY_MQTT_PUBLISH_TOPIC_PREFIX MY_MQTT_SUBSCRIBE_TOPIC_PREFIX e0988e6d9e368f1 by Mikael Falkvidd at 2018-04-10 18:22:39
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
This fixes https://github.com/mysensors/MySensors/issues/1088 df1bb7fcc538a0c by Mikael Falkvidd at 2018-04-10 05:56:17
f2d9f72cf488b86 by Mikael Falkvidd at 2018-04-09 21:31:50
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
This fixes https://github.com/mysensors/MySensors/issues/968 eaf1b9452bef48f by tekka at 2018-04-07 12:46:01
This fixes https://github.com/mysensors/MySensors/issues/1096
https://www.mysensors.org/build/connect_radio 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 http://bit.do/stupidurl d1aa419efe612bf by Mikael Falkvidd at 2018-04-07 08:42:52
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
2994d83e53cda28 by tekka at 2018-04-04 18:48:36
Added TinyGSM driver and GatewayGSMMQTTClient example 4d90c00f984e3af by thucar at 2018-04-04 14:40:11
Fix #870 b5a2fc226fe6475 by Marcelo Aquino at 2018-03-27 21:07:57
Use colored log messages only on the terminal. fb95a84e6f6eaeb by Marcelo Aquino at 2018-03-25 18:51:41
06f8d2b7e5dc3cc by Mikael Falkvidd at 2018-03-22 07:26:27
A blacklist is available at the end of keywords.txt
I decided to blacklist all the LINUX keywords. I guess people could use the Arduino IDE to edit the sketch for the raspberry pi gateway, but I'm not sure we should encourage that.
I'll add gitler support for auto-detecting missing keywords in a separate PR. c9c461846a8ce77 by Mikael Falkvidd at 2018-03-21 14:08:02
No need to grep when we have a command that outputs exactly what we want. 7a33082eaf506c1 by Mikael Falkvidd at 2018-03-12 10:47:39
Derive DEFAULT_RFM69_IRQ_NUM from MY_RFM69_IRQ_PIN instead of DEFAULT_RFM69_IRQ_PIN so that _NUM does not have to be defined if _PIN is redefined
The originally defined pin GPIO2 prevent ESP8266 from booting, since it has to be pulled high for booting and DIO0 from the RFM69 is defaul low. For this reason, it is improbably that anyone is using the default and would be affected by this change. 3d093e6beda34fe by kvoit at 2018-03-08 16:56:22
The message hook validates that the c ommit message follows the MySensors requirements. More specifically, it checks that
Fixes #672 3f2d2921428ef2a by Patrick Fallberg at 2018-03-06 16:32:54
eb839464b8e17f9 by Patrick Fallberg at 2018-03-04 16:49:51
c805f77f202cfc2 by tekka at 2018-03-01 19:27:07
Update NVM
New MY_LOCK_MCU for NRF5
Test with Sensebender GW + Sensebender Micro was successful fe42dbdcca4ced3 by d00616 at 2018-02-28 19:03:34
The comment for inclusion mode pin and the definition of MY_INCLUSION_MODE_BUTTON_PIN did not match.
GPIO5 should be safe to use, while GPIO3 is used for the UART which might result in conflict.
This fixes https://github.com/mysensors/MySensors/issues/993 599c0bada60089c by Mikael Falkvidd at 2018-02-22 11:04:03
57eca4f4afb3a26 by tekka at 2018-02-20 11:32:17
b51981ab3d11454 by tekka at 2018-02-20 11:32:03
345d6d7d119f5d2 by tekka at 2018-02-19 12:26:14
RFM69: Updates and optimizations
RFM69: Updates and optimizations a0af38a0d8cd2cb by tekka at 2018-02-18 20:06:28
0bc3ac9cb32e6f9 by tekka at 2018-02-18 20:05:25
6794c72ecd8c35c by tekka at 2018-02-11 15:48:11
MY_SIGNING_SIMPLE_PASSWD is now called MY_SECURITY_SIMPLE_PASSWD. MY_SIGNING_SIMPLE_PASSWD only affects signing, and a new flag, MY_ENCRYPTION_SIMPLE_PASSWD only affects encryption. MY_SECURITY_SIMPLE_PASSWD enable both these flags.
The rPi port has been improved to support more security settings and it is now also possible to enable encryption for RFM69 transport.
Documentation has been improved to provide a "Security" section under "Library customisation" which has a table that summarize all security related configuration flags, and the corresponding rPi configuration flags.
The signing personalization documentation has been updated to include the procedure for rPi.
Fixes #1055 8a1f5f4cf9d4a5c by Patrick Fallberg at 2018-02-11 10:22:48
72b71c8fc810c89 by tekka at 2018-02-10 17:58:20
dea0fd50ca2a9c7 by tekka at 2018-02-10 17:49:31
Add MY_RFM69_IRQ_PIN into keywords.txt 7ed54423fbee959 by Miloslav Kazda at 2018-02-02 11:37:53
14d8accf3716919 by Kartik Arora at 2018-01-30 20:04:37
Fixes the following cppcheck issues: examples/SecretKnockSensor/SecretKnockSensor.ino 305 variableScope 398 style The scope of the variable 'timeDiff' can be reduced.
examples/SensebenderGatewaySerial/SensebenderGatewaySerial.ino 127 variableScope 398 style The scope of the variable 'led_state' can be reduced.
This should replace the static documentation at http://korturl.nu/stupid
I have enabled existing comments and added new comments where necessary. Feedback on syntax and contents is welcome. 8fbdca445280ac4 by Mikael Falkvidd at 2018-01-30 19:47:11
eff11367333162a by tekka at 2018-01-28 13:41:03
Fixes the following cppcheck issues: examples/SecretKnockSensor/SecretKnockSensor.ino 305 variableScope 398 style The scope of the variable 'timeDiff' can be reduced.
examples/SensebenderGatewaySerial/SensebenderGatewaySerial.ino 127 variableScope 398 style The scope of the variable 'led_state' can be reduced. 06269dd94908c35 by Mikael Falkvidd at 2018-01-28 08:31:19
52ac498edae9f22 by Patrick Fallberg at 2018-01-25 21:52:57
Lots of new stuff
Note that the default DEFAULT_RF24_CS_PIN on Arduino Mega (and maybe others) has changed from 10 to SS.
64be32a19a2bdfb by Mikael Falkvidd [email protected] at 2018-01-24 19:56:53
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 https://github.com/mysensors/MySensors/pull/1029 467b7e000ab22fb by Mikael Falkvidd at 2018-01-23 09:26:01
The guide we are referring to ( https://chris.beams.io/posts/git-commit/ ) says: 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
af3452f91c15b60 by tekka at 2018-01-11 21:26:08
1feae06d7f31d9c by tekka at 2018-01-11 06:46:43
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
6434d2fa99f0915 by tekka at 2018-01-07 13:51:28
b51c77b2bf1e643 by tekka at 2018-01-01 11:55:06
d557cb3d34976b6 by tekka at 2018-01-01 11:13:18
292dc849cca0ba4 by tekka at 2017-12-28 12:07:09
b148d828ad14979 by rejoe2 at 2017-12-18 15:57:53
As mentioned by per1234 in https://github.com/mysensors/MySensors/pull/1008 we should make it easier to find the full code contribution guidelines.
Since we have multiple git repos, we don't want to duplicate the guidelines in each repo. Instead, we link to the canonical source on mysensors.org. 27b0177d2654adb by Mikael Falkvidd at 2017-12-09 09:08:43
26232da4d80d97b by tekka at 2017-12-06 22:04:22
The Arduino IDE currently requires the use of a tab separator between the name and identifier. Without this tab the keyword is not highlighted. 6337b8bf71d5a32 by per1234 at 2017-12-06 22:03:39
a80879e056cd30c by tekka at 2017-12-06 22:02:57
a9c49f0210e6f74 by tekka at 2017-12-05 03:03:39
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
8d9af98a55d2262 by d00616 at 2017-11-20 18:55:30
e39b2be7aff85da by d00616 at 2017-11-19 12:48:29
aabddc841cd526f by d00616 at 2017-11-18 16:02:38
Based on feedback from skywatch, https://forum.mysensors.org/post/78896
We'll need to update the wiring instructions on https://www.mysensors.org/build/relay as well. 506d23581daab75 by Mikael Falkvidd at 2017-11-17 20:18:15
This makes it possible to compile the Raspberry Pi gateway on Raspbian 9 (stretch), even without adding --extra-cxxflags="-D__STDC_FORMAT_MACROS" (as was suggested in https://github.com/mysensors/MySensors/issues/955 but was insufficient for remediating this problem)
The compile problem was inadvertently introduced in 2d5404de9.
This change fixes the problem discussed in https://github.com/mysensors/MySensors/issues/980 1e3305959e67cc9 by Mikael Falkvidd at 2017-11-17 20:16:01
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 @startuml{imagename.png} 'PlantUML specific syntax' @enduml 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
Also fixed spelling error in the MySigning documentation.
Fixes #902 1f8d810ff46e5e3 by Patrick Fallberg at 2017-11-13 11:34:50
d44ecd95dd93f94 by tekka at 2017-11-12 10:12:06
3830c5dde06bafa by tekka at 2017-11-11 17:26:14
This will help "offending" contributors to find what is wrong. 809663e6480e96f by Patrick Fallberg at 2017-11-11 16:56:56
4f0a4ee021c658a by tekka at 2017-11-11 14:59:54
As discussed in http://korturl.nu/gitler-is-a-stubborn-bastard-1 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: TSM:ID TSM:ID:REQ TSF:MSG:SEND,255-255-0-0,s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=OK: TSM:ID TSM:ID:REQ TSF:MSG:SEND,255-255-0-0,s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=OK: TSM:ID TSM:ID:REQ TSF:MSG:SEND,255-255-0-0,s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=OK: TSM:ID TSM:ID:REQ TSF:MSG:SEND,255-255-0-0,s=255,c=3,t=3,pt=0,l=0,sg=0,ft=0,st=OK: !TSM:ID:FAIL
This change adds a clarifying note about the controller in the doxygen documentation. a23ab14494d28f9 by Mikael Falkvidd at 2017-11-11 09:41:09
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
0042cd4beea19e9 by d00616 at 2017-11-07 20:54:00
e2ac85afbbb9f4d by tekka at 2017-11-06 20:24:38
b892aef6c31cfcf by tekka at 2017-11-05 13:19:42
9663d4c6b7e8968 by tekka at 2017-11-04 13:38:33
30516cf87e24e79 by tekka at 2017-11-02 22:03:52
1f07d7eafec5d69 by tekka at 2017-10-30 19:22:50
2d5c4a0e9ad6fcc by Patrick Fallberg at 2017-10-30 04:49:51
e6cef8ba631bc30 by tekka at 2017-10-29 14:08:39
a00857a8c2b9c96 by tekka at 2017-10-29 09:19:09
e685aa10e1feea0 by Olivier at 2017-10-28 20:46:22
682a6b0798c718d by Olivier at 2017-10-28 13:20:52
a190034305d0abd by Olivier at 2017-10-28 12:35:06
571947ced9b43fd by Olivier at 2017-10-28 11:19:49
To use this feature, add the following to a sketch, for example GatewayESP8266MQTTClient: const uint8_t bssid[] = {0x00, 0xDE, 0xAD, 0xBE, 0xEF, 0x00}; #define MY_ESP8266_BSSID bssid
This feature was requested in https://github.com/mysensors/MySensors/issues/947 3ebeb4fea15ee74 by Mikael Falkvidd at 2017-10-27 16:52:21
Use case: view the ./configure help text on the web. This has been requested in https://forum.mysensors.org/post/77751
Manually putting the help text in the forum or on mysensors.org would lead to diverging documentation, no version management and extra maintenance burden. This commit attempts to auto-generate the documentation and use existing Doxygen infrastructure to add the help text to the rest of the MySensors documentation. adfd9f36f1ec82d by Mikael Falkvidd at 2017-10-27 16:39:25
Jenkins has been updated with new jobs that scan and execute Jenkinsfiles. These Jenkinsfiles encapsulates all logic for building and validating the commits in both pull requests and merged pull requests.
Filestructure is as follows: .ci/Jenkinsfile - This is the main Jenkinsfile that handles normal pull request builds as well as merged pull request post-validation. Any repository in the MySensors GitHub organization can implement this file and Jenkins will pick up and execute it automatically. .ci/Jenkinsfile-nightly - This perform merged pull request post-validation using the nightly builds of the Arduino IDE to provide early compliancy status of the MySensors library for upcoming releases of the Arduino IDE .ci/ - This folder contain all the auxiliary scripts executed by the Jenkinsfiles as well
Fixes #934 901258f16598ff7 by Patrick Fallberg at 2017-10-13 18:55:02
8cb9b2692098b66 by d00616 at 2017-10-01 20:39:09
f8e132fdb8a0726 by d00616 at 2017-10-01 18:40:32
3ca9b5638096726 by d00616 at 2017-10-01 07:41:36
Fix NRF5_ESB_readMessage, allways enable radio
NRF5: fixes and improvements
Compiles with arduino core for nRF52 (primo) MY_RADIO_NRF5_ESB stays unsupported with primo!
Split ACK negation flag into MY_NRF5_ESB_REVERSE_ACK_TX MY_NRF5_ESB_REVERSE_ACK_RX
MY_RADIO_NRF5_ESB changes to act more than NRF24
MY_RADIO_NRF5_ESB better support for powerdown/standby
Moved initialization from MyMainNRF5 to hwInit() 1b1cf8ff9c1bba0 by d00616 at 2017-09-30 20:55:55
9ee837199ef1c11 by Olivier at 2017-09-22 08:55:25
5164af7edc1cb7a by Olivier at 2017-09-19 20:48:54
f5dce5b61bfb601 by Olivier at 2017-09-19 12:33:55
8412a3d360ef686 by d00616 at 2017-09-18 18:58:44
0ed558f1d077e68 by Olivier at 2017-09-17 18:54:20
Fixes #907 9e5a1e32cbef8b4 by Patrick Fallberg at 2017-09-14 08:49:58
067519c500d4e1c by Olivier at 2017-09-07 16:10:55
973b4b842315d7c by Olivier at 2017-09-05 17:35:13
a9ef29fa673c4c9 by Olivier at 2017-09-04 21:37:11
d74e9bd2123f08c by Olivier at 2017-09-04 20:37:50
Fixes commit 5776d2b650573e76b155bd8c7bcb64f88ea5d11e NRF5: Fix and improve sleep(0) (#909) 46557d129ebcbb8 by Frank Holtz at 2017-08-29 16:43:49
Personalization does not need validation if the simple password security flag is set.
Fixes #914 df34c0011818e7b by Patrick Fallberg at 2017-08-29 07:32:23
5776d2b650573e7 by d00616 at 2017-08-29 07:29:03
463358209da0f2b by Olivier at 2017-08-13 06:11:14
d291a3661be1193 by Marcelo Aquino at 2017-08-12 11:58:02
Added possibility to tune flash commands and parameters in case off use non standard SPI flash for OTA d17b9dd6f1ad9e0 by bilbolodz at 2017-08-03 07:01:05
b10cf85eb00706d by Olivier at 2017-08-01 06:13:06
f3ab329ad38b97a by Patrick Fallberg at 2017-07-31 16:42:26
1cd2c6df0507cd7 by d00616 at 2017-07-31 16:37:01
10ef62307b914c8 by Olivier at 2017-07-24 19:42:44
90793e734cad280 by Marcelo Aquino at 2017-07-24 19:40:46
Even with MY_DISABLED_SERIAL defined, the linker is still adding the Serial object to the binary.
That's because a) the MySensors *.cpp files are actually included into the sketch and compiled as part of it (and not compiled separately and then linked) and b) due the the default(?) behavior of the linker (https://github.com/arduino/Arduino/issues/4579). 6f10745f0ac3d57 by Rainer Clasen at 2017-07-24 19:33:46
Added support for I2C EEPROM OTA
EEPROM OTA now uses extEEPROM as driver
Compiler warning fix
Style check fixes
Fix doxygen warnings of I2CEeprom
Use bool instead of boolean in I2CEeprom shim
Fix re-merged style problem 8f58b18e1a93069 by Krister W at 2017-07-24 19:32:47
b85c11c383f291f by Mikael Falkvidd [email protected] at 2017-07-24 13:01:20
3e75b52c33b06c7 by Patrick Fallberg at 2017-07-07 12:36:14
In the Arduino IDE, boolean is an alias for bool. The Arduino IDE might deprecate boolean in the future. See https://github.com/arduino/Arduino/issues/4673 for details.
Command: find drivers -type f | xargs sed -i 's/boolean/bool/g' a941827157664ac by Mikael Falkvidd at 2017-07-05 14:23:27
added variant of MyMessage::set and sendSketchInfo that accept a string that's stored in PROGMEM.
This avoids the need to (temporarily) store strings in memory to get them into a message. ff0953dd05b4f5e by Rainer Clasen at 2017-06-21 21:41:48
Replace spaces with tabs. e5221689afbc917 by Marcelo Aquino at 2017-06-21 18:04:12
4820475e5ccf245 by Olivier at 2017-06-13 16:49:14
cosmetic cleanups:
eliminated sha256_hash array to save memory. Instead pass the Sha256Class result pointer.
There seems to be no use for the extra sha256_hash array as it was zeroed exactly at the same time, the Sha256Class result was invalidated (by calling signerSha256Init)
If the result needs to stay around while another sha is calculated, it's better to have the user taking care of this.
This allows saving the buffer memory if no hmac is needed ... eg. with the public Signing API. 59337b19fe2280e by Rainer Clasen at 2017-06-07 06:25:56
For soft signing, let backend handle checksum verification of personalization data. This ensures that the backends sha256 library is used and avoids an unnecessary instanitation of the public library. For atsha204 signing, no checksum verification is made, just chip locking flags.
Fixes #872 29fd6d6345497bd by Patrick Fallberg at 2017-06-06 07:51:37
Update more usage of hwGetentropy()
Add hwGetentropy() to Teensy 3.5/3.6 e6925f69e8a0d8c by d00616 at 2017-06-03 19:58:40
Support in the signing backends to handle configurations where MAX_PAYLOAD is more than 32 bytes.
Fixes #748
Support for signing messages larger than 32 bytes. This is not fully testable with the current version of the library but the change would add theoretical support for signing any sized messages.
Fixes #749
If the gateway hold a signing whitelist, inform all nodes of this requirement and not just nodes that hold whitelists themselves.
Fixes #806
The flag MY_SIGNING_GW_REQUEST_SIGNATURES_FROM_ALL has been removed. Gateway will now request signatures from everyone by default. In addition to this, no nodes in the network will allow clearing of signing/whitelisting preferences by OTA commands by default. If the old behaviour is needed (suitable for gradual signing roll out and development purposes) a new flag, MY_SIGNING_WEAK_SECURITY can be set.
Fixes #807
All signing related debug has been rewritten to better match other core debug printouts. Also, backends are updated to have a smaller implementation delta.
Enable by MY_SIGNING_SIMPLE_PASSWD. Signing, and signing requirements will be enabled, as will encryption. Whitelisting is optional. The value provided to MY_SIGNING_SIMPLE_PASSWD is used as HMAC and AES key. Whitelists use the first 8 bytes of the password and the ninth byte from the node ID as serial. Password is required to be at least 8 characters wide. It is zero padded if it is not long enough to cover the AES (16 bytes) and HMAC (32 bytes) keys. It is not recommended to have a password shorter than 32 bytes, and there is no need for a password longer than 32 bytes.
Add documentation section for signing debug
Add nRF5 encryption to simple signing option
Restructure MySigning documentation
Minor fixes for Linux 28c4f3f19e7026f by Marcelo Aquino at 2017-05-31 15:13:29
4c0661e4108b906 by d00616 at 2017-05-29 20:25:43
60aab1b87bd6dc5 by Olivier at 2017-05-27 19:13:30
Fix #860. Makes hwRandomNumberInit() independent of hwInit(). 53d485828ce4c00 by Marcelo Aquino at 2017-05-23 23:34:59
aeceb0b683aacdc by d00616 at 2017-05-23 19:41:46
97ed21ef3b2b5e7 by Olivier at 2017-05-23 18:37:12
b5595e870d9b580 by Olivier at 2017-05-21 20:22:01
b74805251e36779 by Olivier at 2017-05-21 19:39:44
00a4deddd69a32d by Olivier at 2017-05-21 14:12:36
fb3d936d4c19cb2 by Marcelo Aquino at 2017-05-21 12:27:22
abba1ec3771948a by Olivier at 2017-05-21 12:20:07
This commit changes the way random numbers are available with MySensors.
The AVR platform uses a 32 Bit random seed build from a floating analog pin. The way of the generation of this seed is FIPS 140-2 compliant.
For support MCU with a fast way to generate random data, the hwGetentropy() command is now available to allow rapid generation of random data.
The ESP8266 platform uses the internal random source for randomness for hwGetentropy() and Arduino's random() function.
The NRF5 platform initializes the pseudo random number generator from internal hardware number generator. The internal AES-ECB unit generates random data after filling with HWRNG data by AES-CBC.
On Linux getrandom() is implemented via syscall().
signerAtsha204SoftGetNonce speed: AVR = ~14000us (sha204Soft) NRF51 = ~152us (AES-CBC), 1739us (old sha204Soft) NRF52 = ~31us (AES-CBC), 183us (old sha204Soft) ESP8266 = ~20us (RANDOM_REG32), 380us (old sha204Soft)
All Nonce results tested for FIPS 140-2 compliance successfully. 6c12dddf5aa1759 by d00616 at 2017-05-21 12:12:09
b479a0cf3fa24f8 by Olivier at 2017-05-21 06:43:26
e041bf4d74035d0 by Olivier at 2017-05-21 06:41:11
6e648f58da0ee47 by Marcelo Aquino at 2017-05-16 06:00:47
14766382d35c387 by Marcelo Aquino at 2017-05-16 06:00:24
Fix #843 34444a48b3430ed by Marcelo Aquino at 2017-05-16 05:59:49
582c653a19c1107 by Marcelo Aquino at 2017-05-15 05:30:15
Fix #770 2a7145cc153dedb by Marcelo Aquino at 2017-05-15 05:29:28
UDP isn't implemented in Linux. 4c52c566050a39c by Marcelo Aquino at 2017-05-15 05:28:49
This is an EEPROM replacement based on MCU's internal Flash memory. The NVRAM class is designed to be stateless. Each operation is written to flash immediately.
The last 16k(nRF51)/32k(nRF52) of Flash memory are managed by the VirtualPage class. This class allows writing a single emulated 4k page up 40,000 times.
The NVRAM class is a log based byte-wise storage allowing up to 40,000,000 writes depending on the number of used addresses. Each four allocated addresses from the beginning of the NVRAM reduce the write log by one.
When first 256 bytes of the emulated storage are used, there is an average writing capacity of 145,000 cycles per byte.
When the write log is full, the NVRAM is compressed into a new flash page. After a new page is ready, the old page is released. This process can take up to 4500 ms and cannot be interrupted.
The NVRAM functionality can easily be ported to ESP8266 or SAMD by providing a Flash interface.
This is the support of the Nordic Semiconductor NRF51 (nrf51822, nrf51422) and NRF52 (nrf52832) platform. Based on arduino-nRF5 (https://github.com/sandeepmistry/arduino-nRF5).
The included radio driver is compatible with the NRF24 devices. Using a SoftDevice (BLE)is not supported and must be removed before flashing MySensors with a "mass_erase" operation. 726a20dad9696ed by d00616 at 2017-05-14 09:53:01
Minor fix to configure. 95f719b604a8d0d by Marcelo Aquino at 2017-05-11 13:20:57
fa673bdb3e50590 by Marcelo Aquino at 2017-04-28 17:11:41
66ff5b2880ee72c by Marcelo Aquino at 2017-04-19 20:40:21
26c237adadda9f7 by Olivier at 2017-04-17 18:33:08
Support full AVR range bffc87fe93739f2 by Embedded Innovation at 2017-04-03 19:08:10
The previous code would clear the proper interrupt flag assuming interrupt1 was INT0 and interrupt2 was INT1. If interrupt1 was INT1 or interrupt2 was INT0, the sleep bug would be triggered. aac4562ab0a0094 by Dustin at 2017-04-03 06:53:05
818f887926e419a by Olivier at 2017-04-02 18:03:59
Round requested sleep time up to next multiple of 16ms, to sleep at least requested time. Sleep time of 0 will return immediately. Fixed watchdog sleep time calculation. AVR libc watchdog time implementation is inconsistent, and requires larger flash/ram usage. f84960dc284b1ab by Embedded Innovation at 2017-04-02 17:49:57
Fixing #812, #811, #809 3350d79fe6b879a by Embedded Innovation at 2017-04-01 13:05:57
Major transport rework
Adjust signal report calculations
Minor driver optimizations
Implement sanity check in legacy RFM69 driver
Additional RFM69 rework
RFM95 encryption
Polishing b132a8a81e2ba6c by Olivier at 2017-03-28 18:31:08
63b8d935c8d3156 by Olivier at 2017-03-26 09:30:54
cde5d8f7c3e56e5 by Olivier at 2017-03-25 19:01:31
Incorporates #756
Optionally allow MQTT client to publish specific messages with the retain flag set.
default/current behavior should not be impacted. ef42b3b53483630 by Dustin at 2017-03-21 13:47:07
Cleanup Core
SAMD adjustments 61a415c42281090 by Olivier at 2017-03-15 18:05:17
481bd367f3dcb5a by Olivier at 2017-03-14 17:54:32
e7ae5d144e9a335 by Soef at 2017-03-07 17:55:40
I2C eeprom write fix for samd
Implement extEEPROM library for SAMD 7824e12823e25e0 by Olivier at 2017-03-06 15:45:58
735852156652bd6 by Frédéric FRANCE at 2017-03-01 19:04:17
9ecb78598b491af by Olivier at 2017-02-13 06:17:43
a34f2e518eae0dd by Thomas Mørch at 2017-02-07 14:59:55
fd417b66b25d66f by Olivier at 2017-02-03 20:32:53
91cb61b19ebe0b0 by Patrick Fallberg at 2017-02-02 09:00:29
4380d6618fe818a by Olivier at 2017-02-01 19:45:42
b69bba485fd093f by Olivier at 2017-01-31 21:31:00
Allows to run this sketch on an AVR 328 with all sensors enabled.
Changes:
eeb880957cb8b6d by Olivier at 2017-01-19 18:13:09
c90ff65b53b105a by Olivier at 2017-01-17 22:58:02
c2dfedc1a9527df by Olivier at 2017-01-17 21:44:11
6bad2c721b94391 by Olivier at 2017-01-16 19:36:15
e66989138b94a10 by Olivier at 2017-01-16 18:49:12
815084b4faba3fc by Olivier at 2017-01-15 19:10:15
952edf7ed761517 by Olivier at 2017-01-15 17:10:15
9041c8ba3d89648 by Olivier at 2017-01-15 15:27:49
RPi and Linux refactor.
Add GPIO Sysfs for GPIO operations.
Update configure script.
Fix some cppcheck warnings.
Add serial emulation that prints to stdout.
Fix some file headers. 2e0f6b62295dbe8 by Marcelo Aquino at 2017-01-14 22:50:21
aa5cecfca1767d9 by Olivier at 2017-01-03 19:19:00
570b6079b65e0aa by Olivier at 2016-12-31 09:48:38
Bugfix release
Changelog:
Major changes:
Major version change
Maintenance release to resolve issue with "getters"
Maintenance release to fix signing compilation
Security maintenance release