I created a really simple program:
void setup()
{
DBG(">>>>>>>>>>>>>>>>>>>> RAK5010: SETUP <<<<<<<<<<<<<<<<<<<<");
bg96_init();
for (int k = 0; k < 20; k ++)
DelayBlink(1000, 50, 50);
return;
}
void bg96_init()
{
pinMode(PIN_RESET, OUTPUT);
pinMode(PIN_PWRKEY, OUTPUT);
pinMode(PIN_GPS_EN, OUTPUT);
pinMode(PIN_W_DISABLE, OUTPUT);
pinMode(PIN_LED_GREEN, OUTPUT);
pinMode(PIN_BG96_DTR, OUTPUT);
pinMode(PIN_STATUS, INPUT);
pinMode(PIN_CHG_DET, INPUT);
pinMode(PIN_BAT_SET, INPUT);
// Defaults
digitalWrite(PIN_RESET, 0);
digitalWrite(PIN_W_DISABLE, 0);
digitalWrite(PIN_BG96_DTR, 0);
}
Then in my loop:
void loop()
{
DelayBlink(5000, 250, 250);
return;
}
TESTING
After program loads onto the RAK5010, it does the fast flicker (Setup), then the slow blink (Loop).
I unplug the battery, plug the battery back in and nothing happens.
Pressing the RESET button does nothing. Pressing the POWER button kicks the BG96 on, then my Setup and Loop function execute and the Green LED blinks per my code.
NOTES
- This happens only on some devices, not all. Most my RAK5010 devices power up immediately when power is applied.
- I’ve reflashed the bootloader
- If the device is shorted, it’ll turn off. Plugging USB power in does NOT fire it up. Pressing the Power button does after the USB cable is plugged in. If the USB cable is NOT plugged in, after shorting the device will NOT power up w/ the Power button.
I’d like to figure out what might be happening so I can have a solution for devices that may be in the field and then have this issue. I’m hoping that this is not an issue that should normally pop up and somehow these devices have a hardware failure?? Or a register is stuck and I need to do a factory reset??
It would be nice to have some sort of theory as I just purchased 50 more of these units for my clients project.