Service incompatible with firmware after power cycle

#1

Hi,

I’m trying to help out a friend that bought a setup with raspberryPi and the Spark to build a brew system. After some reading, software updates and trail/error we got the system to a state where we could turn ports on/off and read temperatures. We used an USB cable between the raspberryPi and the spark.

Then I brought the system home (power was removed) to try to figure out how to actually have it do something as a consequence of sensor input and time.

When I got home it connected it to my network, found the web based GUI, I was going to resume the work, but now it claims:

Service incompatible with firmware

I tried power cycle and let it rest for 30 minuttes, but nothing fixed it. So i tried to connect to the Spark via WiFi, no luck, then i power cycled again and let it sit for a while.

Since nothing seemed to do the trick i thought that mayby something had gone wrong in the system due to the power cycle, so i tried updating the bootloader of the spark ( brewblox-ctl bootloader ). That didn’t cause any issues, but it didn’t solve the problem. So then i the the actual update again ( brewblox-ctl update ), which seemed to run smoothly but it still didn’t fix the problem. No i have had it powered on over the night and it is still the same so now i’m running low on idears.

I’ve attached the log so that you can see if the updates have caused a mismatch of software versions or the system is having issues in communication.

http://kk-invent.dk/brewblox.log

Currently the system indicates that it is connected with USB and that the Spark has a valid IP adress. And right now i think i asked it to use the WiFi for communication ( brewblox-ctl wifi ).

Having had it to work I belive that the hardware is actually alright, I “just” need to figure out why the communication between the raspberryPi and the Spark indicates software mismatch, when this is not the case. Because it did infacet work just two days ago.

Any advice is much appriciated.

Br Ole

#2

@Ole, check out the topic actuators-turn-on-during-firmware-flash, believe this is a known issue that is being worked on.

#3

There are two issues being discussed in that thread, which may make things a bit confusing.

For me, to resolve the service incompatible issue I manually cycle the power of the spark after the update completes. That by itself works sometimes, but most recently it then progressed from the service incompatible stage to a synchronization issue–with Bob identified as due to the datastore freezing.

I would try updating, manually cycling the power, then manually doing brewblox-ctl down then brewblox-ctl up. If that still doesn’t work you could try disabling version check as Bob suggests in the thread.

Ultimately, this is likely a passing problem as the version check is a new feature and they are still ironing out the bugs with it. Even if nothing works, as long as you don’t need to use the spark in the next day or two, I wouldn’t worry too much. I imagine they’ll have a fix out this week, and will likely reply with suggestion for workarounds for your specific issue in the next day or two.

Cheers and good luck!

#4

Thanks for the ultra fast responce!

I added the

–skip-version-check

in the yml file and ran the:

docker-compose restart datastore

which ran smoothly, but it didn’t change anything in the GUI. It still claims the same error.

Br Ole

#5

I’m guessing you’ll need to do an “down”/“up” cycle after changing the compose file for it to take effect.

The datastore restart is just for the synchronization issue, while it seems that you are still stuck at the incompatible issue.

#6

Ok, nice to hear that it is a known problem and that we are expecting it solved. Sorry i wasn’t able to detect that in the forum.

I already tried the workarounds so I’ll leave it for a few days and follow the forum :slight_smile:

#7

@rbpalmer and @adempewolff already seen to have pointed you towards the relevant workarounds =) As adempewolff pointed out: changing the docker-compose.yml file requires a brewblox-ctl down / up before the changes are read.

To summarize:

  • to fix the compatibility error, add the flag, then brewblox down/up
  • if after the restart your system hangs on synchronizing, run the datastore restart. It’s no use to do this earlier.

Please keep in mind this is a public forum. If you want to temporarily grant somebody login access, it’s best to send them a private message.

1 Like
#8

@Ole @adempewolff Released a fix for the compatibility check issue.

If you were using it, you may want to remove the --skip-version-check flag from docker-compose.yml.

#9

Thanks, this seems to have worked for me.

#10

Hi Bob,

Sorry for the delayed responce… daughters finished high school so that took the attention for a while :slight_smile:

But having updated i’m now able to have the mocules communicate. So i guess it is a matter of reading and understanding this:

https://brewblox.netlify.com/user/control_chains.html#a-basic-example

to get the rest working.

During the updates i did:

brewblox-ctrl update -> no problems
brewblox-ctrl flash -> no problem
brewblox-ctrl bootloader -> keeps failing. It says i should press a button and times out because i do not see any buttons on the spark.

But then i tried
brewblox-ctrl setup -> No problem

and it leavs the system running it seems. So i don’t know what’s up with the bootloader update, but for now it is not an issue

Thanks for he fats responce!

Br Ole

#11

The bootloader only very rarely gets updated (less than once a year). Normally you only need to run brewblox-ctl update. That will also flash your firmware.

You only have to run brewblox-ctl setup when you install your system.