Firmware ugrade resulted in black screen and constant green light


#1

I was trying to upgrade my Brewpi Spark 3 (Particle P1 inside) from 0.5.2 to 0.5.5 yesterday and seem to have “bricked” my brewpi… I tried updating using the instructions on the release on github, but could not get the docker way working.

What I did was the following:

Logged in to my pi (where I have installed 2 spark’s, this is the first one and are using the default path for data) and ran the docker command:

HypriotOS/armv7: kassen@mesken in ~
$ docker run -it --name brewpi-dfu --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian python
utils/flashDfu.py --trigger
Persistent files already present
[ ok ] Starting nginx: nginx.
HypriotOS/armv7: kassen@mesken in ~

I assume something more should’ve been happening, at least it did not enter DFU mode as it apparently should by running it.

Ended up trying to manually update the bootloader and this is were it went wrong.
First I did like the release notes said but could not get it working:

$ sudo particle serial flash bootloader-0.8.0-rc.3-p1.bin
! PROTIP: Hold the SETUP button on your device until it blinks blue!
? Press ENTER when your device is blinking BLUE

! serial: No serial port identified

Did some googling and found you could do it with the usb param:

$ sudo particle flash --usb bootloader-0.8.0-rc.3-p1.bin

Error writing firmware…unknown module function 2, use --force to override

Ok, force it then:

$ sudo particle flash --usb --force bootloader-0.8.0-rc.3-p1.bin

Flash success!

Yay, apparently it was successful… Not exactly. Now my Brewpi Spark 3 is showing a constant green light, and a black/dead screen… I have even tried a factory reset by holding setup and reset button, letting go of reset and holding the setup button forever waiting for a white light that never come. What happens is first it blinks magenta, then yellow and it does not go on from there… (same that happens regardless of the reset being clicked, so I’m not able to set it in listening mode (blinking blue) either)

Any tips on what I can do to get it up and running again? I’ve tried logging onto the Brewpi Spark console via portainer, and running the scripts in utils but to no avail…


#2

While updating, only connect one Spark via USB.
First update the application and system layer, then the bootloader will download automatically from the cloud.

You can flash it manually, but only after you have flashed the latest system layer.

The bootloader needs to be flashed over serial and not USB, because it is the bootloader itself that does the USB flashing. I am not sure what your force flash over USB did. The warning was there for a reason.

Can you try to bring the P1 back into a working state by running:

particle device doctor

#3

Thanks for your swift reply! I have not been able to follow up on your suggestions but hopefully there will be time for it tonight :slight_smile:


#4

I got it working again and here is what I did in case anyone else run into the same issues:

Started from scratch, the brewpi spark was connected to the raspberry pi via usb. The other spark was running via wifi and not powered/connected to the pi.

  1. Removed the docker image and re-installed following this recipe

  2. Opened portainer, found the newly re-created container and logged in to the console to run the firmware update script:

root@4bbe1913a031:/home/brewpi/utils# python updateFirmware.py
Stopping any running instances of BrewPi to check/update controller…
Quit message sent to BrewPi instance with pid 63!

Checking current firmware version…
May 15 2018 22:06:26 Background thread for serial started
Unable to receive version from controller.
Is your controller unresponsive and do you wish to try restoring your firmware? [y/N]:
y
Could not find compatible device in available serial ports.
root@4bbe1913a031:/home/brewpi/utils#

As it did not work I went with the doctor and after putting the spark in DFU mode I got the doctor running and resetting a lot of stuff. After it was completed I tried running the install of 0.5.5 with the docker containers. This time it worked fine and finally the Spark was up and running on 0.5.5! :smiley:

Thanks for your help @Elco


#5

I have a similar issue. Instead of a black screen I have a whitescreen.
What I did was running the regular updater for brewpi (python updater.py) and simply following the upgrade options like always.

After a reboot suddenly a whitescreen with blue blinking led. After following the answers here by you @Elco it came back to life.

One issue though, instead of my brewpi sparc working via USB it’s now working over my WiFi, I do not wish this and only want to use USB. How can I fix this?

Thank you in advance!

Laurens


#6

Nvm @Elco seems that it suddenly came through on its own!
Is there a device polling timer that I need to wait for discovering my sparc?

It also takes a while for the USB readout, before the update this was faster or could I be mistaken?

EDIT:
Brewpi is up and running again. What I’ve noticed is that the sparc disconnects from the pi on multiple occassions.