Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. Adafruit RFM69 Bonnet not working

Adafruit RFM69 Bonnet not working

Scheduled Pinned Locked Moved Troubleshooting
14 Posts 7 Posters 149 Views 6 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P paulsp

    I have an Adafruit RFM69 Bonnet attached to a Raspberry PI 0. The device works correctly with Adafruit's sample python code, but the mysgw.cpp Linux example from version 2.3.4 or the current development branch has the issues described below.

    Issues:

    • The sanity check would never succeed.
      DEBUG !RFM69:INIT:SANCHK FAIL
      One resolution I found:
      Comment out the code that prevented toggling the CS_PIN
    pi@raspberrypi0w-1:~/github/MySensors $ git diff --patch
    diff --git a/hal/transport/RFM69/driver/new/RFM69_new.cpp b/hal/transport/RFM69/driver/new/RFM69_new.cpp
    index cf4f0f02..f374f06d 100644
    --- a/hal/transport/RFM69/driver/new/RFM69_new.cpp
    +++ b/hal/transport/RFM69/driver/new/RFM69_new.cpp
    @@ -52,11 +52,11 @@ uint8_t RFM69_spi_txbuff[RFM69_MAX_PACKET_LEN + 1];
     
     LOCAL void RFM69_csn(const bool level)
     {
    -#if defined(__linux__)
    -       (void)level;
    -#else
    +//#if defined(__linux__)
    +//     (void)level;
    +//#else
            hwDigitalWrite(MY_RFM69_CS_PIN, level);
    -#endif
    +//#endif
     }
     
     LOCAL void RFM69_prepareSPITransaction(void)
    @@ -207,10 +207,10 @@ LOCAL bool RFM69_initialise(const uint32_t frequencyHz)
            RFM69.ATCtargetRSSI = RFM69_RSSItoInternal(MY_RFM69_ATC_TARGET_RSSI_DBM);
     
            // SPI init
    -#if !defined(__linux__)
    +//#if !defined(__linux__)
            hwDigitalWrite(MY_RFM69_CS_PIN, HIGH);
            hwPinMode(MY_RFM69_CS_PIN, OUTPUT);
    -#endif
    +//#endif
            RFM69_SPI.begin();
            (void)RFM69_setRadioMode(RFM69_RADIO_MODE_STDBY);
            // set configuration, encryption is disabled
    
    
    • Message send fails
    pi@raspberrypi0w-1:~/github/MySensors $ sudo bin/mysgw
    Feb 24 22:34:12 INFO  Starting gateway...
    Feb 24 22:34:12 INFO  Protocol version - 2.4.0-alpha
    Feb 24 22:34:12 DEBUG MCO:BGN:INIT GW,CP=RPNGL---,FQ=NA,REL=0,VER=2.4.0-alpha
    Feb 24 22:34:12 DEBUG TSF:LRT:OK
    Feb 24 22:34:12 DEBUG TSM:INIT
    Feb 24 22:34:12 DEBUG TSF:WUR:MS=0
    Feb 24 22:34:12 DEBUG RFM69:INIT
    Feb 24 22:34:12 DEBUG RFM69:INIT:PIN,CS=26,IQP=15,IQN=22,RST=22
    Feb 24 22:34:13 DEBUG RFM69:PTX:LEVEL=5 dBm
    Feb 24 22:34:13 DEBUG RFM69:DUMP:Registers Address | HEX value 
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x01 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x02 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x03 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x04 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x05 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x06 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x07 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x08 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x09 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0a Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0b Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0c Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0d Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0e Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0f Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x10 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x11 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x12 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x13 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x14 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x15 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x16 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x17 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x18 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x19 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1a Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1b Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1c Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1d Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1e Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1f Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x20 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x21 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x22 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x23 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x24 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x25 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x26 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x27 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x28 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x29 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2a Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2b Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2c Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2d Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2e Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2f Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x30 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x31 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x32 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x33 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x34 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x35 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x36 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x37 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x38 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x39 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3a Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3b Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3c Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3d Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3e Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3f Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x40 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x41 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x42 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x43 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x44 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x45 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x46 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x47 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x48 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x49 Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4a Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4b Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4c Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4d Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4e Value=0x00
    Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4f Value=0x00
    Feb 24 22:34:13 DEBUG !RFM69:INIT:SANCHK FAIL
    Feb 24 22:34:13 DEBUG !TSM:INIT:TSP FAIL
    Feb 24 22:34:13 DEBUG TSM:FAIL:CNT=1
    Feb 24 22:34:13 DEBUG TSM:FAIL:DIS
    Feb 24 22:34:13 DEBUG TSF:TDI:TSL
    Feb 24 22:34:13 DEBUG RFM69:RSL
    Feb 24 22:34:23 DEBUG TSM:FAIL:RE-INIT
    Feb 24 22:34:23 DEBUG TSM:INIT
    Feb 24 22:34:23 DEBUG RFM69:INIT
    Feb 24 22:34:23 DEBUG RFM69:INIT:PIN,CS=26,IQP=15,IQN=22,RST=22
    Feb 24 22:34:23 DEBUG RFM69:PTX:LEVEL=5 dBm
    Feb 24 22:34:23 DEBUG RFM69:DUMP:Registers Address | HEX value 
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x01 Value=0x04
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x02 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x03 Value=0x02
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x04 Value=0x40
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x05 Value=0x03
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x06 Value=0x33
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x07 Value=0xd9
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x08 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x09 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0a Value=0x41
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0b Value=0x40
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0c Value=0x02
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0d Value=0x92
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0e Value=0xf5
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0f Value=0x20
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x10 Value=0x24
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x11 Value=0x97
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x12 Value=0x09
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x13 Value=0x1a
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x14 Value=0x40
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x15 Value=0xb0
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x16 Value=0x7b
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x17 Value=0x9b
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x18 Value=0x88
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x19 Value=0xe2
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1a Value=0xe2
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1b Value=0x40
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1c Value=0x80
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1d Value=0x06
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1e Value=0x10
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1f Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x20 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x21 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x22 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x23 Value=0x02
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x24 Value=0xff
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x25 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x26 Value=0x07
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x27 Value=0x80
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x28 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x29 Value=0xe4
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2a Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2b Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2c Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2d Value=0x03
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2e Value=0x88
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2f Value=0x2d
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x30 Value=0x64
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x31 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x32 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x33 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x34 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x35 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x36 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x37 Value=0xd4
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x38 Value=0x40
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x39 Value=0xff
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3a Value=0xff
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3b Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3c Value=0x05
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3d Value=0x10
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3e Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3f Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x40 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x41 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x42 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x43 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x44 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x45 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x46 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x47 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x48 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x49 Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4a Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4b Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4c Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4d Value=0x00
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4e Value=0x01
    Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4f Value=0x00
    Feb 24 22:34:23 DEBUG TSM:INIT:TSP OK
    Feb 24 22:34:23 DEBUG TSM:INIT:GW MODE
    Feb 24 22:34:23 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
    Feb 24 22:34:23 DEBUG MCO:REG:NOT NEEDED
    Feb 24 22:34:23 DEBUG MCO:BGN:STP
    Feb 24 22:34:23 DEBUG MCO:BGN:INIT OK,TSP=1
    Feb 24 22:34:23 DEBUG GWT:RMQ:CONNECTING...
    Feb 24 22:34:23 DEBUG connected to 127.0.0.1
    Feb 24 22:34:23 DEBUG GWT:RMQ:OK
    Feb 24 22:34:23 DEBUG GWT:TPS:TOPIC=mygateway1-out/0/255/0/0/18,MSG SENT
    Feb 24 22:34:23 DEBUG TSM:READY:NWD REQ
    Feb 24 22:34:23 DEBUG RFM69:SWR:SEND,TO=255,SEQ=0,RETRY=0
    Feb 24 22:34:23 DEBUG RFM69:CSMA:RSSI=-106
    Feb 24 22:34:23 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
    
    • Does not respond to an RFM69 running the RFM69_RFM95_ATC_SignalReport example. Below is the output from the application running on an Adafruit M0 Express Feather and an Adafruit RFM69HW Feather
    4249676 TSM:FAIL:RE-INIT
    4249676 TSM:INIT
    4250933 THA:INIT
    4250933 RFM69:INIT
    4250938 RFM69:INIT:PIN,CS=10,IQP=6,IQN=6,RST=11
    4250939 RFM69:PTX:LEVEL=5 dBm
    4250940 TSM:INIT:TSP OK
    4250940 !TSF:SID:FAIL,ID=0
    4250940 TSM:FAIL:CNT=7
    4250940 TSM:FAIL:DIS
    4250940 TSF:TDI:TSL
    4250940 RFM69:RSL
    

    Below is the how mysgw was build

    ./configure --mi-is-rfm69hw --my-transport=rfm69 --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-rfm69-cs-pin=26 --my-rfm69-irq-pin=15 --extra-cxxflags="-DMY_DEBUG_VERBOSE_RFM69 -DMY_DEBUG_VERBOSE_RFM69_REGISTERS -DMY_RFM69_RST_PIN=22" --my-debug=enable
    

    Any help is appreciated.

    mfalkviddM Offline
    mfalkviddM Offline
    mfalkvidd
    Mod
    wrote on last edited by
    #2

    Welcome to the forum @paulsp

    The log parser can help understanding the log output.

    Your node fails to initialize because it thinks it has been assigned node id 0 (which is reserved for the gateway). Run the MySensors cleareeprom sketch and then upload your existing sketch again.

    P 1 Reply Last reply
    0
    • mfalkviddM mfalkvidd

      Welcome to the forum @paulsp

      The log parser can help understanding the log output.

      Your node fails to initialize because it thinks it has been assigned node id 0 (which is reserved for the gateway). Run the MySensors cleareeprom sketch and then upload your existing sketch again.

      P Offline
      P Offline
      paulsp
      wrote on last edited by
      #3

      @mfalkvidd Running the cleareeprom sketch on the M0 Express did not work.

      1385 MCO:BGN:INIT NODE,CP=RPNNS---,FQ=48,REL=255,VER=2.3.2
      6370 TSM:INIT
      8022 TSF:WUR:MS=0
      8022 THA:INIT
      8022 RFM69:INIT
      8027 RFM69:INIT:PIN,CS=10,IQP=6,IQN=6,RST=11
      8029 RFM69:PTX:LEVEL=5 dBm
      8029 TSM:INIT:TSP OK
      8029 !TSF:SID:FAIL,ID=0
      8029 TSM:FAIL:CNT=1
      8029 TSM:FAIL:DIS
      8029 TSF:TDI:TSL
      8029 RFM69:RSL
      18030 TSM:FAIL:RE-INIT
      18030 TSM:INIT
      19367 THA:INIT
      19367 RFM69:INIT
      19372 RFM69:INIT:PIN,CS=10,IQP=6,IQN=6,RST=11
      19373 RFM69:PTX:LEVEL=5 dBm
      19373 TSM:INIT:TSP OK
      19373 !TSF:SID:FAIL,ID=0
      19374 TSM:FAIL:CNT=2
      19374 TSM:FAIL:DIS
      19374 TSF:TDI:TSL
      19374 RFM69:RSL
      29375 TSM:FAIL:RE-INIT
      

      How can I determine the gateway running the PI is receiving a request from the M0 and then replying to the M0?

      mfalkviddM 1 Reply Last reply
      0
      • P paulsp

        @mfalkvidd Running the cleareeprom sketch on the M0 Express did not work.

        1385 MCO:BGN:INIT NODE,CP=RPNNS---,FQ=48,REL=255,VER=2.3.2
        6370 TSM:INIT
        8022 TSF:WUR:MS=0
        8022 THA:INIT
        8022 RFM69:INIT
        8027 RFM69:INIT:PIN,CS=10,IQP=6,IQN=6,RST=11
        8029 RFM69:PTX:LEVEL=5 dBm
        8029 TSM:INIT:TSP OK
        8029 !TSF:SID:FAIL,ID=0
        8029 TSM:FAIL:CNT=1
        8029 TSM:FAIL:DIS
        8029 TSF:TDI:TSL
        8029 RFM69:RSL
        18030 TSM:FAIL:RE-INIT
        18030 TSM:INIT
        19367 THA:INIT
        19367 RFM69:INIT
        19372 RFM69:INIT:PIN,CS=10,IQP=6,IQN=6,RST=11
        19373 RFM69:PTX:LEVEL=5 dBm
        19373 TSM:INIT:TSP OK
        19373 !TSF:SID:FAIL,ID=0
        19374 TSM:FAIL:CNT=2
        19374 TSM:FAIL:DIS
        19374 TSF:TDI:TSL
        19374 RFM69:RSL
        29375 TSM:FAIL:RE-INIT
        

        How can I determine the gateway running the PI is receiving a request from the M0 and then replying to the M0?

        mfalkviddM Offline
        mfalkviddM Offline
        mfalkvidd
        Mod
        wrote on last edited by mfalkvidd
        #4

        @paulsp said in Adafruit RFM69 Bonnet not working:

        How can I determine the gateway running the PI is receiving a request from the M0 and then replying to the M0?

        As long as the M0 thinks it has Id 0, it will not communicate.

        Could you post the sketch for the M0?

        If the MySensors cleareeprom sketch did not work, it seems like the eeprom in the M0 is broken. Could you share the output from the MySensors cleareeprom run? It should look like this:

        Started clearing. Please wait...
        Clearing done.
        
        1 Reply Last reply
        0
        • P Offline
          P Offline
          paulsp
          wrote on last edited by
          #5

          Below is the atc_signalsreport sketch modified to support the pin number and Serial configuration of the M0. I also include the ClearEepromConfig sketch modified to display the value of EEPROM_LOCAL_CONFIG_ADDRESS
          Output of the sketch

          Started clearing. Please wait...
          413
          Clearing done.
          

          Modified atc_signalsreport 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.
           *
           *******************************
           *
           * REVISION HISTORY
           * Version 1.0 - tekka
           *
           * DESCRIPTION
           * ATC mode settings and signal report functions, on RFM69 and RFM95 nodes
           *
           */
          #define MY_SERIALDEVICE Serial
          
          // Enable debug prints
          #define MY_DEBUG
          #define MY_DEBUG_VERBOSE_TRANSPORT
          #define MY_DEBUG_VERBOSE_TRANSPORT_HAL
          #define MY_DEBUG_VERBOSE_RFM69
          
          // Enable and select radio type attached
          
          // RFM69
          #define MY_RADIO_RFM69
          #define MY_RFM69_NEW_DRIVER   // ATC on RFM69 works only with the new driver (not compatible with old=default driver)
          #define MY_RFM69_ATC_TARGET_RSSI_DBM (-70)  // target RSSI -70dBm
          #define MY_RFM69_MAX_POWER_LEVEL_DBM (10)   // max. TX power 10dBm = 10mW
          #define MY_RFM69_CS_PIN 10
          #define MY_RFM69_IRQ_PIN 6
          #define MY_RFM69_RST_PIN 11
          
          // RFM95
          //#define MY_RADIO_RFM95
          //#define MY_RFM95_ATC_TARGET_RSSI_DBM (-70)  // target RSSI -70dBm
          //#define MY_RFM95_MAX_POWER_LEVEL_DBM (10)   // max. TX power 10dBm = 10mW
          
          #include <MySensors.h>
          
          // ID of the sensor child
          #define CHILD_ID_UPLINK_QUALITY (0)
          #define CHILD_ID_TX_LEVEL       (1)
          #define CHILD_ID_TX_PERCENT     (2)
          #define CHILD_ID_TX_RSSI        (3)
          #define CHILD_ID_RX_RSSI        (4)
          #define CHILD_ID_TX_SNR         (5)
          #define CHILD_ID_RX_SNR         (6)
          
          
          // Initialize general message
          MyMessage msgTxRSSI(CHILD_ID_TX_RSSI, V_CUSTOM);
          MyMessage msgRxRSSI(CHILD_ID_RX_RSSI, V_CUSTOM);
          MyMessage msgTxSNR(CHILD_ID_TX_SNR, V_CUSTOM);
          MyMessage msgRxSNR(CHILD_ID_RX_SNR, V_CUSTOM);
          MyMessage msgTxLevel(CHILD_ID_TX_LEVEL, V_CUSTOM);
          MyMessage msgTxPercent(CHILD_ID_TX_PERCENT, V_CUSTOM);
          MyMessage msgUplinkQuality(CHILD_ID_UPLINK_QUALITY, V_CUSTOM);
          
          void setup()
          {
          }
          
          
          void presentation()
          {
            // Send the sketch version information to the gateway and controller
            sendSketchInfo("ATC", "1.0");
          
            // Register all sensors to gw (they will be created as child devices)
            present(CHILD_ID_UPLINK_QUALITY, S_CUSTOM, "UPLINK QUALITY RSSI");
            present(CHILD_ID_TX_LEVEL, S_CUSTOM, "TX LEVEL DBM");
            present(CHILD_ID_TX_PERCENT, S_CUSTOM, "TX LEVEL PERCENT");
            present(CHILD_ID_TX_RSSI, S_CUSTOM, "TX RSSI");
            present(CHILD_ID_RX_RSSI, S_CUSTOM, "RX RSSI");
            present(CHILD_ID_TX_SNR, S_CUSTOM, "TX SNR");
            present(CHILD_ID_RX_SNR, S_CUSTOM, "RX SNR");
          }
          
          void loop()
          {
            // send messages to GW
            send(msgUplinkQuality.set(transportGetSignalReport(SR_UPLINK_QUALITY)));
            send(msgTxLevel.set(transportGetSignalReport(SR_TX_POWER_LEVEL)));
            send(msgTxPercent.set(transportGetSignalReport(SR_TX_POWER_PERCENT)));
            // retrieve RSSI / SNR reports from incoming ACK
            send(msgTxRSSI.set(transportGetSignalReport(SR_TX_RSSI)));
            send(msgRxRSSI.set(transportGetSignalReport(SR_RX_RSSI)));
            send(msgTxSNR.set(transportGetSignalReport(SR_TX_SNR)));
            send(msgRxSNR.set(transportGetSignalReport(SR_RX_SNR)));
            // wait a bit
            wait(5000);
          }
          

          ClearEepromConfig 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.
           *
           *******************************
           *
           * DESCRIPTION
           *
           * This sketch clears radioId, relayId and other routing information in EEPROM back to factory default
           *
           */
          // load core modules only
          #define MY_CORE_ONLY
          #define MY_SERIALDEVICE Serial
          
          #include <MySensors.h>
          
          void setup()
          {
          	Serial.begin(MY_BAUD_RATE);
          	Serial.println("Started clearing. Please wait...");
            Serial.println(EEPROM_LOCAL_CONFIG_ADDRESS);
          	for (uint16_t i=0; i<EEPROM_LOCAL_CONFIG_ADDRESS; i++) {
          		hwWriteConfig(i,0xFF);
          	}
          	Serial.println("Clearing done.");
          }
          
          void loop()
          {
          	// Nothing to do here...
          }
          
          mfalkviddM 1 Reply Last reply
          0
          • P paulsp

            Below is the atc_signalsreport sketch modified to support the pin number and Serial configuration of the M0. I also include the ClearEepromConfig sketch modified to display the value of EEPROM_LOCAL_CONFIG_ADDRESS
            Output of the sketch

            Started clearing. Please wait...
            413
            Clearing done.
            

            Modified atc_signalsreport 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.
             *
             *******************************
             *
             * REVISION HISTORY
             * Version 1.0 - tekka
             *
             * DESCRIPTION
             * ATC mode settings and signal report functions, on RFM69 and RFM95 nodes
             *
             */
            #define MY_SERIALDEVICE Serial
            
            // Enable debug prints
            #define MY_DEBUG
            #define MY_DEBUG_VERBOSE_TRANSPORT
            #define MY_DEBUG_VERBOSE_TRANSPORT_HAL
            #define MY_DEBUG_VERBOSE_RFM69
            
            // Enable and select radio type attached
            
            // RFM69
            #define MY_RADIO_RFM69
            #define MY_RFM69_NEW_DRIVER   // ATC on RFM69 works only with the new driver (not compatible with old=default driver)
            #define MY_RFM69_ATC_TARGET_RSSI_DBM (-70)  // target RSSI -70dBm
            #define MY_RFM69_MAX_POWER_LEVEL_DBM (10)   // max. TX power 10dBm = 10mW
            #define MY_RFM69_CS_PIN 10
            #define MY_RFM69_IRQ_PIN 6
            #define MY_RFM69_RST_PIN 11
            
            // RFM95
            //#define MY_RADIO_RFM95
            //#define MY_RFM95_ATC_TARGET_RSSI_DBM (-70)  // target RSSI -70dBm
            //#define MY_RFM95_MAX_POWER_LEVEL_DBM (10)   // max. TX power 10dBm = 10mW
            
            #include <MySensors.h>
            
            // ID of the sensor child
            #define CHILD_ID_UPLINK_QUALITY (0)
            #define CHILD_ID_TX_LEVEL       (1)
            #define CHILD_ID_TX_PERCENT     (2)
            #define CHILD_ID_TX_RSSI        (3)
            #define CHILD_ID_RX_RSSI        (4)
            #define CHILD_ID_TX_SNR         (5)
            #define CHILD_ID_RX_SNR         (6)
            
            
            // Initialize general message
            MyMessage msgTxRSSI(CHILD_ID_TX_RSSI, V_CUSTOM);
            MyMessage msgRxRSSI(CHILD_ID_RX_RSSI, V_CUSTOM);
            MyMessage msgTxSNR(CHILD_ID_TX_SNR, V_CUSTOM);
            MyMessage msgRxSNR(CHILD_ID_RX_SNR, V_CUSTOM);
            MyMessage msgTxLevel(CHILD_ID_TX_LEVEL, V_CUSTOM);
            MyMessage msgTxPercent(CHILD_ID_TX_PERCENT, V_CUSTOM);
            MyMessage msgUplinkQuality(CHILD_ID_UPLINK_QUALITY, V_CUSTOM);
            
            void setup()
            {
            }
            
            
            void presentation()
            {
              // Send the sketch version information to the gateway and controller
              sendSketchInfo("ATC", "1.0");
            
              // Register all sensors to gw (they will be created as child devices)
              present(CHILD_ID_UPLINK_QUALITY, S_CUSTOM, "UPLINK QUALITY RSSI");
              present(CHILD_ID_TX_LEVEL, S_CUSTOM, "TX LEVEL DBM");
              present(CHILD_ID_TX_PERCENT, S_CUSTOM, "TX LEVEL PERCENT");
              present(CHILD_ID_TX_RSSI, S_CUSTOM, "TX RSSI");
              present(CHILD_ID_RX_RSSI, S_CUSTOM, "RX RSSI");
              present(CHILD_ID_TX_SNR, S_CUSTOM, "TX SNR");
              present(CHILD_ID_RX_SNR, S_CUSTOM, "RX SNR");
            }
            
            void loop()
            {
              // send messages to GW
              send(msgUplinkQuality.set(transportGetSignalReport(SR_UPLINK_QUALITY)));
              send(msgTxLevel.set(transportGetSignalReport(SR_TX_POWER_LEVEL)));
              send(msgTxPercent.set(transportGetSignalReport(SR_TX_POWER_PERCENT)));
              // retrieve RSSI / SNR reports from incoming ACK
              send(msgTxRSSI.set(transportGetSignalReport(SR_TX_RSSI)));
              send(msgRxRSSI.set(transportGetSignalReport(SR_RX_RSSI)));
              send(msgTxSNR.set(transportGetSignalReport(SR_TX_SNR)));
              send(msgRxSNR.set(transportGetSignalReport(SR_RX_SNR)));
              // wait a bit
              wait(5000);
            }
            

            ClearEepromConfig 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.
             *
             *******************************
             *
             * DESCRIPTION
             *
             * This sketch clears radioId, relayId and other routing information in EEPROM back to factory default
             *
             */
            // load core modules only
            #define MY_CORE_ONLY
            #define MY_SERIALDEVICE Serial
            
            #include <MySensors.h>
            
            void setup()
            {
            	Serial.begin(MY_BAUD_RATE);
            	Serial.println("Started clearing. Please wait...");
              Serial.println(EEPROM_LOCAL_CONFIG_ADDRESS);
            	for (uint16_t i=0; i<EEPROM_LOCAL_CONFIG_ADDRESS; i++) {
            		hwWriteConfig(i,0xFF);
            	}
            	Serial.println("Clearing done.");
            }
            
            void loop()
            {
            	// Nothing to do here...
            }
            
            mfalkviddM Offline
            mfalkviddM Offline
            mfalkvidd
            Mod
            wrote on last edited by
            #6

            Thanks @paulsp. I am out of ideas unfortunately. I can't understand why the M0 thinks it has node id 0.

            P 1 Reply Last reply
            0
            • mfalkviddM mfalkvidd

              Thanks @paulsp. I am out of ideas unfortunately. I can't understand why the M0 thinks it has node id 0.

              P Offline
              P Offline
              paulsp
              wrote on last edited by
              #7

              @mfalkvidd How can I hard code and ID for the device and the Gateway ID?

              mfalkviddM 1 Reply Last reply
              0
              • P paulsp

                @mfalkvidd How can I hard code and ID for the device and the Gateway ID?

                mfalkviddM Offline
                mfalkviddM Offline
                mfalkvidd
                Mod
                wrote on last edited by
                #8

                @paulsp gateway ID is always 0. It can not be changed.

                To set an ID for the M0, add

                #define MY_NODE_ID (42)
                

                to the sketch, before including MySensors.h. Change 42 to whatever node ID you want to use (1-254).

                https://www.mysensors.org/apidocs/group__RoutingNodeSettingGrpPub.html#gac677233da7f20bbf93cb479471e3234e

                1 Reply Last reply
                0
                • P paulsp

                  I have an Adafruit RFM69 Bonnet attached to a Raspberry PI 0. The device works correctly with Adafruit's sample python code, but the mysgw.cpp Linux example from version 2.3.4 or the current development branch has the issues described below.

                  Issues:

                  • The sanity check would never succeed.
                    DEBUG !RFM69:INIT:SANCHK FAIL
                    One resolution I found:
                    Comment out the code that prevented toggling the CS_PIN
                  pi@raspberrypi0w-1:~/github/MySensors $ git diff --patch
                  diff --git a/hal/transport/RFM69/driver/new/RFM69_new.cpp b/hal/transport/RFM69/driver/new/RFM69_new.cpp
                  index cf4f0f02..f374f06d 100644
                  --- a/hal/transport/RFM69/driver/new/RFM69_new.cpp
                  +++ b/hal/transport/RFM69/driver/new/RFM69_new.cpp
                  @@ -52,11 +52,11 @@ uint8_t RFM69_spi_txbuff[RFM69_MAX_PACKET_LEN + 1];
                   
                   LOCAL void RFM69_csn(const bool level)
                   {
                  -#if defined(__linux__)
                  -       (void)level;
                  -#else
                  +//#if defined(__linux__)
                  +//     (void)level;
                  +//#else
                          hwDigitalWrite(MY_RFM69_CS_PIN, level);
                  -#endif
                  +//#endif
                   }
                   
                   LOCAL void RFM69_prepareSPITransaction(void)
                  @@ -207,10 +207,10 @@ LOCAL bool RFM69_initialise(const uint32_t frequencyHz)
                          RFM69.ATCtargetRSSI = RFM69_RSSItoInternal(MY_RFM69_ATC_TARGET_RSSI_DBM);
                   
                          // SPI init
                  -#if !defined(__linux__)
                  +//#if !defined(__linux__)
                          hwDigitalWrite(MY_RFM69_CS_PIN, HIGH);
                          hwPinMode(MY_RFM69_CS_PIN, OUTPUT);
                  -#endif
                  +//#endif
                          RFM69_SPI.begin();
                          (void)RFM69_setRadioMode(RFM69_RADIO_MODE_STDBY);
                          // set configuration, encryption is disabled
                  
                  
                  • Message send fails
                  pi@raspberrypi0w-1:~/github/MySensors $ sudo bin/mysgw
                  Feb 24 22:34:12 INFO  Starting gateway...
                  Feb 24 22:34:12 INFO  Protocol version - 2.4.0-alpha
                  Feb 24 22:34:12 DEBUG MCO:BGN:INIT GW,CP=RPNGL---,FQ=NA,REL=0,VER=2.4.0-alpha
                  Feb 24 22:34:12 DEBUG TSF:LRT:OK
                  Feb 24 22:34:12 DEBUG TSM:INIT
                  Feb 24 22:34:12 DEBUG TSF:WUR:MS=0
                  Feb 24 22:34:12 DEBUG RFM69:INIT
                  Feb 24 22:34:12 DEBUG RFM69:INIT:PIN,CS=26,IQP=15,IQN=22,RST=22
                  Feb 24 22:34:13 DEBUG RFM69:PTX:LEVEL=5 dBm
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:Registers Address | HEX value 
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x01 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x02 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x03 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x04 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x05 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x06 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x07 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x08 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x09 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0a Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0b Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0c Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0d Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0e Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x0f Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x10 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x11 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x12 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x13 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x14 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x15 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x16 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x17 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x18 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x19 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1a Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1b Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1c Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1d Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1e Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x1f Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x20 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x21 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x22 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x23 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x24 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x25 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x26 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x27 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x28 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x29 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2a Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2b Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2c Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2d Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2e Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x2f Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x30 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x31 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x32 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x33 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x34 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x35 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x36 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x37 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x38 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x39 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3a Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3b Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3c Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3d Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3e Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x3f Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x40 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x41 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x42 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x43 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x44 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x45 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x46 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x47 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x48 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x49 Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4a Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4b Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4c Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4d Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4e Value=0x00
                  Feb 24 22:34:13 DEBUG RFM69:DUMP:REG=0x4f Value=0x00
                  Feb 24 22:34:13 DEBUG !RFM69:INIT:SANCHK FAIL
                  Feb 24 22:34:13 DEBUG !TSM:INIT:TSP FAIL
                  Feb 24 22:34:13 DEBUG TSM:FAIL:CNT=1
                  Feb 24 22:34:13 DEBUG TSM:FAIL:DIS
                  Feb 24 22:34:13 DEBUG TSF:TDI:TSL
                  Feb 24 22:34:13 DEBUG RFM69:RSL
                  Feb 24 22:34:23 DEBUG TSM:FAIL:RE-INIT
                  Feb 24 22:34:23 DEBUG TSM:INIT
                  Feb 24 22:34:23 DEBUG RFM69:INIT
                  Feb 24 22:34:23 DEBUG RFM69:INIT:PIN,CS=26,IQP=15,IQN=22,RST=22
                  Feb 24 22:34:23 DEBUG RFM69:PTX:LEVEL=5 dBm
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:Registers Address | HEX value 
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x01 Value=0x04
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x02 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x03 Value=0x02
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x04 Value=0x40
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x05 Value=0x03
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x06 Value=0x33
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x07 Value=0xd9
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x08 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x09 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0a Value=0x41
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0b Value=0x40
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0c Value=0x02
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0d Value=0x92
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0e Value=0xf5
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x0f Value=0x20
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x10 Value=0x24
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x11 Value=0x97
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x12 Value=0x09
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x13 Value=0x1a
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x14 Value=0x40
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x15 Value=0xb0
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x16 Value=0x7b
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x17 Value=0x9b
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x18 Value=0x88
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x19 Value=0xe2
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1a Value=0xe2
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1b Value=0x40
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1c Value=0x80
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1d Value=0x06
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1e Value=0x10
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x1f Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x20 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x21 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x22 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x23 Value=0x02
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x24 Value=0xff
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x25 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x26 Value=0x07
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x27 Value=0x80
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x28 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x29 Value=0xe4
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2a Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2b Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2c Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2d Value=0x03
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2e Value=0x88
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x2f Value=0x2d
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x30 Value=0x64
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x31 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x32 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x33 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x34 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x35 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x36 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x37 Value=0xd4
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x38 Value=0x40
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x39 Value=0xff
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3a Value=0xff
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3b Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3c Value=0x05
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3d Value=0x10
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3e Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x3f Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x40 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x41 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x42 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x43 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x44 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x45 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x46 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x47 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x48 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x49 Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4a Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4b Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4c Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4d Value=0x00
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4e Value=0x01
                  Feb 24 22:34:23 DEBUG RFM69:DUMP:REG=0x4f Value=0x00
                  Feb 24 22:34:23 DEBUG TSM:INIT:TSP OK
                  Feb 24 22:34:23 DEBUG TSM:INIT:GW MODE
                  Feb 24 22:34:23 DEBUG TSM:READY:ID=0,PAR=0,DIS=0
                  Feb 24 22:34:23 DEBUG MCO:REG:NOT NEEDED
                  Feb 24 22:34:23 DEBUG MCO:BGN:STP
                  Feb 24 22:34:23 DEBUG MCO:BGN:INIT OK,TSP=1
                  Feb 24 22:34:23 DEBUG GWT:RMQ:CONNECTING...
                  Feb 24 22:34:23 DEBUG connected to 127.0.0.1
                  Feb 24 22:34:23 DEBUG GWT:RMQ:OK
                  Feb 24 22:34:23 DEBUG GWT:TPS:TOPIC=mygateway1-out/0/255/0/0/18,MSG SENT
                  Feb 24 22:34:23 DEBUG TSM:READY:NWD REQ
                  Feb 24 22:34:23 DEBUG RFM69:SWR:SEND,TO=255,SEQ=0,RETRY=0
                  Feb 24 22:34:23 DEBUG RFM69:CSMA:RSSI=-106
                  Feb 24 22:34:23 DEBUG ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
                  
                  • Does not respond to an RFM69 running the RFM69_RFM95_ATC_SignalReport example. Below is the output from the application running on an Adafruit M0 Express Feather and an Adafruit RFM69HW Feather
                  4249676 TSM:FAIL:RE-INIT
                  4249676 TSM:INIT
                  4250933 THA:INIT
                  4250933 RFM69:INIT
                  4250938 RFM69:INIT:PIN,CS=10,IQP=6,IQN=6,RST=11
                  4250939 RFM69:PTX:LEVEL=5 dBm
                  4250940 TSM:INIT:TSP OK
                  4250940 !TSF:SID:FAIL,ID=0
                  4250940 TSM:FAIL:CNT=7
                  4250940 TSM:FAIL:DIS
                  4250940 TSF:TDI:TSL
                  4250940 RFM69:RSL
                  

                  Below is the how mysgw was build

                  ./configure --mi-is-rfm69hw --my-transport=rfm69 --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-rfm69-cs-pin=26 --my-rfm69-irq-pin=15 --extra-cxxflags="-DMY_DEBUG_VERBOSE_RFM69 -DMY_DEBUG_VERBOSE_RFM69_REGISTERS -DMY_RFM69_RST_PIN=22" --my-debug=enable
                  

                  Any help is appreciated.

                  L Offline
                  L Offline
                  Lucky65
                  wrote on last edited by
                  #9

                  @paulsp I'm trying to get a Raspberry Pi gateway working as well. Also with a Bonnet but I don't think that is particularly pertinent as the bonnet doesn't do much other than connecting the RFM69 to a bunch of GPIO.
                  Have you been able to get the Pi gateway working? Before I spend more time troubleshooting my own setup here and hack away further at the RFM69_new.cpp code it would be good to know whether I'm wasting my time, doing something stupid or not. If you got it working with only the changes you mention then that means I'm doing something wrong. Thank you!

                  1 Reply Last reply
                  0
                  • 5 Offline
                    5 Offline
                    556duckvader
                    wrote on last edited by
                    #10

                    I too would like to know if you every got this working. I would like to set up the one I have as a gateway as well. I am wanting to log pool temp and PSI data to a database.

                    P 1 Reply Last reply
                    0
                    • 5 556duckvader

                      I too would like to know if you every got this working. I would like to set up the one I have as a gateway as well. I am wanting to log pool temp and PSI data to a database.

                      P Offline
                      P Offline
                      paulsp
                      wrote on last edited by
                      #11

                      @556duckvader I did not get the bonnet working through the mysensor library. I ended up using the Adafruit python client library and posting data to MQTT as a workaround.

                      Mike RM 1 Reply Last reply
                      1
                      • P paulsp

                        @556duckvader I did not get the bonnet working through the mysensor library. I ended up using the Adafruit python client library and posting data to MQTT as a workaround.

                        Mike RM Offline
                        Mike RM Offline
                        Mike R
                        wrote on last edited by
                        #12

                        paulsp........Any chance of getting a copy of your code you used? I really only want the nodes to send data to a pi zero, and the zero to send an mqtt message. I plan on doing everything else in node red and home assistant. Is that similar to your setup. Thanks!

                        1 Reply Last reply
                        0
                        • FlyingSaucrDudeF Offline
                          FlyingSaucrDudeF Offline
                          FlyingSaucrDude
                          wrote on last edited by
                          #13

                          I'm usually loathe to post to an ancient topic, but since this post is near the top of search results for "adafruit rfm69 bonnet mysensors" I thought this would be the best place to post the solution to the OP's problem.

                          By doing the following, you should be able to get an Adafruit RFM69 Bonnet on a Raspberry Pi Zero talking to your other RFM69-based MySensors nodes:

                          1. I started by checking out the head of the development branch (specifically commit aa76d26615, which was the head at the time, but hopefully future versions will work too).
                          2. I commented out the code that prevented toggling the CS_PIN as @paulsp described in post #1
                          3. I then built mysgw on my Rasperry Pi (happened to be a Pi Zero, but hopefully that's irrelevant) using the following command:
                          ./configure --my-transport=rfm69 --my-rfm69-frequency=915 --my-is-rfm69hw --my-gateway=ethernet --my-port=5003 --my-rfm69-cs-pin=26 --my-rfm69-irq-pin=15 --extra-cxxflags="-DMY_RFM69_RST_PIN=22" --spi-spidev-device=/dev/spidev0.1 --spi-driver=SPIDEV
                          

                          With this configuration, I was able to successfully get my RPi-based gateway using an Adafruit RFM69 radio bonnet talking to (and receiving from) various Moteino-based MySensors RFM69 nodes. I think the key difference was that I had to tell the MySensors gateway to use the spidev driver with the --spi-spidev-device=/dev/spidev0.1 --spi-driver=SPIDEV flags (instead of the BCM driver, which is the default).

                          Obviously if you're using a different frequency for your RFM69 radio (or a different gateway type or port) you should adjust the --my-rfm69-frequency=915 --my-gateway=ethernet --my-port=5003 flags appropriately.

                          1 Reply Last reply
                          2
                          • FarmerEdF Offline
                            FarmerEdF Offline
                            FarmerEd
                            wrote on last edited by
                            #14

                            @FlyingSaucrDude

                            What great timing (for me anyway), only this week I purchased the Adafruit RFM95 Bonnet version, and this thread is the only thing returned in a quick search. Your solution works for RFM95 also.

                            I didn't need to comment out the code that prevented toggling the CS_PIN, but I'm using the development version as the main branch dose not seem to build on Pi OS Bullseye.

                            ./configure --my-transport=rfm95 --my-rfm95-frequency=868 --my-gateway=ethernet --my-port=5003 --my-rfm95-cs-pin=26 --my-rfm95-irq-pin=15 --extra-cxxflags="-DMY_RFM95_RST_PIN=22" --spi-spidev-device=/dev/spidev0.1 --spi-driver=SPIDEV
                            

                            Thanks to your post I got this working in a few min of trying, would have taken me much longer otherwise, so thank you for posting to an ancient thread.

                            1 Reply Last reply
                            1
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            9

                            Online

                            11.7k

                            Users

                            11.2k

                            Topics

                            113.0k

                            Posts


                            Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • MySensors
                            • OpenHardware.io
                            • Categories
                            • Recent
                            • Tags
                            • Popular