ClearGauntlets Power (Mis)management

2023-02-21

Update: 2023-05-02

There have been developments with the power module that make this information obsolete. The power module referenced here is still insufficient for our design. Refer to information in the "Projects" tab (not yet written) for advice on power systems.

Last week, Tucker finished building the ClearGauntlet 1.0, and handed it off to me to get it wired up and tested out before our demo. Having finished assembling Rev B of our PCB, all that was left to do was solder short, three-pin IDE cables to each potentiometer, crimp Dupont connectors to the ends, and plug everything in.

Unlike the previous semester's prototypes, this glove was "complete." It had five fingers, and five servos, instead of two. Initially, testing was done with the latest revision of the LucidVR firmware, 5V JST connector plugged into the wall (another teammate had the power module at the time), and serial port plugged into the PC. This setup appeared to be functional. All the fingers were responding, despite some issues with sticky reels and an overly-sensitive middle finger potentiometer.

After spending some time tweaking the strength of the force feedback, the board was re-configured to work over Bluetooth. The serial cable was disconnected and the driver was configured for wireless operation, leaving just the 5V/2.3A wall wart to supply power. Problems crop up almost immediately.

There were several hints as to what was wrong:

  1. When using the UI to extend or retract all servos, the first command would go through, and the servos would move a small amount, then die, and be unresponsive to further commands. Sometimes, the servos would get stuck jittering.
  2. In-game, finger tracking would work flawlessly, until grabbing something. The fingers would then freeze in place for a time, then start tracking again. The next time a hand is moved, the game would freeze while Visual Studio would break on a Read access violation.
  3. When firing all five servos at once (either by using the UI or moving towards an object in game) the status LED on the ESP32 would dim or flicker, indicating a brownout.
  4. All issues would vanish when 2-3 servos were disconnected from the board, reducing the momentary peak current of the glove.

Aside from the power management issues, there were some tweaks that needed to be made to the Bluetooth communication code, graciously completed by @danwillm#8254 on Discord. These mostly concerned issues with latency and connection bootstrapping.

To solve the power management issues, testing was conducted with a variety of power delivery methods. It was concluded that a large, 5V/3A power source was required to keep the microcontroller fed during high power draw while the servos fired. Additionally, 2000µF electrolytic capacitors were added across the Vin and 3V3 pins of the ESP32, but this does not appear to have an appreciable effect on the survivability of the microcontroller. 100nF ceramic capacitors were also added across the power inputs of each servo.

Takeaways

  • ClearGauntlets requires at least a 5V/3A supply to power itself. Thus, a larger, two-cell version of the power module will be used from now on.
  • Rev C of the ClearGauntlets board will require additional power circuitry such as load capacitors, and perhaps a separation of the power input for the ESP32.

Links