On my project for "a million times" ripoff (see prototype First Prototype - YouTube and detail information here My own "a million times clock-clock" | Hackaday.io) I have an issue with Power supply. It's powered by USB cable where I have bypassed the VCC and GND to the breadboard to avoid supplying the Power via ESP32 (foto is on Hackada.io). This would be too much power for this poor guy
The ESP32 is my master and 9 ATMEGA328 are my slaves. The handles are controlled by the AccelStepper library and the steppers are connected directly to the ATMEGA328. I know this is not how it should be, but as the steppers run with 5V and take 20mA per coil it's not a big issue. Long term tests is ongoing to see if one of the ATMEGA will be killed by this.
But my main issue is, that as soon as I connect the slaves to the circuit, the voltage drops from almost 5V to 3.7V. Am I right, that it is due to signals I "read" with "digitalRead()" without having a resistor in line?
Per example: As soon as one stepper (2 handles) has reached the target position, it sets the Pin "PosReached" to HIGH. The next slave reads this via "digitalRead" and if the next stepper has reached his position AND the predecessor PosReached is on HIGH, then it sets his Output "PosReached" to high. And so on until the 9th slave set his output to HIGH and the ESP32 reads this HIGH and submit the next target position to the 9 slaves via I2C.
In my opinion, the connection with setting one Pin to HIGH and reading this with another ATMEGA without a resistor, draws too much current and will destroy my MCU over time.
Or do you see any other flaw in my wiring?
Thanks for your support. All my files are available on Hackaday,io. If anything is missing, let me know and I can upload it As beginner in this field I have nothing to hide
Please post relevant images here. I'm not going to guess which of the images of that external link may be what you have.
Voltage drop usually means something is drawing too much power. How many steppers are that?
There is one master (ESP32) and 9 slaves.
Each slave has one VID28-05 Stepper.
One VID28-05 Stepper consists of 2 stepper motors (2 handles). Every coil draws 20mA@5V (250Ohm).
So per Slave I have 4x20mA+ATMEGA328 = roughly 120mA at full power.
My Power supply can supply 2Amps @ 5V.
In meantime I inserted a 3k resistor at all “PosReached_Out” pins and one 3k resistor at the output of the Start signal.
I have now an overall voltage of 3.9V at the slaves. At the USB input I measured 4.8V. So from 4.8V I loose almost 1V over the wiring and consumers.
Can this be because of the small Dupont wires? Or is the connection on the breadboard so poor that I have a high resistance there?
Attached is the schema of one slave PCB and some pictures of the wiring.
Thanks for your help. I know it’s a little bit much wiring, but hopefully somebody sees how to improve the wiring
So that's a total of about 1A which has to go through a breadboard, then through some thin wires... you need only about 1 Ohm of stray resistance to lose that 1V.
Breadboards can do up to about 500 mA safely, above that you may run into issues like this. Use thicker wires from your power supply to the slaves, that should help a lot there.
The voltage of 5V measured WHERE drops to 3.7V?
Have you measured the voltage at the supply terminals, then checked at each lead pair between slaves.
You are daisy chaining the slaves, okay for comms but not for current distribution.
Thank you wvmarle and TomGeorge. I have measured the voltage drop and resistance on several points and it's exactly how wvmarle says. Breadboard connections are bad. Some of them had more than 150Ohm! But the connection through the slaves (3 daisychained) seems OK, no real voltage drop (less than 0.03V!). The issue comes really from the breadboard!
I have now connected the power connection directly from USB to soldered connections (still with this small cables) and the voltage level is almost OK (4.3V +-0.03V at slaves).
Thank you very much for this - even basic - input which was underestimated and not realized by me.