Raspberry Pi Zero W - Arduino Uno


 
I think I've simplified this design as much as possible, so here's a bit more on the subject.

I've wired up a bare ATmega328P with a 16MHz ceramic resonator. I'm supplying 3.3V from the Pi to the chip. I eliminated the 100k resistor and cap from the pit probe wiring and wired it up as follows:

3V - 47k - Sense - Probe - Ground

Still the same result, but a bit more on that... Watching HDMI when I add the probe I see no information other than it rebooting. Once rebooted, I'm unable to get into the GUI, and without removing the probe wiring it will continue to reboot. I can't see anything odd on the subsequent reboot, but it scrolls by pretty fast. Only reflashing the drive gets me back to the GUI.

But here's the new piece, if I wire the probe like so:

3V - Probe - Sense - 47k - Ground

The box doesn't reboot, although I obviously get bogus values for the temperature. In all cases, none of the other analog inputs are connected to anything.

During testing I noticed if nothing is connected to the inputs I get radically varied values on the probes, from I assume transient voltage. If I connect the probe up the first way I get a realistic value on the pit probe which steadily climbs for the few seconded the Pi remains up, and varied values on the other disconnected inputs. If I wire it up the second way I get a steady value on the pit probe. There are a lot of variation on this to test, probe wired and inserted, wired and open, etc.

I could do more tested as is, but am I seeing a problem with the other inputs not being pulled up or down as the case may be? Perhaps the Pi is freaking out from the radically varying values on the other "probes"?

I don't know.
 
Last edited:
Leaving the other ADC inputs floating is fine. Like you're seeing you'll get random values on them because there's nothing to charge the internal S&H capacitor in the atmega but it shouldn't be an issue. HeaterMeter automatically clamps the output values it reads to between 0C and 500C (off the top of my head) and otherwise will report them as "off", but you can also have it output resistance which can be like 250,000 and the linkmeter side will just silently discard them instead of trying to store them in the database. There shouldn't be any way that user code is causing a reboot either way though.

Why are you pulling up your probes with 5V still now that you're on a 3.3V VCC? They should be powered from the same source that is hooked to the AVCC pin on the atmega.
 
Another odd behavior I'm seeing is the set temperature will randomly change if it runs for a while, say from 225 to 240. It'll run a while longer and change again to something else.
 
There's no software debugging you can turn on, it's an analog problem. You can measure the voltage at the ADC input and see if it matches the expected value given the temperature reported? It might be easier if you set the display to resistance by setting the setpoint to R (or it might need to be anynumberR, like 225R). Then you can just calculate the expected voltage with 3.3 * R / (47000 + R)
 
I know everyone is following this tired old thread with bated breath. So here's another update...

If I pull the other temp probes to ground the Pi no longer reboots with the pit probe wired as per the schematic. In fact everything appears to work as expected with the exception of the set point, which gradually increases on its own. Unfortunately if I wire a second probe in the whole thing gets really wacky. The offsets on the probes change their values on their own and the set point moves around much more erratically.

My plan is to try another firmware, but does anyone have any thoughts?
 

 

Back
Top