Commit Graph
15 Commits
Author SHA1 Message Date
Patrick Fallberg 7d37cd9aa5 MyDriver structure renamed to MyRFDriver
The MyDriver scheme is radio specific, so it is renamed
accordingly to permit other driver schemes to coexist with it
without confusion.
2015-01-28 23:53:37 +01:00
Patrick Fallberg 6aa370d6f2 Personalization sketch for ATSHA204
This sketch is used to personalize the ATSHA204 crypto
circuit.
This is required in order to use the device for secure
communication.

The sketch also supports random key generation.

To personalize a ATSHA204 device, do the following:
1. Ensure the correct pin is used for the ATSHA204.
2. Execute the sketch without other changes to verify
   that it can communicate properly with the device.
3g. For a device used in a gateway:
    Enable LOCK_CONFIGURATION to lock the configuration
    and enable random key generation as well as key storage.
4g. Execute the sketch to lock the configuration and obtain
    a unique key. Be sure to note down the key printed in the
    UART log as it has been stored in the chip and will never
    be accessible again (a new key is calculated on subsequent
    runs).
    The key can still be changed.
5g. Enable SKIP_KEY_STORAGE to prevent generating new random
    keys on sketch re-execution.
3n. For a device used as a node:
    Enable USER_KEY_DATA and enter your private key data
    in user_key_data.
    Then enable LOCK_CONFIGURATION to lock the configuration
4n. Execute the sketch to lock the configuration and store
    the user-supplied key.
5n. Optionally: Enable SKIP_KEY_STORAGE to prevent re-writing
    the user supplied key on sketch re-execution.
6.  Optionally: Enable LOCK_DATA to prevent the key to be
    changed.
2015-01-10 19:57:09 +01:00
Patrick Fallberg 963a756605 sha204 library extended with CRC calculator
Locking operations are recommended to include CRC
and since sha204 library internally carries the proper
algorithm for this, it has now been refactored to support
both static and incremental calculations needed for both
command marchalling and locking.
2015-01-10 18:39:47 +01:00
Patrick Fallberg 1ac6f0a291 Removed examples from sha204 libraries
MySensors will have native support for sha204 and the
source for usage and personalization of sha204 will be
much more elaborate than this example so it does not
provide additional understanding for the chip.
2015-01-10 18:39:46 +01:00
Patrick Fallberg 9fd41b4030 Added sha204 library
Taken from the sha204_library folder in
https://github.com/jimblom/sha204-Breakout
Commit 8e1ac05ef987b1869605ad067db2bdbaec1c109f

ATSHA204 is a crypto cirquit from Atmel that enables
SHA256-based MAC and HMAC calculations as well as
secure key storage and random number generation.

This can be used to sign messages passed between
sensor nodes and prevent both man-in-the-middle and
replay attacking.
2015-01-10 18:37:43 +01:00
Patrick Fallberg 96f5b39e50 Corrected merge mistake 2014-10-11 00:03:35 +02:00
Patrick Fallberg 99b7b12856 Merge remote-tracking branch 'upstream/development' into development
Conflicts:
	libraries/MySensors/examples/EthernetGateway/EthernetGateway.ino
2014-10-11 00:00:27 +02:00
Patrick Fallberg e0e0d4aff3 Merge remote-tracking branch 'upstream/development' into development
Conflicts:
	libraries/MySensors/examples/EthernetGateway/EthernetGateway.ino
2014-10-10 23:56:29 +02:00
Patrick Fallberg f5ef712308 Support for WIZnet W5100 ethernet module SPI_EN
The W5100 module has a SPI_EN signal that enables or disables the SPI
bus.
A bug in the module causes MISO to be continously driven by the module
when SPI_EN is pulled high. This is described in this application note:
https://www.google.se/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCAQFjAA&url=http%3A%2F%2Fwww.wiznet.co.kr%2FUpLoad_Files%2FReferenceFiles%2FW5100_AN_SPI.pdf&ei=ij84VK7uM6nNygPqvICYDw&usg=AFQjCNGz1qttBEwG1azc1Eza4j69v1rpDQ&sig2=UUUtb4Dr0F35g8ByHMsyig&bvm=bv.77161500,d.bGQ

This commit changes the Ethernet gateway sketch to drive SPI_EN high or
low, depending on which module is in use (SPI bus is shared between
Ethernet and RF modules).
The pin attached to SPI_EN is defined by W5100_SPI_EN. This define can
be commented out if SPI_EN is not needed (different module) or if the
module manages SPI_EN in hardware (some W5100 shields does this).
2014-10-10 22:39:47 +02:00
Patrick Fallberg b97372ed01 Added .gitignore to filter stino settings files
Stino is a plugin for SublimeText to allow SublimeText to act as
an Arduino IDE.
2014-10-10 22:34:14 +02:00
Patrick Fallberg ba1d813469 Merge remote-tracking branch 'upstream/development' into development 2014-09-08 00:04:00 +02:00
Patrick Fallberg c13425d15e Updated BinarySwitchSensorInt to handle two sensors
The new sleep() constructor allows for two interrupt sources
to wake device from sleep. This example is now updated to
illustrate this.
2014-09-07 17:43:51 +02:00
Patrick Fallberg 35788d6d94 Added constructor to sleep() for monitoring two interrupts
The new constructor allows two separate interrupts with two
separate trigger policies to wake up device.
2014-09-07 15:53:57 +02:00
Patrick Fallberg ae35b9a058 Minor refactoring of delay variables
This is a preparation for handling multiple interrupts in delay().
It also reduces the size of the interrupt-related variables and
arguments to int8_t as that should be ample enough for any Arduino
implementation.
2014-09-07 15:22:58 +02:00
Patrick Fallberg 4ffb53b091 Implementation of interrupt driven binary switch
The difference between the interrupt driven binary switch example and
the normal binary switch example is the following:
* Interrupt example does not use debouncer because it rely on loop()
iterating over time (but it sleeps between iterations)
* Interrupt example is more power conservative because it sleeps as soon
as it has sent updated data and no activity happens on the pin
* Interrupt example is limited to only two IO pins for the sensor, due
to limitations in the Arduino HW. The example uses the preprocessor to
ensure that this is not misconfigured or sleep function can not be
expected to behave as intended.
2014-09-03 23:59:36 +02:00