I have a small aeroponic garden at my home and by its nature is highly automated system. It sustains extremely fast-growing fruits and herbs (Aeroponic plants grow 2-3 times faster than growing in soil).

I had been using an ESP8266 + Arduino mega combo board along with some open-source hydroponic control software. It was great for a while, but soon discovered it was inadequate for the amount of automation and precision I need for this to work and be worthwhile.

I brainstormed for a better solution and decided to go with a dual-core Tensilica μC and went to work on coding a system from scratch (but using any available libraries to replace the faltering system ASAP).

Having already replaced main control of the garden with a ESP-32S microcontroller, I ordered a couple more and began the process of coding the entire system – sensors and all – for the newer device.

This is about the time I discovered Google had just released this library of modules that could drastically improve my embedded code efficiency, so here we are!

At first glance, the Pigweed repository only has support for the STM32F429i discovery board, but if once you dig into Google’s code review site you can see that there are developers actively adding code for the esp-idf platform, which is my build target.

With my current development process, just getting the first part of the code to work is a bit of a chore. The worst part is having wait for the code to compile, then transfer to the test device while waiting with my multimeter to check the pins. The always-active CI of Pigweed makes it very appealing and hopefully it won’t be too difficult to get working on these units as it would be a huge time saver and very convenient.

I already enabled github CI runners on my home linux machine and will document my progress (or lack-thereof) as I try to streamline my embedded development for this project.

As of today I accomplished the following:

  • Set up github runners that automatically fetch code changes that I push and download them to my linux machine
  • Started pigweed using the bootstrap, but with gcc-9 and python-3.8 (They only say to make sure you have gcc-8 and python-2.7. Since lots of embedded developers work on legacy systems, I’m going to roll the dice and presume they meant to make sure you have at least those versions. If I can’t get some firmware compiled or flashed correctly I’ll look here first to see if it might be the cause)