This week, I am absolutely taken with these ESP8266EX's. I was originally interested in the idea of using them to do actual web hosting of a tiny, tiny website. Theoretically, if I could do that, I could host a whole personal website complete with some degree of complexity on a small fleet of them, and while it would be extremely slow, it would be cool enough to be worth it. However, some further research suggests that they aren't that kind of WiFi-enabled. They're more of establishing a small-local Wi-Fi network, for things like IoT applications.
That's still pretty cool, though. The only board, aside from my programmer, that I've successfully made from beginning to end thus far is my step response sensor, which technically doesn't count, because it was just a direct copy of Neil's board. This week, I'd like to Wi-Fi enable my capacitance sensor, and turn it into a wearable EDA sensor which will log data to my desktop. Who knows what I'll learn about myself from my own EDA signals? (probably nothing, given that I'll probably be mostly just getting noise, but it's the /idea/ of it).
In order to do that, I'll probably need to:
Given that this is a one-week project, and I have to wait until Saturday for my ESP8266's to come in anyways, Honestly just the first two seem like a reasonable goal. But the idea that I might get through all of these steps would be r e a l l y c o o l.
However, before I can do any of this advanced embedded programming work, I really need to...
As you may recall from week 5 and week 9 , I am roughly six weeks behind on all things related to PCBs and things you can do with them. However. Last week, I think I really got a handle on how to use KiCad, and now feel pretty ready to at least put week 5 behind me.
Now that I'm less confused by KiCad, both the schematic and traces combined only took about 45 minutes. That does not mean, however, that the traces worked the first time. I had to re-mill and edit three times to get a version which didn't accidentally connect two traces.
Milling and stuffing the board was also not as straightforward as I had hoped. Some things learned:
That black gunk on the traces? You know? Maybe it's fine?
After milling and stuffing my board, I tried to program it, I got an error, and forgot to write down exactly what the error was. This might have been becase the aforementioned too-hot soldering iron fried the microcontroller. Upon re-plugging in my board to check what, exactly the error was, smoke came out from between the AVRISP of the board and it's connection to my programmer. A check of lsusb showed that my non-functional hello echo board had fried my programmer.
After remilling both boards, I tried to program them both. The programmer went fine. The hello echo board gave me the dreaded rc = -1 error. Having now tried everything else I could think of, I tried to program it with the AVRISP2 instead. It worked. So my programmer likely never actually worked. Frankly, I can handle that. That's fine.
The final, remaining issue with the week 5 board was getting term.py to work. The original copy of term.py that was provided is for Python 2. This was a problem for two reasons. The first is that, I, like most people in 2019, am running Python 3, and therefore had to convert some of the commands related to TKinter. The second is that Python uses whitespace semantically. This isn't a bug, it's just actually how Python works, on purpose, and I hate it. There was an issue with mixed tabs and spaces that made the code impossible to run, and after converting all of the tabs to whitespace, it was no longer clear where certain if statements were supposed to end, because the formatting had been ruined. And while that would have been fine in a language that uses {}, or even ; to mark line endings, this is Python, and I now had to go through and figure out where all of the formatting was supposed to be. Anyways. Here's a version of term.py that works with Python 3, uses only spaces, works, and has helpful error messages. It mostly works.
And now, on week 12, I'm willing to call week 5 a closed case. Now I'm only... 5 weeks behind?
KiCad is still not a solved problem for me. Footprints are... an experience in KiCad. I found a footprint for the ESP8266 (not in the fab library)
HOWEVER. The voltage regulator was another story. I never found a footprint or symbol for it, and had a seriously hard time making them.