Spark3 went dark after firmware update

I tried to update my spark 3 to the latest firmware (as by today) using the brewblox GUI, however after flashing it, the screen went dark with just the led blinking green and not recognized by the brewblox. I tried to flash again the firmware using the command line, first it failed due to “No usb compatible devices found”, but after restarted by spark and raspberry Pi 4 I had “Flash success!”, however the spark screen continues to be dark and brewblox doesn’t find it.

Here is my log:
https://termbin.com/876y

It needs to connect to WiFi to download the newest bootloader to be able to start.

You can configure WiFi by running “brewblox-ctl wifi”.

If you cannot get WiFi to work, you can connect it to usb, run “brewblox-ctl flash” again to flash over usb including system parts.

If that is successful (and only then), you can force a bootloader update over usb with ‘brewblox-ctl bootloader’ --force’

Thanks Elco :).

The brewblox-ctl bootloader’ --force’ did the trick :slight_smile:

However now I cannot connect my Spark. When I try to configure the wi-fi it just says “Done! Your device should now restart.”, but it doesn’t restart neither connects to the wi-fi.

While still connected through usb I can not get the service running. I get the errors (the ones in red) :

Invalid device ID
Service not synchronized

I have noticed that the desired and actual devices id are different (one with capital E) :

Desired device ID (service): 3e0023000551353432383931

Actual device ID (controller): 3E0023000551353432383931

If you manually power cycle the Spark after running the brewblox-ctl wifi command, does it then connect to wifi?
What does the screen look like when it’s not connecting? Completely blank, or does it show 6 squares?

We’re releasing an update today that includes a fix for uppercase/lowercase issues in device ID.

If you manually power cycle the Spark after running the brewblox-ctl wifi command, does it then connect to wifi?

Nops, I had to do fresh install on brewblox in order to able it to work again. After the fresh install I connected the spark to the wi-fi without problems. However now, after a few power cycles the spark lost the Wi-Fi connection and now though USB is not recognized by the brewblox either. It shows the 6 squares

EDIT: When I am able to connect it through usb and try to configure again the wifi it says:
“Something went wrong: Serial timed out while initially listening to device, please ensure device is in listening mode with particle usb start-listening”

You may still have services running that are connected to the Spark. The output from docker ps -a should be empty. If not: run brewblox-ctl kill.

Your Spark is in listening mode when it’s rapidly blinking dark blue. If the wifi command fails, it’s best to power cycle, and wait for it to finish booting before retry.

What means being in listening mode? It’s been blinking blue but very slowly, when I power cycle it continues to stay in the same mode (blinking blue slowly)

Slowly blinking blue means that the controller is not connected to Wifi. For a full list of LED colors, see https://docs.particle.io/tutorials/device-os/led/photon/

Listening mode is the configuration mode for low-level settings on the Spark (such as Wifi credentials). During listening mode, your Spark responds differently to incoming messages.

That is why your normal services must be stopped before listening mode is started. The messages they send would only cause errors.

Your device should start quickly blinking blue when you run brewblox-ctl wifi. If it doesn’t, you can troubleshoot the connection with the following steps:

  • Are all brewblox services offline? docker ps -a
    • If this shows containers, run brewblox-ctl kill, and check again.
  • Is the device seen over USB? brewblox-ctl discover
    • If this shows no USB-connected devices, try with a different USB cable.

Thanks for the information :slight_smile:

When I do brewblox-ctl discover it shows the spark connected thorough usb.

I did the brewblox-ctl kill before running brewblox-ctl wifi but the result was the same.

You can manually trigger listening mode by pressing the setup button for three seconds (lower right side on Spark v3, also indicated on the sticker).

When it’s blinking, re-run ctl wifi.

I try that but the errors persists:
Now it says:

Error configuring Wi-Fi: No serial port identified

Command ‘docker run -it --rm --privileged brewblox/firmware-flasher:rpi-edge wifi’ returned non-zero exit status 1.

Basically after power cycle the spark I manually put it in listenning mode then ran brewblox-ctl wifi and then that error appears while spark goes from listenning mode (fast blue blinking) to the slow blue blinking.

It seems identification of the correct USB device is the problem here.
This may be caused by there being multiple connected USB devices, but there are a number of possible explanations.

To get an idea of what’s going on, there are multiple commands you can use to check:

ls /dev/serial/by-id

Ideally, this should list a single device, with a name akin to usb-Particle_P1_290029001947383434353030-if00

To manually access the Particle API we use to configure wifi:

docker run -it --rm --privileged brewblox/firmware-flasher:rpi-edge

This will switch to another terminal, inside a docker container. We can run some commands in here

To check for currently connected devices:

npx particle serial list

Expected output:

bash-4.4# npx particle serial list
Found 1 device connected via serial:
/dev/ttyACM0 - 

If a device is listed here, you can try running the Wifi configuration from here.

  • Hold the setup button until it starts blinking faster
  • Run the following command (replace /dev/ttyACM0 with the port reported by serial list)
npx particle serial wifi --port /dev/ttyACM0

When done, run exit to go back to the Pi commandline.