This is a frustrated continuance of this thread (Boron found dead and irrecoverable-without-LiPo after 1-month of normal use - what happened?), now that I know exactly what the problem is, with shared elements of this thread (Boron - RGB Led Flashing White - Fixed) and this thread (1.3.1-rc.1+ change to Boron solar charging (via VUSB) behavior).
Notice how recent this all is. Particle screwed up the firmware in an allegedly beneficial “update”, to which I spent time and effort updating my remote devices.
Now Particle’s software “update” has cost me yet another 3-hour-both-ways drive to remote site, and will require yet another one just because of one line of previously functioning code.
While I’m happy about the recent cellular fix, it has now introduced the laughable situation of creating yet another catastrophic disaster incapacitating my usage of the device for remote solar powered tracking.
I have now consistently reproduced that any call in setup() to PMIC controller in Boron 1.4.0 will crash the MCU, causing it to flash white for a second and then go totally dead and irreparably unless a human holds the buttons right to put it into safe mode. This was working perfectly on older OS versions.
This code invariably causes Boron to instantly crash:
SYSTEM_MODE(SEMI_AUTOMATIC);
SYSTEM_THREAD(ENABLED);
PMIC pmic;
void setCharge() {
pmic.begin();
pmic.setInputVoltageLimit(5080);
pmic.setChargeVoltage(4208);
pmic.setInputCurrentLimit(900) ;
pmic.setChargeCurrent(0,1,1,1,1,0);
pmic.enableDPDM();
pmic.enableBuck();
pmic.enableCharging();
}
void setup() {
detachInterrupt(LOW_BAT_UC);
setCharge(); //UNCOMMENT THIS LINE AND BORON WILL INSTANTLY CRASH ON STARTUP
Cellular.on();
Cellular.connect();
Particle.connect();
Particle.publish("ON_TIME", String::format("%d",Time.now()), NO_ACK);
}
bool sent = false;
void loop() {
if(Particle.connected() && (!sent)) {
sent = true; Particle.publish("On", "On");
}
Particle.process();
}
Commenting out the setCharge() invariably prevents Boron from auto-crashing.
My questions are as follows:
-
Why didn’t Particle disclose in their V1.3.1 or 1.4.0 updates that it would cause previously functioning code to totally crash, and require a minimum of 12 hours (3 hours both ways, x2 for reinstallation) of driving on my part?
-
Will Particle reimburse me for the hours of my time it wasted by publishing an update which caused previously functioning code to totally crash?
-
Will Particle ever re-enable usage of the PMIC functions without crashing the device, or will we be no longer able to use Boron in remote solar powered environments unless we downgrade to 1.2.1 and older, in which case it will catastrophically fail to ever reconnect and become useless for the separate and distinct reason of the now-fixed cellular issue?
-
Does Particle still sell the Electron unit? From what I see, it is the only product Particle has ever sold which is actually usable and stable in a remote tracking environment. At this point I am willing to swallow the increased 3G power consumption versus a fake LTE board that won’t actually work for any permanent solution.
Thank you.