A method of adjusting a charging current to one or more cells, comprising: obtaining a plurality of charging time periods, each charging time period defined as a time period required to charge the one or more cells with a predefined current at one of a plurality of different temperatures; determining, with a temperature sensor, a temperature of the one or more cells; scaling, with one or more processors, the predefined current by a quotient of a first charging time period defined by a first one of the plurality of different temperatures divided by a second charging time period defined by a second one of the plurality of different temperatures, the second one of the plurality of different temperatures closer to the temperature than the first one of the plurality of different temperatures, to obtain a magnitude of the charging current; and causing, with the one or more processors, a current regulator to charge the one or more cells with the charging current at the magnitude; again determining, with the temperature sensor, another temperature of the one or more cells; again multiplying, with the one or more processors, the predefined current by another quotient of the first charging time period divided by a third charging time period defined by a third one of the plurality of different temperatures, the third one of the plurality of different temperatures closer to the temperature than the second one of the plurality of different temperatures, to obtain another magnitude of the charging current; and causing, with the one or more processors, the current regulator to adjust the charging current from the magnitude to the another magnitude. obtaining a plurality of charging time periods, each charging time period defined as a time period required to charge the one or more cells with a predefined current at one of a plurality of different temperatures; determining, with a temperature sensor, a temperature of the one or more cells; scaling, with one or more processors, the predefined current by a quotient of a first charging time period defined by a first one of the plurality of different temperatures divided by a second charging time period defined by a second one of the plurality of different temperatures, the second one of the plurality of different temperatures closer to the temperature than the first one of the plurality of different temperatures, to obtain a magnitude of the charging current; and causing, with the one or more processors, a current regulator to charge the one or more cells with the charging current at the magnitude; again determining, with the temperature sensor, another temperature of the one or more cells; again multiplying, with the one or more processors, the predefined current by another quotient of the first charging time period divided by a third charging time period defined by a third one of the plurality of different temperatures, the third one of the plurality of different temperatures closer to the temperature than the second one of the plurality of different temperatures, to obtain another magnitude of the charging current; and causing, with the one or more processors, the current regulator to adjust the charging current from the magnitude to the another magnitude.