     elapsedMillis = getTime();
     double vcc = ((double) readVcc() / 1000.0);
     dtostrf(vcc, 5, 3, str_vcc);
+
+    if( charging || discharging )
+    {
+        current_mA = ina219.getCurrent_mA();
+    }
+    else
+    {
+        current_mA = 0;
+    }
+    dtostrf(current_mA, 5, 1, str_mA);
 
     voltage = (vcc * (double)analogRead( 0 )) / 1023.0;
     dtostrf(voltage, 3, 2, str_volt);

    lcd.print(line2);
}

void setup()
{
    // put your setup code here, to run once:

    int value = EEPROM.read(eeprom_address);
    if ( value != 0)
    {
        lcd_timeout = value;
    }

    //Initialise the LCD
    lcd.begin (16, 2);

        sprintf(line1, "%02d:%02d:%02d                ", hours, minutes, seconds);
        sprintf(line2, "VCC: %sV", str_vcc );
        break;
    case MODE_BUTTONS:
        char str[16];
        GetButtonsStr( str );
        sprintf(line1, "CURRENT BUTTONS STATE:");
        sprintf(line2, "%16s", str);
        break;
    case MODE_TIME:
        sprintf(line1, "TIME FROM START:");
        sprintf(line2, "%02ld:%02ld:%02ld        ", hours, minutes, seconds);
        break;
    case MODE_VOLTAGE:
        sprintf(line1, "%16s", "INPUT VOLTAGE:");
        sprintf(line2, "%16s", str_volt);
        break;
    case MODE_LCD_TIMER:
        sprintf(line1, "%02ld:%02ld:%02ld   %d    ", hours, minutes, seconds, lcd_timer);
        sprintf(line2, "LCD timeout %d       ", lcd_timeout);
        break;
    case MODE_CHARGE:
        sprintf(line1, "%16s", "CHARGE");
        sprintf(line2, "%16s", str_volt);
        break;
    case MODE_DISCHARGE:
        sprintf(line1, "%16s", discharging ? "DISCHARGING..." : "DISCHARGE");
        sprintf(line2, "%6s %6s mA", str_volt, str_mA);
        break;
    case MODE_SERIAL_MON:
        sprintf(line1, "%16s", serial_buf2);
        sprintf(line2, "%16s", serial_buf1);
        break;
    default:
        sprintf(line2, "DFT mode %d %s", _mode, "      " );
