ESP32 Unleashed is a project course.
The structure of the course resembles my development process.
My development process, whether it is a course, a gadget, or a book, or fixing the washing machine, looks like this:
- Set the overall objective (what am I trying to achieve?)
- Set plan (how am I going to achieve my objective? What small individual goals must I complete to reach the objective?)
- Execute the plan for the individual goal (just do it!)
- Evaluate goal outcome (did it work?)
- If needed, adjust plan, re-execute, re-evaluate until I have achieved the individual goal.
- Commit goal results of iteration and go to the next goal.
- Repeat steps 2 to 6 until I have achieved the set objective.
This is a simple, iterative process. There is no magic to it (though I do think that Engineering is magic).
It only works if I stick to the process.
Especially when it comes to technology, where we create something either that works or doesn’t work: I can’t cheat, and I can’t even try to fool myself that “it’s sort of working”.
The thing I notice about most project courses is that they forget that projects are naturally iterative. Instead of going from A (idea) to Z (completion) via all the necessary steps (B, C, D, E, …), they speed up through the process so that it will magically go from A (idea) to F (implementation) and Z (taa taa!). Not only that, but they few steps that they do keep contain goals that are simply too big to achieve in a single iteration.
In ESP32 Unleashed, I did not want to skip anything. I wanted to keep the realism at the forefront.
While I recorded the course lectures after having refined the software and the hardware (I rehearsed the whole project multiple times), I went through all of the steps that I went through the first time I designed the gadget.
What you will get in ESP32 Unleashed is a full and detailed record of the process of developing a gadget, that includes all discreet steps of each iteration.
Below, you can see an example lecture from one of the tests. In this example, I have completed implementing the voice command feature. I use IFFT and Google Assistant to control the state of an AdafruitIO feed. Unless this test shows that implementation is successful, I cannot go on to the next step.
Interestingly, in one of my steps, I discovered that the Google Assistant service was offline. This was the first time where I experienced a Google Assistant outage, which gave me a new understanding of the reliability issues concerning IoT services. This outage was annoying, as it delayed my recordings by a day.
Here’s the video.