New HM 4.3 build, can't access LM config, AVR Fuses error on flash


 

JRob

New member
Hi all,

I just received a HM4.3 with a Pi Zero W that was built by a board member for me. I've been troubleshooting it with him, but our schedules are totally opposite, so I thought I'd reach out to the rest of the board too.

When I first got it, I plugged it in, tested the physical functionality of the unit (IE the fan/servo in manual mode, testing probes, buttons, etc), and everything worked well. At that point, I pulled the SD card, corrected the config.txt file for my wifi network, reassembled and went into the backend.

I can browse all of the Pi OS options, but if I click into the Linkmeter/Configuration page, I get a no communication error.

I followed the 2nd suggestion and attempted to flash the hex file from /lib/firmware, and get an AVR Fuses error.

From there, I followed Bryan's suggestions in this post.

Everything is as he describes in that post... +/- 3.3V at RST, 3.3 at VCC and AVC, continuity from GND at the Barrel to both GND and AGN at the Microcontroller. There is continuity between the ATMega and Pi Header at MO and MOS, MI and MIS, SCK and SCK, and RST and G25, and none of the pins on the pi header have continuity with ground or adjacent pins.

I did note and correct a short between SCL and G4 on the pi header. I also noted a potential issue on the corner of the board where the thermocoupler would attach (mine is thermister on all 4 jacks), and cleaned up a solder bridge there (see pics).

Here are some pics of my boards, so hopefully you guys can help me identify any other issues... Aside from that, any suggestions how to proceed here?

Pics are here

Thanks in advance.
 
Last edited:
there was no need to remove the sd card, if you go to heatmeter.com/devices; you can add your login info there(under download). Other than that, I'm not able to help.
 
It wasn't showing up under HM.com/devices though... That was the problem I was running into. It wasn't connected to the internet so I couldn't access it through heatermeter.com/devices, and in ad/hoc mode, when I connected my computer to the network the hm was broadcasting, the page at 192.168.201.1 just timed out.
 
As far as the AVR Fuses ERROR issue, it sounds like you've checked everything you can and it is checking out OK. I'm not sure what else you can check, but if it was working before you set up the network and now it isn't, it seems like the hardware was ok and is still operating if the LCD is still showing stuff too (which means that the MO and SCK pins are connected at least at the atmega side).

Have you tried grabbing a fresh pre-configured image from https://heatermeter.com/dl/ (snapshot version) and seeing if that fixes anything? Does your wifi SSID or password have any special characters in it that might be causing issues because my code isn't handling them properly?
 
As far as the AVR Fuses ERROR issue, it sounds like you've checked everything you can and it is checking out OK. I'm not sure what else you can check, but if it was working before you set up the network and now it isn't, it seems like the hardware was ok and is still operating if the LCD is still showing stuff too (which means that the MO and SCK pins are connected at least at the atmega side).

Have you tried grabbing a fresh pre-configured image from https://heatermeter.com/dl/ (snapshot version) and seeing if that fixes anything? Does your wifi SSID or password have any special characters in it that might be causing issues because my code isn't handling them properly?


A little further update:

