Skip to content
Josh Perriman edited this page Aug 24, 2018 · 6 revisions

Board Startup

Using Arduino and a bootloader to program the board over USB is easy and convenient. This comes at a cost of a slower startup time. The graph below shows the board from power off to startup.

The first power draw lasts ~10ms where the bootloader code executes. This code sets up all the clocks and peripherals that allow for code to uploaded over USB and for serial over USB. Once this code has executed the chip does a soft reset where it then loads into the execution of the users code.

Reducing power consumption.

Programming options

If you are willing to write the program in a program like Atmel Studio without the ease of the Arduino library ecosystem. And to also upload to the chip over the SWD programming header, power and time can be saved. Programming via SWD does not require the chip to have a bootloader. So when the chip starts it can immediately start executing the users code.

Chip selection

There are other chips available such as the ATSAML chips which may be compatible and also claim lower power consumption.

Code

Can work on the arduino-core and bootloader code to adjust the clocks and the arm core clock. This will reduce the active power consumption at a small cost of processing speed.

Work could also be done on code to be able to put the micro into sleep states. This would reduce power consumption while active and waiting for sensors to initialise, or while waiting for down-link from the LoRaWan network in the future.

Power gated sleep

With the TPL5111 Power gating chip cutting the power to the whole board, the sleep current is very low. The power consumption in this state is ~42nA with a supply voltage of 3.3V.

Having this feature allows the power consumption to be extremely low for up-to 2 hours between power ups.

Clone this wiki locally