[Duet3] Incorrect readings from DHT22 after a move
I'm wondering if anyone ever noticed anything like this.
My setup consists of a CoreXY machine running Duet 3 6HC (3.1.1) standalone and 3HC. In general, everything works perfectly, except for the DHT22.
I have it connected to the temp daughterboard pins for vcc, gnd and signal (I tried cs0 and cs1). There is a 10k ohm resistor connected between the vcc and signal legs of the dht22 itself (problem appears without it as well).
Readings come in perfect, until I start moving the motors.
Even the smallest move causes the readings from the DHT22 to go bonkers and start displaying 2k C.
I tried manually setting the location via G92 and even moving back on X by 1mm will cause the reading to go crazy.
What's funny is that as long as I don't touch the motors - data is read correctly. I can heat up the machine, run fans, turn on relays and whatnot - nothing affects the DHT22. I tried switching that one out to a new one too in hopes of a faulty sensor - but even that did not help.
Has anyone else seen anything like that? Any hints on what I should check? It's definitely not the wiring - I've changed that twice already.
Does the wiring run along with the motors?
Yes it does. I guess I should shield the DHT ones then, since serial is so susceptible to noise... This will be interesting since the wires run in a cable chain.
Yes, signals using open drain outputs with pullup resistors (such as I2C and one-wire protocols) pick up noise very easily from stepper motor cables. You need to use shielded cable to connect the DHT22. Stereo microphone cable should work.
Just as an update - switching over to a shielded cable (I used exactly a stereo mic cable) did not solve the issue. I'll have to rethink and move the DHT22 to a different location and see if that helps.
Do you have a pullup resistor between the signal line and +3.3V?