In this research project, we examine the energy consumption of variety of subprograms or any other embedded related quirky experiments. We try to log experiment results as much as we can for us to go back and make use of it when needed. For the topics we consider meaningful and feasible to dive deeper, we try to work out a formal research publication. Here in this repository and the organization, everything we do is open to public and will stay that way.
Working with many experiments and more than one embedded device requires us to have a workflow that would make our lives easier, PlatformIO perfectly fulfills this requirement.
- Make sure PlatformIO extension is installed in your VS Code.
- Choose whichever project environment you want to try out.
Debug environment is used to debug the program when the board is connected to the computer. Serial output is open, and certain numerical parameters like ENVIRONMENT_DELAY
and ALGORTIHM_DELAY
are greater in the debug mode. Measuring the energy consumption on a loaded debug program is perfectly okay, yet to minimize noise and output size we recommend using meausurement mode.
To see the serial outputs, kindly use the PlatformIO's serial monitor tab.
All of the circuit connections are shown at circuits directory in both PNG and SVG format. For sake of security, turning off the PPK while loading program from computer to board is highly recommended.
Arduino UNO R3 | Arduino UNO R4 Minima | |
---|---|---|
5V Digital I/O Semi Supported (deprecated) | 000.png | 001.png |
5V Digital I/O Supported | 002.png | 003.png |
3.3V Digital I/O Supported | 004.png | 005.png |
Introducing a new benchmark is fairly easy in our workflow. All you have to do is following the 4 steps below:
- Create a directory under benchmarks.
- Make sure
void setup()
andvoid loop()
functions are defined in your code. You can always take a peek from other benchmarks. - Update the list of benchmarks.
- Run
python pio-config/generate-pio-config.py
.
You can either use official nRF Connect application from Nordic, or you can use our modified version of it. We have modified the nRF Connect application in order to automate the measurement flow.
You can find the previous measurements and their setup at experiment.md.