Designing ultra low power systems consists of solving a puzzle, trying to stay in low power sleep modes most of the time, and perform quick burst processing. This board can do all that quite well, but I want to try to do something much harder: run on ambient indoor power without sleeping.
It is based on the Microchip ATSAML21 family. These are close cousins to the ATSAMD21 parts used on many Arduino compatible development boards, but use far less power. Microchip claims power usage as low as 42uA/MHz. Alongside a low power accelerometer and barometer, each drawing less than 5uA, this board will hopefully be able to run on ambient indoor light harnessed by onboard solar cells.
In the end, the design came close. With a supercapacitor or battery as an energy buffer, it can easily continually operate under indirect sunlight. It can also continually operate under a bright desk lamp, but would need quite bright indoor lighting to operate.
Version 2 hardware arrived and I've been testing it. The main improvements from version 1 are:
Fixed schematic error on 3.3V regulator
Added low power LED
Even low power LED uses many times the power of the rest of the HW, so this should not be used if the goal is to minimize power. It is really useful for detecting if the HW is operating though.
Added OPT3004 ultra-low power ambient light sensor
This could be used to determine when the system should sleep and when the light is powerful enough for it to operate continuously.
It is also useful for determining the amount of light available, for testing in what conditions this design can in fact run in active mode continuously.
Added mounting spot for 0.33F supercapacitor for operation without a battery
At typical full active power of ~318uA at 3.3V, and allowing the supercapacitor to discharge from 4V to 3.3V, this should allow about 12 minutes of operation in no light. Of course if low power modes are used, this can extend to much, much longer.
All of these updates thankfully worked right away, and the board was ready to test. The pictures below show the board fully assembled, except the supercapacitor is taped in so I can easily remove it.
SO...DOES IT WORK?
Now for the question underlying this entire project: can this system operate in active mode in ambient indoor light? Yes...and no. There are many challenges to indoor ambient light power harvesting. First, there simply isn't much light available. Human eyes are incredibly sensitive and can operate well across a huge range of lighting conditions, so indoor light is typically 3-4 orders of magnitude less powerful than direct sunlight. Although illuminance cannot be directly related to irradiance, it is a related. The OPT3004 measures about 70 lux in my apartment, while wikipedia claims typical illuminance in direct sunlight is 32,000-100,000, which indicates about 3 orders of magnitude difference. Second, the light that is available from synthetic sources do not have the same spectrum as sunlight, and solar cells are typically less efficient in these artificial spectra.
This hardware easily operates under indirect outdoor lighting, even through a window where the sunlight can never be direct. It also can operate underneath a bright desk lamp, and even underneath a 120 lumen LED flashlight, with no battery installed. Will it operate under brighter office lighting? With COVID-19 restrictions, this is difficult to test for now, but I expect it will not. But it may be close. Certainly if low power modes were used, it could. While that still implies my original goal was not met, this is still a very interesting development board for anyone working on ultra low power devices. With a typical ultra-low power electronics use case in which it periodically wakes up, senses something, and sleeps again, it should be able to operate indefinitely indoors while harvesting ambient light.
Version 1 of the hardware arrived, and I have been testing it. Almost immediately, I discovered I had made a connection mistake on the 3.3V regulator, and the system would not run normally from battery power. I desoldered that part, and by providing 3.3V directly to the 3.3V rail, I was able to program and test the rest of the board. The picture below shows the board with the 3.3V regulator missing.
The microcontroller, barometer, and USB connector are on the opposite side.
The available power indoors is quite small, which is fine since this hardware needs very little power. However, unless the voltage from the solar panel is high enough, even trickle charging will not be possible. Therefore, even though the dual panels each have peak voltage high enough and we could have higher power charging with them in parallel, they are connected in series. This way, the hope is that more of the time the system will be able to charge.
Once I had firmware set up to interface with the accelerometer, barometer, and ADC, I started also testing power consumption in various operational modes. The ATSAML21 microcontroller is highly configurable and can run in a wide variety of modes, speeds, and with peripherals enabled or disabled. This makes it difficult to generalize power consumption. The marketing documents from Microchip claim <35uA/MHz, which I suppose is the absolute minimum to aim for. Within the datasheet however, this claim appears to not include any power used in clocks. It seems the minimum power clock is the internal 4 MHz clock. The firmware also sets up the ADC channels and an I2C interface to the accelerometer and barometer. I set up the firmware to cycle between active mode, idle mode, and standby mode for the MCU on a 5 second period. In all cases, the accelerometer and barometer were still on. With this testing setup I found the following:
Active -- 285uA
Idle -- 194uA
Standby -- 9uA
In active mode, the MCU is running in performance level 0, using the buck converter. the datasheet claims 36-79/MHz in this setup in a while loop. The closest setup for the ADC listed in the datasheet estimates 89-120uA. The 4MHz internal oscillator requires 64-96uA. Based on the typical values, this predicts 297uA, fairly close to what we are achieving here.
The good news is that in active mode currently, the system requires 0.9mW. With any sleeping, the power is of course far lower. The solar cells each claim peak power of 26.3mW. It seems reasonable this system may be able to achieve continuous operation without sleep modes powered only from the onboard solar panels on indoor light.
Although the onboard 3.3V regulator was not usable, I was able to mimic the setup off the board on a breadboard. I tested the system with a 3300uF capacitor as the only energy storage. Note this is not a supercapacitor, and holds a very small amount of energy.
This setup in fact can operate continually from the power of a flashlight! With no power, it can run for roughly 20 seconds solely from the capacitor. The video below shows the LED flash while running. The flash is quite short since the LED requires roughly 100X the power of the rest of the system.
I have designed and ordered a next version. This next version has fixed the 3.3V regulator issue, added an ambient light sensor, and a small 0.33F supercapacitor for possible operation without a battery.
Through another of my projects, I am acutely aware of just how little power is available in shady conditions, and how much less is available indoors. Therefore, even though I am planning to have two parallel solar cells, each rated at 5.5mA at 4.46V at their max power point, it is unlikely to harvest anywhere near that amount indoors. Therefore, I wanted to do some initial prototyping using artificial light.
Underneath a lamp with a high-intensity LED bulb, I was able to get somewhat close to the rated voltage and current. As can be seen in the below three images, it reached 4.59V open circuit voltage and 2.16mA short circuit current. This would more than enough to operate continuously at a slow clock rate, but the light is very intense.
Next, I tried testing with the lamp farther away from the solar cell under test, this time reaching 3.42 V open circuit voltage and 0.26mA short circuit current. Again, this may be enough to operate the board continuously, depending on microcontroller settings.
Finally, I tested with the normal amount of light in this admittedly dim room. It is light enough to easily see, and for the camera to take a decent picture, but the open circuit voltage drops to 0.3V, and short circuit current is about 1uA. The multimeter used isn't great, so those measurements aren't likely very accurate. Nonetheless, it shows that this board will need reasonably bright light.
Since the ATSAML21 is such a close relative to the ATSAMD21, this layout is based somewhat on Adafruit's Feather M0 line. However, it also incorporates solar cells for energy harvesting, an accelerometer, and a barometer. Initial specifications are as follows: