Navigation

    • Register
    • Login
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. Anduril
    3. Posts
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Posts made by Anduril

    • Node with encryption asking for ID in loop

      Hey there,

      I hope someone can help. I have a simple test setup with only one gateway and one node at the moment. I want them to communication with encryption enabled. As one of them has no easy access to serial lines I want to first set it up with #define MY_ENCRYPTION_SIMPLE_PASSWD "Test" I have this activated in both sketches.
      The result is the node asking for an ID in loop all the time, but with different sensor numbers (why is there a sensor number in the ID_REQUEST, shouldn't it be 255?). But there is a pattern (tried multiple time with reboot on node and gateway), so it's not random... first I see 6 requests for ID with sensor 102, followed by sensor 4, 163, 67, 12, 176 (6 times each). My controller (MYSController) answers them all the time and I see the sending messages in the serial console of the gateway...
      here the complete gateway log:

      dhcp client start...
      ip:192.168.38.131,mask:255.255.255.0,gw:192.168.38.1
      7778 GWT:TIN:CONNECTING...
      7939 GWT:TIN:IP: 192.168.38.131
      7973 MCO:BGN:STP
      7991 MCO:BGN:INIT OK,TSP=1
      8019 TSM:READY:NWD REQ
      8048 ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
      pm open,type:2 0
      107269 GWT:TSA:C=0,CONNECTED
      186214 TSF:MSG:READ,255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
      186278 TSF:MSG:BC
      186297 TSF:MSG:FPAR REQ,ID=255
      186329 TSF:PNG:SEND,TO=0
      186355 TSF:CKU:OK
      186374 TSF:MSG:GWL OK
      186431 ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=OK:0
      202842 TSF:MSG:READ,255-255-0,s=102,c=3,t=3,pt=0,l=0,sg=0:
      202912 GWT:RFC:C=0,MSG=255;102;3;0;4;2
      202958 ?TSF:MSG:SEND,0-0-255-255,s=102,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      204480 TSF:MSG:READ,255-255-0,s=102,c=3,t=3,pt=0,l=0,sg=0:
      204546 GWT:RFC:C=0,MSG=255;102;3;0;4;2
      204592 ?TSF:MSG:SEND,0-0-255-255,s=102,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      206120 TSF:MSG:READ,255-255-0,s=102,c=3,t=3,pt=0,l=0,sg=0:
      206187 GWT:RFC:C=0,MSG=255;102;3;0;4;2
      206233 ?TSF:MSG:SEND,0-0-255-255,s=102,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      207760 TSF:MSG:READ,255-255-0,s=102,c=3,t=3,pt=0,l=0,sg=0:
      207826 GWT:RFC:C=0,MSG=255;102;3;0;4;2
      207872 ?TSF:MSG:SEND,0-0-255-255,s=102,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      209399 TSF:MSG:READ,255-255-0,s=102,c=3,t=3,pt=0,l=0,sg=0:
      209467 GWT:RFC:C=0,MSG=255;102;3;0;4;2
      209512 ?TSF:MSG:SEND,0-0-255-255,s=102,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      211041 TSF:MSG:READ,255-255-0,s=102,c=3,t=3,pt=0,l=0,sg=0:
      211108 GWT:RFC:C=0,MSG=255;102;3;0;4;2
      211153 ?TSF:MSG:SEND,0-0-255-255,s=102,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      229260 TSF:MSG:READ,255-255-0,s=4,c=3,t=3,pt=0,l=0,sg=0:
      229325 GWT:RFC:C=0,MSG=255;4;3;0;4;2
      229369 ?TSF:MSG:SEND,0-0-255-255,s=4,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      230903 TSF:MSG:READ,255-255-0,s=4,c=3,t=3,pt=0,l=0,sg=0:
      230968 GWT:RFC:C=0,MSG=255;4;3;0;4;2
      231012 ?TSF:MSG:SEND,0-0-255-255,s=4,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      232543 TSF:MSG:READ,255-255-0,s=4,c=3,t=3,pt=0,l=0,sg=0:
      232608 GWT:RFC:C=0,MSG=255;4;3;0;4;2
      232652 ?TSF:MSG:SEND,0-0-255-255,s=4,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      234183 TSF:MSG:READ,255-255-0,s=4,c=3,t=3,pt=0,l=0,sg=0:
      234250 GWT:RFC:C=0,MSG=255;4;3;0;4;2
      234294 ?TSF:MSG:SEND,0-0-255-255,s=4,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      235823 TSF:MSG:READ,255-255-0,s=4,c=3,t=3,pt=0,l=0,sg=0:
      235890 GWT:RFC:C=0,MSG=255;4;3;0;4;2
      235934 ?TSF:MSG:SEND,0-0-255-255,s=4,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      237463 TSF:MSG:READ,255-255-0,s=4,c=3,t=3,pt=0,l=0,sg=0:
      237530 GWT:RFC:C=0,MSG=255;4;3;0;4;2
      237573 ?TSF:MSG:SEND,0-0-255-255,s=4,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      255671 TSF:MSG:READ,255-255-0,s=163,c=3,t=3,pt=0,l=0,sg=0:
      255740 GWT:RFC:C=0,MSG=255;163;3;0;4;2
      255786 ?TSF:MSG:SEND,0-0-255-255,s=163,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      257312 TSF:MSG:READ,255-255-0,s=163,c=3,t=3,pt=0,l=0,sg=0:
      257379 GWT:RFC:C=0,MSG=255;163;3;0;4;2
      257425 ?TSF:MSG:SEND,0-0-255-255,s=163,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      258952 TSF:MSG:READ,255-255-0,s=163,c=3,t=3,pt=0,l=0,sg=0:
      259022 GWT:RFC:C=0,MSG=255;163;3;0;4;2
      259067 ?TSF:MSG:SEND,0-0-255-255,s=163,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      260592 TSF:MSG:READ,255-255-0,s=163,c=3,t=3,pt=0,l=0,sg=0:
      260660 GWT:RFC:C=0,MSG=255;163;3;0;4;2
      260705 ?TSF:MSG:SEND,0-0-255-255,s=163,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      262234 TSF:MSG:READ,255-255-0,s=163,c=3,t=3,pt=0,l=0,sg=0:
      262301 GWT:RFC:C=0,MSG=255;163;3;0;4;2
      262346 ?TSF:MSG:SEND,0-0-255-255,s=163,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      263875 TSF:MSG:READ,255-255-0,s=163,c=3,t=3,pt=0,l=0,sg=0:
      263944 GWT:RFC:C=0,MSG=255;163;3;0;4;2
      263990 ?TSF:MSG:SEND,0-0-255-255,s=163,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      282098 TSF:MSG:READ,255-255-0,s=67,c=3,t=3,pt=0,l=0,sg=0:
      282165 GWT:RFC:C=0,MSG=255;67;3;0;4;2
      282210 ?TSF:MSG:SEND,0-0-255-255,s=67,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      283735 TSF:MSG:READ,255-255-0,s=67,c=3,t=3,pt=0,l=0,sg=0:
      283803 GWT:RFC:C=0,MSG=255;67;3;0;4;2
      283848 ?TSF:MSG:SEND,0-0-255-255,s=67,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      285377 TSF:MSG:READ,255-255-0,s=67,c=3,t=3,pt=0,l=0,sg=0:
      285443 GWT:RFC:C=0,MSG=255;67;3;0;4;2
      285488 ?TSF:MSG:SEND,0-0-255-255,s=67,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      287018 TSF:MSG:READ,255-255-0,s=67,c=3,t=3,pt=0,l=0,sg=0:
      287085 GWT:RFC:C=0,MSG=255;67;3;0;4;2
      287129 ?TSF:MSG:SEND,0-0-255-255,s=67,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      288659 TSF:MSG:READ,255-255-0,s=67,c=3,t=3,pt=0,l=0,sg=0:
      288725 GWT:RFC:C=0,MSG=255;67;3;0;4;2
      288770 ?TSF:MSG:SEND,0-0-255-255,s=67,c=3,t=4,pt=0,l=1,sg=0,ft=0,st=OK:2
      290300 TSF:MSG:READ,255-255-0,s=67,c=3,t=3,pt=0,l=0,sg=0:
      290366 GWT:RFC:C=0,MSG=255;67;3;0;4;2
      

      If I set the node ID in sketch, it seems to play "ping-pong" all the time... I don't understand why...

      953628 TSF:MSG:READ,10-10-0,s=255,c=3,t=24,pt=1,l=1,sg=0:1
      953689 TSF:MSG:PINGED,ID=10,HP=1
      954954 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=NACK:1
      955267 TSF:MSG:READ,10-10-0,s=255,c=3,t=24,pt=1,l=1,sg=0:1
      955328 TSF:MSG:PINGED,ID=10,HP=1
      956593 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=NACK:1
      956906 TSF:MSG:READ,10-10-0,s=255,c=3,t=24,pt=1,l=1,sg=0:1
      956967 TSF:MSG:PINGED,ID=10,HP=1
      958232 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=NACK:1
      958545 TSF:MSG:READ,10-10-0,s=255,c=3,t=24,pt=1,l=1,sg=0:1
      958607 TSF:MSG:PINGED,ID=10,HP=1
      959871 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=NACK:1
      976723 TSF:MSG:READ,10-10-0,s=255,c=3,t=24,pt=1,l=1,sg=0:1
      976784 TSF:MSG:PINGED,ID=10,HP=1
      978048 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=NACK:1
      978361 TSF:MSG:READ,10-10-0,s=255,c=3,t=24,pt=1,l=1,sg=0:1
      978423 TSF:MSG:PINGED,ID=10,HP=1
      979687 !TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=NACK:1
      
      posted in Development
      Anduril
      Anduril
    • RE: difference between encryption with personalization and simple password

      @SuperNinja you only need #define MY_SECURITY_SIMPLE_PASSWD "testpass". The other one would be needed for encryption wih personalization (so keys saved in eeprom or atsha-chip)

      @Anticimex is there a way to give the SIMPLE_PASSWD in hex? As far as I understand the AES key in the personalizer sketch is a hex and the password in sketch would be ASCII. Therefor even if looking identical they would not match. Or do I have to create a password first and convert that to hex to be used in personalization...

      posted in Development
      Anduril
      Anduril
    • RE: difference between encryption with personalization and simple password

      wow... to be honest I didn't expected it to be so easy... what flags are those "under the hood" settings?

      posted in Development
      Anduril
      Anduril
    • RE: difference between encryption with personalization and simple password

      @Anticimex is there a way to use both methods in one network? So to personalize nodes with the AES key (0x12; 0x34; 0x56; 0x00;...) and use SIMPLE_PASSWD "123456" (or some other derivativ)?

      posted in Development
      Anduril
      Anduril
    • RE: difference between encryption with personalization and simple password

      @mfalkvidd I mean the two options #define MY_ENCRYPTION_SIMPLE_PASSWD and #define MY_RFM69_ENABLE_ENCRYPTION (with personalization before)

      @Anticimex thank you for your answer. In my case I want to implement OTA with the online version with DualOptibootloader. This way, the node will be able to decrypt and store the new firmware in external flash. With the MYS Bootloader that would not be possible as far as I understood the thing...

      @TRS-80 signing will also be added. But I want to be able to send messages unseen from the 'public' to my nodes... some of them are text-based and I don't want to be sniffed...

      posted in Development
      Anduril
      Anduril
    • difference between encryption with personalization and simple password

      Hey there,

      is there any significant difference between the two options for encryption? Does the simple one consumes more flash? Is it safe to use with OTA updates (should be, as all communication is encrypted)? Why should you bother with personalization in the first place or is it only the 'old grown' method?

      Thanks for any contribution in advance,
      Anduril

      posted in Development
      Anduril
      Anduril
    • RE: Security OTA Sketch

      Just in the rare case I want to use it later (and I have encryption enabled in the whole mysensors network) I could theoretically write a sketch inspired by the personalizer to read the serial and send this as a payload to the gateway without anyone out there able to read.

      posted in Hardware
      Anduril
      Anduril
    • RE: Security OTA Sketch

      I understand that. Two questions:
      what about updating via OTA with whitelisting enabled? Everyone could sniff the new hexfile and read the serial of the whitelisted node, correct?
      what about activating encryption? Would that prevent both of these cases? No one could read the hexfile or the send serial without knowing the AES key before.

      posted in Hardware
      Anduril
      Anduril
    • RE: Security OTA Sketch

      that's sad.
      Maybe it would be possible to write a sketch to read out the atsha serial and transmit it via mysensors... I will be looking into this further when in need of whitelisting. Until then I will just leave it as it is and only use signing and maybe encryption.

      posted in Hardware
      Anduril
      Anduril
    • RE: Security OTA Sketch

      @Anticimex still the question: is there a way to find out a nodes whitelist serial later?

      posted in Hardware
      Anduril
      Anduril
    • RE: Security OTA Sketch

      I think that's a little beyond my skills 🙂

      posted in Hardware
      Anduril
      Anduril
    • RE: Security OTA Sketch

      that might be true... so it's kind of impossible I think to merge those.
      So I have to first upload the personalizer and directly after that the sketch with security enabled and OTA. Is the personalizer sketch the only way to find out its serial for whitelisting? Maybe I need this feature down the road so it's good to know how to get it later

      posted in Hardware
      Anduril
      Anduril
    • RE: Security OTA Sketch

      I have not yet enabled signing or encryption on the node that was running the personalizer with radio activated. Therefor I would expect it to give serial output mysensors started, find parent and so on. Nothing on the output after that security Execution result SUCCESS
      The gateway also has no security activated for now, as this node was the first one to test the personalizer with radio and OTA

      posted in Hardware
      Anduril
      Anduril
    • RE: Security OTA Sketch

      well I did a first test, without result. Maybe someone can help:
      I did run the Personalizer with #define GENERATE_KEYS_ATSHA204A and generated some keys. I added those to the #define MY_XXX_KEY and got a confirmation. But it seems to not start up the radio, there is no output in the node or the gateway.

      sketch:

      /*
       * The MySensors Arduino library handles the wireless radio link and protocol
       * between your home built sensors/actuators and HA controller of choice.
       * The sensors forms a self healing radio network with optional repeaters. Each
       * repeater and gateway builds a routing tables in EEPROM which keeps track of the
       * network topology allowing messages to be routed to nodes.
       *
       * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
       * Copyright (C) 2013-2019 Sensnology AB
       * Full contributor list: https://github.com/mysensors/MySensors/graphs/contributors
       *
       * Documentation: http://www.mysensors.org
       * Support Forum: http://forum.mysensors.org
       *
       * This program is free software; you can redistribute it and/or
       * modify it under the terms of the GNU General Public License
       * version 2 as published by the Free Software Foundation.
       *
       */
      /**
       * @ingroup MySigninggrp
       * @{
       * @file SecurityPersonalizer.ino
       * @brief Security personalization sketch
       *
       * REVISION HISTORY
       *  - See git log (git log libraries/MySensors/examples/SecurityPersonalizer/SecurityPersonalizer.ino)
       */
      
      /**
       * @example SecurityPersonalizer.ino
       * This sketch will personalize either none-volatile memory or ATSHA204A for security functions
       * available in the MySensors library.<br>
       * Details on personalization procedure is given in @ref personalization.<br>
       * This sketch will when executed without modifications also print a guided workflow on the UART.
       */
      
      #include "sha204_library.h"
      #include "sha204_lib_return_codes.h"
      /** @brief Make use of the MySensors framework without invoking the entire system */
      //#define MY_CORE_ONLY
      #define MY_RADIO_RFM69
      #define MY_OTA_FIRMWARE_FEATURE
      #define MY_BAUD_RATE      38400
      #include <MySensors.h>
      
      /************************************ User defined key data ***************************************/
      
      /** @brief The user-defined HMAC key to use unless @ref GENERATE_HMAC_KEY is set */
      #define MY_HMAC_KEY 0x01,0x02,0x03,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
      
      /** @brief The user-defined AES key to store in EEPROM unless @ref GENERATE_AES_KEY is set */
      #define MY_AES_KEY 0x06,0x07,0x08,0x09,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
      
      /** @brief The user-defined soft serial to use for soft signing unless @ref GENERATE_SOFT_SERIAL is set */
      #define MY_SOFT_SERIAL 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
      
      /***************************** Flags for guided personalization flow ******************************/
      
      /**
       * @def GENERATE_KEYS_ATSHA204A
       * @brief Default settings for generating keys using ATSHA204A
       *
       * @note The generated keys displayed in the serial log with this setting needs to be written down
       *       and transferred to all nodes this gateway will communicate with. This is mandatory for ALL
       *       nodes for encryption (AES key). For signing (HMAC key) it is only required for nodes that
       *       use signing. Typically you set the values for @ref MY_HMAC_KEY and @ref MY_AES_KEY.
       */
      //#define GENERATE_KEYS_ATSHA204A
      
      /**
       * @def GENERATE_KEYS_SOFT
       * @brief Default settings for generating keys using software
       *
       * @b Important<br>
       * You will need to ensure @ref MY_SIGNING_SOFT_RANDOMSEED_PIN is set to an unconnected analog pin
       * in order to provide entropy to the software RNG if your hardware has no HWRNG.
       *
       * @note The generated keys displayed in the serial log with this setting needs to be written down
       *       and transferred to all nodes this gateway will communicate with. This is mandatory for ALL
       *       nodes for encryption (AES key). For signing (HMAC key) it is only required for nodes that
       *       use signing. Typically you set the values for @ref MY_HMAC_KEY and @ref MY_AES_KEY.
       */
      //#define GENERATE_KEYS_SOFT
      
      /**
       * @def PERSONALIZE_ATSHA204A
       * @brief Default settings for personalizing an ATSHA204A
       *
       * It is assumed that you have updated @ref MY_HMAC_KEY and @ref MY_AES_KEY with the keys displayed
       * when executing this sketch with @ref GENERATE_KEYS_ATSHA204A or @ref GENERATE_KEYS_SOFT defined.
       */
      #define PERSONALIZE_ATSHA204A
      
      /**
       * @def PERSONALIZE_SOFT
       * @brief Default settings for personalizing EEPROM for software signing
       *
       * It is assumed that you have updated @ref MY_HMAC_KEY and @ref MY_AES_KEY with the keys displayed
       * when executing this sketch with @ref GENERATE_KEYS_ATSHA204A or @ref GENERATE_KEYS_SOFT defined.
       */
      //#define PERSONALIZE_SOFT
      
      /**
       * @def PERSONALIZE_SOFT_RANDOM_SERIAL
       * @brief This is an alternative to @ref PERSONALIZE_SOFT which will also store a randomly generated
       * serial to EEPROM in addition to the actions performed by @ref PERSONALIZE_SOFT. Take note of the
       * generated soft serial as it will be needed if you plan to use whitelisting. It should be
       * unique for each node.
       *
       * @note This is only needed for targets that lack unique device IDs. The sketch will inform you if
       *       there is a need for generating a random serial or not. Check the "Hardware security
       *       peripherals" listing. If a target has a unique device ID and a serial in EEPROM, the serial
       *       in EEPROM will be used. If erased (replaced with FF:es) the unique device ID will be used
       *       instead.
       */
      //#define PERSONALIZE_SOFT_RANDOM_SERIAL
      
      /*************************** The settings below are for advanced users ****************************/
      /**
       * @def USE_SOFT_SIGNING
       * @brief Uncomment this to generate keys by software and store them to EEPROM instead of ATSHA204A
       */
      //#define USE_SOFT_SIGNING
      
      /**
       * @def LOCK_ATSHA204A_CONFIGURATION
       * @brief Uncomment this to enable locking the ATSHA204A configuration zone
       *
       * It is still possible to change the key, and this also enable random key generation.
       * @warning BE AWARE THAT THIS PREVENTS ANY FUTURE CONFIGURATION CHANGE TO THE CHIP
       */
      //#define LOCK_ATSHA204A_CONFIGURATION
      
      /**
       * @def SKIP_UART_CONFIRMATION
       * @brief Uncomment this for boards that lack UART
       *
       * This will disable additional confirmation for actions that are non-reversible.
       *
       * @b Important<br> For ATSHA204A, no confirmation will be required for locking any zones with this
       * configuration! Also, if you generate keys on a board without UART, you have no way of determining
       * what the key is unless it is stored in EEPROM.
       */
      //#define SKIP_UART_CONFIRMATION
      
      /**
       * @def GENERATE_HMAC_KEY
       * @brief Uncomment this to generate a random HMAC key using ATSHA204A or software depending on
       *        @ref USE_SOFT_SIGNING
       * @note If not enabled, key defined by @ref MY_HMAC_KEY will be used instead.
       */
      //#define GENERATE_HMAC_KEY
      
      /**
       * @def STORE_HMAC_KEY
       * @brief Uncomment this to store HMAC key to ATSHA204A or EEPROM depending on @ref USE_SOFT_SIGNING
       */
      //#define STORE_HMAC_KEY
      
      /**
       * @def GENERATE_AES_KEY
       * @brief Uncomment this to generate a random AES key using ATSHA204A or software depending on
       * @ref USE_SOFT_SIGNING
       * @note If not enabled, key defined by @ref MY_AES_KEY will be used instead.
       */
      //#define GENERATE_AES_KEY
      
      /**
       * @def STORE_AES_KEY
       * @brief Uncomment this to store AES key to EEPROM
       */
      //#define STORE_AES_KEY
      
      /**
       * @def GENERATE_SOFT_SERIAL
       * @brief Uncomment this to generate a random serial number for software signing
       * @note If not enabled, serial defined by @ref MY_SOFT_SERIAL will be used instead.
       */
      //#define GENERATE_SOFT_SERIAL
      
      /**
       * @def STORE_SOFT_SERIAL
       * @brief Uncomment this to store the serial number to EEPROM
       */
      //#define STORE_SOFT_SERIAL
      
      /**
       * @def PRINT_DETAILED_ATSHA204A_CONFIG
       * @brief Uncomment to print the detailed ATSHA204A configuration
       */
      #define PRINT_DETAILED_ATSHA204A_CONFIG
      
      /**
       * @def RESET_EEPROM_PERSONALIZATION
       * @brief Uncomment to reset the personalization data in EEPROM to 0xFF:es
       */
      //#define RESET_EEPROM_PERSONALIZATION
      
      /********************* Guided mode flag configurations (don't change these) ***********************/
      #ifdef GENERATE_KEYS_ATSHA204A
      #define LOCK_ATSHA204A_CONFIGURATION // We have to lock configuration to enable random number generation
      #define GENERATE_HMAC_KEY // Generate random HMAC key
      #define GENERATE_AES_KEY // Generate random AES key
      #define SKIP_UART_CONFIRMATION // This is an automated mode
      #endif
      
      #ifdef GENERATE_KEYS_SOFT
      #define USE_SOFT_SIGNING // Use software backend
      #define GENERATE_HMAC_KEY // Generate random HMAC key
      #define GENERATE_AES_KEY // Generate random AES key
      #define SKIP_UART_CONFIRMATION // This is an automated mode
      #endif
      
      #ifdef PERSONALIZE_ATSHA204A
      #define LOCK_ATSHA204A_CONFIGURATION // We have to lock configuration to enable random number generation
      #define STORE_HMAC_KEY // Store the HMAC key
      #define STORE_AES_KEY // Store the AES key
      #define SKIP_UART_CONFIRMATION // This is an automated mode
      #endif
      
      #ifdef PERSONALIZE_SOFT_RANDOM_SERIAL
      #define GENERATE_SOFT_SERIAL // Generate a soft serial number
      #define PERSONALIZE_SOFT // Do the rest as PERSONALIZE_SOFT
      #endif
      
      #ifdef PERSONALIZE_SOFT
      #define USE_SOFT_SIGNING // Use software backend
      #define STORE_HMAC_KEY // Store the HMAC key
      #define STORE_AES_KEY // Store the AES key
      #define STORE_SOFT_SERIAL // Store the soft serial number
      #define SKIP_UART_CONFIRMATION // This is an automated mode
      #endif
      
      #if defined(GENERATE_HMAC_KEY) || defined(GENERATE_AES_KEY) || defined(GENERATE_SOFT_SERIAL)
      #define GENERATE_SOMETHING
      #endif
      
      #if defined(MY_LOCK_MCU)
      #undefine MY_LOCK_MCU  // The Sketch after SecurityPersonaliter should lock the MCU
      #endif
      
      /********************************** Preprocessor sanitychecks *************************************/
      #if defined(GENERATE_SOFT_SERIAL) && !defined(USE_SOFT_SIGNING)
      #error Cannot generate soft serial using ATSHA204A, use USE_SOFT_SINGING for this
      #endif
      #if defined(STORE_SOFT_SERIAL) && !defined(USE_SOFT_SIGNING)
      #error Cannot store soft serial to ATSHA204A, use USE_SOFT_SINGING for this
      #endif
      #if defined(PRINT_DETAILED_ATSHA204A_CONFIG) && defined(USE_SOFT_SIGNING)
      #error Cannot print ATSHA204A config using software signing flag, disable USE_SOFT_SINGING for this
      #endif
      #if defined(LOCK_ATSHA204A_CONFIGURATION) && defined(USE_SOFT_SIGNING)
      #error Cannot lock ATSHA204A config using software signing flag, disable USE_SOFT_SINGING for this
      #endif
      #ifdef GENERATE_KEYS_ATSHA204A
      #ifdef USE_SOFT_SIGNING
      #error You cannot select soft signing if you want to generate keys using ATSHA204A
      #endif
      #ifdef STORE_HMAC_KEY
      #error Disable STORE_SOFT_KEY, you should not store keys in this mode
      #endif
      #ifdef STORE_SOFT_SERIAL
      #error Disable STORE_SOFT_SERIAL, you should not store serial in this mode
      #endif
      #ifdef STORE_AES_KEY
      #error Disable STORE_AES_KEY, you should not store keys in this mode
      #endif
      #if defined(GENERATE_KEYS_SOFT) ||\
      		defined (PERSONALIZE_ATSHA204A) ||\
      		defined (PERSONALIZE_SOFT) ||\
      		defined (PERSONALIZE_SOFT_RANDOM_SERIAL)
      #error You can not enable GENERATE_KEYS_ATSHA204A together with other guided modes
      #endif
      #endif // GENERATE_KEYS_ATSHA204A
      #ifdef GENERATE_KEYS_SOFT
      #ifdef STORE_HMAC_KEY
      #error Disable STORE_SOFT_KEY, you should not store keys in this mode
      #endif
      #ifdef STORE_SOFT_SERIAL
      #error Disable STORE_SOFT_SERIAL, you should not store serial in this mode
      #endif
      #ifdef STORE_AES_KEY
      #error Disable STORE_AES_KEY, you should not store keys in this mode
      #endif
      #ifndef MY_SIGNING_SOFT_RANDOMSEED_PIN
      #error You have to set MY_SIGNING_SOFT_RANDOMSEED_PIN to a suitable value in this mode
      #endif
      #if defined(GENERATE_KEYS_ATSHA204A) ||\
      		defined (PERSONALIZE_ATSHA204A) ||\
      		defined (PERSONALIZE_SOFT) ||\
      		defined (PERSONALIZE_SOFT_RANDOM_SERIAL)
      #error You can not enable GENERATE_KEYS_SOFT together with other guided modes
      #endif
      #endif // GENERATE_KEYS_SOFT
      #ifdef PERSONALIZE_ATSHA204A
      #ifdef USE_SOFT_SIGNING
      #error You cannot select soft signing if you want to personalize an ATSHA204A
      #endif
      #if defined(GENERATE_KEYS_ATSHA204A) ||\
      		defined (GENERATE_KEYS_SOFT) ||\
      		defined (PERSONALIZE_SOFT) ||\
      		defined (PERSONALIZE_SOFT_RANDOM_SERIAL)
      #error You can not enable PERSONALIZE_ATSHA204A together with other guided modes
      #endif
      #ifdef RESET_EEPROM_PERSONALIZATION
      #error You cannot reset EEPROM personalization when personalizing a device
      #endif
      #endif // PERSONALIZE_ATSHA204A
      #ifdef PERSONALIZE_SOFT
      #if defined(GENERATE_KEYS_ATSHA204A) ||\
      		defined (GENERATE_KEYS_SOFT) ||\
      		defined (PERSONALIZE_ATSHA204A)
      #error You can not enable PERSONALIZE_SOFT together with other guided modes
      #endif
      #ifdef RESET_EEPROM_PERSONALIZATION
      #error You cannot reset EEPROM personalization when personalizing a device
      #endif
      #endif // PERSONALIZE_SOFT
      #ifdef PERSONALIZE_SOFT_RANDOM_SERIAL
      #if defined(GENERATE_KEYS_SOFT) ||\
      		defined (PERSONALIZE_ATSHA204A) ||\
      		defined (GENERATE_KEYS_ATSHA204A)
      #error You can only enable one of the guided modes at a time
      #endif
      #ifdef RESET_EEPROM_PERSONALIZATION
      #error You cannot reset EEPROM personalization when personalizing a device
      #endif
      #endif // PERSONALIZE_SOFT_RANDOM_SERIAL
      
      #if !defined(GENERATE_KEYS_ATSHA204A) &&\
      		!defined(GENERATE_KEYS_SOFT) &&\
      		!defined(PERSONALIZE_ATSHA204A) &&\
      		!defined(PERSONALIZE_SOFT) &&\
      		!defined(PERSONALIZE_SOFT_RANDOM_SERIAL) &&\
      		!defined(USE_SOFT_SIGNING) &&\
      		!defined(LOCK_ATSHA204A_CONFIGURATION) &&\
      		!defined(SKIP_UART_CONFIRMATION) &&\
      		!defined(GENERATE_HMAC_KEY) &&\
      		!defined(STORE_HMAC_KEY) &&\
      		!defined(GENERATE_SOFT_SERIAL) &&\
      		!defined(STORE_SOFT_SERIAL) &&\
      		!defined(GENERATE_AES_KEY) &&\
      		!defined(STORE_AES_KEY) &&\
      		!defined(PRINT_DETAILED_ATSHA204A_CONFIG) &&\
      		!defined(RESET_EEPROM_PERSONALIZATION)
      /** @brief Set when there are no config flags defined */
      #define NO_SETTINGS_DEFINED
      #endif
      
      #if defined(GENERATE_KEYS_ATSHA204A) ||\
      		defined(GENERATE_KEYS_SOFT) ||\
      		defined(PERSONALIZE_ATSHA204A) ||\
      		defined(PERSONALIZE_SOFT) ||\
      		defined(PERSONALIZE_SOFT_RANDOM_SERIAL)
      /** @brief Set when there is a guided mode flag defined */
      #define GUIDED_MODE
      #endif
      
      /************************************* Function declarations ***************************************/
      static void halt(bool success);
      #ifdef GENERATE_SOMETHING
      static bool generate_random_data(uint8_t* data, size_t sz);
      #endif
      static void generate_keys(void);
      static void store_keys(void);
      static void print_hex_buffer(uint8_t* data, size_t sz);
      static void print_c_friendly_hex_buffer(uint8_t* data, size_t sz);
      #ifdef STORE_HMAC_KEY
      static bool store_hmac_key_data(uint8_t* data, size_t sz);
      #endif
      #ifdef STORE_AES_KEY
      static bool store_aes_key_data(uint8_t* data, size_t sz);
      #endif
      #ifdef STORE_SOFT_SERIAL
      static bool store_soft_serial_data(uint8_t* data, size_t sz);
      #endif
      #ifndef USE_SOFT_SIGNING
      static void init_atsha204a_state(void);
      #ifdef LOCK_ATSHA204A_CONFIGURATION
      static void	lock_atsha204a_config(void);
      static uint16_t write_atsha204a_config_and_get_crc(void);
      #endif
      static bool get_atsha204a_serial(uint8_t* data);
      #ifdef STORE_HMAC_KEY
      static bool write_atsha204a_key(uint8_t* key);
      #endif
      #endif // not USE_SOFT_SIGNING
      static void print_greeting(void);
      static void print_ending(void);
      static void	probe_and_print_peripherals(void);
      static void print_eeprom_data(void);
      static void print_whitelisting_entry(void);
      #ifdef PRINT_DETAILED_ATSHA204A_CONFIG
      static void dump_detailed_atsha204a_configuration(void);
      #endif
      #ifdef RESET_EEPROM_PERSONALIZATION
      static void reset_eeprom(void);
      #endif
      static void write_eeprom_checksum(void);
      
      /**************************************** File local data *****************************************/
      #if defined(GENERATE_HMAC_KEY) || defined(STORE_HMAC_KEY)
      /** @brief The data to store as HAMC key in ATSHA204A or EEPROM */
      static uint8_t user_hmac_key[32] = {MY_HMAC_KEY};
      #endif
      
      #if defined(GENERATE_SOFT_SERIAL) || defined(STORE_SOFT_SERIAL)
      /** @brief The data to store as soft serial in EEPROM */
      static uint8_t user_soft_serial[9] = {MY_SOFT_SERIAL};
      #endif
      
      #if defined(GENERATE_AES_KEY) || defined(STORE_AES_KEY)
      /* @brief The data to store as AES key in EEPROM */
      static uint8_t user_aes_key[16] = {MY_AES_KEY};
      #endif
      
      #ifndef USE_SOFT_SIGNING
      const int sha204Pin = MY_SIGNING_ATSHA204_PIN; //!< The IO pin to use for ATSHA204A
      atsha204Class sha204(sha204Pin);
      static uint8_t tx_buffer[SHA204_CMD_SIZE_MAX];
      static uint8_t rx_buffer[SHA204_RSP_SIZE_MAX];
      static uint8_t ret_code;
      static uint8_t lockConfig = 0;
      static uint8_t lockValue = 0;
      #endif
      static bool has_device_unique_id = false;
      static const uint8_t reset_buffer[32] = {
      	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
      	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
      	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
      	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
      };
      
      /******************************************* Functions ********************************************/
      
      void presentation() {
        sendSketchInfo("Secure Startup","1.0");
      }
      
      /** @brief Sketch setup code (all personalization is done here as it is a run-once sketch) */
      void setup()
      {
      	// Delay startup a bit for serial consoles to catch up
      	uint32_t enter = hwMillis();
      	while (hwMillis() - enter < (uint32_t)500);
      #ifdef USE_SOFT_SIGNING
      	// initialize pseudo-RNG
      	hwRandomNumberInit();
      #endif
      
      	while(!Serial); // For USB enabled devices, wait for USB enumeration before continuing
      
      	print_greeting();
      
      #ifndef USE_SOFT_SIGNING
      	init_atsha204a_state();
      	// Lock configuration now if requested to enable RNG in ATSHA
      #ifdef LOCK_ATSHA204A_CONFIGURATION
      	lock_atsha204a_config();
      #endif
      #endif
      	// Generate the requested keys (if any)
      	generate_keys();
      
      #ifdef RESET_EEPROM_PERSONALIZATION
      	// If requested, reset EEPROM before storing keys
      	reset_eeprom();
      #endif
      
      	// Store the keys (if configured to do so)
      	store_keys();
      
      	// Write a checksum on the EEPROM data
      	write_eeprom_checksum();
      
      	// Print current EEPROM
      	print_eeprom_data();
      	print_whitelisting_entry();
      	Serial.println();
      
      	print_ending();
      	halt(true);
      }
      
      /** @brief Sketch execution code (unused) */
      void loop()
      {
        
      }
      
      [had to make it shorter, but I didn't change anything below here]
      

      node serial monitor:

      +------------------------------------------------------------------------------------+
      |                                  WHAT TO DO NEXT?                                  |
      +------------------------------------------------------------------------------------+
      | This device has now been personalized. Run this sketch with its current settings   |
      | on all the devices in your network that have security enabled.                     |
      +------------------------------------------------------------------------------------+
      
      +------------------------------------------------------------------------------------+
      |                                  Execution result                                  |
      +------------------------------------------------------------------------------------+
      | SUCCESS                                                                            |
      +------------------------------------------------------------------------------------+
      
      posted in Hardware
      Anduril
      Anduril
    • RE: Security OTA Sketch

      ohh sorry, I was not completely clear: I will use RFM96 with DualOptiboot bootloader. I can upload the SecurityPersonalizer followed by the correct sketch. But it takes some effort, as I need to connect ISP/FTDI. Therefore I thought about compiling a hex file with DualOptibootloader, Personalizer sketch with running MySensors (not only core) and #define MY_OTA_FIRMWARE_FEATURE

      posted in Hardware
      Anduril
      Anduril
    • Security OTA Sketch

      Hey there,

      I am about to deploy a few different types of nodes around my new house (temp, movement, rollershutter,...). As I have them on PCBs, they do not have easy USB connectivity.
      I want to have them all signing enabled, maybe also hardware encryption of the rfm96. And I want them to be OTA programmable, as some of them will be behind walls (rollershutter nodes) or are otherwise hard to reach (ceiling in stairway).
      Is it possible to modify the SecurityPersonalizer Sketch from the examples to be able to write the keys to the eeprom (or atsha) and boot up mysensors to be able to programm them over the air? Has anyone done this before?
      This way I could simply burn a hex file with the bootloader and the initial sketch to all of them. Later I could install and start them one by one and change their sketches to the appropriate one for their purpose.

      Thanks in advance,
      Anduril

      posted in Hardware
      Anduril
      Anduril
    • RE: Read own node-ID

      thanks a lot

      posted in Development
      Anduril
      Anduril
    • Read own node-ID

      Hey there,

      I am building a node that can display some information on a connected DMD. As I want to build at least two of them I wanted to have a simple way to identify them. I thought of a way to make them show their own ID. Is it possible to read this during programm operation with let's say intID=node.ID()?

      Regards,
      Anduril

      posted in Development
      Anduril
      Anduril
    • RE: sending string containing special chars (ä,ö,ü)

      For this special application I use MyController. In the controller the string is displayed correctly, but in the serial monitor of the node I only see this distorted version (But sending them by sketch works, so it's not a problem of the serial monitor in general).
      I will ask at the MyController forum, maybe the dev can help.

      posted in Development
      Anduril
      Anduril
    • sending string containing special chars (ä,ö,ü)

      Hey there,

      I'm building a Display where I want to show some information. As I live in germany, some of the strings I want to display contain the special characters ä, ö or ü (and maybe ß) Is there a way of sending them without bigger problems? In normal transmission I receive M⸮ller when sending Müller

      posted in Development
      Anduril
      Anduril
    • RE: receiving numbers bigger than unsigned long

      well yeah thats obvious, my question was more about the specific syntax (but that was not very clear).
      Which of the following do I have to use?

      uint64_t value;
      send(Mymessage.set(value,8);
      send(Mymessage.set(value,64);
      send(Mymessage.set(value,8 byte);
      ...
      
      posted in Development
      Anduril
      Anduril
    • RE: receiving numbers bigger than unsigned long

      Thanks a lot @hek
      What do I have to write for length at MyMessage& MyMessage::set(void* value, uint8_t length)? Is it 8 byte or 64 bit? Is MAX_PAYLOAD defined in byte or bit (or something else)?

      posted in Development
      Anduril
      Anduril
    • receiving numbers bigger than unsigned long

      Hey there,

      I know an arduino is capable of using uint16_t type variables. But how do I get them transfered within the mysensors framework? I know there are way to read int (message.getint) and long (message.getlong) for usage in void receive(), but how do I receive an uint64_t number? I couldn't find a documentation about this. But as far as I read the max payload is 25 byte, so it should fit in.

      Regards,
      Anduril

      posted in Development
      Anduril
      Anduril
    • RE: Sending an integer >32767

      I found the problem... or to be honest @jkandasa found it. He told me in the MyController forum to check my receiving code and not use getInt() but getLong(). Thanks again to him.

      posted in Development
      Anduril
      Anduril
    • RE: Sending an integer >32767

      well I did some further testing... sending e.g. 65000 from the node to the controller works, sending back 65001 does not. That seems more related to the controller (MyController) than MySensors. Maybe @jkandasa can help shine some light on this.

      posted in Development
      Anduril
      Anduril
    • RE: Sending an integer >32767

      I tried to send from controller. When sending 32768 the node 'received' 4294934528 (written to the serial monitor)...

      posted in Development
      Anduril
      Anduril
    • Sending an integer >32767

      Hey there,

      I'm trying to send a value between 10.000 and 99.999, but as soon as it gets bigger than 32.767 (size of int16) I receive totally senseless numbers. Is there a way to send this big number e.g. with an int32? I use V_VAR1 as message type.

      Regards,
      Anduril

      posted in Development
      Anduril
      Anduril
    • RE: Windows GUI/Controller for MySensors

      @tekka thanks for your hint. Is smartsleep supported if the controller (pimatic) does not? So do I get problems when using withoug MYSController for debug?

      And another thing is that this node tries to save power and only sends updates if values have changed. So using smartsleep and sending a messag every sleep cycle would be against that. Can I simply put a wait(50) after the first message sending is triggered? What would be the necessary time to do wait(x)?

      posted in Controllers
      Anduril
      Anduril
    • RE: Windows GUI/Controller for MySensors

      @tekka ok and whats the way to deal with sleeping nodes? Do I have to add a wait(xx) to receive reboot commands?

      posted in Controllers
      Anduril
      Anduril
    • RE: Windows GUI/Controller for MySensors

      @techRH that doesn't work for the new bootloader/MySensors 2.x

      posted in Controllers
      Anduril
      Anduril
    • RE: Windows GUI/Controller for MySensors

      @tekka how do I initiate a reboot of a node from gateway side? I don't know how, but it's needed for updating OTA. Thanks in advance.

      posted in Controllers
      Anduril
      Anduril
    • RE: Node not sending updates, probably some problem with my sketch

      well it does not seem logic to me, but I kind of found the problem. It's within this line:

      unsigned long SLEEP_TIME = 2 * 60 * 1000; // Sleep time between reads (in milliseconds)
      

      If I change the 2 to let's say 2.1 it works. Maybe a conversion problem with integer and long? Well for me that's ok and solved, but maybe someone else in future needs this info...

      posted in Development
      Anduril
      Anduril
    • Node not sending updates, probably some problem with my sketch

      Hey there,

      I have a node which is doing strange things. I tested it with a sketch with fixed update time and it works well. I also have an enhanced version which checks for the need of an update and only sends messages as needed. But the new sketch only sends the data once after reboot and goes silent forever... maybe I'm overlooking something in my sketch... I hope someone can help.

      working sketch sending every 2.5 min:

      // Enable and select radio type attached
      #define MY_RADIO_NRF24
      //#define MY_RADIO_RFM69
      
      #include <Wire.h>
      #include <SI7021.h>
      #include <MySensors.h>
      #include <SPI.h>
      #include <readVcc.h>
      
      int MIN_V = 1800; // empty voltage (0%)
      int MAX_V = 3200; // full voltage (100%)
      
      SI7021 sensor;
      
      #define CHILD_ID_HUM 2
      #define CHILD_ID_TEMP 1
      #define CHILD_ID_V 3
      
      unsigned long SLEEP_TIME = 2.5*60*1000; // Sleep time between reads (in milliseconds)
      int oldBatteryPcnt = 0;
      float lastTemp;
      float lastHum;
      
      //Messages
      MyMessage msgHum(CHILD_ID_HUM, V_HUM);
      MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
      MyMessage msgV(CHILD_ID_V, V_VAR1);
      
      
      void setup() {
          //Serial.begin(9600);
          delay(100);
          sensor.begin();
            
      }
      
      void presentation() {
        // Send the Sketch Version Information to the Gateway
            sendSketchInfo("SI7021", "1.0");
            delay(50);
            present(CHILD_ID_HUM, S_HUM);
            delay(50);
            present(CHILD_ID_TEMP, S_TEMP);
            delay(50);
            present(CHILD_ID_V, S_TEMP);      
      }
      
      void loop() {
      
          // get humidity and temperature in one shot, saves power because sensor takes temperature when doing humidity anyway
          si7021_env data = sensor.getHumidityAndTemperature();
          Serial.print("Temperatur: ");
          Serial.print(data.celsiusHundredths);
          Serial.print(" Luftfeuchtigkeit: ");
          Serial.println(data.humidityPercent);
          float temperature = data.celsiusHundredths/100.0;
          send(msgTemp.set(temperature, 1));
          delay(50);
          send(msgHum.set(data.humidityPercent, 1));
          delay(50);
      
        // Measure battery
        float batteryV = readVcc();
        int batteryPcnt = (((batteryV - MIN_V) / (MAX_V - MIN_V)) * 100 );
        if (batteryPcnt > 100) {
          batteryPcnt = 100;
        }
      
           sendBatteryLevel(batteryPcnt);
           delay(10);
           send(msgV.set(batteryV,1));
           oldBatteryPcnt = batteryPcnt;
          sleep(SLEEP_TIME); //sleep for: sleepTime 
      }
      

      Updated to flexible update intervall, not working anymore:

      // Enable and select radio type attached
      #define MY_RADIO_NRF24
      //#define MY_RADIO_RFM69
      
      #include <Wire.h>
      #include <SI7021.h>
      #include <MySensors.h>
      #include <SPI.h>
      #include <readVcc.h>
      
      int MIN_V = 1800; // empty voltage (0%)
      int MAX_V = 3200; // full voltage (100%)
      
      SI7021 sensor;
      
      #define CHILD_ID_HUM 2
      #define CHILD_ID_TEMP 1
      #define CHILD_ID_V 3
      
      unsigned long SLEEP_TIME = 2 * 60 * 1000; // Sleep time between reads (in milliseconds)
      int oldBatteryPcnt = 0;
      float lastTemp;
      float lastHum;
      boolean sendValues = false;
      int Loop = 0;
      
      //Messages
      MyMessage msgHum(CHILD_ID_HUM, V_HUM);
      MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
      MyMessage msgV(CHILD_ID_V, V_VAR1);
      
      
      void setup() {
        delay(100);
        sensor.begin();
      }
      
      void presentation() {
        // Send the Sketch Version Information to the Gateway
        sendSketchInfo("Aussensensor", "1.0");
        delay(50);
        present(CHILD_ID_HUM, S_HUM);
        delay(50);
        present(CHILD_ID_TEMP, S_TEMP);
        delay(50);
        present(CHILD_ID_V, S_TEMP);
      }
      
      void loop() {
      
        si7021_env data = sensor.getHumidityAndTemperature();
        float temperature = data.celsiusHundredths / 100.0;
        if ((temperature > lastTemp + 0.2) or (temperature < lastTemp - 0.2)) {
          sendValues = true;
        }
        float humidity = data.humidityPercent;
        if ((humidity > lastHum + 5) or (humidity < lastHum - 5)) {
          sendValues = true;
        }
      
      
        // Measure battery
        float batteryV = readVcc();
        int batteryPcnt = (((batteryV - MIN_V) / (MAX_V - MIN_V)) * 100 );
        if (batteryPcnt > 100) {
          batteryPcnt = 100;
        }
        if ((batteryPcnt < oldBatteryPcnt) or (batteryPcnt > oldBatteryPcnt + 3)) {
          sendValues = true;
        }
      
        Loop++;
      
        if (Loop > 15) {
          sendValues = true;
        }
      
      
        if (sendValues) {
          send(msgTemp.set(temperature, 1));
          lastTemp = temperature;
          delay(50);
          send(msgHum.set(humidity, 1));
          lastHum = humidity;
          delay(50);
          sendBatteryLevel(batteryPcnt);
          delay(50);
          send(msgV.set(batteryV, 1));
          oldBatteryPcnt = batteryPcnt;
          Loop = 0;
          sendValues=false;
        }
      
        sleep(SLEEP_TIME); //sleep for: sleepTime
      }
      
      posted in Development
      Anduril
      Anduril
    • RE: MYSBootloader 1.3.0-beta.3

      How do I do a remote reboot of a node? Node is not responding to MYSController command (I think due to changed things as with reassigning node-ID). DO I have to write a receive event or enable it somehow? Node is sleeping most time, maybe that's a problem.

      posted in Development
      Anduril
      Anduril
    • RE: 💬 Building a Raspberry Pi Gateway

      @marceloaqno what is the correct configure option to make this gatway connect to an ethernet gateway and let a serial-only-controller connect to it. I suppose to use the pty option, but didn't got this working. As said above, socat and nodered are no option.

      posted in Announcements
      Anduril
      Anduril
    • RE: 💬 Building a Raspberry Pi Gateway

      that's what I tried in the past and am using now (socat), but it does not reconnect and has some other drawbacks. Reading of an officially supported way sounded interesting

      posted in Announcements
      Anduril
      Anduril
    • RE: 💬 Building a Raspberry Pi Gateway

      I use pimatic which does not have a native compatibility to ethernet or mqtt. Thats why my question came up on how to configure it to do this...

      Building a Raspberry Pi Gateway:

      If you are running a controller on the Raspberry Pi that doesn't support communication with the gateway through ethernet, you can use a virtual serial port:
      ./configure --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyMySensorsGateway

      posted in Announcements
      Anduril
      Anduril
    • RE: 💬 Building a Raspberry Pi Gateway

      I'm using a ESP8266 as ethernet gateway and want to have this connected as virtuall serial port to my raspberry pi so my controller can connect to that.

      posted in Announcements
      Anduril
      Anduril
    • RE: 💬 Building a Raspberry Pi Gateway

      just cloned and read the --help, but still I don't know how to use.
      To make it a litte less abstract: I have a ethernet gateway (ESP8266) running at 192.168.38.19 with port 5003 to connect to. I want to have this accessible by a serial-only controller on the raspberry.

      I tried to do this config and make afterwards, but starting gave only FAILs...

      ./configure --my-gateway=ethernet --my-controller-ip-address=192.168.38.19 --my-serial-is-pty --my-serial-pty=/dev/ttyMySensorsGateway
      
      ~/MySensors$ sudo ./bin/mysgw -d
      mysgw: Starting gateway...
      mysgw: Protocol version - 2.1.0
      mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.1.0
      mysgw: TSF:LRT:OK
      mysgw: TSM:INIT
      mysgw: TSF:WUR:MS=0
      mysgw: !TSM:INIT:TSP FAIL
      mysgw: TSM:FAIL:CNT=1
      mysgw: TSM:FAIL:PDT
      mysgw: TSM:FAIL:RE-INIT
      mysgw: TSM:INIT
      mysgw: !TSM:INIT:TSP FAIL
      mysgw: TSM:FAIL:CNT=2
      mysgw: TSM:FAIL:PDT
      mysgw: TSM:FAIL:RE-INIT
      mysgw: TSM:INIT
      mysgw: !TSM:INIT:TSP FAIL
      mysgw: TSM:FAIL:CNT=3
      mysgw: TSM:FAIL:PDT
      mysgw: TSM:FAIL:RE-INIT
      mysgw: TSM:INIT
      mysgw: !TSM:INIT:TSP FAIL
      mysgw: TSM:FAIL:CNT=4
      mysgw: TSM:FAIL:PDT
      

      I think my config is wrong and it tries to connect to a nrf24 at the rpi. So what's the correct config for my case?

      Thanks in advance.

      posted in Announcements
      Anduril
      Anduril
    • RE: 💬 Building a Raspberry Pi Gateway

      Do I read that correctly, does this gateway also gives a ethernet link to a serial-only controller? How do I have to configure ip and port? In the build section I see no option to set them.

      posted in Announcements
      Anduril
      Anduril
    • RE: MYSBootloader 1.3pre2 testing

      @Tetnobic can this be done within the IDE? I have some nodes where I have to upload with ISP and thought to still have the bootloader, but this explains why OTA didn't work afterwards...

      posted in Development
      Anduril
      Anduril
    • RE: LCD Clock and Text sensor node with new V_TEXT

      Is there a limitation in text length? I plan to use a bigger display and want to maybe send strings with 30+ chars. Is it impossible (maybe then split this into two strings) or is it internally seperated in 2 messages (as nrf-payload is 32 byte - 7 byte MySensors-header)?

      posted in My Project
      Anduril
      Anduril
    • RE: Windows GUI/Controller for MySensors

      I think it's windows software only. If you want to use it this way you should make you gateway device accessible via ethernet, maybe socat or nodered is an option for you.

      posted in Controllers
      Anduril
      Anduril
    • RE: 💬 Air Humidity Sensor - DHT

      well I think this kind of noise can not be calibrated. I thought they all have different values, but with offset, linear oder squared function for deviation.

      posted in Announcements
      Anduril
      Anduril
    • RE: 💬 Air Humidity Sensor - DHT

      @tiana well you could simply calibrate the value you get in your sketch for every DHT on it's own. But you have to do a calibraton, meaning measure all of them at multiple temperatures and humidities.
      If it's only a offset you can also use

      // Set this offset if the sensor has a permanent small offset to the real temperatures
      #define SENSOR_TEMP_OFFSET 0
      

      to correct for this, otherwise you have to implement your calibration function on your own.

      posted in Announcements
      Anduril
      Anduril
    • RE: MYSBootloader 1.3pre2 testing

      For a node that is physically accessable it is realy hard. First: does this node needs signing? For sensor data you don't need in most cases. Maybe you should use the hardware chip, there you can't read out the key and if it was locked you also can't change it.
      If you still need to use softsigning you could use whitelisting and revoke the whitelist-entry in case of corruption.

      posted in Development
      Anduril
      Anduril
    • RE: MYSBootloader 1.3pre2 testing

      @JCLB said:

      @pku if your keys are in the sketch everything will work for signing.
      #define MY_SOFT_HMAC_KEY XXX... //signing key
      #define MY_AES_KEY XXX... // if you use encryption
      Of course if you want to use whitelisting then you need to compile each node sketch separately with it's serial.

      but that would give a listener your full MY_SOFT_HMAC_KEY and signing would be useless in future. Therefor it is better to write the key in eeprom with cable and later only update firmware without key via OTA.

      posted in Development
      Anduril
      Anduril
    • RE: 💬 FOTA (Wireless Programming)

      When initiating a ota firmware update MYSController sends a reboot message to the node. Does anyone knows if that is protected by signing (if enabled)? If so, it would be quite safe excluding the physical access.

      posted in Announcements
      Anduril
      Anduril
    • RE: 💬 FOTA (Wireless Programming)

      @skywatch just to be complete: using signing as @tbowmo suggested only works with dualoptiboot bootloader.
      When using MYSBootloader it will, as far as I know, accept any firmware when booting. To attack the node the attacker would have to reboot your node (power cycle,...) and then send his own firmware. So this is possible, but needs quite a good amount of control of your systems.

      posted in Announcements
      Anduril
      Anduril
    • RE: Windows GUI/Controller for MySensors

      @robosensor you could try nodered. It can connect multiple inputs (mqtt, tcp,...) and merge it to a single serial output and vice versa. You might have to add some logic, but that shouldn't be a problem.

      posted in Controllers
      Anduril
      Anduril
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      @abmantis DO you have the serial upload working? I never got it working and gave up some day. I am using the old bootloader which is uploading ota much faster than the new. Maybe you can also test and confirm this?

      posted in Development
      Anduril
      Anduril
    • RE: OTA firmware updating is too slow..

      just as an update, here the link to tekkas 'old' MySController with the old bootloader: https://forum.mysensors.org/topic/838/windows-gui-controller-for-mysensors/2

      posted in Bug Reports
      Anduril
      Anduril
    • RE: 💬 MYSController

      As far as I know tekka is working on a mqtt support and there is also MyController, which also has OTA support and mqtt. Maybe you can have a look at it.

      posted in Announcements
      Anduril
      Anduril
    • RE: OTA firmware updating is too slow..

      yeah I tried with the V13pre.hex, but with that I had problems as you descibed. Also the serial upload didn't worked for me. So there was no reason to not use the old one wich was included in his beta of MYSController. That worked much better. Maybe you can find the old version on tekkas download site of MYSController.

      posted in Bug Reports
      Anduril
      Anduril
    • RE: OTA firmware updating is too slow..

      @yd-kim what bootloader are you using? I have similar problems with tekkas newest bootloader, but the older one works fine for me.

      posted in Bug Reports
      Anduril
      Anduril
    • RE: [ESP8266] use soft signing

      ok so

      // Select soft/hardware signing method
      #define MY_SIGNING_SOFT //!< Software signing
      //#define MY_SIGNING_ATSHA204 //!< Hardware signing using ATSHA204A
      
      // SETTINGS FOR MY_SIGNING_SOFT
      #define MY_SIGNING_SOFT_RANDOMSEED_PIN A0 //!< Unconnected analog pin for random seed
      

      should give a good random signing.

      posted in Development
      Anduril
      Anduril
    • RE: [ESP8266] use soft signing

      yeah I know the reason for having an unconnected analog pin, my question was more about which to use on an ESP. Does it have an A7? I don't find one in the pinout. I only see A0 (which is not used in my case), can this be the floating pin for soft signing?

      posted in Development
      Anduril
      Anduril
    • RE: 💬 MYSController

      @Jason-Brunk it's working with MySensors 2.0, but not for mqtt

      posted in Announcements
      Anduril
      Anduril
    • [ESP8266] use soft signing

      Hey there,

      I tried to use soft signing with my ESP8266 gateway and a nano node.
      I have both setup with the SecurityPersonalizer to the same Soft-HMAC. But what pin to use as soft signing seed?

      posted in Development
      Anduril
      Anduril
    • RE: Windows GUI/Controller for MySensors

      @Harrdy there is a ethernet branch of the mysensors plugin for pimatic now under development. You can have a look at the mysensors thread in the pimatic forum to find the instructions.

      posted in Controllers
      Anduril
      Anduril
    • RE: Which Arduino IDE version?

      in your IDE go to tools -> boards: "..." -> board manager and there select Arduino AVR board in the correct version.

      posted in Development
      Anduril
      Anduril
    • RE: How to add a serial device to use in node-red

      ok things are running ok, but not perfect. I put all things into init.d scripts and works. But when not transfering any data over long periods (>1 day) connection seems to crash. I don't see new messages in my ttyUSB interface and in the debug node. When changing something (position of a node) and redeploying it works again. I will try with continous messages being sent and report. Does the ESP8266 somehow goes to sleep when nithing is happening and node-red loses connection then?

      posted in Node-RED
      Anduril
      Anduril
    • RE: Windows GUI/Controller for MySensors

      @Harrdy I made the experience that a socat tcp tunnel is not stable all the time. I was trying to establish a connection between my ESP8266 gateway and a serial port (to be used with pimatic), but that tended to disconnect after few hours/days. This was also reported by other users in the pimatic forum. But maybe this is only a problem in relation with a ESP gateway.
      I would just recommend to check your connection regularly.
      If it is also unstable for you, I am testing node-red for that purpose at the moment and it looks promising. I will report when testing is finished.

      posted in Controllers
      Anduril
      Anduril
    • RE: How to add a serial device to use in node-red

      @tbowmo @FotoFieber thank you both for your help. Hope a socat with 2 serial devices is more stable then a network based socat tunnel. That gave me disconnects after max 1-2 days. Now I will automate socat, node-red and all the other stuff, but it's too late to do that today 😪

      posted in Node-RED
      Anduril
      Anduril
    • RE: How to add a serial device to use in node-red

      I use a controller not capable of using ethernet gateways. By having a serial device connected to an ethernet stream via node-red would circumvent this limitation for me and also in future make it possible to use multiple controller at once (connecting additional controllers also to node-red and filter the messages).
      I tried socat some time ago, which is stated to have exactly this functionality: connecting a device to a tcp stream. But it came out that this tunnel is not stable and disconnects from time to time, causing a disconnect of my controller from MyS network.

      posted in Node-RED
      Anduril
      Anduril
    • RE: How to add a serial device to use in node-red

      well that might be... it is not existing upto now. I thought node-red would create a device like socat is doing (the only programm connecting to serial devices I used so far). But seems not to be that way. How do I create a new serial device to then connect node-red to?

      posted in Node-RED
      Anduril
      Anduril
    • How to add a serial device to use in node-red

      Hey there,

      I successfully installed node-red and have it working. I want to build a flow the connects to my ESP gateway and relays all the information to a serial port without any logic. To my thought it should look like this:
      0_1471719502320_node-red.PNG
      But as you can see, the serial port does not connect. Do I have to add the serial device manually before using it in node-red?
      And btw, how can I copy this one line of code with the complete flow?
      update: found the way to export the whole flow. Here the flow for the upper line:

      [{"id":"6172181f.bb6c88","type":"tcp in","z":"4e8861e9.29fed8","name":"","server":"client","host":"192.168.38.19","port":"5003","datamode":"stream","datatype":"buffer","newline":"","topic":"","base64":false,"x":259.5,"y":148,"wires":[["1c4e836e.cda87d"]]},{"id":"1c4e836e.cda87d","type":"serial out","z":"4e8861e9.29fed8","name":"","serial":"8c0eff27.9accc","x":581.5,"y":147,"wires":[]},{"id":"8c0eff27.9accc","type":"serial-port","z":"4e8861e9.29fed8","serialport":"/dev/ttyMySensors-nodered","serialbaud":"57600","databits":"8","parity":"none","stopbits":"1","newline":"\\n","bin":"false","out":"char","addchar":false}]
      
      posted in Node-RED
      Anduril
      Anduril
    • RE: installing node-red and node-red-contrib-mysensors

      Just to give an update: I wasn't able to register that plugin, so I started all over. I installed a fresh image and apt-get install nodered. After update and upgrade the version of nodejs was updated and with it came a script named update-nodejs-and-nodered with the very self-explanatory name. After that I had a new version of nodejs (needed for my controller) and a wokring node-red.

      posted in Node-RED
      Anduril
      Anduril
    • RE: Using the 3.3V pin to power NRF24L01+

      for the normal nrf this is ok, but if you are amplified version with antenna the onboard regulator of the arduino will not give enough current.

      posted in Hardware
      Anduril
      Anduril
    • RE: installing node-red and node-red-contrib-mysensors

      I installed it locally in /.node-red and tried different versions (newest 0.3.0, 0.2.1, 0.2.0 and now also 0.1.2) without success. Do you have yours installed globally? At the moment I start node-red from the terminal with node-red , but I get only the message as shown in post #1. Also google was not very helpful about this error message.

      edit: I also tried to install node-gyp to compile the serialnode, but didn't helped for the problem

      posted in Node-RED
      Anduril
      Anduril
    • RE: installing node-red and node-red-contrib-mysensors

      Well thanks @tbowmo,

      I found my mistake: I have not been in the /.node-red/ directory. Now I have installed it correctly. Only problem left is with the serialport module. I allready tried to install the older version (0.0.5), but my node.js is to new. Also installing gcc6 and reinstalling serialport did not help. Do you maybe know where to find logs or anything?

      posted in Node-RED
      Anduril
      Anduril
    • installing node-red and node-red-contrib-mysensors

      Hey there,

      I have a problem installing node-red and the mysensors contribution from npm. I installed node-red like this http://nodered.org/docs/hardware/raspberrypi and it seems to work.

      Welcome to Node-RED
      ===================
      
      10 Aug 19:20:49 - [info] Node-RED version: v0.14.6
      10 Aug 19:20:49 - [info] Node.js  version: v4.4.5
      10 Aug 19:20:49 - [info] Linux 4.1.19-v7+ arm LE
      10 Aug 19:20:49 - [info] Loading palette nodes
      10 Aug 19:20:53 - [warn] ------------------------------------------------------
      10 Aug 19:20:53 - [warn] [serialport] Error: Module did not self-register.
      10 Aug 19:20:53 - [warn] ------------------------------------------------------
      10 Aug 19:20:53 - [info] Settings file  : /home/pi/.node-red/settings.js
      10 Aug 19:20:53 - [info] User directory : /home/pi/.node-red
      10 Aug 19:20:53 - [info] Flows file     : /home/pi/.node-red/flows_octopi.json
      10 Aug 19:20:53 - [info] Creating new flow file
      10 Aug 19:20:54 - [info] Starting flows
      10 Aug 19:20:54 - [info] Started flows
      10 Aug 19:20:54 - [info] Server now running at http://127.0.0.1:1880/
      

      Only that serialport error I don't know what's happening there. I wanted to install the contrib, but all it says is

      ~ $ npm install node-red-contrib-mysensors
      node-red-contrib-mysensors@0.7.6 node_modules/node-red-contrib-mysensors
      

      In node-red I don't see any nodes corresponding to mysensors (mysdecenc and mysencap, Hope anyone can help me to get this working.

      posted in Node-RED
      Anduril
      Anduril
    • RE: Possible bug in MYSController 0.1.2.282

      @dpressle tekka didn't meant the version of the MYSController but the MySensors library.

      posted in Controllers
      Anduril
      Anduril
    • RE: what is "MY_GATEWAY_CLIENT_MODE" good for?

      @hek could you please confirm whether I can still connect to a gateway in client mode with normal TCP connection (and have 2 controller connected for debugging)?

      posted in Controllers
      Anduril
      Anduril
    • RE: what is "MY_GATEWAY_CLIENT_MODE" good for?

      yeah I will try it in some way. Pimatic controller only supports serial gateway. Maybe I can use ser2net tool to bind incoming tcp traffic to a serial device, where pimatic can read it.
      But will it still be possible to access the gateway with an other controller as standard ethernet gateway?

      posted in Controllers
      Anduril
      Anduril
    • what is "MY_GATEWAY_CLIENT_MODE" good for?

      Hey there,

      I had a look around the MySensors files on the search for a way to make my ESP activly send it's data to an IP adress.
      I found the MY_CONTROLLER_IP_ADDRESS feature wich looks promising. If defined, it makes the gateway work in client mode. What exactly does this mean? Can I still connect to it with MySController or other Controller for debugging? Or will it exclusivly send it's messaged to the specified IP and ignore everything else?

      posted in Controllers
      Anduril
      Anduril
    • RE: Values which gateway reads are others then sensor sends???

      @mfalkvidd it's not a node, but a modified version of the gateway. Harry van der Wolf changed it to directly send all incoming data via api to the controller. Therefore he changed the void incomingMessage() to void incomingMessageESP() and called that instead of the old in his gw.begin. Is it possible to manipulate the function for message reading in a similar way with current dev branch?
      Of course it would be best to use the normal ethernet gateway, but for pimatic there is no plugin capable of connecting to an ethernet gateway, only serial is supported. And those interested in having a ethernet gateway don't have the knowledge to programm it.

      posted in Troubleshooting
      Anduril
      Anduril
    • RE: Values which gateway reads are others then sensor sends???

      Yeah the problem is that this is a 1.5 sketch (and this mod of ESP gateway is only working with 1.5 at the moment) and my problem was solved with the newest dev version.
      So I think best would be to make this mod working with current dev.
      For the others reading this: the sketch has changed the incomingMessage procedure to send a REST-API call to the controller (pimatic) to update sensor values. I talked to him and his problem with migrating this to 2.0 is that this incomingMessage procedure is hidden behind the scenes to make the sketch more readable. Can any of the developers say where this function is now, than the author could adopt.

      posted in Troubleshooting
      Anduril
      Anduril
    • RE: Values which gateway reads are others then sensor sends???

      Could you please post the versions of your ESP8266 library and MySensors library? As mfalkvidd said I had a similar problem and could fix it with newest versions for the ESP8266 gateway (no need to upgrade the nodes if not wanted).

      posted in Troubleshooting
      Anduril
      Anduril
    • RE: NRF24L01 as BLE beacon

      That sounds nice for indoor positioning. Is it possible to run a MySensors node with BLE broadcast activated? That way one could upgrade a normal sensor node to sensor and BLE node and have a sufficient number of BLE signals for good position detection.

      posted in Hardware
      Anduril
      Anduril
    • RE: ESP8266 WiFi gateway port for MySensors

      @signal15 well there is a doc about OTA here. I discussed this topic with tekka, who is the author of the GatewayESP8266OTA example in the mysensors lib here.
      It took me some time to get this working, but now I can upload new firmware to my ESP using wifi. Only drawback is that is seems to be not compatible with the mqtt version of the gateway. At least I was not able to get this working and stopped on that.
      If you have further questions, don't hesitate to ask.

      posted in Development
      Anduril
      Anduril
    • RE: Connecting FTDI header to nano to read serial monitor?

      well... I tried, but didn't see anything on serial. Just having GND<--> GND, TX<-->RX and RX<-->TX. Anything further to connect?

      posted in Hardware
      Anduril
      Anduril
    • RE: ESP8266 WiFi gateway port for MySensors

      @alexsh1 @signal15 I can confirm that the ESP gateway is working fine and stable. I even enabled the ESP OTA update function and that's working fine too.

      posted in Development
      Anduril
      Anduril
    • Connecting FTDI header to nano to read serial monitor?

      Hey,

      is it possible to connect the FTDI header normally used to programm the pro mini to my nano to read the serial monitor? I didn't thought about positioning the nano properly before soldering and the usb port is not accessible while running. Therefore I thought about connecting GND, RX and TX to my FTDI and read serial. Will this work or will it fry the nano or FTDI?

      posted in Hardware
      Anduril
      Anduril
    • RE: Signing: no active verification session?

      @tomkxy said:

      I have to admit I am still on a mid march version of the development branch.

      So my first recommendation would be to download newest dev branch. Maybe it was kind of bug that is fixed now. No matter, it will not do any harm.

      posted in Troubleshooting
      Anduril
      Anduril
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      @tekka I did test your new bootloader, with no success. I also tried to use the nano with 8Mhz internal clock, but same result.
      Here again the serial debug of my ESP8266 gateway:
      With the new bootloader:

      0;255;3;0;9;read: 5-5-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      0;255;3;0;9;send: 0-0-5-5 s=255,c=3,t=15,pt=0,l=2,sg=0,st=ok:
      0;255;3;0;9;read: 5-5-0 s=255,c=4,t=0,pt=6,l=10,sg=0:FFFFFFFFFFFFAA160102
      0;255;3;0;9;Client 0: 5;0;4;0;1;6E000100000819CC
      0;255;3;0;9;send: 0-0-5-5 s=0,c=4,t=1,pt=6,l=8,sg=0,st=ok:6E000100000819CC
      0;255;3;0;9;read and forward: 5-5-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-5-5 s=255,c=3,t=8,pt=1,l=1,sg=0,st=ok:0
      0;255;3;0;9;read: 5-5-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      0;255;3;0;9;send: 0-0-5-5 s=255,c=3,t=15,pt=0,l=2,sg=0,st=ok:
      0;255;3;0;9;read: 5-5-0 s=255,c=4,t=0,pt=6,l=10,sg=0:FFFFFFFFFFFFAA160102
      0;255;3;0;9;Client 0: 5;0;4;0;1;6E000100000819CC
      0;255;3;0;9;send: 0-0-5-5 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E000100000819CC
      0;255;3;0;9;read: 5-5-0 s=255,c=4,t=0,pt=6,l=10,sg=0:FFFFFFFFFFFFAA160102
      0;255;3;0;9;Client 0: 5;0;4;0;1;6E000100000819CC
      0;255;3;0;9;send: 0-0-5-5 s=0,c=4,t=1,pt=6,l=8,sg=0,st=ok:6E000100000819CC
      0;255;3;0;9;read and forward: 5-5-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-5-5 s=255,c=3,t=8,pt=1,l=1,sg=0,st=ok:0
      0;255;3;0;9;read: 5-5-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      0;255;3;0;9;send: 0-0-5-5 s=255,c=3,t=15,pt=0,l=2,sg=0,st=ok:
      0;255;3;0;9;read: 5-5-0 s=255,c=4,t=0,pt=6,l=10,sg=0:FFFFFFFFFFFFAA160102
      0;255;3;0;9;Client 0: 5;0;4;0;1;6E000100000819CC
      0;255;3;0;9;send: 0-0-5-5 s=0,c=4,t=1,pt=6,l=8,sg=0,st=ok:6E000100000819CC
      0;255;3;0;9;read and forward: 5-5-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-5-5 s=255,c=3,t=8,pt=1,l=1,sg=0,st=ok:0
      0;255;3;0;9;read: 5-5-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      0;255;3;0;9;send: 0-0-5-5 s=255,c=3,t=15,pt=0,l=2,sg=0,st=ok:
      0;255;3;0;9;read: 5-5-0 s=255,c=4,t=0,pt=6,l=10,sg=0:FFFFFFFFFFFFAA160102
      0;255;3;0;9;Client 0: 5;0;4;0;1;6E000100000819CC
      0;255;3;0;9;send: 0-0-5-5 s=0,c=4,t=1,pt=6,l=8,sg=0,st=ok:6E000100000819CC
      

      with the old bootloader:

      0;255;3;0;9;read: 6-6-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E000100FD07
      0;255;3;0;9;Client 0: 6;255;4;0;3;6E000100FD070895262FF999FECF92BD81BDF89A0197
      0;255;3;0;9;send: 0-0-6-6 s=255,c=4,t=3,pt=6,l=22,sg=0,st=ok:6E000100FD070895262FF999FECF92BD81BDF89A0197
      0;255;3;0;9;read: 6-6-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E000100FC07
      0;255;3;0;9;Client 0: 6;255;4;0;3;6E000100FC07CB01840F951F2E9105D041505040D8F7
      0;255;3;0;9;send: 0-0-6-6 s=255,c=4,t=3,pt=6,l=22,sg=0,st=ok:6E000100FC07CB01840F951F2E9105D041505040D8F7
      0;255;3;0;9;read: 6-6-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E000100FB07
      0;255;3;0;9;Client 0: 6;255;4;0;3;6E000100FB07B8F70895DC01A40FB51F4150504040F0
      0;255;3;0;9;send: 0-0-6-6 s=255,c=4,t=3,pt=6,l=22,sg=0,st=ok:6E000100FB07B8F70895DC01A40FB51F4150504040F0
      0;255;3;0;9;read: 6-6-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E000100FA07
      0;255;3;0;9;Client 0: 6;255;4;0;3;6E000100FA07F2BDE1BDF89A319600B40D9241505040
      0;255;3;0;9;send: 0-0-6-6 s=255,c=4,t=3,pt=6,l=22,sg=0,st=ok:6E000100FA07F2BDE1BDF89A319600B40D9241505040
      0;255;3;0;9;read: 6-6-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E000100F907
      0;255;3;0;9;Client 0: 6;255;4;0;3;6E000100F90711240895DC01CB01FC01F999FECF06C0
      0;255;3;0;9;send: 0-0-6-6 s=255,c=4,t=3,pt=6,l=22,sg=0,st=ok:6E000100F90711240895DC01CB01FC01F999FECF06C0
      0;255;3;0;9;read: 6-6-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E000100F807
      0;255;3;0;9;Client 0: 6;255;4;0;3;6E000100F807990B08957AE0979F902D879F802D910D
      0;255;3;0;9;send: 0-0-6-6 s=255,c=4,t=3,pt=6,l=22,sg=0,st=ok:6E000100F807990B08957AE0979F902D879F802D910D
      0;255;3;0;9;read: 6-6-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E000100F707
      0;255;3;0;9;Client 0: 6;255;4;0;3;6E000100F7078D910190801921F441505040C8F7881B
      0;255;3;0;9;send: 0-0-6-6 s=255,c=4,t=3,pt=6,l=22,sg=0,st=ok:6E000100F7078D910190801921F441505040C8F7881B
      0;255;3;0;9;read: 6-6-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E000100F607
      0;255;3;0;9;Client 0: 6;255;4;0;3;6E000100F6071EF4909581959F4F0895FB01DC0104C0
      0;255;3;0;9;send: 0-0-6-6 s=255,c=4,t=3,pt=6,l=22,sg=0,st=ok:6E000100F6071EF4909581959F4F0895FB01DC0104C0
      0;255;3;0;9;read: 6-6-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E000100F507
      0;255;3;0;9;Client 0: 6;255;4;0;3;6E000100F50703C018D0820F911D219120532A30C8F3
      0;255;3;0;9;send: 0-0-6-6 s=255,c=4,t=3,pt=6,l=22,sg=0,st=ok:6E000100F50703C018D0820F911D219120532A30C8F3
      0;255;3;0;9;read: 6-6-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E000100F407
      0;255;3;0;9;Client 0: 6;255;4;0;3;6E000100F40710F02E30C8F32B3239F02D3231F46894
      0;255;3;0;9;send: 0-0-6-6 s=255,c=4,t=3,pt=6,l=22,sg=0,st=ok:6E000100F40710F02E30C8F32B3239F02D3231F46894
      0;255;3;0;9;read: 6-6-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E000100F307
      0;255;3;0;9;Client 0: 6;255;4;0;3;6E000100F307FC0188279927E89421912032E9F32930
      0;255;3;0;9;send: 0-0-6-6 s=255,c=4,t=3,pt=6,l=22,sg=0,st=ok:6E000100F307FC0188279927E89421912032E9F32930
      

      just for completeness my settings for burning the old bootloader:

      nano.name=Arduino Nano
      nano.upload.tool=avrdude
      nano.upload.protocol=arduino
      nano.bootloader.tool=avrdude
      nano.bootloader.unlock_bits=0x3F
      nano.bootloader.lock_bits=0x0F
      nano.build.f_cpu=16000000L
      nano.build.board=AVR_NANO
      nano.build.core=arduino
      nano.build.variant=eightanaloginputs
      nano.menu.cpu.MYSBLoldatmega328=ATmega328 MYSBootloader old
      nano.menu.cpu.MYSBLoldatmega328.upload.maximum_size=30720
      nano.menu.cpu.MYSBLoldatmega328.upload.maximum_data_size=2048
      nano.menu.cpu.MYSBLoldatmega328.upload.speed=115200
      nano.menu.cpu.MYSBLoldatmega328.bootloader.low_fuses=0xFF
      nano.menu.cpu.MYSBLoldatmega328.bootloader.high_fuses=0xDA
      nano.menu.cpu.MYSBLoldatmega328.bootloader.extended_fuses=0x05
      nano.menu.cpu.MYSBLoldatmega328.bootloader.file=MySensors/MYSBootloader.hex
      

      And to note something I noticed (but don't know if it's related): sometimes the MYSController loses it's connection to the gateway. Serial monitor is still printing values but nothing in MYSController. When I reconnect the Controller it is working again.

      edit: and is it normal that a sketch needs more than 20 min to upload? I mean the sketch is quite big (>70% of max), but it seems to be to long even with the old (for me faster) bootloader.

      edit2: one hour and about 24k messages (MsgID in MYSController) later my node is still updating...

      posted in Development
      Anduril
      Anduril
    • RE: Update every node?

      and thats the point where you thoink about OTA updates as a very handy tool...

      posted in Troubleshooting
      Anduril
      Anduril
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      @tekka I will test this asap (hopefully this weekend). One point for clearing EEPROM: do you know if the sketch also works on the ESP8266? Because I thought to have cleared the EEPROM and uploaded a sketch without wifi config, but it still connected to my wifi.

      posted in Development
      Anduril
      Anduril
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      @tekka I tried a few combinations: different positions (nearest ~20cm, farest ~5m with walls), radios (probably clones, but no blobs, nRF from mysensors store and others, also pa+lna for gateway) and different caps with no success. Still quite a lot of packages lost during transmision.
      I then reflashed the old bootloader again and it worked flawless for 5m and 20cm.

      posted in Development
      Anduril
      Anduril
    • RE: Status of pins during bootloader

      @Yveaux thats what I was thinking about. Thanks for confirming.

      posted in Hardware
      Anduril
      Anduril
    • Status of pins during bootloader

      Hi @all, specially @tekka,

      I have a project including a LED dot matrix display. I use the MYSbootloader to have a convenient way of updating firmware. Now I was on a try to increase the brightness of the LEDs and go beyond the stated current maximum. During operation thats no problem as I have a row multiplexing of 1/16. Only problem I see arising is when the bootloader starts. At this moment all my multiplexing pins are low, so only one row is lit up. Having the OE pin of my driver chip (74HC595) active low, this is also active and displays something. With higher current than rated, this might burn the LEDs and the complete display would be ruined.
      I thought of adding a pullup on the OE line, but that depends on the state of the pin during bootloader. If it is configured as output at standard, this will not work. If it's configured as input this might work.
      The other way would be to add a MOSFET or anything like that to disconnect the OE pin from my driver chip and than add a pullup resistor. But that is way more effort, so any tips is welcome.

      posted in Hardware
      Anduril
      Anduril
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      @tekka here the serial monitor while OTA upload with #define MY_DEBUG

      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=15,pt=0,l=2,sg=0,st=ok:
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=ok:0
      0;255;3;0;9;read: 3-3-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=15,pt=0,l=2,sg=0,st=fail:
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=15,pt=0,l=2,sg=0,st=fail:
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=2,pt=6,l=6,sg=0:6E0001005706
      0;255;3;0;9;Client 0: 3;255;4;0;3;6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;send: 0-0-3-3 s=255,c=4,t=3,pt=6,l=22,sg=0,st=fail:6E0001005706FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      0;255;3;0;9;read: 3-3-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=15,pt=0,l=2,sg=0,st=fail:
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read and forward: 3-3-255 s=255,c=3,t=7,pt=1,l=0,sg=0
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=8,pt=1,l=1,sg=0,st=fail:0
      0;255;3;0;9;read: 3-3-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      0;255;3;0;9;send: 0-0-3-3 s=255,c=3,t=15,pt=0,l=2,sg=0,st=fail:
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      0;255;3;0;9;read: 3-3-0 s=255,c=4,t=0,pt=6,l=10,sg=0:6E000100580648930102
      0;255;3;0;9;Client 0: 3;0;4;0;1;6E00010058068FD5
      0;255;3;0;9;send: 0-0-3-3 s=0,c=4,t=1,pt=6,l=8,sg=0,st=fail:6E00010058068FD5
      
      posted in Development
      Anduril
      Anduril
    • RE: How to connect I2C at nodeMCU

      I found out some part via google, but still some trouble. Maybe someone can help:
      I have the SDA and SCL connected to GPIO9 and GPIO10 of my nodeMCU (labeled SD2 and SD3). When uploading my normal ESP8266OTA sketch everything works fine and gateway is running. I added the Wire.begin(9,10) at the beginning of setup to set the pins used for I2C.

      void setup() {
        Wire.begin(9, 10);
        //sensor.begin();
        ArduinoOTA.onStart([]() {
          Serial.println("ArduinoOTA start");
        });
        ArduinoOTA.onEnd([]() {
          Serial.println("\nArduinoOTA end");
        });
        ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
          Serial.printf("OTA Progress: %u%%\r", (progress / (total / 100)));
        });
        ArduinoOTA.onError([](ota_error_t error) {
          Serial.printf("Error[%u]: ", error);
          if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
          else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
          else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
          else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
          else if (error == OTA_END_ERROR) Serial.println("End Failed");
        });
        ArduinoOTA.begin();
        Serial.println("Ready");
        Serial.print("IP address: ");
        Serial.println(WiFi.localIP());
      
        //    if (!bmp.begin())
        //    {
        //      Serial.println("Could not find a valid BMP085 sensor, check wiring!");
        //      while (1) {}
        //    }
        //metric = getConfig().isMetric;
      

      But as soon as I enable the sensor.begin() or bmp.begin() it's not working anymore. I get resets with the following message in serial monitor:

       ×Åü1¤ñþ0;255;3;0;9;Starting gateway (RNNGE-, 2.0.0-beta)
      0;255;3;0;9;Radio init successful.
      scandone
      state: 0 -> 2 (b0)
      state: 2 -> 3 (0)
      state: 3 -> 5 (10)
      add 0
      aid 5
      cnt 
      
      connected with WiFi, channel 1
      ip:192.168.38.19,mask:255.255.255.0,gw:192.168.38.1
      .IP: 192.168.38.19
      Ready
      IP address: 192.168.38.19
      ü!m!„þæÊõþ0;255;3;0;9;Starting gateway (RNNGE-, 2.0.0-beta)
      

      When using the BMP085test example sketch from the library I get

       ets Jan  8 2013,rst cause:4, boot mode:(3,7)
      
      wdt reset
      load 0x4010f000, len 1264, room 16 
      tail 0
      chksum 0x0f
      csum 0x0f
      ~ld
      

      Does anyone knows if that is a problem of incompatible library or any other hint how to solve?

      posted in Hardware
      Anduril
      Anduril
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      @tekka did some testing again. I don't have a repeater inbetween, but maybe they were to close to each other (~30cm).
      I repeated the tests a few times:
      when on my desk the new bootloader is significantly slower than the old one.
      When 2m away I don't see many messages arriving. Maybe my power suply used when not at my pc was not stable enough to give the current for sending with pa-lna. I will repeat the tests with a improved setup the next days.
      Can I give you specific information where the problem is? Maybe a special log or anything else to help find the problem?

      posted in Development
      Anduril
      Anduril
    • RE: Signing_Soft in dev branch - How to do?

      @Anticimex Thank you. Deactivating those sha libs made the code compile and work.

      posted in Development
      Anduril
      Anduril
    • RE: Signing_Soft in dev branch - How to do?

      @Anticimex I thought to be using only soft signing...

      #include <sha204_library.h>
      #include <sha204_lib_return_codes.h>
      #define MY_CORE_ONLY
      #include <MySensor.h>
      
      #if DOXYGEN
      #define LOCK_CONFIGURATION
      #define LOCK_DATA
      #define SKIP_KEY_STORAGE
      #define USER_KEY
      #define SKIP_UART_CONFIRMATION
      #define USE_SOFT_SIGNING
      #define STORE_SOFT_KEY
      #define USER_SOFT_KEY
      #define STORE_SOFT_SERIAL
      #define USER_SOFT_SERIAL
      #define STORE_AES_KEY
      #define USER_AES_KEY
      #endif
      
      //#define LOCK_CONFIGURATION
      
      //#define LOCK_DATA
      
      //#define SKIP_KEY_STORAGE
      
      //#define USER_KEY
      
      //#define SKIP_UART_CONFIRMATION
      
      #define USE_SOFT_SIGNING
      
      #define STORE_SOFT_KEY
      
      #define USER_SOFT_KEY
      
      #define STORE_SOFT_SERIAL
      
      #define USER_SOFT_SERIAL
      
      #define STORE_AES_KEY
      
      #define USER_AES_KEY
      
      #if defined(SKIP_UART_CONFIRMATION) && !defined(USER_KEY)
      #error You have to define USER_KEY for boards that does not have UART
      #endif
      
      #ifdef USER_KEY
      /** @brief The user-defined HMAC key to use for personalization */
      #define MY_HMAC_KEY 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
      /** @brief The data to store in key slot 0 */
      const uint8_t user_key_data[32] = {MY_HMAC_KEY};
      #endif
      
      #ifdef USER_SOFT_KEY
      

      I copied the header of the SecurityPersonalizer (just stripped the comments to make it shorter). Do I have activated atsh somewhere without noticing?

      posted in Development
      Anduril
      Anduril
    • RE: Signing_Soft in dev branch - How to do?

      @Anticimex Does this also work with a nodeMCU? I tried to personalize my ESP today and got an error:

      C:\Dropbox\Projekt-Micha\Arduino Sketch\libraries\sha204\sha204_library.cpp: In constructor 'atsha204Class::atsha204Class(uint8_t)':
      
      C:\Dropbox\Projekt-Micha\Arduino Sketch\libraries\sha204\sha204_library.cpp:16:18: error: cannot convert 'volatile uint32_t* {aka volatile unsigned int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in assignment
      
        device_port_DDR = portModeRegister(port);
      
                        ^
      
      C:\Dropbox\Projekt-Micha\Arduino Sketch\libraries\sha204\sha204_library.cpp:18:18: error: cannot convert 'volatile uint32_t* {aka volatile unsigned int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in assignment
      
        device_port_OUT = portOutputRegister(port);
      
                        ^
      
      C:\Dropbox\Projekt-Micha\Arduino Sketch\libraries\sha204\sha204_library.cpp:20:17: error: cannot convert 'volatile uint32_t* {aka volatile unsigned int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in assignment
      
        device_port_IN = portInputRegister(port);
      
                       ^
      
      Bibliothek sha204 im Ordner: C:\Dropbox\Projekt-Micha\Arduino Sketch\libraries\sha204 (legacy) wird verwendet
      Bibliothek MySensors in Version 2.0.0-beta im Ordner: C:\Dropbox\Projekt-Micha\Arduino Sketch\libraries\MySensors  wird verwendet
      Bibliothek EEPROM in Version 1.0 im Ordner: C:\Users\Mat\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.1.0\libraries\EEPROM  wird verwendet
      exit status 1
      Fehler beim Kompilieren.
      
      posted in Development
      Anduril
      Anduril
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      @tekka I only copied the standard fuses (no 1/8 divider) and I think it is running on 16Mhz. Might be good to try with different baudrate for the 8Mhz version.
      But still, do you know why the OTA transfer is slower by a factor of 3?
      The sketch for my current project is quite big and needs several minutes to transfer. With serial upload working this would be much faster, but I have to unplug the nano from the circuit to reach the usb port. So fast OTA upload would be best.

      posted in Development
      Anduril
      Anduril
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      When uploading standard BlinkWithoutDelay sketch I get this:

      C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -hardware "C:\Users\Mat\AppData\Local\Arduino15\packages" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -tools "C:\Users\Mat\AppData\Local\Arduino15\packages" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "C:\Users\Mat\Documents\Arduino\libraries" -fqbn=arduino:avr:nano:cpu=MYSBLatmega328 -ide-version=10607 -build-path "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "C:\Program Files (x86)\Arduino\examples\02.Digital\BlinkWithoutDelay\BlinkWithoutDelay.ino"
      C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -hardware "C:\Users\Mat\AppData\Local\Arduino15\packages" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -tools "C:\Users\Mat\AppData\Local\Arduino15\packages" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "C:\Users\Mat\Documents\Arduino\libraries" -fqbn=arduino:avr:nano:cpu=MYSBLatmega328 -ide-version=10607 -build-path "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "C:\Program Files (x86)\Arduino\examples\02.Digital\BlinkWithoutDelay\BlinkWithoutDelay.ino"
      WARNUNG: Kategorie '' in der Bibliothek UIPEthernet ist ungültig und wird auf 'Uncategorized' festgelegt
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\sketch\BlinkWithoutDelay.ino.cpp" -o "nul"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\sketch\BlinkWithoutDelay.ino.cpp" -o "nul"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\sketch\BlinkWithoutDelay.ino.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
      "C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino5/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\sketch\BlinkWithoutDelay.ino.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\sketch\BlinkWithoutDelay.ino.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -c -g -x assembler-with-cpp -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_pulse.S" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring_pulse.S.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\WInterrupts.c" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\WInterrupts.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\hooks.c" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\hooks.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring.c" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_analog.c" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring_analog.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_digital.c" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring_digital.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_pulse.c" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring_pulse.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\wiring_shift.c" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring_shift.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\CDC.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\CDC.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\HardwareSerial.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial0.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\HardwareSerial0.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial1.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\HardwareSerial1.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial2.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\HardwareSerial2.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial3.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\HardwareSerial3.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\IPAddress.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\IPAddress.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\PluggableUSB.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\PluggableUSB.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Print.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\Print.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Stream.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\Stream.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Tone.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\Tone.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\USBCore.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\USBCore.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\WMath.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\WMath.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\WString.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\WString.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\abi.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\abi.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\main.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\main.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\new.cpp" -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\new.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring_pulse.S.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\WInterrupts.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\hooks.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring_analog.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring_digital.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring_pulse.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\wiring_shift.c.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\CDC.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\HardwareSerial.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\HardwareSerial0.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\HardwareSerial1.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\HardwareSerial2.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\HardwareSerial3.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\IPAddress.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\PluggableUSB.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\Print.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\Stream.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\Tone.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\USBCore.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\WMath.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\WString.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\abi.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\main.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-ar" rcs  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\core.a" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\core\new.cpp.o"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -w -Os -Wl,--gc-sections -mmcu=atmega328p  -o "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp/BlinkWithoutDelay.ino.elf" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp\sketch\BlinkWithoutDelay.ino.cpp.o" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp/core\core.a" "-LC:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp" -lm
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp/BlinkWithoutDelay.ino.elf" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp/BlinkWithoutDelay.ino.eep"
      "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -R .eeprom  "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp/BlinkWithoutDelay.ino.elf" "C:\Users\Mat\AppData\Local\Temp\build85fe9d593c6c3a472b2a54cc5e88b608.tmp/BlinkWithoutDelay.ino.hex"
      
      Der Sketch verwendet 1.006 Bytes (3%) des Programmspeicherplatzes. Das Maximum sind 30.720 Bytes.
      Globale Variablen verwenden 15 Bytes (0%) des dynamischen Speichers, 2.033 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes.
      avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x4b
      avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x4b
      avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x4b
      avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x4b
      avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x4b
      avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x4b
      avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x4b
      avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x4b
      avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x4b
      avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x4b
      

      I noticed that the baudrate in my boards.txt was not set to 115200 as in your guide. I changed this and reburned the bootloader, still the same result.

      With the old bootloader flashing works the same way. When powered up the log is as normal:

      82	10.05.2016 21:11:11	RX	0 - Gateway	INTERNAL	C_INTERNAL	NO	I_GATEWAY_READY	Gateway startup complete.
      83	10.05.2016 21:11:12	RX	0 - Gateway	INTERNAL	C_INTERNAL	NO	I_VERSION	2.0.0-beta
      84	10.05.2016 21:11:28	RX	BROADCAST	INTERNAL	C_INTERNAL	NO	I_ID_REQUEST	
      85	10.05.2016 21:11:28	TX	BROADCAST	INTERNAL	C_INTERNAL	NO	I_ID_RESPONSE	3
      86	10.05.2016 21:11:28	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFFFFFF0101
      87	10.05.2016 21:11:30	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFFFFFF0101
      88	10.05.2016 21:11:32	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFFFFFF0101
      89	10.05.2016 21:11:34	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFFFFFF0101
      90	10.05.2016 21:11:36	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFFFFFF0101
      91	10.05.2016 21:11:37	TX	3	N/A	C_INTERNAL	NO	I_REBOOT	0
      92	10.05.2016 21:11:41	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFFFFFF0101
      93	10.05.2016 21:11:41	TX	3	N/A	C_STREAM	NO	ST_FIRMWARE_CONFIG_RESPONSE	0A0001005000D446
      94	10.05.2016 21:11:42	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004F00
      95	10.05.2016 21:11:42	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      96	10.05.2016 21:11:42	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004E00
      97	10.05.2016 21:11:42	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      98	10.05.2016 21:11:42	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004D00
      99	10.05.2016 21:11:42	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      
      [.....]
      
      250	10.05.2016 21:12:21	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001000200
      251	10.05.2016 21:12:21	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A00010002000C946E000C946E000C946E000C946E00
      252	10.05.2016 21:12:21	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001000100
      253	10.05.2016 21:12:21	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A00010001000C946E000C946E000C946E000C946E00
      254	10.05.2016 21:12:22	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001000000
      255	10.05.2016 21:12:22	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A00010000000C945C000C946E000C946E000C946E00
      256	10.05.2016 21:12:23	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	0A0001005000D4460101
      257	10.05.2016 21:12:23	TX	3	N/A	C_STREAM	NO	ST_FIRMWARE_CONFIG_RESPONSE	0A0001005000D446
      258	10.05.2016 21:12:43	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	0A0001005000D4460101
      259	10.05.2016 21:12:43	TX	3	N/A	C_STREAM	NO	ST_FIRMWARE_CONFIG_RESPONSE	0A0001005000D446
      

      with all messages transfered in about 40s (about 150 messages, ~3 times faster)

      Hope this helps to find the problem. If you need more information just let me know.

      posted in Development
      Anduril
      Anduril
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      (had to split because of too long posts not allowed)

      here the infos for troubleshooting:
      board.txt:

      ## -------------------------
      nano.menu.cpu.atmega328=ATmega328
      
      nano.menu.cpu.atmega328.upload.maximum_size=30720
      nano.menu.cpu.atmega328.upload.maximum_data_size=2048
      nano.menu.cpu.atmega328.upload.speed=57600
      
      nano.menu.cpu.atmega328.bootloader.low_fuses=0xFF
      nano.menu.cpu.atmega328.bootloader.high_fuses=0xDA
      nano.menu.cpu.atmega328.bootloader.extended_fuses=0x05
      nano.menu.cpu.atmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex
      
      nano.menu.cpu.atmega328.build.mcu=atmega328p
      
      ## Arduino Nano w/ ATmega328 MYSBootloader
      ## -------------------------
      nano.menu.cpu.MYSBLatmega328=ATmega328 MYSBootloader
      
      nano.menu.cpu.MYSBLatmega328.upload.maximum_size=30720
      nano.menu.cpu.MYSBLatmega328.upload.maximum_data_size=2048
      nano.menu.cpu.MYSBLatmega328.upload.speed=57600
      
      nano.menu.cpu.MYSBLatmega328.bootloader.low_fuses=0xFF
      nano.menu.cpu.MYSBLatmega328.bootloader.high_fuses=0xDA
      nano.menu.cpu.MYSBLatmega328.bootloader.extended_fuses=0x05
      nano.menu.cpu.MYSBLatmega328.bootloader.file=MySensors/MYSBootloaderV13pre.hex
      
      nano.menu.cpu.MYSBLatmega328.build.mcu=atmega328p
      
      ## Arduino Nano w/ ATmega328 MYSBootloaderold
      ## -------------------------
      nano.menu.cpu.MYSBLoldatmega328=ATmega328 MYSBootloader old
      
      nano.menu.cpu.MYSBLoldatmega328.upload.maximum_size=30720
      nano.menu.cpu.MYSBLoldatmega328.upload.maximum_data_size=2048
      nano.menu.cpu.MYSBLoldatmega328.upload.speed=57600
      
      nano.menu.cpu.MYSBLoldatmega328.bootloader.low_fuses=0xFF
      nano.menu.cpu.MYSBLoldatmega328.bootloader.high_fuses=0xDA
      nano.menu.cpu.MYSBLoldatmega328.bootloader.extended_fuses=0x05
      nano.menu.cpu.MYSBLoldatmega328.bootloader.file=MySensors/MYSBootloader.hex
      
      nano.menu.cpu.MYSBLoldatmega328.build.mcu=atmega328p
      

      I copied the original entry for the Nano 328p and only changed bootloader files to old and new MYS Bootloader.

      During flashing there is no debug output, only "Der Bootloader wurde gebrannt" ("burning bootloader finished) when done.
      When powering node up I get these messages:

      1	10.05.2016 21:00:36	RX	0 - Gateway	INTERNAL	C_INTERNAL	NO	I_GATEWAY_READY	Gateway startup complete.
      2	10.05.2016 21:00:37	RX	0 - Gateway	INTERNAL	C_INTERNAL	NO	I_VERSION	2.0.0-beta
      3	10.05.2016 21:00:51	RX	BROADCAST	INTERNAL	C_INTERNAL	NO	I_ID_REQUEST	
      4	10.05.2016 21:00:51	TX	BROADCAST	INTERNAL	C_INTERNAL	NO	I_ID_RESPONSE	3
      5	10.05.2016 21:00:55	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFF2CC30102
      6	10.05.2016 21:00:58	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFF2CC30102
      7	10.05.2016 21:01:01	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFF2CC30102
      8	10.05.2016 21:01:09	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFF2CC30102
      9	10.05.2016 21:01:13	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFF2CC30102
      10	10.05.2016 21:01:16	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFF2CC30102
      11	10.05.2016 21:01:20	TX	3	N/A	C_INTERNAL	NO	I_REBOOT	0
      12	10.05.2016 21:01:27	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFFFFFF2CC30102
      13	10.05.2016 21:01:27	TX	3	N/A	C_STREAM	NO	ST_FIRMWARE_CONFIG_RESPONSE	0A0001005000D446
      14	10.05.2016 21:01:28	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004F00
      15	10.05.2016 21:01:28	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      16	10.05.2016 21:01:28	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004E00
      17	10.05.2016 21:01:28	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      18	10.05.2016 21:01:31	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004D00
      19	10.05.2016 21:01:31	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      20	10.05.2016 21:01:35	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004C00
      21	10.05.2016 21:01:35	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004C00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      22	10.05.2016 21:01:35	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004B00
      23	10.05.2016 21:01:35	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      24	10.05.2016 21:01:36	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004A00
      25	10.05.2016 21:01:36	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004A00FFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      26	10.05.2016 21:01:39	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004900
      27	10.05.2016 21:01:39	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A00010049008B002097E1F30E940000F9CF0895F894
      28	10.05.2016 21:01:43	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004800
      29	10.05.2016 21:01:43	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A00010048006B010E943E020E947000C0E0D0E00E94
      30	10.05.2016 21:01:43	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004700
      31	10.05.2016 21:01:43	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A00010047000F90DF91CF911F910F91089508950E94
      32	10.05.2016 21:01:47	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004600
      33	10.05.2016 21:01:47	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004600611103C01095812301C0812B8C939FBF
      34	10.05.2016 21:01:50	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004500
      35	10.05.2016 21:01:50	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004500FF1FEC55FF4FA591B4919FB7F8948C91
      36	10.05.2016 21:01:50	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004400
      37	10.05.2016 21:01:50	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A000100440021F069830E94A6016981E02FF0E0EE0F
      38	10.05.2016 21:01:54	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004300
      39	10.05.2016 21:01:54	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A00010043001491F901E057FF4F04910023C9F08823
      40	10.05.2016 21:01:57	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004200
      41	10.05.2016 21:01:57	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A000100420030E0F901E859FF4F8491F901E458FF4F
      42	10.05.2016 21:02:01	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004100
      43	10.05.2016 21:02:01	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A00010041000F931F93CF93DF931F92CDB7DEB7282F
      44	10.05.2016 21:02:05	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001004000
      45	10.05.2016 21:02:05	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001004000F8948C91822B8C939FBFDF91CF910895
      46	10.05.2016 21:02:05	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003F00
      47	10.05.2016 21:02:05	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001003F00322F309583238C938881822B888304C0
      48	10.05.2016 21:02:08	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003E00
      49	10.05.2016 21:02:08	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001003E008C93888182230AC0623051F4F8948C91
      50	10.05.2016 21:02:12	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003D00
      51	10.05.2016 21:02:12	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001003D00D4919FB7611108C0F8948C9120958223
      52	10.05.2016 21:02:12	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003C00
      53	10.05.2016 21:02:12	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001003C00E255FF4FA591B4918C559F4FFC01C591
      54	10.05.2016 21:02:13	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003B00
      55	10.05.2016 21:02:13	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001003B00FF4F8491882349F190E0880F991FFC01
      56	10.05.2016 21:02:16	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003A00
      57	10.05.2016 21:02:16	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001003A00DF9390E0FC01E458FF4F2491FC01E057
      58	10.05.2016 21:02:16	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003900
      59	10.05.2016 21:02:16	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A000100390003C08091B0008F7D8093B0000895CF93
      60	10.05.2016 21:02:17	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003800
      61	10.05.2016 21:02:17	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A000100380002C084B58F7D84BD08958091B0008F77
      62	10.05.2016 21:02:17	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003700
      63	10.05.2016 21:02:17	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001003700809180008F7780938000089584B58F77
      64	10.05.2016 21:02:21	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003600
      65	10.05.2016 21:02:21	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A00010036008830B9F08430D1F4809180008F7D03C0
      66	10.05.2016 21:02:24	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003500
      67	10.05.2016 21:02:24	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A000100350028F4813099F08230A1F008958730A9F0
      68	10.05.2016 21:02:24	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003400
      69	10.05.2016 21:02:24	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A00010034008081806880831092C1000895833081F0
      70	10.05.2016 21:02:28	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003300
      71	10.05.2016 21:02:28	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A00010033008460808380818260808380818E7F8083
      72	10.05.2016 21:02:29	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003200
      73	10.05.2016 21:02:29	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001003200E0EBF0E0808181608083EAE7F0E08081
      74	10.05.2016 21:02:30	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003100
      75	10.05.2016 21:02:30	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001003100808181608083E1EBF0E0808184608083
      76	10.05.2016 21:02:31	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001003000
      77	10.05.2016 21:02:31	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001003000808182608083808181608083E0E8F0E0
      78	10.05.2016 21:02:31	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001002F00
      79	10.05.2016 21:02:31	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001002F00EEE6F0E0808181608083E1E8F0E01082
      80	10.05.2016 21:02:35	RX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_REQUEST	0A0001002E00
      81	10.05.2016 21:02:35	TX	3	INTERNAL	C_STREAM	NO	ST_FIRMWARE_RESPONSE	0A0001002E00816084BD85B5826085BD85B5816085BD
      

      which seem to be working OTA update, but not very fast (about 75 messages in 1 minute). Here to MYSController debug of that period:

      10.05.2016 21:01:16	RX	3;255;4;0;0;FFFFFFFFFFFF2CC30102
      10.05.2016 21:01:16	DEBUG	Undefined firmware/type for node=3
      10.05.2016 21:01:16	INFO	BL version=258
      10.05.2016 21:01:16	INFO	No FW assigned
      10.05.2016 21:01:20	TX	3;0;3;0;13;0
      10.05.2016 21:01:20	INFO	FW "Blink" assigned to node 3
      10.05.2016 21:01:27	RX	3;255;4;0;0;FFFFFFFFFFFF2CC30102
      10.05.2016 21:01:27	CHILD	New child discovered, node id=3, child id=internal
      10.05.2016 21:01:27	DEBUG	Undefined firmware/type for node=3
      10.05.2016 21:01:27	INFO	BL version=258
      10.05.2016 21:01:27	INFO	Send FW info to node 3: type=A, version=1, blocks=0x0050, CRC=0x46D4
      10.05.2016 21:01:27	TX	3;0;4;0;1;0A0001005000D446
      10.05.2016 21:01:28	RX	3;255;4;0;2;0A0001004F00
      10.05.2016 21:01:28	DEBUG	FW update started, node id = 3
      10.05.2016 21:01:28	TX	3;255;4;0;3;0A0001004F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      10.05.2016 21:01:28	RX	3;255;4;0;2;0A0001004E00
      10.05.2016 21:01:28	TX	3;255;4;0;3;0A0001004E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      10.05.2016 21:01:31	RX	3;255;4;0;2;0A0001004D00
      10.05.2016 21:01:31	TX	3;255;4;0;3;0A0001004D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      10.05.2016 21:01:35	RX	3;255;4;0;2;0A0001004C00
      10.05.2016 21:01:35	TX	3;255;4;0;3;0A0001004C00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      10.05.2016 21:01:35	RX	3;255;4;0;2;0A0001004B00
      10.05.2016 21:01:35	TX	3;255;4;0;3;0A0001004B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      10.05.2016 21:01:36	RX	3;255;4;0;2;0A0001004A00
      10.05.2016 21:01:36	TX	3;255;4;0;3;0A0001004A00FFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      10.05.2016 21:01:39	RX	3;255;4;0;2;0A0001004900
      10.05.2016 21:01:39	TX	3;255;4;0;3;0A00010049008B002097E1F30E940000F9CF0895F894
      10.05.2016 21:01:43	RX	3;255;4;0;2;0A0001004800
      10.05.2016 21:01:43	TX	3;255;4;0;3;0A00010048006B010E943E020E947000C0E0D0E00E94
      10.05.2016 21:01:43	RX	3;255;4;0;2;0A0001004700
      10.05.2016 21:01:43	TX	3;255;4;0;3;0A00010047000F90DF91CF911F910F91089508950E94
      10.05.2016 21:01:47	RX	3;255;4;0;2;0A0001004600
      10.05.2016 21:01:47	TX	3;255;4;0;3;0A0001004600611103C01095812301C0812B8C939FBF
      10.05.2016 21:01:50	RX	3;255;4;0;2;0A0001004500
      10.05.2016 21:01:50	TX	3;255;4;0;3;0A0001004500FF1FEC55FF4FA591B4919FB7F8948C91
      10.05.2016 21:01:50	RX	3;255;4;0;2;0A0001004400
      10.05.2016 21:01:50	TX	3;255;4;0;3;0A000100440021F069830E94A6016981E02FF0E0EE0F
      10.05.2016 21:01:54	RX	3;255;4;0;2;0A0001004300
      10.05.2016 21:01:54	TX	3;255;4;0;3;0A00010043001491F901E057FF4F04910023C9F08823
      10.05.2016 21:01:57	RX	3;255;4;0;2;0A0001004200
      10.05.2016 21:01:57	TX	3;255;4;0;3;0A000100420030E0F901E859FF4F8491F901E458FF4F
      10.05.2016 21:02:01	RX	3;255;4;0;2;0A0001004100
      10.05.2016 21:02:01	TX	3;255;4;0;3;0A00010041000F931F93CF93DF931F92CDB7DEB7282F
      10.05.2016 21:02:05	RX	3;255;4;0;2;0A0001004000
      10.05.2016 21:02:05	TX	3;255;4;0;3;0A0001004000F8948C91822B8C939FBFDF91CF910895
      10.05.2016 21:02:05	RX	3;255;4;0;2;0A0001003F00
      10.05.2016 21:02:05	TX	3;255;4;0;3;0A0001003F00322F309583238C938881822B888304C0
      10.05.2016 21:02:08	RX	3;255;4;0;2;0A0001003E00
      10.05.2016 21:02:08	TX	3;255;4;0;3;0A0001003E008C93888182230AC0623051F4F8948C91
      10.05.2016 21:02:12	RX	3;255;4;0;2;0A0001003D00
      10.05.2016 21:02:12	TX	3;255;4;0;3;0A0001003D00D4919FB7611108C0F8948C9120958223
      10.05.2016 21:02:12	RX	3;255;4;0;2;0A0001003C00
      10.05.2016 21:02:12	TX	3;255;4;0;3;0A0001003C00E255FF4FA591B4918C559F4FFC01C591
      10.05.2016 21:02:13	RX	3;255;4;0;2;0A0001003B00
      10.05.2016 21:02:13	TX	3;255;4;0;3;0A0001003B00FF4F8491882349F190E0880F991FFC01
      10.05.2016 21:02:16	RX	3;255;4;0;2;0A0001003A00
      10.05.2016 21:02:16	TX	3;255;4;0;3;0A0001003A00DF9390E0FC01E458FF4F2491FC01E057
      10.05.2016 21:02:16	RX	3;255;4;0;2;0A0001003900
      10.05.2016 21:02:16	TX	3;255;4;0;3;0A000100390003C08091B0008F7D8093B0000895CF93
      10.05.2016 21:02:17	RX	3;255;4;0;2;0A0001003800
      10.05.2016 21:02:17	TX	3;255;4;0;3;0A000100380002C084B58F7D84BD08958091B0008F77
      10.05.2016 21:02:17	RX	3;255;4;0;2;0A0001003700
      10.05.2016 21:02:17	TX	3;255;4;0;3;0A0001003700809180008F7780938000089584B58F77
      10.05.2016 21:02:21	RX	3;255;4;0;2;0A0001003600
      10.05.2016 21:02:21	TX	3;255;4;0;3;0A00010036008830B9F08430D1F4809180008F7D03C0
      10.05.2016 21:02:24	RX	3;255;4;0;2;0A0001003500
      10.05.2016 21:02:24	TX	3;255;4;0;3;0A000100350028F4813099F08230A1F008958730A9F0
      10.05.2016 21:02:24	RX	3;255;4;0;2;0A0001003400
      10.05.2016 21:02:24	TX	3;255;4;0;3;0A00010034008081806880831092C1000895833081F0
      10.05.2016 21:02:28	RX	3;255;4;0;2;0A0001003300
      10.05.2016 21:02:28	TX	3;255;4;0;3;0A00010033008460808380818260808380818E7F8083
      10.05.2016 21:02:29	RX	3;255;4;0;2;0A0001003200
      10.05.2016 21:02:29	TX	3;255;4;0;3;0A0001003200E0EBF0E0808181608083EAE7F0E08081
      10.05.2016 21:02:30	RX	3;255;4;0;2;0A0001003100
      10.05.2016 21:02:30	TX	3;255;4;0;3;0A0001003100808181608083E1EBF0E0808184608083
      10.05.2016 21:02:31	RX	3;255;4;0;2;0A0001003000
      10.05.2016 21:02:31	TX	3;255;4;0;3;0A0001003000808182608083808181608083E0E8F0E0
      10.05.2016 21:02:31	RX	3;255;4;0;2;0A0001002F00
      10.05.2016 21:02:31	TX	3;255;4;0;3;0A0001002F00EEE6F0E0808181608083E1E8F0E01082
      10.05.2016 21:02:35	RX	3;255;4;0;2;0A0001002E00
      10.05.2016 21:02:35	TX	3;255;4;0;3;0A0001002E00816084BD85B5826085BD85B5816085BD
      
      posted in Development
      Anduril
      Anduril