This is part one; click here for part 2.

Reflow soldering of some of the components was covered in part 2.5.

Part 3 covers some initial tests.



I purchased a product a while back which came with AA batteries that were rechargeable and afterwards I could see why; the product had terrible power consumption during power-off and the batteries discharged within a few weeks even if the product was not used. I contacted the manufacturer, and they claimed this was normal for their product.


With remote nodes that may need to run for many months, years or perhaps a decade or more, power consumption and power management and strategies for conserving power are important for IoT. Knowledge of the amount of energy available and the power requirements of hardware will provide deep insight for improving entire solutions because then engineers will have the parameters to design and tweak algorithms to optimise sensor acquisition time and data transmit time (as an example), and to select more optimal protocols and cloud services to keep response and processing times short, to allow more longer sleep cycles for hardware.



It is useful to know how the product will behave when connected to a battery, and how long it will run for. As the battery discharges, the voltage will drop and power consumption and device performance may change too. The battery performance may permanently reduce over time (for example after hundreds of charge-discharge cycles) and there may be temperature effects as well. Many solutions will make use of solar power or other energy sources, but it is likely that batteries and/or capacitors will be involved in those solutions too.



Testing with real hardware and batteries is important. However, it gets tricky to know the actual state of batteries. A battery simulator could be a good idea for being able to automatically set up an experiment by simulating any battery state (e.g. to start an experiment at 60% discharged state), and being able to repeat tests exactly, without needing to use a real battery. This would be suitable for some tests, before bringing out more expensive commercial simulators/test gear or performing tests with real batteries.


This post therefore proposes the design and construction of a battery simulator; part 1 is an introductory post with basic requirements and part 2 will contain the design and implementation.


What will it do?

Simulating parts of solutions is a great way to help speed up development of projects (check out Doug's ( dougw ) vehicle simulation system as an example). The project is intended to simulate typical batteries used for IoT projects; it should be able to simulate single or dual AA batteries or a Lithium Ion (Li-Ion) cell at a minimum. In terms of the simulation, it should behave like an ideal voltage source in series with a resistor (this is only an approximate simulation). The equivalent circuit is shown below.


This could be simulated using an adjustable voltage source that is varied depending on load. The amount of variation would also depend on battery type, and the state of the battery (e.g. fully charged or partially charged).

The simulator would continuously monitor the load, adjust the voltage as appropriate and over time adjust the voltage to make Vbatt reduce, to simulate the discharge cycle. It will have network capability so that battery profiles can be uploaded and test results downloaded. A web interface would be useful to aid in use and monitoring of the battery simulator. History of simulations would need to be stored, so that the amount of energy can be decreased to simulate battery charge-discharge cycle ageing.


Designing the simulation models will be hard. There may be published information concerning the behavior of different battery technologies. Information could be gained by monitoring real batteries under different discharge conditions. It is hoped that over time more information can be made available for certain batteries, to turn the proposed simulator from something experimental into a more complete project. Interesting projects such as fvan Frederick’s In-the-Air challenge actually has the capability to monitor battery information and report it to a cloud service. In some format, information gleaned like this could become invaluable to create more accurate models and a more accurate simulation.


This project will only simulate behaviour partially. For rechargeable battery types it will simulate the battery during discharge, not during charge.


To keep things practical and simple to build the simulator will be restricted in the types of batteries and amount of power it can supply, to the most likely use-cases that it will be needed for. It will be designed for low current applications for cells and batteries up to a few volts. The aim is to have a solution that can be replicated to have perhaps dozens of battery simulators, so cost is a factor.


The envisaged project will have programmable options to select the battery type, and what percentage of full capacity the battery has remaining. Then, the project will monitor the load and elapsed time and automatically adjust the simulated terminal voltage to behave like a battery being discharged.


The next post will look at the hardware design in more detail.



Deep knowledge about batteries as well as power consumption for different operational states of hardware projects is important if batteries are to last long periods of time. The proposed battery simulator should help with some of this, by providing the capability to repeat tests consistently without relying on batteries being in the same charged state as for previous tests. Devising models for the batteries will be difficult but this project will be a first step to try to enable this. This was just an introductory post so if you’re interested, come back for part two!