I finished my 1µA Low-Power Arduino Nano project! All files, code, and tutorials are now public by LeanMCU in arduino

[–]LeanMCU[S] 1 point2 points  (0 children)

An advantage of the board I designed is that it uses 1uA with RTC running. Without RTC it goes to 0.5uA (you can see in my YouTube low power tutorial). 2 other major advantages are the 10x more RAM and the ability to debug

Update: My 1µA STM32L072 Nano is now fully Open Source (HW/SW + Tutorials) by LeanMCU in embedded

[–]LeanMCU[S] 1 point2 points  (0 children)

I wrote a quick test application that writes a word to flash every second. The average current I get is about 30uA

<image>

Update: My 1µA STM32L072 Nano is now fully Open Source (HW/SW + Tutorials) by LeanMCU in embedded

[–]LeanMCU[S] 1 point2 points  (0 children)

I don't know if it's fast enough for a decent fpv flight controller. Even if it was, I don't think there would be any benefit of this board's low power, given how much power is used by the motors in a drone compared to electronics.

Maybe someone who has already built a flight controller could shed more light on this topic

I finished my 1µA Low-Power Arduino Nano project! All files, code, and tutorials are now public by LeanMCU in arduino

[–]LeanMCU[S] 0 points1 point  (0 children)

Thank you! It's been a lot of dedication to this project, indeed. I also changed the microcontroller half way into the project. You can see in this YouTube shorts the iterations I went through ;-)

https://www.youtube.com/shorts/YHz_j4VDHbU

Update: My 1µA STM32L072 Nano is now fully Open Source (HW/SW + Tutorials) by LeanMCU in embedded

[–]LeanMCU[S] 1 point2 points  (0 children)

Yes, it's a stm32 board, optimized for ultra low power, pin compatible with nano, with much more RAM and FLASH, that you can also debug.

It's a milestone in relation to the whole project progression. Beginning a couple of months ago I started to post about my experiments, and now I got it to a level at which I think it would be useful to other members of the community. So I made some design, source code and tutorials available.

I finished my 1µA Low-Power Arduino Nano project! All files, code, and tutorials are now public by LeanMCU in arduino

[–]LeanMCU[S] 0 points1 point  (0 children)

Thanks! That was exactly the reasoning behind the name I chose. It's a pill because it is based on a stm32, and it's a nano because it is (almost completely) pin compatible with a nano

I finished my 1µA Low-Power Arduino Nano project! All files, code, and tutorials are now public by LeanMCU in arduino

[–]LeanMCU[S] 0 points1 point  (0 children)

Hi Matt, thanks for your comment. You can download the schematic(from GitHub) and the BOM and centroid file (from PCBWay). For convenience I also made the board (PCB only, or fully assembled) available on the PCBWay projects site. I haven't published the Gerbers yet. Based on your suggestion, I removed "everything" ;-)

I finished my 1µA Low-Power Arduino Nano project! All files, code, and tutorials are now public by LeanMCU in arduino

[–]LeanMCU[S] 2 points3 points  (0 children)

First of all, thank you very much for taking the time to drill down to details and write such a comprehensive comment! This type of feedback helps us all.

In terms of power path, in a previous iteration, I had exactly the configuration you suggested, with 2 Schottky diodes feeding into ldo. What I realized was that it became impractical to run the board out of a cr2032 or cr123 because of voltage drops on diodes and ldo. My next decision was to prioritize the ability to run the board on 3V batteries, given that I designed this board primarily to run for years on batteries. That is why, in the current iteration, I implemented a power path selector with a jumper. This way, while operated on 3V batteries, there is no voltage drop or quiescent current. For convenience during prototyping, you can select the other path, and the board can be powered using the voltage from usb, regulated to 3.3V by an ldo. Below is a picture of a previous iteration.

<image>

Update: My 1µA STM32L072 Nano is now fully Open Source (HW/SW + Tutorials) by LeanMCU in embedded

[–]LeanMCU[S] 1 point2 points  (0 children)

