Quote
ambrop7
I've been measuring voltage between the ground connection of the thermistors and Due's GND pins next to Vin (presumably these have the best connection to GNDANA on the SAM3X8E). I find that the errors correspond to an increased and positive voltage here. In the worst case, with all heaters on, the voltage is about 0.03V. This must be due to some currents related to heaters being on. So I added a wire connection to the bottom of the board.
Great catch.
Quote
ambrop7
The wire decreased the voltage to 0.005V worst case, and the temp errors have decreased with that. I suspected there's extra current coming into my wire from the on-board connection of thermistor ground, so I cut that trace (the one at the bottom ground pin on my picture). Surprisingly, it made things worse, voltage has risen to 0.01V.
The whole ground area in that section is also Ground to the Endstops. Can you perhaps disconnect your Endstops (and that wire) and see if there is any difference? Also, are you using Micro-switches or Hall-0/Optos? Would make some sense if you're using Hall-0/Optos, as they draw a continuous current.
FWIW: We're using 10K pullups for Micro-switches, but the Atmega series internally has 20K pullups, while the Due internally has 100k pullups. We could change RP801/802 to something higher (or change all the resistor packs to reduce current all-round).
Quote
ambrop7
So I'm not sure what the unwanted current is due to, but I believe the thermistors should have a more direct connection to the Due, both ground and 3.3V. And ground should probably go to the two GND pins next to Vin, since I think these have the best connection to GNDANA.
P.S. credit goes to Triffid_hunter on IRC for suggesting a voltage may be present between GNDANA and thermistor grounds.
I'll see what I can do about the Ground tracks, and where possible the thermistor circuitry. That area is a bit of a bottleneck in the board (particularly around the hole near Due pin 21), so not sure how much improvement I can give to the thermistor circuitry.
The tracks around the 2 grounds next to VIN aren't as big as they could be, so IMO there is room for improvement. The area is a bit cramped due to the Pololu sockets and the Arduino pins being so close together.
I am wondering if I can rearrange/swap the ESTOP and Thermistor connectors, as this should give a better ground connection. Making the board wider than 100mm may also help, as the ground plane can then run the edge of the board next to Aux-4, providing another path. That does increase the price of the board a bit at some places (100mm x 100mm seems to be a sweet spot for some board fab companies). As it is, we've increased the board size to 95mm x 100mm, which improves the ground in that corner a lot.
Can you try putting a wire from the Thermistor ground to the ground on I2C-0 and measuring the voltage drop? This should be reasonably equivalent to the changes I've made so far in that area.
As it is, I've just improved the ground a lot, so that may help, but IMO we should be able to do better.
See Github Bug #23 for RAMPS-FD for status/notes/details.