Adafruit M0 hang up during hwInit at eep.begin



  • Hello everybody,

    i set up my gateway so far and everything worked fine.
    Now i soldered all parts nicely on a board and put it in the final housing. But the gateway make gave no message on the Serial.

    I followed the code and put after each line an output to the Serial to find the position where it stucks. Finally i found it:
    ```

    MY_DEBUGDEVICE.println(F("AFTER Wait for synchronization of registers between the clock domains")); 
    const uint8_t eepInit = eep.begin(MY_EXT_EEPROM_TWI_CLOCK, &Wire);
    MY_DEBUGDEVICE.println(F("AFTER eep.begin(MY_EXT_EEPROM_TWI_CLOCK, &Wire);"));
    

    The second message does not arrive on my computer. I would assume that the function eep.begin runs infinite..??

    Interesting for me is that also the reset-button on the adafruit-board does not bring back the controller. After the reset no message is displayed?
    I need to upload the sketch to the board again to re-start the software?

    I saw that the watchdog is set before. I thought that the watchdog should also make some kind of reset if the software gets stucked during the eeprom init.

    I found in the troubleshooting a section that "on rare occasions you might need to clear this memory back to the factory default."
    But the sketch is hanging up at the same position.

    i do not know what to try next... Is it possible that the EEPROM section on the controller got damaged?
    Could somebody please give me a hint?..

    Maybe it would also be a nice idea in general to give some debug-message during the init of the hardware to at least show that the library started to doo something?```

    Thank you very much!
    best regards
    Jens



  • Hello everybody,

    i found the reason for the issue... I connected already a BMP280 to the I2C pins of the Feather M0 board. To check one thing after another i did not yet connect the power supply to the BMP280. It works if i solder disconnect the BMP280 from SDA&SCL and also if i connect the 3,3V of the BMP280.

    It seems that the not powered BMP280 is confusing the I2C-bus so badly that the EEPROM library can not handle it. In my opinion should this kind of "mistake" in the wiring not lead to a complete black-out.

    Is the external EEPROM usage in general for SAMD hardware okay? In my case i use the Feather M0 which has no external EEPROM connected. Somehow i think that it was done for the Sensebender board?

    I would suggest to

    • add a debug message at the beginning of the hwInit in the mysensor library that everybody can see that the library starts to works
    • put the external EEPROM functionality in a #define switch or better use some internal EEPROM function

    By the way is something with the clock also wrong.
    My Serial is running at 9600 - but the Software says #define MY_BAUD_RATE (115200ul)..

    i am not very familiar with github and how to use it. If it is welcome that a mechanical guy tries to implement something like above in the library, contact me for a try 😉

    best regards
    Jens


Log in to reply
 

Suggested Topics

5
Online

9.5k
Users

10.2k
Topics

105.5k
Posts