Capacitor-Powered Bristlebot Kit

Aus FabLab Winti Wiki
Wechseln zu: Navigation, Suche

The capacitor-powered bristlebot kit is a user project, developed in preparation for the Bristlebot Fun Robot Workshop as part of the European Maker Week in June 2016.

Capacitor-Powered Bristlebot Kit
Projekt: Capacitor-Powered Bristlebot Kit
Benutzer: Christian Walther, with help from Patrick Gubelmann, Damian Schneider and others
Bereich: Electronics
Technologie: PCB Design


Figure 1: Capacitor-Powered Bristlebot

After the idea to make a bristlebot workshop had come up and someone showed an example of one powered by a supercapacitor, my interest was piqued. Bristlebots powered by coin-cell primary batteries are simple and cheap, but something rechargeable to get away from the throwaway mindset sounded exciting. FabLab Zürich had used lithium batteries with a charging circuit before, but that seemed a little overkill. Could I make a kit with a supercapacitor? Maybe even one with a custom-designed printed circuit board with a USB plug for the charging circuit? Damian had shown us how to use Eagle to design PCBs and have them manufactured by Dirty PCBs a few days before, so that would make a nice exercise project for that.

Figure 2: Capbot v0.1

First experiments with an old 1F 5V supercapacitor I had lying around and a vibration motor scavenged from an old Nokia phone proved vaguely encouraging. The first capbot (pictured in figure 2) ran for about 50 seconds on a full charge. The capacitor seemed to have degraded a little over the years however, due to its high internal resistance it took several minutes to charge to that level. Measurements yielded the following numbers: The motor would start running at about 1.3 V, stop running at about 0.6 V, and have a more or less linear current/voltage curve of about 19 Ω. The capacitor had a remaining capacitance of about 0.75 F and an equivalent series resistance of 64 Ω.

Figure 3: Roughly computed discharge curves

Experiments continued with some newly ordered supercapcitors: 1.5F/5.5V, 4.7F/2.5V, and later 10F/2.5V. Discharge curves were modeled for several constellations of capacitors connected in series or in parallel and resistors or voltage regulators in the discharge circuit (figure 3). The result was that connecting the 4.7F capacitors in parallel and directly to the motor provided the longest running time by far, over 4 minutes. Also, connecting two 2.5 V capacitors in series to a 5 V power supply, which would have made for a very simple charging circuit, proved difficult because their capacitances vary sufficiently that one of them would end up at a voltage too much above 2.5 V.

Figure 4: Measured charge current

Safely charging the parallel capacitors (or equivalent single capacitor) to 2.5 V from the 5 V of a USB power supply requires a voltage regulator. A 10 Ω resistor limits the current to the 250 mA that an MCP1700 voltage regulator (TO-92 case) can withstand. It turned out that connecting this resistor in series between the voltage regulator and the 5 V supply instead of between voltage regulator and capacitor, so that the input voltage to the regulator varies with the current draw (which is not a recommended way of normally using a voltage regulator, they require a low-impedance input for a stable output voltage), resulted in a very desirable property: The capacitor would be charged at an approximately constant current (more exactly, approximately constant during the first half and slightly linearly declining in the second half of the duration) until it reached the 2.5 V, then the current would rapidly drop and approach zero (figure 4). This reduces charging time to 1–2 minutes. I have not been able to satisfactorily predict this behavior, as it depends on what the voltage regulator’s internal voltage reference does when the input voltage is too low to reach the rated output voltage, which is not specified in the data sheet, but it worked well enough in practice so I was satisfied with that. The constant current also varies between 140 mA and 250 mA among the specimens of MCP1700 I tested.

Figure 5: Capbot v0.2

This behavior also makes it very simple to include a charge indicator in the circuit: As the charging current drops to zero, the input voltage to the voltage regulator rises to 5 V, which becomes enough to drive two LEDs connected in series through a 100 Ω resistor, while the 2.5–4 V before are not – in other words, the LEDs go on when the capacitor is full. These ideas were realized on stripboard in the next prototype (figure 5), which worked quite well. The board turned out larger than the 5 cm limit of the cheapest Dirty PCBs offer however. This, and the desire to spare the bot from carrying around the weight of the electronics all the time, led to the decision to make the USB charging unit detachable using pin headers and only leave the on-off switch on the bot-side board in the final design. The pin header is coded by using 3 of 4 instead of just 2 pins in order to make it impossible to connect in reverse, which would damage the capacitor. Various motors ordered by Patrick were tested and all provided several minutes of useful running time as expected.

