[Duet3] Incorrect readings from DHT22 after a move

  • Hi everyone,

    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.

  • Moderator

    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. 🙂

  • administrators

    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.

  • administrators

    Do you have a pullup resistor between the signal line and +3.3V?

Log in to reply