Doing a fresh install of raspbian stretch, running through the brewpi setup, got to the brewblox-ctl boot loader part and now the unit won’t even power up. Is there anyway to reset??
This is the error I got
Error writing firmware: TimeoutError: timed out after 70000ms
Traceback (most recent call last):
File “/usr/local/bin/brewblox-ctl”, line 11, in
sys.exit(main())
File “/usr/local/lib/python3.5/dist-packages/brewblox_ctl/main.py”, line 81, in main
cli()
File “/usr/local/lib/python3.5/dist-packages/click/core.py”, line 764, in call
return self.main(*args, **kwargs)
File “/usr/local/lib/python3.5/dist-packages/click/core.py”, line 717, in main
rv = self.invoke(ctx)
File “/usr/local/lib/python3.5/dist-packages/click/core.py”, line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/usr/local/lib/python3.5/dist-packages/click/core.py”, line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/usr/local/lib/python3.5/dist-packages/click/core.py”, line 555, in invoke
return callback(*args, **kwargs)
File “/usr/local/lib/python3.5/dist-packages/brewblox_ctl/commands.py”, line 170, in bootloader
utils.run_all(shell_commands)
File “/usr/local/lib/python3.5/dist-packages/brewblox_ctl/utils.py”, line 130, in run_all
return [run(cmd) for cmd in shell_cmds]
File “/usr/local/lib/python3.5/dist-packages/brewblox_ctl/utils.py”, line 130, in
return [run(cmd) for cmd in shell_cmds]
File “/usr/local/lib/python3.5/dist-packages/brewblox_ctl/utils.py”, line 124, in run
return check_call(shell_cmd, shell=True, stderr=STDOUT)
File “/usr/lib/python3.5/subprocess.py”, line 271, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command ‘docker run -it --rm --privileged brewblox/firmware-flasher:rpi-edge flash-bootloader’ returned non-zero exit status 1
I know, but I am trying to narrow it down. It can be fixed with a flash over JTAG, but that requires special tools. So if there is a way to fix it without sending it back, that would be better.
Did you get no errors during the first step, flashing the firmware?
The bootloader is a small program that is first executed when the processor starts. It checks whether the setup button is pressed and if not, it jumps to the memory location for the application. If the setup button is pressed, it stays in bootloader mode and can start DFU mode to receive a new application over USB.
The bootloader cannot update itself, so it is the application that receives the new bootloader binary over serial and rewrites the bootloader program memory.
Particle has checks built in to verify that the bootloader file is correct and correctly received before it starts to overwrite the memory. If the device loses power in the small window where the memory gets overwritten, that might result in a broken bootloader.
If the bootloader is corrupt, the only way to restore it is to use an external programmer.
I’m afraid that does mean you’ll have to mail it to us so we can reset it.
Was this a BrewPi -> BrewBlox install, or a BrewBlox reinstall?
To prevent more bricks I’m pushing a hotfix that disables the bootloader flash command. Depending on the previous version, it may cause firmware errors, but those can be fixed without specialized hardware.