BrewPi Arduino doesn't log data

I’ve installed legacy software and firmware. The temperature sensors - and values - show up on the device list. I configure the devices and set the temperature mode. Now I’m stuck.

I don’t see the temperature values on the LCD display or the chart.

The measured temp fields are not filled as the log file is populated.

The relay is never actuated.

Did you actually install any devices by assigning them a function and slot?

Does it say ‘script running’ on the top right?
Anything in the log files?
Are you running the legacy branch on both?
Have you tried running the fixPermissions.sh script in brewpi-script/utils?
Did you try starting a new brew by clinking on the name under the logo?

Thank you for the reply.

I did install devices following the instructions like I have done before with success. Sadly, I had to re-install BrewPi the software on a new SD card today leading to this current situation with no temp readings. I also reinstalled the software on the Arduino. I used the install and updater scripts.
It does say script running.
Maybe something will stand out to you in stderr (attached). I see that the temperature values aren’t showing up in stdout.
I’m running legacy on both. I just tried running the update script again, I chose the 0.2.10 version of the firmware again and there’s no change.
I ran the permission script to no avail. Nothing changed after reboot.
I did try starting a new brew by clicking on the name and setting up a test run. Nothing changed.


stderr.txt (6.9 KB)
stdout.txt (12.0 KB)

Can you try going to advance settings and click ‘reset factory defaults’ at the bottom. Then try to add the devices again.
I think the EEPROM is uninitialized and therefore not storing settings. This will fix it.

The BrewTemp and FridgeTemp fields still remain empty.

Sep 21 2017 13:26:28 {“BeerTemp”:null,“BeerSet”:null,“BeerAnn”:“Beer temp set to 68.0 in web interface”,“FridgeTemp”:null,“FridgeSet”:null,“FridgeAnn”:null,“State”:0}

Incidentally the file permissions on /var/www/ and /home/brewpi/ are both 2775 both before and after running fixPermissions.sh

stdout:

Sep 21 2017 13:40:33 {“BeerTemp”:null,“BeerSet”: 68.00,“BeerAnn”:null,“FridgeTemp”:null,“FridgeSet”: 86.00,“FridgeAnn”:null,“State”:0}

You don’t have any devices installed.
I’m assuming you are setting them and clicking apply, but they don’t stick.

They way you have set the fields seems correct. If you refresh the list, are they under ‘installed devices’? Or back under ‘available devices’?
If they do not stick the solution is to reset the EEPROM. If the button in the web interface doesn’t work, you can try this command: echo -ne 'E\n' > /dev/ttyACM0

I see what you mean. I can send the config command by selecting the settings and clicking 'apply, but nothing is installed. The sensors are reporting temperature as I can see the values change if I apply heat and refresh the device list. Nonetheless, when I refresh the list, the software reports NONE under installed devices. No change after resetting EEPROM. Do you have any other ideas to try?

EEPROM settings are not stored if the EEPROM is not in a known state, to prevent overwriting something we don’t want to overwrite. Resetting factory defaults from the web UI or sending ‘E\n’ over serial (which you could also do with the Arduino serial monitor) should re-initalize it. If it doesn’t, perhaps your Arduino is broken.

Thanks again for the help. Before I initially posted to the forum I confirmed that I could write and read to EEPROM by compiling a script that would write to memory and then read from it. I did this with two different Arduinos. I was able to specify each byte and then read it. I can confirm the sensors are working and the web interface indeed shows me the temperature is read as I refresh the device list showing values, but like you pointed out, the devices don’t stick when I apply changes.

To be clearer, I also tried resetting factory defaults from the web UI and by
sending ‘E\n’ over serial

well, then I’m out of ideas. The Arduino firmware hasn’t changed in over 2 years, so it is not a software bug.

We write to magic bytes and a version number to the start of the EEPROM to see if it has been initialized. It that’s in place, we can store values to EEPROM.

If you change the temperature format, does that stick? Is it just the devices?
Do you have the right branch for script and web interface without any customizations (legacy branch on both)? Check this with git status/ git diff.

Another idea, not enough supply voltage?