Skip to content

Releases: BrewPi/firmware

0.5.10

20 Aug 23:44
Compare
Choose a tag to compare

Just a tiny change:
This release changes the timeout for touch screen calibration from 60 to 10 seconds.
The watchdog timeout is also 60 seconds, so the touch screen calibration timeout should be short so it does not cause a reboot.

0.5.9

28 Jul 12:18
Compare
Choose a tag to compare

Small improvement:

  • remove call to WiFi.hasCredentials, because it can block the user thread for 4 seconds on loss of WiFi. It's a synchronous function that will wait on the system thread and it is not necessary.

Updating

On the Raspberry Pi run:

docker stop brewpi
docker pull brewpi/brewpi-raspbian
docker run -it --name brewpi-update --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian python utils/updateFirmware.py
docker start brewpi

On an x86 system, run:

docker stop brewpi
docker pull brewpi/brewpi-ubuntu
docker run -it --name brewpi-update --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-ubuntu python utils/updateFirmware.py
docker start brewpi

0.5.8

27 Jul 14:55
Compare
Choose a tag to compare

Bugfix release, fixes 2 bugs:

  • Introducing temperature sensor offset calibration interfered with pin setting (A/B) for OneWire actuators.
  • Listening mode was triggered automatically when no WiFi credentials were configured. The listening mode code from particle also used serial, interfering with the application's serial communication.

Updating

On the Raspberry Pi run:

docker stop brewpi
docker pull brewpi/brewpi-raspbian
docker run -it --name brewpi-update --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian python utils/updateFirmware.py
docker start brewpi

On an x86 system, run:

docker stop brewpi
docker pull brewpi/brewpi-ubuntu
docker run -it --name brewpi-update --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-ubuntu python utils/updateFirmware.py
docker start brewpi

0.5.7

24 Jul 23:34
Compare
Choose a tag to compare

Bugfix release to fix invalid initialization of temperature sensor calibration offset.

Please also update your docker container to get a UI field to configure the calibration offset.

Update instructions:

On the Raspberry Pi run:

docker pull brewpi/brewpi-raspbian
docker run -it --name brewpi-update --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian python utils/updateFirmware.py

On an x86 system, run:

docker pull brewpi/brewpi-ubuntu
docker run -it --name brewpi-update --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-ubuntu python utils/updateFirmware.py

Do rebuild the BrewPi docker container with the latest updates, the easiest way is to use the 'recreate' button in Portainer. Just navigate to the BrewPi container and click the recreate button. If you don't have this button, you have an old version of Portainer. Remove it and deploy the latest version.

0.5.6

10 Jul 10:08
Compare
Choose a tag to compare

Fixes several stability issues and handles restoring WiFi connection if lost much better.
Testing so far shows rock stable WiFi! Finally 🎉 🍻

Changes in this release

  • Digital actuators now have 3 states instead of true/false. This allows detecting and handling errors in remote actuators. See #87
  • Only look for new TCP client if the old one has disconnected AND all buffered data has been processed
  • Use a docker container to build the firmware to make it easier to manage build environment and dependencies
  • Removed Flashee EEPROM library in favor of Particle's native EEPROM support. This change causes EEPROM to be reset and all settings to be lost (if not restored during the upgrade process).
  • When the device has reset, the reset reason can be read by the python script.
  • Fix memory leak in ActuatorMutexGroup
  • Fix setting calibration offset on temp sensors

How to update

  • First update to 0.5.5
  • Use updateFirmware.py to update and restore settings (can be done over WiFi):

On the Raspberry Pi run:

docker pull brewpi/brewpi-raspbian
docker run -it --name brewpi-update --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian python utils/updateFirmware.py --beta

On an x86 system, run:

docker pull brewpi/brewpi-ubuntu
docker run -it --name brewpi-update --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-ubuntu python utils/updateFirmware.py --beta

Please note that how the touch screen calibration is stored changed in this release. You will have to do a touch screen calibration when the Spark reboots, so stay close.

Source files have been removed, because they had a bug. Please update to the latest version instead.

0.5.5

02 May 20:19
Compare
Choose a tag to compare

In this release:

WiFi stability

This release should hopefully fix all issues of unreliable WiFi and/or TCP server.
I have written a lot of test code to expose bugs in the Particle framework and filed a few bug reports at Particle. It took a long time for them to fix it, but based on my tests so far this release makes a big difference.
This release updates the system firmware layer to 0.8.0.-rc.3.

Other fixes (since 0.5.2)

  • Valve controller performance and stability: We found some bugs in the code for our DS2408 based valve control boards. The code has been refactored and valves can now be reliably used as heater, cooler or manual actuator.
  • Changed the default control constants to have higher Kp and longer Ti to reduce overshoot. Reduced beer-to-fridge Kp from 10 to 6.
  • Fixed showing 'heating' at startup.

