Hello, I've seen some similar questions about resets after downloading firmware, but haven't been able to find the solution to my problem.
I'm using a Minew MS88SF3 NRF52840-QIAA module with SDK17.0.0 with Segger Embedded Studios v4.52, messily soldered onto a custom board for a HID keyboard prototype. I've had some issues needing to resolder the module, needing to touch up some pins, but I think I've got those all sorted out so I've convinced myself it's a software issue.
Testing with the ble_hids_keyboard example (PCA10056 and S140) I can't seem to download firmware and have it run right afterwards, but only when the device had existing firmware. The problem can be succinctly summarized as:
Firmware runs successfully when:
- Erase All followed by Download
- Download followed by Verify
- Download followed by pulling Reset pin low
- Download followed by power cycling
- Run in Debug mode
Firmware does not run when:
- Download onto a chip with existing firmware and leaving it be
When I have RTT Viewer running during a download of a slightly modified firmware, I get this error message:
00> <info> app_timer: RTC: initialized. 00> 00> <error> app: ERROR 8 [NRF_ERROR_INVALID_STATE] at B:\Users\[me]\Documents\NRF52_SDK17.0\nRF5_SDK_17.0.0_9d13099\examples\my_custom_projects\nrf52840_keypad_0\main.c:1497 00> 00> PC at: 0x000315F9 00> 00> <error> app: End of error report
Line 1496 and 1497 of main.c are as follows. It's interesting that I would get this error after a Download, but not when running it in Debug.
err_code = nrf_sdh_enable_request(); APP_ERROR_CHECK(err_code);
Otherwise, for the default hids_keyboard example, I just get this. Not sure I remember what I changed to make the error logging more verbose in my custom firmware.
00> <info> app_timer: RTC: initialized. 00> 00> <error> app: Fatal error
Thanks!