We have a Tracker SoM on a custom PCB inside a casing. Powered by a lipo battery. It occurred to us that one time, the battery drained and we plugged back the charger (USB-C port, 10W), but the device was not visible in the cloud (console.particle.io), BLE was not advertising and no serial communication was possible.
We saw that the status LED was waving magenta, concluding that the device was in safe-mode.
My question here is, how can we go out of safe mode and start our app again?
(note that we do not have access to the reset button and cannot plug/unplug the battery)
Or is there a way to disable the safe-mode (for example reboot instead of going into safe-mode)
You'll need to figure out the underlying reason the device is entering safe mode. It shouldn't do that for just discharging the battery.
There is no way to disable safe mode, because the whole reason safe mode was entered was that a required system module was not in the flash on the device, so it could not boot. Under normal circumstances, any missing modules should have been flashed by the cloud automatically.
Given the odd circumstances, when you do get a chance to examine the device, getting particle serial inspect via USB would be useful because that will show what caused it to enter safe mode.
I'm presuming you don't have a call to System.enterSafeMode() in your code. That of course will also cause the device to enter safe mode. There isn't a call to it in Tracker Edge.