Figure 6: PCBs arrived

The final PCB layout was drawn in Eagle, fitting two single-capacitor and one dual-(parallel-)capacitor panels on one 5 × 5 cm board. To give the user the choice between a single-board solution and a detachable charging unit, the two parts were left connected, but perforated so they can easily be broken apart. There was not much space left for silkscreen labeling, but enough for a logo, year, revision number, and switch position labels. These were imported from SVG using the svg2poly importer, because I consider Eagle’s standard vector font aesthetically beneath my dignity. After friendly review by Damian, the design was sent to Dirty PCBs for manufacturing on 1.6 mm board (2.0 mm would work better for the USB connector, but would more than double the price). The boards were done 5 days later and arrived with DHL another 5 days later (with two weekends in between, 7 business days in total) (figure 6). The “protopack ±10” contained 11 boards of apparently flawless quality, the only difference to the design I could notice was that the octogonal solder pads appeared rotated by 22.5°. The silkscreen labeling expanded a bit from the original but was still very readable at 1 mm text height.

Ideas for revision 2

  • Making the charger part a little longer (there are still a few mm of space left in the 5 × 5 cm range) would allow the two parts to be joined by straight instead of angled pin headers without the switch getting in the way of the USB connector. Spreading the components a little farther apart would also make soldering easier.
  • Don’t use line width zero for the silkscreen polygons, as that needlessly inflates the Gerber file size because Eagle rasterizes the polygons with ten-thousands of insanely finely spaced lines of the same width.
  • Enlarge the solder pads of the LEDs a bit for easier soldering (the library part was customized already anyway to make the flattened side more obvious on the silkscreen).
  • There should be another LED that says “it’s charging”, or at least “it’s powered”. Otherwise, when first plugged in (with a capacitor attached), it is unclear whether the charging works or the too thin connector is making bad contact. Several workshop participants were confused by that. Or at least make putting tape on the bottom of the connector to thicken it a mandatory part of the instructions. Or use the more expensive 2.0 mm board.

Revision 2

All of the above issues were addressed in revision 2 (August 2016). Addition of a single Zener diode changes the function of the LEDs as follows: One LED lights up as soon as the charging station is powered. The second LED lights up when charging is complete, as before.


The Eagle PCB files are available at


Rough instructions for assembly (in German) are available here: Bristlebot-Stromversorgung-Anleitung.pdf (r1), Bristlebot-Stromversorgung-Anleitung-r2.pdf (r2).

Bill of Materials

Item Source ~ Cost (CHF)
PCB Dirty PCBs 1.00
Capacitor SMD 1µF (0805 or 1206) Conrad 450798 0.06
Resistor 10Ω 0.6W (0207) Conrad 1417574 0.12
Resistor 100Ω 0.25W (0207) Conrad 1417639 0.08
Voltage Regulator MCP1700-2502 Conrad 1085859 0.55
2×LED 3mm green Conrad 180156 0.26
Super-Capacitor 10F 2.5V Conrad 456984 1.55
  or  2×Super-Capacitor 4.7F 2.5V Conrad 456915 1.90
Slide Switch Boxtec 48636 0.31
Male Pin Header Conrad 1390109, 1390107 0.05
Female Pin Header angled Conrad 1303432, 1303427 0.25
Vibration Motor AliExpress 0.75
r2 only:  Zener diode 3.0V 500mW (DO-35) Distrelec 170-06-458, Pusterla 0.05

Field Test

The workshop was a success! You can find some pictures here.

More impressions from Maker Faire Zürich 2016:

The one on the last picture is currently stationed in the FabLab waiting to captivate unsuspecting visitors!

Kits for Sale

I occasionally order parts and keep a small stock. If you would like to buy some kits, contact me by email at cwalther gmx ch or if you are a FabLab member in Slack and ask if there are any left. For large quantities (20–30 or more), I would prefer if you obtained the parts yourself from the sources indicated in the bill of materials above.

  • Raw material for 3 bots (2 × with one large + 1 × with two small capacitors), without instructions (download PDF above), without wire to connect motor, SMD capacitor not soldered (should be done in advance for beginners): CHF 18.00
  • Complete kit for 1 bot of choice, with printed instructions, wire, and pre-soldered SMD capacitor: CHF 8.00

All kits include electronics and motor only, no toothbrush or other construction material.

I prefer supplying raw material because preparing individual kits is more work, and not particularly interesting one.