💾 Archived View for cyborgfoxsyndicate.online › blog › 2022.08.15-Hax:DeepMay.gmi captured on 2024-05-12 at 15:05:47. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
I am a somewhat socially anxious and introverted person, so when I had the chance to commit to teaching for ten days at DeepMay (a hacker bootcamp for leftist comrades and adjacent folks), I naturally, and unthinkingly commited. What followed was some highs and a lot of lows, I ended up leaving early, socially exhausted, and only later feeling fulfilled and glad I went.
My friend and I taught the "Microcontrollers and Hardware" track, we had the most number of students of the camp at around 16 (with 20 sign-ups, some couldn't make it).
With our budget and the help of a University grant we obtained a good variety of tools and electronic bits. The Microcontroller Dev Boards we chose were LilyGO T-Beam and Lora32 modules. Periphrials were temperature/humidity/pressure sensors, temperature probes, photoresistors, a color sensor, accelerometers, lasers, relays, piezos, WS2812B LEDs strips, button matrix keypads, ultrasonic rangefinders, motion sensors, veroboard, protoboard, breadboard, soldering stations, breadboard power supplies, and some other things. The university insisted on buying the items which complicated matters because they didn't like ordering from eBay and Aliexpress, they also hilariously ordered us a truly absurd number of breadboards... well over 100... So we're good there.
Since I have a comb-binder machine I decided to make a reference book (in color!) for our track that came out real snazzy and was commented on favorably. It contained useful things like pinouts for the dev boards, resistor color codes, an electrical schematic key, and so forth.
The first day consisted of getting the IDE onto and working on everyone's laptops, everyone's differnet OS laptops (MacOS, Windows, and Linux). We had tested all of this beforehand and had no specific reason to suspect it would be a huge headache. Other teacher could be over in just an hour or two, but I went into it somewhat pessimistically, and I was right! After a day of troubleshooting we discovered that the manufacturer had changed the USB<->UART chip on their dev boards, and all the boards we received for the class had the new chip :-) Once the Windows users deleted the stock drivers and replaced them, the MacOS users downloaded the sketchy drivers from the Internet, and the Linux users did nothing because it worked mostly fine out-of-the box, and we picked a new IDE... Everything went FINE
Day two and three we introduced some basic Micropython to the class. When it was my turn to lead the code-along I messed up several times leading to confusion, I felt pretty embarrassed but thankfully it was a perfectly OK teaching method since the class helped me troubleshoot my broken code. Students learned about driving the OLED display on the microcontrollers, and making the LED blink and fade by using PWM. We also started teaching students about electrical componants. Also, someone tested positive for Covid, but thankfully our room was well-ventilated, and they were able to set up a desk outside the door and still see the projector screen.
The next few days the students soldered the pin-headers onto their Dev Boards and interacted with offboard components. I found teaching folks how to solder to be pretty fun, I also spent some time bashing Lead-Free solder. The one student who insisted on using Lead-Free solder quickly found it to be pretty difficult, and was happy to start using the jokefully so-called "poison kind".
Eventually it came time for me to give my radio presentation, this was the one time I felt totally confident, competant, and on-point... I expected the presentation to last 30 minutes, but it ended up going slightly over an hour and 30 minutes due simply to people asking questions. I presented core concepts like the inverse relation between frequency and wavelength, different modes of radio propagation, the frequency ands at which those different propagation modes work well or don't, a dive into different modulations including special attention to LoRa (which we thought they would be using since it was included on the dev boards), Decibels... dBm, dBi, dBd, link budgets, omnidirectional and directional antenna types and how to read an antenna gain chart, and finished up with examples of DIY antennas that could be built with hardware-store componants.
During this time I also spent two days furiously coding something that I am proud about. The T-Beam dev boards have LoRa, a GPS module, and an OLED screen... So I made code that would repeatedly send and receive LoRa pings containing current GPS coordinates. When used as pairs these devices would have a GPS fix on the other device and themselves. They run an algorithm that calculates the distance between eachother in Meters, save all the data to the onboard filesystem, and also display it on the OLED screen. The idea was to have a competition where teams would modify settings to try to get the furthest range.
Unfortunately I ran into another case of "works great in testing but..." when we discovered that some of the T-Beams could get a GPS fix instantly, and others never. I suspect the ceramic antennas are somewhat shitty and whatever variations in receive sensitivity in the GPS receiver chips made the difference between fix and no fix. By the time I discovered this we had already mostly moved on to making their own projects. Nonetheless, I was able to get several devices to work, and the longest range I got was 3.5km.
I look forward to refining and using this code in the future in my own area.
https://0xacab.org/deepmay/resources/-/tree/no-masters/examples/lora_rangefinder
I think being able to churn out a relatively complicated application in such a short period of time taught me what I really am capable of, which was the biggest positive thing I got out of the whole experience. I am now even more excited about MicroPython, and restarting my Mycelium off-grid text messaging project.
Also, here is someone's project, it is a dog that trots and borks: