Tiny robots.Complete systems.
Dimebots are autonomous, self-contained micro-robots designed to be as small as a dime and weigh less than a nickel.

Microrobotics Research
Microrobotics Research
In the field of robotics, there have been numerous micro-robots that are considered to be small. While these robots are certainly tiny, nearly all of these robots use an external means to power their articulations. More simply, these robots don’t carry their of power source or battery to control their movements. Some of the external means of power that have been used to actuate these robots include sonic/sound, lasers, light, vibration, magnetism, and even alcohol. While this allows for the robots to be extremely small, these robots must always be powered by the external force in order to move. In contrast, I designed Dimebots to be completely self-contained and autonomous.
Hardware
Microchip/Atmel ATTiny1614 & Texas Instruments DRV8837
The search for a suitable microcontroller is constrained by a number of factors. These factors included providing the necessary peripherals that are required, such as Pulse Width Modulation (PWM), at least one Universal Asynchronous Receiver/Transmitter (UART), support for at least one Inter-Integrated Circuit (I²C) communication bus, and in-circuit serial programming (ICSP). I originally designed the Dimebots to utilized the 8-bit Microchip/Atmel ATmega328p which is the microcontroller found in the Arduino Uno. The ATmega328p provides a simple and easy-to-understand coding platform through the Arduino integrated development environment (IDE) while also coming in a number of footprints that could work for my requirements, namely a 32 pin Thin Quad Flat Package (TQFP) and 28 and 32 pin Very Thin Plastic Quad Flat No-Lead (VQFN). I went as far as laying out an ATMega328p using a VQFN footprint, but the additional support requirements of using the ATMega328p such as a 6 pin ICSP header and an external 8MHz crystal/resonator necessitated a smaller microcontroller. In addition, the great dearth of microchips because of the COVID-19 pandemic disrupting global supply chains, stay-at-home orders increasing, and demand for consumer electronics and electric vehicle adoption, such as the ATMega328p, makes my selection of a suitable microcontroller much narrower. I decided to give myself a couple of weeks to see if I could nail down a microcontroller that is small, yet peripheral rich. Fortunately, Spence Konde (aka Dr. Azzy) had recently released Arduino support for the newer microcontrollers offered by Microchip/Atmel, including support for the tinyAVR 2-Series, the tinyAVR 1-Series, and the tinyAVR 0-Series of chips. After testing a number of different microcontrollers, I chose the ATTiny1614 in a 14-pin Small Outline Integrated Circuit (SOIC) footprint due to its necessary peripherals, overall microcontroller size and footprint, and most importantly, its availability. The ATTiny1614 can be powered by a wide variety of voltages including 1.8V all the way up to 5.5, has multiple I²C buses and multiple UART’s, has 6 PWM channels, and used the Unified Program and Debug Interface (UPDI) for programming. The UPDI interface is perfect for my needs, as it required only a 3-pin programming interface versus the 6-pin interface used for the ATMega328p.
The Texas Instruments DRV8837 is chosen as the motor driver for the Dimebots. The DRV8837 output driver block consists of N-channel power MOSFETs configured as an H-bridge to drive the motor winding. An internal charge pump generates needed gate drive voltages. The Texas Instruments DRV8837 is packaged with a host of features, namely:
- 1.8-A Maximum Drive Current
- Separate Motor and Logic Supply Pins
- Motor VM: 0 to 11 V
- Logic VCC: 1.8 to 7 V
- PWM Interface with IN1 and IN2 receiving PWM input
- Low-Power Sleep Mode With 120-nA Maximum Sleep Current
- nSLEEP pin
- Small Footprint – 8-Pin WSON With Thermal Pad with a 2.0mm x 2.0mm size
Vishay VCNL4040 Proximity Sensor
I sampled and tested numerous proximity sensors to find one that is power friendly, small, and available. This included sensors such as the Broadcom APDS-9960, the ON Semiconductor QRE1113, and the Sharp GP2S60. I finally selected the VCNL4040 from Vishay that interfaced with the ATTiny1614 using the I²C protocol.
Nanjing Qinheng Microelectronics CH9141 Bluetooth (BLE4.2) Module
Searching for a Bluetooth LE module that is tiny enough to fit the constraints of the robots mainboard while also providing for some type of serial communications is a challenge. All of the traditional Bluetooth 2.0 Serial Port Profile (SPP) modules were either too large or too power hungry to meet the dime-sized requirements of the Dimebots. After a few weeks of exhaustive searching, I discovered the CH9141. The CH9141 module ticked all of the requirements I needed, including:
- Supporting the standard Bluetooth V4.2 protocol
- Bluetooth transmission distance up to 100 meters
- Two-way transparent transmission of serial port and Bluetooth data
- Support Bluetooth broadcast, host, and slave modes
- Support serial port AT command configuration
- Serial port baud rate supporting 300bps all the way up to 921600bps
- Support for adjustable serial port parameters
The CH9141 module integrates master and slave functionality, while being configured through AT serial commands. The serial AT commands were used for configuring the CH9141 module to set the modules device name, module password, and serial baud rate to 9600bps.
Microchip MCP1700 Low Dropout (LDO) Voltage Regulator
A source of a stable and clean 3.3V is needed to power the dimebot and its peripherals. The Microchip MCP1700 Low Dropout (LDO) Voltage Regulator is a CMOS low dropout positive voltage regulator which can source up to 250mA of current with an extremely low input-output voltage differential of 178mV at 250mA. The low dropout voltage combined with the low current consumption of only 1.6µA makes this part ideal for battery operation. The low voltage differential (dropout voltage) extends battery operating lifetime. The MCP1700 is stable with 1.0µF ceramic output capacitor. It also permits high currents in small packages when operated with minimum VIN — VOUT differentials. The circuit also incorporates short-circuit protection and over temperature protection to ensure maximum reliability.
Microchip MCP73831 Linear Charge Management Controller
The Microchip MCP73831 Linear Charge Management Controller is a tiny 500mA linear charge management controller which includes integrated a pass transistor, integrated current sensing, and reverse discharge protection in 5-pin SOT-23 and thermally-efficient 8-pin 2mm x 3mm Dual-Flat No-Leads (DFN) package. Additionally, the Microchip MCP73831 features
- High accuracy preset output voltage regulation (+/-0.75%)
- User-programmable charge current
- Charge status output can directly drive LEDs
- On-chip thermal regulation
- Preconditioning and end-of-charge ratio options
- Under-voltage lockout
The MCP73831 device is a highly advanced linear charge management controllers for use in space-limited, cost-sensitive applications.
3.7V 30mAh Rechargeable Lithium Polymer (LiPo) Battery
The main factor that ultimately determined the size of the robot (and most every robot in the world) is the size of the battery. The balancing act between battery size and power is challenging to say the least. On one hand, I needed something that fit in the dimensions of the robot. On the other hand, I needed a battery that provided enough voltage and amperage to run the robot and its associated peripherals, while ensuring a robot runtime that is acceptable. The battery chosen is a 3.7V 30mAh Rechargeable LiPo Battery.
Motor – 4mm x 8mm Pager Motor
The 4mm x 8mm pager motors used are coreless motors with a .70mm shaft diameter. Manufacturer test data states that these motors run at :
- 1.5V 18000RPM 5mA
- 3.0V 37000RPM 8mA
- 3.7V 47000RPM 10mA
- 5.0V 62000RPM 25mA
Body
3D Printed Body
The body of the Dimebots is 3D printed using Polylactic Acid (PLA) plastic. PLA is one of the most popular materials used in desktop 3D printing. It is the default filament of choice for most extrusion-based 3D printers because it can be printed at a low temperature and does not require a heated bed. PLA is a great material to use because it is easy to print, very inexpensive, and creates parts that can be used for a wide variety of applications. It is also one of the most environmentally friendly filaments on the market today. Derived from crops such as corn and sugarcane, PLA is renewable and most importantly biodegradable. As a bonus, this also allows the plastic to give off a sweet aroma during printing.
The tires of the Dimebots uses 005 sized o-rings. The o-rings are slightly flattened using high-grit sandpaper in order to provide more surface area resulting in more traction for the robots. The drive wheel of the Dimebots is 3D Printed using PLA and with a .69mm diameter hole that allowed the motor shaft to be press fitted into the hole for fastening.
The freewheel of the dimebot robots consists of a 005 sized o-ring tire with a slightly flattened edge to allow for more traction. The wheel is comprised of a 681 Metric 1mm x 3mm x 1mm Deep Groove Ball Bearing. To allow for freewheel spinning of the wheel, a M1 x 5mm screw is used as an axle shaft.
To connect and fasten the three primary PCB boards of the robots together, a 1.27mm pitch right angle header is used. This allows for quick assembly and provided a reliable method for interconnecting the PCB boards together.
Software
Software
The software for the Dimebots leverages the Arduino integrated development environment (IDE) platform. This allows for coding simplicity and enables the use of pre-built libraries. Fortunately, Spence Konde (aka Dr. Azzy) has recently released Arduino support for the newer microcontrollers offered by Microchip/Atmel by using the megaTinyCore libraries. The use of the megaTinyCore libraries allowes for rapid code development. In addition, two supplementary libraries are used to streamline the code development of the Dimebots. These libraries are the Sparkfun VCNL4040 Library and the Cytron PWM Library.
Tools
Tools Used
There are a variety of tools that are required to design and construct the Dimebots. The 3D Printed PLA body and drive wheel uses the Autodesk Fusion 360 design software. This enables rapid design development of the physical pieces needed for the Dimebots and the ability to export STL (stereolithography) files that can be used in the process of 3d Printing.
The Ultimaker Cura 3D Printer slicing software is used to create the required g-code files that are used by the 3D Printer for the actual printing process.
For the 3D Printing of the physical parts of the Dimebots, the Creality Ender 3 is used as the 3d Printer.
The 7.7.0 version of the Eagle CAD software is used as the tool for the development of schematics and PCB board layouts of the Dimebots.
The Unified Program and Debug Interface (UPDI) is a Microchip proprietary interface for external programming and on-chip debugging of a device. It is a successor to the PDI two-wire physical interface, which is found on all AVR XMEGA devices. UPDI is a one-wire interface providing a bidirectional half-duplex asynchronous communication with the target device for purposes of programming and debugging. A fast signal Schottky diode such as one of the BAT series (BAT43, BAT54) is soldered between TX and RX to allow for reliable UPDI programming at 230400 baud. A custom PCB board that adapts the CH340G USB to Serial TTL Converter to the Dimebots using a 3 position 1.27mm connector is used for programming the Dimebots.
Gallery




















.jpg)






































Dimebots Download Information
The complete source files for the construction of Dimebots has been released as open source. Files can be found at Dimebots Github
