Hard Fault on Photon even after firmware update and Tinker flash

My new Photon was working fine and then stopped working. I was powering it from a 3.3v power to the 3.3v pin, which was working, then I tried using a 9v batter which was stepped down to 3.3v. The light came on but went dim very quickly. Since then it doesn’t turn on with 3.3v power pin at all. It still turns on with USB power though.

It looks bricked but the fact that it powers from USB gives me some hope. However it was stuck with the white light. I tried to update the firmware using the usual steps and now I’m getting the Hard Fault light. No particle update, manual firmware update or tinker flashing is having any effect on the hard fault

Am I doomed?

I stand corrected! It does power off the 3.3v pin, not sure why it wasn’t working before…

So here’s the log for particle update

particle update

> Your device is ready for a system update.
> This process should take about 30 seconds. Here goes!

! System firmware update successfully completed!

> Your device should now restart automatically.
> You may need to re-flash your application to the device.

And then I get the hard fault again. After that I tried flashing Tinker with the same result

particle flash --usb tinker
running dfu-util -l
Found DFU device 2b04:d006
checking file /usr/local/lib/node_modules/particle-cli/binaries/photon_tinker.bin
spawning dfu-util -d 2b04:d006 -a 0 -i 0 -s 0x080A0000:leave -D /usr/local/lib/node_modules/particle-cli/binaries/photon_tinker.bin
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Deducing device DFU version from functional descriptor length
Opening DFU capable USB device...
ID 2b04:d006
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 4096
DfuSe interface name: "Internal Flash   "
Downloading to address = 0x080a0000, size = 3952
Download	[=========================] 100%         3952 bytes
Download done.
File downloaded successfully

Flash success!

Any ideas?

Is it the SOS +1 code you get or three slow blinks only (no SOS before)?

You could also try a particle update first and then see if a sketch with SYSTEM_MODE(MANUAL) and/or Safe Mode behaves differently.

If you don’t get your red blinks in MANUAL your WiFi module might be damaged.

It’s SOS +1 code. Can you recommend a sketch with SYTEM_MODE(MANUAL) ? I haven’t been able to experiment with code yet.

When I put it in safe mode, the light immediately goes to white and then repeats the hard fault error sequence.

Just a mere dummy sketch like this should do

SYSTEM_MODE(MANUAL)
//STARTUP(WiFi.off())  // optional

void setup() {}
void loop() {}

The point of this test is to see if the SOS goes away when the WiFi module is never accessed.

But pinging @BDub to chime in might help too.

Thanks so much, I’ll check that out when I’m back at my bench in a few days.

@digithree Be careful when powering the Photon from the 3V3 pin directly… as there is no regulation on this input… and it connects directly to the STM32F205RGY6 and BCM43362 VDD/VCC inputs. There is a strict max 3.6V limit on this pin.

I would guess that you are not supplying enough current to the 3V3 input, and as the Photon draws current from your source, the voltage folds back (drops) and it appears that your RGB LED does strange things. Typically it will look RED when not providing enough voltage, due to the GREEN and BLUE segments requiring more Vf (forward voltage) than RED.

You can be very cautious and apply your 3.3V to the VIN pin. I can power a second Photon from my first Photon’s 3V3 pin this way, with the USB cable plugged into the first Photon.

| Photon 1    | Photon 2     | 
| ----------- | ------------ |
|  USB CABLE  |   NO USB     |
|   3V3       |    VIN       |
|   GND       |    GND       |
| V3v3 (3.3V) | V3v3 (3.26V) |
| Vvin (4.6V) | Vvin (3.3V)  |
1 Like

I tried @ScruffR 's program above, with n without the optional line, with the same result, hard fault of death.

Note that when I compiled using the cloud it didn’t work, gave me the following error when I tried to flash it

Error writing firmware...Incorrect platform id (expected 6, parsed 62461), use --force to override

--force didn’t work either. I tried local compile from this post, using this command

particle compile core . --saveTo core_fireware_no_wifi_test.bin

which worked when I flashed to the device, but I had to use force. No joy though, red blinking all the way.

Bricked it is then is it? Thanks for the advice @BDub, I was too excited to use the necessary caution :’( I’ve ordered another one and will be more careful with it.