@mfalkvidd mfalkvidd released this Jan 25, 2018 · 61 commits to master since this release

Assets 2

Lots of new stuff

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

Changelog

MySensors 2.2.0 release

64be32a19a2bdfb by Mikael Falkvidd git@mjo.se at 2018-01-24 19:56:53

Update README.md for upcoming release (#994)

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

Add MY_INCLUSION_LED_PIN (#1030)

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
( 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

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
#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

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
highlighted.
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,
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

BCM driver: include inttypes (#983)

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
#955 but was
insufficient for remediating this problem)

The compile problem was inadvertently introduced in
2d5404d.

This change fixes the problem discussed in
#980
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
@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

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
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

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 build Arduino jobs in parallel (#966)

2d5c4a0e9ad6fcc by Patrick Fallberg at 2017-10-30 04:49:51

Pipeline improvements (#964)

  • Fix bug with toll-gate validation against master
  • Change cppcheck to not attempt to validate headers directly and
    to run on the entire codebase in the pipeline.
  • Support running Arduino test and examples build in parallel
    9b630f7d46945e2 by Patrick Fallberg at 2017-10-29 20:48:39

Implement RFM95 sanity check (#963)

e6cef8ba631bc30 by tekka at 2017-10-29 14:08:39

Update Debug message tables (#962)

a00857a8c2b9c96 by tekka at 2017-10-29 09:19:09

Update repo info (#961)

e685aa10e1feea0 by Olivier at 2017-10-28 20:46:22

Update library properties for RC1 (#960)

682a6b0798c718d by Olivier at 2017-10-28 13:20:52

MySensors 2.2.0-rc.1 (#959)

a190034305d0abd by Olivier at 2017-10-28 12:35:06

Minor splash screen tweak (#958)

571947ced9b43fd by Olivier at 2017-10-28 11:19:49

Add MY_ESP8266_BSSID parameter (#953)

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
#947
3ebeb4fea15ee74 by Mikael Falkvidd at 2017-10-27 16:52:21

Generate Doxygen from configure (#952)

  • Generate Doxygen from configure

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

Implement Jenkins pipelines as code (#948)

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

NRF24 disable DYN_ACK support (#940)

8cb9b2692098b66 by d00616 at 2017-10-01 20:39:09

NRF5 fix 8 bit inttype handling (#943)

f8e132fdb8a0726 by d00616 at 2017-10-01 18:40:32

Fix uninitialized state handling (#939)

3ca9b5638096726 by d00616 at 2017-10-01 07:41:36

Nrf5 improvements (#938)

  • 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

MyCapabilities: Add missing arch identifiers (#936)

9ee837199ef1c11 by Olivier at 2017-09-22 08:55:25

ESP8266: Fix example compilation error (#932)

5164af7edc1cb7a by Olivier at 2017-09-19 20:48:54

Disable splash screen on GW (#931)

f5dce5b61bfb601 by Olivier at 2017-09-19 12:33:55

New OTA debugging and logging feature (#913) (#913)

8412a3d360ef686 by d00616 at 2017-09-18 18:58:44

Make debug prints portable (#929)

0ed558f1d077e68 by Olivier at 2017-09-17 18:54:20

Correct NRF24 PA levels docs (#924)

Fixes #907
9e5a1e32cbef8b4 by Patrick Fallberg at 2017-09-14 08:49:58

Fix sanity check option (#923)

067519c500d4e1c by Olivier at 2017-09-07 16:10:55

Fix compiler warning (#922)

973b4b842315d7c by Olivier at 2017-09-05 17:35:13

Update hwUniqueID() function (#921)

a9ef29fa673c4c9 by Olivier at 2017-09-04 21:37:11

Autogenerate release versions (#920)

d74e9bd2123f08c by Olivier at 2017-09-04 20:37:50

NRF5: Fix sleep()

Fixes commit 5776d2b
NRF5: Fix and improve sleep(0) (#909)
46557d129ebcbb8 by Frank Holtz at 2017-08-29 16:43:49

Skip check personalization with simple passwd flag (#915)

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

NRF5: Fix and improve sleep(0) (#909)

5776d2b650573e7 by d00616 at 2017-08-29 07:29:03

Update STM32 support (#908)

463358209da0f2b by Olivier at 2017-08-13 06:11:14

RPi: Fix GPIO Layout detection (#895) (#906)

d291a3661be1193 by Marcelo Aquino at 2017-08-12 11:58:02

Added posibility to use non standard SPI Flash (#899)

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

Revert VER removal from CP string (#905)

b10cf85eb00706d by Olivier at 2017-08-01 06:13:06

Refactor the Doxygen structure (#880)

f3ab329ad38b97a by Patrick Fallberg at 2017-07-31 16:42:26

Update radio defines in examples (#901)

1cd2c6df0507cd7 by d00616 at 2017-07-31 16:37:01

MySensors splash screen (#889)

10ef62307b914c8 by Olivier at 2017-07-24 19:42:44

Prepend debug message only on serial gateway (#882)

90793e734cad280 by Marcelo Aquino at 2017-07-24 19:40:46

Keep Serial from being linked when disabled (#877)

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 (arduino/Arduino#4579).
6f10745f0ac3d57 by Rainer Clasen at 2017-07-24 19:33:46

I2C EEPROM support for OTA using dual Optiboot #802 (#834)

  • 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

Move pubsubclient files to PubSubClient (case sensitive)

b85c11c383f291f by Mikael Falkvidd git@mjo.se at 2017-07-24 13:01:20

Fixed indentations using astyle (#890)

3e75b52c33b06c7 by Patrick Fallberg at 2017-07-07 12:36:14

Use bool instead of boolean in drivers (#888)

In the Arduino IDE, boolean is an alias for bool.
The Arduino IDE might deprecate boolean in the future. See
arduino/Arduino#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

Rewrite security personalization data validation (#885)

  • Data is not validated on Linux systems
  • If encryption is enabled, data is also validated even if signing
    is disabled.
    4ea0c88ac8e91aa by Patrick Fallberg at 2017-07-04 13:49:57

Add progmem support for String messages (#875)

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

Fix keywords.txt (#883)

Replace spaces with tabs.
e5221689afbc917 by Marcelo Aquino at 2017-06-21 18:04:12

Fix UDP on Ethernet gateway (#858)

  • Fix UDP send
  • Add a default value for MY_IP_GATEWAY_ADDRESS and
    MY_IP_SUBNET_ADDRESS, making them optional when using MY_IP_ADDRESS
  • Add support for MY_IP_GATEWAY_ADDRESS and MY_IP_SUBNET_ADDRESS to
    W5100
    95d7c003cbe8fe6 by Marcelo Aquino at 2017-06-13 20:59:01

NRF5: Enable critical section (#879)

4820475e5ccf245 by Olivier at 2017-06-13 16:49:14

Memory optimizations in signing (#874)

  • Sha256 driver cosmetics

cosmetic cleanups:

  • use actual define that was used to allocate the array
  • remove unused file globals
  • Save memory by eliminating sha256_hash array

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.

  • Moved hmac methods and buffers to separate class

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

Let signing backend validate personalization (#873)

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() (#869)

  • Update more usage of hwGetentropy()

  • Add hwGetentropy() to Teensy 3.5/3.6
    e6925f69e8a0d8c by d00616 at 2017-06-03 19:58:40

Signing improvements package (#871)

  • Signing support with MAX_PAYLOAD>32

Support in the signing backends to handle configurations
where MAX_PAYLOAD is more than 32 bytes.

Fixes #748

  • Support big message signatures

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

  • Have gw properly indicate whitelisting preferences

If the gateway hold a signing whitelist, inform all
nodes of this requirement and not just nodes that hold
whitelists themselves.

Fixes #806

  • Harden security

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

  • Signing debug messages rewritten

All signing related debug has been rewritten to
better match other core debug printouts.
Also, backends are updated to have a smaller
implementation delta.

  • Simplified signing option implemented

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

Fix NRF5 radio encryption (#868)

4c0661e4108b906 by d00616 at 2017-05-29 20:25:43

Fix ext. EEPROM update() (#866)

60aab1b87bd6dc5 by Olivier at 2017-05-27 19:13:30

Linux: Fix hwRandomNumberInit() (#861)

Fix #860.
Makes hwRandomNumberInit() independent of hwInit().
53d485828ce4c00 by Marcelo Aquino at 2017-05-23 23:34:59

Fix rasperry pi hwGetentropy() (#856)

aeceb0b683aacdc by d00616 at 2017-05-23 19:41:46

Teensy3.5/3.6: Use TRNG for random seed (#859)

97ed21ef3b2b5e7 by Olivier at 2017-05-23 18:37:12

Teensy3: Define default radio pins (#857)

b5595e870d9b580 by Olivier at 2017-05-21 20:22:01

Fix RFM69 driver (#855)

b74805251e36779 by Olivier at 2017-05-21 19:39:44

Teensy: Update hwCPUVoltage() (#853)

00a4deddd69a32d by Olivier at 2017-05-21 14:12:36

Linux: Binds to MY_IP_ADDRESS in client mode (#849)

fb3d936d4c19cb2 by Marcelo Aquino at 2017-05-21 12:27:22

Minor updates STM32F1 support (#851)

abba1ec3771948a by Olivier at 2017-05-21 12:20:07

Enhance randomness (AVR, ESP8266, Linux, NRF5) (#845)

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

Support for Teensy3 boards (#850)

b479a0cf3fa24f8 by Olivier at 2017-05-21 06:43:26

NRF5: Updates for Jenkins verifier (#852)

e041bf4d74035d0 by Olivier at 2017-05-21 06:41:11

Linux: Fix compilation error for rfm69 (#848)

6e648f58da0ee47 by Marcelo Aquino at 2017-05-16 06:00:47

Linux: Default SPI driver set to SPIDEV (#847)

14766382d35c387 by Marcelo Aquino at 2017-05-16 06:00:24

Linux: Fix compilation error for rfm95 (#846)

Fix #843
34444a48b3430ed by Marcelo Aquino at 2017-05-16 05:59:49

Fix cppcheck includes.cfg (#842)

582c653a19c1107 by Marcelo Aquino at 2017-05-15 05:30:15

Linux: Add inclusion mode to gateway example (#841)

Fix #770
2a7145cc153dedb by Marcelo Aquino at 2017-05-15 05:29:28

Linux: Give an error if UDP is selected (#840)

UDP isn't implemented in Linux.
4c52c566050a39c by Marcelo Aquino at 2017-05-15 05:28:49

Add nrf5 platform (#830)

  • Add NVRAM support

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.

  • Add NRF5 platform support

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

Linux: Fix Ethernet client and server (#836)

  • Fix documentation.
  • Add function close() to client class.
  • Function connected() now return true if the connection is in
    stablished state or there is still unread data.
  • Update hasClient() to check if any client has disconnected.
  • Fix _accept() to better handle the case of maximum clients reached.
  • Fix peek() to return the next byte of the read queue.
  • Simplifies write() of the server class.
  • Implements flush().
  • Updates read() to non-blocking type, the same way as in Arduino.
    a4c7b249c1aba81 by Marcelo Aquino at 2017-05-13 07:49:16

Linux: Fix interrupt handler (#835)

Minor fix to configure.
95f719b604a8d0d by Marcelo Aquino at 2017-05-11 13:20:57

Linux: Fix rfm69 power level build error (#829)

fa673bdb3e50590 by Marcelo Aquino at 2017-04-28 17:11:41

Linux: Add support for RFM69 (#823)

66ff5b2880ee72c by Marcelo Aquino at 2017-04-19 20:40:21

Restructure RPi files (#827)

  • Restructure SPi files for linux and RPi
  • Update RPi revision detection (#826)
    4c31e22d6ff45c3 by Marcelo Aquino at 2017-04-19 20:03:10

Restructure HAL files (arch) (#820)

26c237adadda9f7 by Olivier at 2017-04-17 18:33:08

Corrections for stm32f1 serial communication (#821)

  • use MY_SERIALDEVICE in hwInit
  • disable use of MY_SERIALDEVICE.flush() since the current STM32duino
    implementation performs a reset instead of an actual flush.
    b4b5eb52e8ffc25 by freynder at 2017-04-10 21:11:21

Fix clear pending ints for AVR (#816)

Support full AVR range
bffc87fe93739f2 by Embedded Innovation at 2017-04-03 19:08:10

Clear interrupt flag based on the interrupt used (#815)

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

Polishing code (#803)

818f887926e419a by Olivier at 2017-04-02 18:03:59

Fix watchdog sleep calculation (#814)

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

Security personalizer rewritten (#794)

  • Removed ability to lock data section
  • Introduced "guided mode" to simplify process
  • Refactored the sketch to be less monolithic
  • Print details and instructions in tables
  • Use device unique ID as serial when
  • Calculate and store personalization checksum
  • Print serial in a copy+paste friendly manner (fixes #804)
  • Clarify meaning of UART confirmation (fixes #805)
    7e6db413c7a9efe by Patrick Fallberg at 2017-04-02 13:37:21

AVR sleep with external interrupts fixes (#813)

Fixing #812, #811, #809
3350d79fe6b879a by Embedded Innovation at 2017-04-01 13:05:57

Transport update (#722)

  • 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

Fix RFM95 driver (RPi) (#800)

63b8d935c8d3156 by Olivier at 2017-03-26 09:30:54

Add STM32F1 HW support (#795)

cde5d8f7c3e56e5 by Olivier at 2017-03-25 19:01:31

Linux: Configure script update (#797)

Incorporates #756

  • Documentation improvements.
  • Fix bash warning.
    72926527be81a3b by Marcelo Aquino at 2017-03-21 18:42:58

MQTT Client Retain Feature (#793)

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

Code cleanup (#787)

  • Cleanup Core

  • SAMD adjustments
    61a415c42281090 by Olivier at 2017-03-15 18:05:17

Add function to retrieve unique ID (if present) (#780)

481bd367f3dcb5a by Olivier at 2017-03-14 17:54:32

UDP/TCP client mode repaired (#766)

e7ae5d144e9a335 by Soef at 2017-03-07 17:55:40

I2C eeprom write fix for SAMD (#786)

  • I2C eeprom write fix for samd

  • Implement extEEPROM library for SAMD
    7824e12823e25e0 by Olivier at 2017-03-06 15:45:58

Fix typo in README (#778)

735852156652bd6 by Frédéric FRANCE at 2017-03-01 19:04:17

Calling WiFi.config() before WiFi.begin() (#772)

9ecb78598b491af by Olivier at 2017-02-13 06:17:43

Added pin setup for RFM69 reset / dio5 (#768)

a34f2e518eae0dd by Thomas Mørch at 2017-02-07 14:59:55

Update doxygen (#767)

fd417b66b25d66f by Olivier at 2017-02-03 20:32:53

Fix doxygen problem in SPI.h

91cb61b19ebe0b0 by Patrick Fallberg at 2017-02-02 09:00:29

Workaround for AVR-specific compiler issue (#759)

4380d6618fe818a by Olivier at 2017-02-01 19:45:42

Revert "Reduce memory footprint" (#763)

b69bba485fd093f by Olivier at 2017-01-31 21:31:00

Reduce memory footprint (#762)

Allows to run this sketch on an AVR 328 with
all sensors enabled.

Changes:

  • use F() macro
  • use msg_generic instead of individual variables
    09de6d8075ed42e by FotoFieber at 2017-01-30 15:48:47

Bump version to 2.2.0-beta (#754)

eeb880957cb8b6d by Olivier at 2017-01-19 18:13:09

MySensors 2.1.1 release (#746)

c90ff65b53b105a by Olivier at 2017-01-17 22:58:02

Revert "Bump version to 2.2.0-beta" (#744)

c2dfedc1a9527df by Olivier at 2017-01-17 21:44:11

Consolidate open PRs for bugfix release (#741)

6bad2c721b94391 by Olivier at 2017-01-16 19:36:15

Fix signing presentation bug (#740)

e66989138b94a10 by Olivier at 2017-01-16 18:49:12

AVR: Restrict fast pin function use (#739)

815084b4faba3fc by Olivier at 2017-01-15 19:10:15

Rename MyHwATmega328 to MyHwAVR (#738)

952edf7ed761517 by Olivier at 2017-01-15 17:10:15

Fix getControllerConfig() (#737)

9041c8ba3d89648 by Olivier at 2017-01-15 15:27:49

Linux: Add support for SPIDEV (#734)

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

OTA: Add incoming FW block check (#718)

aa5cecfca1767d9 by Olivier at 2017-01-03 19:19:00

Bump version to 2.2.0-beta (#713)

570b6079b65e0aa by Olivier at 2016-12-31 09:48:38