Last article, I wrote about how to use our own homemade Arduino Pro Mini bare bones along with an OLED display and how to make both of them consume as little power as possible. In fact, we managed to achieve a small 1.1 uA current with both of them sleeping. Also in our circuit there were a PCF8563 real-time clock module and one AT24C64 EEPROM memory. Now, to proceed with our smartwatch project we need to add sensors, such as an accelerometer, compass and pressure sensor. This article is about how to add them, read the variables and keep saving power.
On the previous article I wrote about how to use the real-time clock module with the EEPROM non-volatile memory. Now it is time to get something working that resembles a watch. Make something that matters. How about adding a display? Last post it was possible to achieve a power consumption of only
16 uA (improved) 0.7uA on the smartwatch prototype. Now we can see how much power the watch will consume. In this case, it is an application that needs to consume the smallest current possible but also needs a display, then one can use a OLED display, which is the abbreviation of “Organic Light-Emitting Diode”, which is a much more economic display in terms of current than the regular LED displays. An overview about OLEDs, first.
A bootloader is a code that is executed before an Operating System, or in the case of an Arduino, before your program starts to run. The concept of bootloaders is universal to virtually all electronics such as laptops, smartphones, and other devices. A bootloader package the instructions to boot the system kernel and most of them have their own debugging or modification environment. As the bootloader runs before any piece of software on your device, it makes it extremely processor specific and every Arduino chip has its own bootloader. Many makers out there will never need to change or program their Arduino’s bootloader. Some, however, will be forced to do this.
One reason to program the bootloader might be that, when using the device, the user did something wrong that damaged it. Perhaps the company forgot to program it at factory level, or perhaps the user burned the Atmega.
Another reason to do this is if the user needs to set different fues. They are essentially configuration parameters, or like the chip’s BIOS. They control functions like which oscillator to use, and what speed to run at (i.e. the internal 8MHz oscillator, or an external crystal), brownout detection, and the size of the flash.