I have the EINK290 (Tindie order: #246050). It is a great device and thank you for that!
Unfortunately I have an issue flashing the code in this repository on the device.
Problem Description: After flashing the device with the code it stops working. The screen is stuck on the last thing that was drawn on it and the LED doesn't show any sign of life.
Steps to reproduce:
- Install Arduino IDE
- Configure it as described in the README
- Flash with an ST-Link V2 device (probably a clone)
Device Details:
- Device Variant: NRF52840
- Buzzer: No
- AAA Batteries: No
- Light Sensor: No
Additional Information:
I'm a newbie and never worked with MySensors and have very little experience with programming hardware.
I used the Serial.println and the blinkLed function from your code to determine that the code enters the before() and happy_init() functions until getting stuck in the first if condition.
if (hwReadConfig(EEPROM_NODE_ID_ADDRESS) == 0) {
I've followed the MySensors code and I think that the code gets stuck at
uint32_t *vpage = VirtualPage.get(NVRAM_MAGIC);
in NVRAM.cpp (line 275 in Arduino/libraries/MySensors/drivers/NVM/NVRAM).
I tested some code snippets that I could find from MySensors and it seems that every code that involves reading or writing to the NVRAM (such as hwReadConfig, hwWriteConfig, getState, etc.) gets the device stuck.
To summarize the flow of the code until getting stuck is:
hwReadConfig(line 4487 in EINK290_1) -> NVRAM.read(line 57 in MyHwNRF5.cpp) -> VirtualPage.get(NVRAM_MAGIC) (line 275 in NVRAM.cpp).
I didn't follow the code further for it is definitely out of the scope of my knowledge.
Additional Things that I Tried:
-Older versions of MySensors (until 2.2)
-Variation of arduino-nRF5 library that can be found on your Github
-Testing on Windows and Linux
-Different "Low Frequency Clock" options
-Different MyConfig.h variations (commenting and uncommenting different options)
Details About my Environment:
-Arduino IDE Version: 1.8.13
-MySensors Library Version: 2.3.2
-ST-Link V2 Device Used: https://www.amazon.com/DAOKI-ST-Link-Programming-Emulator-Downloader/dp/B01EE4WAC8
-IDE Output:
Sketch uses 85528 bytes (8%) of program storage space. Maximum is 1048576 bytes.
Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-09-12:07)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
debug_level: 0
0x4000
adapter speed: 10000 kHz
nrf52.cpu: target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00008834 msp: 0x20040000
** Programming Started **
auto erase enabled
nrf52.cpu: target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000001e msp: 0x20040000
wrote 86016 bytes from file /tmp/arduino_build_844176/EINK290_1.ino.hex in 2.497448s (33.634 KiB/s)
** Programming Finished **
** Verify Started **
nrf52.cpu: target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x61000000 pc: 0x2000002e msp: 0x20040000
verified 85816 bytes in 0.229241s (365.575 KiB/s)
** Verified OK **
** Resetting Target **
shutdown command invoked
-IDE Configuration:

-MyConfig.h Content (Without commented text):
//#define EINK_V1
#define DCPOWER
//#define LIGHTSENS
//#define BIZZER
#define LANG_EN
#define MY_DEBUG
//#define MY_PASSIVE_NODE
//#define MY_NODE_ID 101
#define MY_RADIO_NRF5_ESB
#define MY_NRF5_ESB_MODE (NRF5_1MBPS)
//#define MY_NRF5_ESB_MODE (NRF5_250KBPS)
#define MY_RESET_REASON_TEXT
#define SN "EFEKTA WeatherStation 290"
#define SV "0.46"
#define ESPECIALLY
Any help will be greatly appreciated!
Thanks :)
I have the EINK290 (Tindie order: #246050). It is a great device and thank you for that!
Unfortunately I have an issue flashing the code in this repository on the device.
Problem Description: After flashing the device with the code it stops working. The screen is stuck on the last thing that was drawn on it and the LED doesn't show any sign of life.
Steps to reproduce:
Device Details:
Additional Information:
I'm a newbie and never worked with MySensors and have very little experience with programming hardware.
I used the Serial.println and the blinkLed function from your code to determine that the code enters the before() and happy_init() functions until getting stuck in the first if condition.
if (hwReadConfig(EEPROM_NODE_ID_ADDRESS) == 0) {I've followed the MySensors code and I think that the code gets stuck at
uint32_t *vpage = VirtualPage.get(NVRAM_MAGIC);in NVRAM.cpp (line 275 in Arduino/libraries/MySensors/drivers/NVM/NVRAM).
I tested some code snippets that I could find from MySensors and it seems that every code that involves reading or writing to the NVRAM (such as hwReadConfig, hwWriteConfig, getState, etc.) gets the device stuck.
To summarize the flow of the code until getting stuck is:
hwReadConfig(line 4487 in EINK290_1) -> NVRAM.read(line 57 in MyHwNRF5.cpp) -> VirtualPage.get(NVRAM_MAGIC) (line 275 in NVRAM.cpp).
I didn't follow the code further for it is definitely out of the scope of my knowledge.
Additional Things that I Tried:
-Older versions of MySensors (until 2.2)
-Variation of arduino-nRF5 library that can be found on your Github
-Testing on Windows and Linux
-Different "Low Frequency Clock" options
-Different MyConfig.h variations (commenting and uncommenting different options)
Details About my Environment:
-Arduino IDE Version: 1.8.13
-MySensors Library Version: 2.3.2
-ST-Link V2 Device Used: https://www.amazon.com/DAOKI-ST-Link-Programming-Emulator-Downloader/dp/B01EE4WAC8
-IDE Output:
-IDE Configuration:

-MyConfig.h Content (Without commented text):
Any help will be greatly appreciated!
Thanks :)