Eclipse Lamp Devlog #10 - Finishing the YOLO and AI Person Detection, starting and finishing the Telegram Push Notification system, and assembling the printed Iris-Camera frame shutter system
YOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Today was actually the most productive session ever. First, before I started my recording I finished the iris-camera frame attachment that attaches the camera to the back of the iris mechanism. My main motive for today was getting the Telegram notification setup, but I did so much more.
First I decided on using Telegram, downloading the app on my phone and computer for notifications. Then I created a bot through BotFather, got my bot token and chat ID, and went into terminal so the Pi could send messages directly to my Telegram. Within minutes I was getting notifications on both my phone and computer simultaneously — that part was actually easy and satisfying to get done fast.
After that I said “third time’s the charm for AI” and it really was. I decided to finally fix the YOLO detection once and for all, and if successful, tie it together with Telegram. I copied everything over to Claude — no more ChatGPT ragebait. I was so desperate I started glazing Claude talking about how ChatGPT is terrible. Honestly though it was the right call.
What followed was probably the most painful dependency debugging session of this entire project. The Pi threw everything at me — numpy version conflicts between picamera2 and opencv, OpenCV itself crashing with “Illegal instruction” because pip installed an x86 build on an ARM chip, then PyTorch doing the exact same thing because it installed a CUDA build completely incompatible with the Pi. I had to hunt down and manually delete broken opencv and numpy installs from multiple locations across the filesystem, increase the Pi’s swap space from 512MB to 1024MB so torch wouldn’t get killed mid-download, reinstall PyTorch from the official CPU ARM wheel, and finally export the YOLOv8n model from PyTorch format to ONNX format so it could run through ONNX Runtime instead — which is dramatically more efficient on ARM hardware. Every single fix revealed another problem underneath it, but step by step it all got resolved.
The final detect.py runs three fully independent threads — one capturing camera frames at full speed, one running YOLO inference every 2 seconds without ever blocking the stream, and one serving the live feed to the browser via Flask. YOLO only detects people (class 0 out of 80) which makes it faster, and Telegram alerts fire with a 60 second cooldown so it doesn’t spam. The moment it all worked and a notification hit my phone while the bounding box showed up in the browser was genuinely insane.
By the end of today I have a fully working computer vision + notification pipeline running on the Pi — live browser stream, YOLO person detection, and real-time Telegram alerts to my phone and computer. The core software of the Eclipse Lamp is done, but this wasn’t it for today. Sometime in the middle of my recording my print finished and I had the frame and extension. The sad part was the extension wasn’t properly designed, the camera was supposed to look through it but I forgot the hole, lol, but it’s okay because its a small and fast part to reprint. The camera fit inside its case perfectly(Which never happens to me) and I wanted to start screwing. All I did was take the screws that came with all of my servos (5) and aligned them with the holes in the iris. I was so proud of myself when the camera was facing the right way and I got the screw alignment correct. The annoying part was it took me 20 fricking minutes to get 5 screws in and my chubby little finger just couldn’t, not to mention my screwdriver was trash as well. IN the end it worked perfectly and I am SOOOOOO happy for today
Comments 2
best day ever bro
Yo this is so tuff
Sign in to join the conversation.