Lipo battery overcharging to 138%

I am using a 500mah Radient Superpax 1s battery with my Dash 1.2, and it is overcharging the battery without fail when powered over USB. Any reason why this would happen? I have it reporting both millivolts and percentages to me. The lipo does not have any protection internally, but to my understanding the charging IC should cut off charging at 4.2V. I have confirmed overcharging with a multimeter. Here are pics:

What does one look at in the screenshot? What voltage did the LiPO get to?

The 4536 is battery voltage in millivolts and the 138 is battery percentage. Straight from the api. Sorry, didn’t label the data. Using a voltmeter confirms this.

Have you verified the charger stops at 4.2 on other batteries?

No, I’ll see if I can find a Lipo and test after class later today.

I have a 2000mAh connected to my dash 1.2 and no problems on charge, goes to 100% and then stops. The only time i see odd readings like you are reporting is when the battery is NOT connected. What does the charger report when the battery is disconnected?

charger reports null as it should judging by the docs when battery is unplugged. I just plugged it in again to test and it definitely still charged the battery when it was just past 4.2v.

Not so sure on that, the docs I have read it returns “undefined” results. And that is what I get with no battery. When I plug a battery in, I get from 0 to 100%

Here is the docs I read…Charger.lastPercentage()
New in Arduino SDK version 0.9.2

Returns the last read battery level as a percentage (0-100). Will only return a valid value if the board is configured for battery operation via the jumper settings.


This battery percentage returned will be undefined if no battery is connected.

You’re right, this is actually taking me back to a problem I posted about the other day with no replies. My dash doesn’t work at all unless I have a battery plugged in. At this point, unless I plug in the battery, I can hear buzzing nosies from it when it’s powered over usb. This is with everything unplugged except the antenna and the usb plug. I’ve tried powering it with my laptop and a usb power bank and cell phone wall chargers.

I thought the data was null but the device just didn’t respond as it is incapable of booting unless there is a battery plugged in. I was a bit rushed during that little test. I’m convinced the board is defective at this point. If it helps, here’s this

String myPhone = "+mine";
String iftttPhone = "+ifttt";

const int controlPin = R03;

#define SIZE_INBOUND 4096               //Inbound message size limit
char buffer_inbound[SIZE_INBOUND];      //Holds inbound message

bool shouldSleep = true;

void lock() {
  //Serial.println("Car is now locked");

  digitalWrite(controlPin, HIGH);
  digitalWrite(controlPin, LOW);

void unlock() {
 // Serial.println("Car is now unlocked");

  digitalWrite(controlPin, HIGH);
  digitalWrite(controlPin, LOW);
  digitalWrite(controlPin, HIGH);
  digitalWrite(controlPin, LOW);

void start() {
  //Serial.println("Car has been started");

  digitalWrite(controlPin, HIGH);
  digitalWrite(controlPin, LOW);

void up() {
  //Serial.println("Windows have been rolled up");

void executeCommand(String message) {

  SerialCloud.println("r"); // means successful command sent, will be
                            // interpreted on Hologram's dashboard.

  if ((message == "lock") || (message == "Lock")) {
  } else if ((message == "unlock") || (message == "Unlock")) {
  } else if ((message == "start") || (message == "Start")) {
  } else if ((message == "up") || (message == "Up")) {
  } else {
     int batPercent = Charger.batteryMillivolts();
   // SerialCloud.println("No command parsed");

void dataMessageHandler(int length) {
  buffer_inbound[length] = 0;

  shouldSleep = false;

  String dataMessage = buffer_inbound;

  shouldSleep = true;

void cloud_notify(cloud_event e) {
  switch(e) {
      //re-open the server socket on port 4010

void smsHandler(const String &sender, const rtc_datetime_t &timestamp,
                const String &message) {

  if ((sender == myPhone) || (sender == iftttPhone)) {
    //Serial.println("Command Recieved: ");
  //  Serial.println(message);
  } else {
  //  Serial.println("Command from unknown sender: ");
  //  Serial.println(message);


void setup() {
  //HologramCloud.powerUp(); //not sure if necessary
  pinMode(controlPin, OUTPUT);
  digitalWrite(controlPin, LOW);

  while(!HologramCloud.isConnected()); //block code while connecting

  HologramCloud.attachHandlerInbound(dataMessageHandler, buffer_inbound, SIZE_INBOUND-1);


  int batPercent = Charger.batteryMillivolts();
  String networkOp = HologramCloud.getNetworkOperator();
  SerialCloud.println(networkOp + " " + batPercent);

void loop() {


Hey Zainahm3d,

Can you please provide a link to the battery you are using as well as a picture of how you have this all wired. I want to make sure I understand your setup.


1 Like

Yes of course.

Battery Link

The relay is driven by a TIP31 transistor and that relay trips the button on the remote. The little module for that is connected to the Dash with a 3 pin female header. It was disconnected while I was tested but I included it in the pics.

Before I get yelled at for attaching the battery connector with solder, I can assure that it is on correctly and that there is no chance of a short between pins. Checked visually and with a multimeter multiple times. I pushed the wires around as well while measuring continuity and looking at the pins, there is extremely small likelihood of a short there. And if there was, the lipo would definitely melt the solder and cause some obvious damage.

Charging is simply done with a microusb to my laptop or an iPhone usb plug

Ok that’s out of the way:

Hey Zainahm3d,

Can you please do the following to provide us with some more information on this:

  1. Unplug your battery, power your Dash via USB and let me know what voltage you read on the JST plug.

  2. Upload the REPL and run the battery percent, battery voltage, and battery status commands.

  3. Plug in your battery, hit the restart button on your dash and run the battery percent, battery voltage, and battery status commands

  4. Wait 30 min and run the battery percent, battery voltage, and battery status commands one more time.

Hey, sorry it took a while.

1: 4.4 volts
2: 4581mV and 126% and it says charging even with no battery.
Step two a second time says no input power.
Step two a third time says charging again. Still no battery.

3: 3993mv and 70%
4: Checked after about 8 mins. 4211mv, 93%, charged status.
After about 2 more mins: 4258mv, 93% charged.
2 more: 4296mv, 94%, but status is no battery which is weird.
2 more again: 4321mv, 95%, no battery

I quit here and unplugged the battery

Battery voltage checked with a DMM: 4.28v

Also, the dash does not connect to the network unless a battery is plugged in. Even after 5 minutes. Then once I plug in the battery it connects within two or three seconds. Without fail, even on the REPL sketch. Still makes some horrible screeching and whining sounds when the battery is unplugged as well. They go away right after I plug the battery in. Last thing, I left the dash running off of the lipo yesterday and it over discharged down to 2.4 volts.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.