Grounding with Xiao

Hi All,

I’m working on a haptics project using 10mm ERM motors with Esp32C3 Xiao. When I connect more than one motor to ground, I lose all current. I have the positive leads attached to GPIOs and grounds all wired to GND.

As Xiao only has one ground, connecting these 5 motors to the same ground seems to be the only option for a wearable form factor. I can’t use an expansion.

The motors run one at a time, so I thought it could handle that much current, around 40mA at a time.

Can someone help me understand what might be going on? Let me know if I can provide anything else.

Thank you

It’s sounds like you’re trying to sync allot of current , Maybe too much current from an IO pin.
Try one motor first. Also what about a current limit resistor?
HTH
GL:-)
12ma. is safe max imo.
https://esp32.com/viewtopic.php?t=2384

Hi PJ,

Thanks for that thread, very helpful read. One motor with a current limiting resistor works, but if I use the same resistor on the next motor, it doesn’t work. Your right, probably overloading.

I’ll have to calculate how much current limiting I’ll need to do to get all 5 motors operating within the ESP32C3’s spec.

Cool, sounds like a great project, stay at it you’re on to it now. :grinning:
GL
:-p

See “5.5.2 Functional Description 3.” in “ESP32-C3 Technical Reference Manual”
The output current of the GPIOs can be set.
IO_MUX_GPIOx_FUN_DRV=
0:~5mA
1:~10mA
2:~20mA(default value)
3:~40mA

How many volts and amperes does the motor use?

Thanks for your support! More good info.

I’ve purchased these low current 8mm motors from Vybronics: Coin Vibration Motor - VCLP0820B004L | Vybronics

Rated Voltage (Vdc): 3.0
Operating Voltage (Vdc): 2.7~4.0
Rated Current MAX (mA): 35
Typical Current (mA): 30

Aside from using these low current motors and current limiting resistors, is there anything else I should understand to get all 5 motors functioning?

Thanks again!

A starting current of 50 mA is required to start this motor. A simple driver outside of XIAO would be needed to ensure reliable operation.
For a simple experiment without a driver, note the following

  1. Set IO_MUX_GPIOx_FUN_DRV=3 for the output current to 40mA.
  2. If there is a current limiting resistor, start-up current cannot be output
  3. Connect a diode in parallel with a motor to prevent reverse voltage generated when a motor is off.
  4. Heat generation may be high when multiple motors are driven at the same time.