May Be A Circle
May comes around and I realise my intention to post regularly has been well, this is an embarassed look to the side. So what’s been going on in the various circles of development hell….
So the dnd project at add do not disturb (dnd) lights at the door to the office with a remote switch was both completed and dismantled. The project scope expanded to include a CO2, Temperature, and Humidity sensor which would pump stats into the MQTT broker while it also managed the lights. All fine and all working and deployed on the door.
And using a PyPortal on a 3D printed stand, I put together a little UI which gave 5 buttons and a stats display on an LCD. And that worked too.
What didn’t work? Stats came in too quick and made the MQTT server a bit noisy. But worse than that was the apparent inability, despite trying, to recover from losing ping responses and timing out on both the sensor/light and the console. Worse still was that it was too big on the desk, too busy as a UI with those multiple states, the LCD on the PyPortal was under-responsive and as with all LCDs without haptics, unsatisfying to press. Finally the stats were really useless and needed to go somewhere useful.
So I tore it all down and started a redesign. The console is now a Neopixel breakout keyheader attached to a QtPy S2. Super minimal - the neopixel shows the state of the light, hit the linear keyswitch and the switch happens.
The sensor/light is getting a physical redesign too (so more learning FreeCad) to make it more into a lightbar with the sensor at one end, the USB-C port at the other and a transparentish diffuser to put the neopixels behind. I’m not taking out the neopixels for now, because I may want to throw other colours in or some nice fades, but it only has to go red now.
The big decision going forward is going to be how Micro/CircuitPython stacks up against using Platform.io to make something a bit more sturdy. For that, there’ll be likely two implementations coming when I make the time. But the plan is to simplify the core down.
Everyone has asked “Will it automatically switch on when you are in a meeting” and right now, the answer is no… but that’s now in scope, pending finding out a good way to spot and schedule meetings. My calendar organisation is like an explosion in a date packing plant.
Meanwhile, inspired by an article in Hackspace magazine on how to build a Pico Chord keyboard, I went about building one. With the help of the author and his Github repo https://github.com/CrazyRobMiles/PICO-Chord-keyboard I got a 3D printed case scaled down enough to print on my smaller Adventurer 3 printer and set about wirewrapping the whole project. Wirewrapping kinda rocks as a way of prototyping - you can literally run connections from pin to pin. The real skill is probably figuring out how long the wires should be. Anyway, I got it all wired up…
And once it comes all together it looks all pretty spiffy.
You can learn more in the original article in Hackspace 53 - there’s a free PDF to download, flip to page 68.
I’ve switched over to a set of 2.5Gbe 8-port switches and a new Mac Studio makes even better use of the extra bandwidth. It’s agonising though waiting for a NAS one can trust with 2.5Gbe as standard. Soon maybe. The Gigabyte Pro i7 I installed also suffers from NOISY FAN. I SAID A NOISY FAN… sorry it was doing a compile.
Anyway to complement it, I’ve been running ESXi on the little NUC and hacked in 2.5Gbe support there so the VMs on the ESXi platform can talk realy quick to the client. It’s a fun thing to explore - and also lets me answer my current conundrum… Ubuntu or Fedora in 2022. Currently, Fedora is ahead with its lack of snap packaging and just feeling more mainstream. Which is odd.
As an aside, I’ve started playing around in Go with the Twitter API v2. Can I implement a BubbleTea TUI for Twitter before Elon Musk fires it all into the Sun. What I have in mind is something to do quickish analysis of a Tweet and how it lives in a graph to help answer the question “Is it metal or normal?". Anyway, Tex - Twitter Explorer.