Adafruit M0 hang up during hwInit at eep.begin
jenspr last edited by
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!
jenspr last edited by
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