Updating

Because this release includes new particle system firmware, you should use DFU to update. Only connect 1 Spark at a time when updating!

The bootloader will automatically be downloaded from the cloud after setup. This requires that you configure WiFi on the Spark.
You can flash the bootloader manually, but this shouldn't be necessary if the device has a cloud connection.

The easiest way to update this is to use our docker container. The first command puts the BrewPi Spark in DFU mode (blinking yellow). The second one updates it.
On the Raspberry Pi run:

docker pull brewpi/brewpi-raspbian
docker run -it --name brewpi-dfu --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian python utils/flashDfu.py --trigger
docker run -it --name brewpi-dfu --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-raspbian python utils/flashDfu.py --noreset

On an x86 system, run:

docker pull brewpi/brewpi-ubuntu
docker run -it --name brewpi-dfu --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-ubuntu python utils/flashDfu.py --trigger
docker run -it --name brewpi-dfu --privileged -v ~/brewpi-data:/data --rm brewpi/brewpi-ubuntu python utils/flashDfu.py --noreset

The BrewPi Spark will need to download a new bootloader from the Particle cloud. This requires WiFi with a working Internet connection. If the spark does not have a compatible bootloader, it will blink blue (listening mode) until you complete the WiFi setup with the Particle phone app. When it can connect with the cloud again, it will update the bootloader and start working normally again.

To manually flash the bootloader, you can use the particle CLI.
Install instructions can be found here:
https://docs.particle.io/guide/tools-and-features/cli/photon/

The update command for the bootloader is:
particle serial flash bootloader-0.8.0-rc.3-photon.bin for the BrewPi Spark 2
particle serial flash bootloader-0.8.0-rc.3-p1.bin for the BrewPi Spark 3

Only update the bootloader after updating the application and system firmware! It needs to be flashed over serial with the latest system layer. The bootloader cannot update itself over DFU.

0.5.4

08 Jan 19:41
Compare
Choose a tag to compare
0.5.4 Pre-release
Pre-release

WiFi stability

This release should hopefully fix issues of unreliable wifi and/or TCP server.
On the Particle Community, a user suggested that connecting to the Particle cloud helps with keeping the TCP server alive, so this release connects to their cloud instead of just to WiFi. This also makes setting up WiFi with the Particle App work better.

Valve controller performance and stability

We found some bugs in the code for our DS2408 based valve control boards. The code has been refactored and valves can now be reliably used as heater, cooler or manual actuator.

Small fixes

  • Changed the default control constants to have higher Kp and longer Ti to reduce overshoot. Reduced beer-to-fridge Kp from 10 to 6.
  • Fixed showing 'heating' at startup.

Update notes

Updating to 0.5.4 requires updated system firmware (0.7.0-rc-6).
When updating with DFU, this can be flashed directly. When updating over Serial or WiFi, upgrading the system firmware needs to happen in this order:

  • Update to system firmware 0.5.3 (only BrewPi versions < 0.5.0)
  • Update to system firmware 0.6.4
  • Update to system firmware 0.7.0-rc-6
    This is a pre-release until our update script has been updated to handle this update order.

0.5.3-rc.3

21 Aug 12:35
Compare
Choose a tag to compare
0.5.3-rc.3 Pre-release
Pre-release

Bugfixes

  • Workaround for WiFi disconnects where WiFi.ready() returns true, but IP address is 0.0.0.0, which could be triggered by a WiFi channel switch, see: https://github.com/spark/firmware/issues/1371
  • Always redraw USB and WiFi connectivity indicators

Build changes

  • Compiled with system framework 0.7.0-rc.3
  • Compiled with gcc 0.5.3

0.5.3-rc.2

02 Aug 21:27
Compare
Choose a tag to compare
0.5.3-rc.2 Pre-release
Pre-release

Compiled with gcc 5.4 again, because Particle reports connectivity is broken when compiled with 6.2.

Some small code quality fixes and update version number.

0.5.3-rc.1

02 Aug 20:52
Compare
Choose a tag to compare
0.5.3-rc.1 Pre-release
Pre-release

Unstable test release! Do not use unless instructed.

  • Compiled with particle system framework 0.7.0-rc2
  • Compiled with gcc 6 2017-q2 udpate
  • Patches for gcc-6 compatibility from particle/fix/gcc_6.x
  • Removed progmem references (an Arduino leftover)
  • Changes to default settings for control

Code does not fit into Particle Core due to grown system framework size. Excluded until space optimizations can be found.