0
\$\begingroup\$

When I connect a 3 foot USB cable at the "micro B" end into my Arduino board (Adafruit Feather 32u4 with the ATmega32u4 3.3 volt chip) sometimes the system malfunctions and subsequently resets. The symptom of the malfunction is that the LCD graphics is messed up. "Sometimes" means less than 10% of the time.

This was observed in a cold plug situation where the "standard A" end was loose. It was also observed when the standard A end was connected to a cellphone wall charger. In a programming situation where the standard A end is connected to a computer it is uncertain whether this was observed.

I noticed most of my USB cables do not have ferrite beads. They are mostly cellphone charging USB cables. I have one USB cable with a ferrite bead but it is not suitable for Arduino use because it has a "standard B" end.

This is what Wikipedia says...

Ferrite beads are one of the simplest and least expensive types of interference filters to install on preexisting electronic cabling. For a simple ferrite ring, the wire is simply wrapped around the core through the center, typically five or seven times. Clamp-on cores are also available, which attach without wrapping the wire: this type of ferrite core is usually designed so that the wire passes only once through it.

This description suggests there is a difference between a built-in bead and a "clamp-on core" but I do not know how to assess whether this difference is important.

Should I buy a snap on ferrite bead for my purposes or should I simply replace the cable with a proper ferrite USB cable?

\$\endgroup\$
  • \$\begingroup\$ Arduino unos reset when a serial connection is made... Could that be the issue? \$\endgroup\$ – MadHatter May 10 at 6:29
  • \$\begingroup\$ This isn't an Uno. My board is not supposed to reset upon a physical connection. Besides, it seems impossible to reliably detect when 4 wires are plugged in and nothing on the other end so I doubt if a reset is by design. To me it seems a USB cable is the equivalent of 4 wires. If something is on the other end the situation is different and I'm not addressing that case in this comment. \$\endgroup\$ – H2ONaCl May 10 at 6:32
  • \$\begingroup\$ A ferrite bead won't help you. This sounds like a brownout situation or power issue (e.g. switchover to USB power). \$\endgroup\$ – Tom Carpenter May 10 at 7:32
  • \$\begingroup\$ What display are you using? And how is it powered? \$\endgroup\$ – Tom Carpenter May 10 at 7:35
  • \$\begingroup\$ Switching to USB power is probably not the issue because it can happen when there is nothing attached to the other end. \$\endgroup\$ – H2ONaCl May 10 at 22:21
0
\$\begingroup\$

To see if this is an interference problem crashing the USB driver (i.e the problem requires unplugging the USB and re-plugging it in). Try this: wrap the USB cable around the base of desktop fan or kitchen blender. While your application is running reliably , turn the fan (or blender) on and off. If this crashes your application. Then it is indeed electrical interference crashing your firmware (or USB driver at the PC end). Ferrite bead will do nothing. However, connecting the outer shell of the USB plug to zero volts at the Arduino end may help. This will connect the outer sheath of the USB lead to 0 volts. All outside interference needs to travel through this.

| improve this answer | |
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.