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

The MCP73831 device is a highly advanced linear charge management controllers for use in space-limited, cost-sensitive applications.

The 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:

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:

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 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

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 :


The 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.

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.