1. I hooked up the HM board to a raspi 2B that I have, loaded with the correct image, and it booted perfectly, no problem accessing LM Config, etc..
2. I grabbed an image frm HM.com/dl for the pi zero, and retried the pi. Still didn't work. From there I set the norestore flag in the cmdline.txt file, again, no joy.
j
Also, just to make sure we're on the same page, the fan/servo, probe jacks, LCD, etc still work and always have. My only issue is not being able to reach the LM Config page. I never was able to reach it, and I'm not sure if the board member who built it tested backend functionality or not. I can also make changes in any of the settings pages in the backend except the Linkmeter tabs (Note, I didn't change anything in these pages aside from PW and time zone settings).


It sounds like I'm going to be sending it back to the member I got it from, as he's offered to troubleshoot it for me. However, if there is anything else I can/should check before doing so, I'd rather do that. For example, what can I test on the Pi Zero's pinheader? Are there specific voltages for pins I can check while it is powered on?
 
It is truly bizarre. It seems like a software problem on the Pi side but I can't imagine what would cause what you're seeing. I just grabbed one of my Zero Ws and flashed it with the latest snapshot thinking something must be broken in the image but it works just fine for me. There's not much you can test with the Zero's pins because linkmeterd just listens for incoming data so you won't see one of the serial lines active. Maybe check Status -> System Log for some message from linkmeterd? I wonder if it is crashing for some reason, which would look the same (nothing active in the config page).
 
I just compared it to mine and it is nearly identical, I do see it reporting ttyS0 which is the UART we talk to the HeaterMeter through, and there are no errors in your log related to bad data or something that linkmeterd is complaining about. I also get those radio0 errors, which are LEDE trying to create a monitor interface and the wifi getting all upset about it. One more thing you can check (sorry to keep sending you back over and over) is under Status -> Processes, look for "lua -llinkmeterd -e linkmeterd.start()" to make sure it is running.
 
Following up on this, JRob and I swapped Pi Zero W boards so I could investigate it more completely.
  • Receiving serial data from the Pi works
  • Transmitting serial data, oscilloscope shows no activity. With nothing connected, the voltage is around 2V, whereas normally the line is pulled up to 3.3V
  • MOSI and SCK signals look perfect
  • G25 (which we use to reset the AVR) can't pull the line low with the HeaterMeter connected. It doesn't even wiggle a bit. With nothing connected it goes up close to 3.3V but then decays down to 0V rather than having a nice sharp edge.

All the solder joints on the GPIO header on the pi looked good, so I carefully pried up the black plastic part of the pin header so I could probe the signal on the Pi's pad rather than on the pinheader. There was no solder on this side which should be fine and it gave me a really clean connection to the Pi's annular ring on the pad. I tied the scope's probe to a sharp needle to make sure I was just getting the pad and not the pin. All signals had the same behavior as above.

I then desoldered the pin header to get a better view of the board. I went over the path from the pins to the BCM2708 with a microscope and there was no damage to to any of the traces, all of the vias looked good, inspecting the components around the CPU looked to be in good shape.

On the software side I also went through all the kernel log information looking for anomalies and there were none. I tried jumpering RX and TX together and got no data in at any baud rate. I tried using the sysfs GPIO to drive G25 and got the same results, switching to G18 worked fine so I recompiled hmdude to use G18 and got success on "AVR Fuses" so that means the MISO line was also good. There's no way to remap the UART TX line that I am aware of, although there might be a way in devicetree to swap the UART used to communicate to the bluetooth over. At this point though I have gone over everything visible and see no external reason things should behave like this so I'm going to have to chalk this one up to something being broken actually in the CPU. Apart from that, the CPU and Wifi work fine, and it stayed up and running HeaterMeter all night (although you can't change any settings because the UART won't transmit).
 
Thanks a ton for the swap of boards Bryan, and for the insights into the board I sent you. I honestly wondered if I was missing something REALLY obvious on that board. It's too bad the testing you did on it isn't something any of us could do, because it seems like an awful lot of the AVR fuses threads were resolved by swapping out the Pi (obviously after doing the other testing you've recommended). It seems like this isn't a terribly common problem, but it happens frequently enough that it makes me wonder if it's common for pi's to have this kind of glitch in their boards.

I'm up and running perfectly fine now. Going to set up a test run on my UDS tomorrow and see if I can get it dialed in for the prime rib I'm planning to smoke on Monday. I'm ecstatic to finally have a HM after considering it for 2 years. I'm sick of sleepless nights babysitting my drum while smoking brisket and pulled pork, and completely over the reality that most commercially available thermometers are bluetooth rather than Wifi.

Thanks a ton for your help, and to Jason for the HM itself. This forum is chock full of awesome people who deserve credit for bringing the HM to where it's at today.
 

 

Back
Top