Smart Battery Charger
Skygauge Robotics - Fall 2022
What was this project?
This project was to automate the more complicated process of charging batteries at Skygauge. Since the batteries are used in the drone and determine flight time, keeping good track of battery health is crucial to ensuring safe operation of the drone. To keep track of the health, charging characteristics of the batteries are tracked to ensure that an unhealthy battery can be quickly and safely identified and removed from use in drones. The task of tracking these statistics are done by hand and tedious when the number of batteries to be tracked can reach 30+ batteries a day and much more when the drone is taken out for field work. The smart battery charger was a project to relieve the staff from needing to manually track the battery health by automating the process, requiring only staff to charge the batteries like normal, and having the smart charger will handle the battery health tracking.
What were the goals of this project?
The goal of the project was to hardware hack a battery charger, inserting a microcontroller into the device to read information from the onboard microcontroller during charging and track that information. Ideally, the solution would reduce the amount of user interaction needed to a minimum so that the system runs in the background. Due to the time constraints having the project started just 2 and a half weeks from the end of the term, the project was not expected to be complete, but had a goal to complete as much as possible.
Who was involved?
I was in charge of most of the project, but the team was available to support me with their own specialties. I received electronics help from the electronics lead, and requirements and consulting from the testing lead. The project was continued by the embedded systems lead after my co-op term ended.
How did it turn out?
By the time my co-op term at Skygauge had ended, I had implanted an Arduino based Teensy 4.1 microcontroller into a SkyRC LiPo battery charger. It was capable of reading values from the LCD and also writing to an LCD. It had also been able to electronically send button press commands to the SkyRC's internal microcontroller by using transistors to mimic physical buttons. Using that information, an interface with the battery charger that could be controlled entirely from a serial port on the microcontroller was finished, and the remaining work was to create a hub computer to interface with the individual smart chargers and store battery health information.
Serial Interface
A video demonstrating the control of the charger via serial only. The resolution unfortunately is not good enough because of compression and makes it practically impossible to read the on-screen content, but I'm just inputting commands to send via serial to the Teensy microcontroller in the charger. The text that gets generated is what is sent back via serial from the microcontroller and for now is just what the LCD is displaying.
General View
This is a overview of the hack, with all the parts in view. The microcontroller can be seen at the bottom of the image, with the LCD and buttons close to the main body of the charger.
LCD Reading
These are closer images of how the LCD is wired to the microcontroller. These lines are used to read the content of the LCD be reverse engineering the datasheet for the LCD's driver and the LiquidCrystal.h library for writing to this driver.
Button Override
This is a closer image of the buttons and how they are wired up as well as the temporary board used to mount the transistors bypassing the physical buttons.