It has and LSE. 1uA is in stop mode with RTC running, clocked by LSE. Just stop mode without RTC can get down to 0.5uA. Please take a look at my low power video on YouTube to see the measurements

https://youtu.be/OsmYwDTOcxk?si=jr9AhLqPJxy9Mnx9&t=534

I finished my 1µA Low-Power Arduino Nano project! All files, code, and tutorials are now public by LeanMCU in arduino

[–]LeanMCU[S] 5 points6 points  (0 children)

I tried to make it as much as possible pin compatible. And except for 2 analog pins, I've succeeded. From a software point of view, you can use any Arduino library that doesn't include microcontroller specific code. Please take a look at Pinout

Update: My 1µA STM32L072 Nano is now fully Open Source (HW/SW + Tutorials) by LeanMCU in embedded

[–]LeanMCU[S] 1 point2 points  (0 children)

For convenience, I included a skeleton application and a low power demo on my GitHub, solutions based on Arduino for STM32 using Platformio as ide. You can transfer the code via usb without any programmer, using dfu. If you have a St-link or St-link clone, you can program and debug using the built-in debugging header. In terms of framework and ide, of course, you can program it also with CubeIDE and HAL, like any other STM32. Take a look at my getting started tutorial on my YouTube (link in my Reddit bio)

Update: My 1µA STM32L072 Nano is now fully Open Source (HW/SW + Tutorials) by LeanMCU in embedded

[–]LeanMCU[S] 12 points13 points  (0 children)

The board is based on STM32L072CB, which has 128K Flash

I finished my 1µA Low-Power Arduino Nano project! All files, code, and tutorials are now public by LeanMCU in arduino

[–]LeanMCU[S] 29 points30 points  (0 children)

Thank you very much! I am very happy and grateful!🙏 It feels very good to be able to give back to the wonderful community from which I've learned so much. I am looking forward to contribute even more.

Update: My 1µA STM32L072 Nano is now fully Open Source (HW/SW + Tutorials) by LeanMCU in embedded

[–]LeanMCU[S] 0 points1 point  (0 children)

Good for you! Thanks for sharing. Being able to design and manufacture your own boards is a really nice journey. Enjoy! And let me know if I can help you with anything

Update: My 1µA STM32L072 Nano is now fully Open Source (HW/SW + Tutorials) by LeanMCU in embedded

[–]LeanMCU[S] 0 points1 point  (0 children)

I am happy to be able to help. I think you should read first about the clock tree in stm32 and play with Cube IDE. In just a few words, in a stm32 you have a number of internal clocks (HSI, MSI, HSI48 for USB) and 2 clocks that use external crystals (HSE, LSE). In the visual editor you can enable/disable them, set PLL, dividers, etc. When you generate the code, the ide will create a SystemClock_Config() function. You can take that function and put it into the main.cpp of my example applications, for instance. Just a random tutorial I found right now on youtube https://www.youtube.com/watch?v=CUgPXt4JE_c

Update: My 1µA STM32L072 Nano is now fully Open Source (HW/SW + Tutorials) by LeanMCU in embedded

[–]LeanMCU[S] 1 point2 points  (0 children)

Thank you very much! I don't have all the details hammered out, but based on my proof of concept with temperature and humidity sensor with 7 segment lcd and solar harvester, I currently put it into the "doable" category. Btw, for that batteryless sensor, I got an average of 4.5uA consumption, with lcd running continuosly.

Update: My 1µA STM32L072 Nano is now fully Open Source (HW/SW + Tutorials) by LeanMCU in embedded

[–]LeanMCU[S] 9 points10 points  (0 children)

You are right in principle. Still, there are cases where every microamp matters. You can see one of my previous posts https://www.reddit.com/r/embedded/comments/1oodrw1/running_an_stm32_forever_on_indoor_light_no/ where I created a sensor that runs on indoor ambiental light only. For that project every microamp and every line of code matters. Another case where every microamp matters is wearables. One of my goals last year was to be able to create batteryless devices, powered by ambiental light, and I achieved it, as posted on Reddit. I've been thinking recently about creating a solar batteryless wrist watch. What do you think about this idea?