The verdict after having the new MagicPoi test board for two weeks:
We learned a lot from our first test board!
What worked
ESP32 breakout.
Power circuit
Charging
APA102 strip breakout
WiFi connection to server (code)
POV (yes the poi images look good!)
What needs work
Buttons (we got the wrong component)
Small routing error, needed soldering, quick fix
Charger (inside the poi, outside?)
what’s next?
Fix the problems we found and add LED’s!
Maybe we do one at a time, 2 more prototypes?
Progress on the server
Just a bit of UI improvements, slow progress! Many thanks to my Patreon Supporters, who now have access to the new test server to try it out. Join them here!
Good news, the Magic Poi “Alpha” first test board arrived at the EnterAction factory! We are currently testing it with an LED strip and have already found some areas we can improve on.
The next version will address the issues we encounter here, then there will be another version which adds embedded LED’s (the “full” version) and so on, refining and testing as we go.
Thanks to my supporters on Patreon, I have made some strides in the online part of the software, deploying the first version. This is not publicly available yet – my upgrade to PostgreSQL didn’t go as planned in production (it “works on my laptop” though) so there is a lot to do to make it usable.
If you haven’t already, come support the work on Patreon (funds go towards virtual server costs and AI development assistance). Once we start selling Magic Poi the project will hopefully fund itself but until then, every dollar counts!
The magicpoi.com website I set up was fun but it was only ever a placeholder for the real thing – a place where people can share poi images for instant deployment on their MagicPoi hardware.
Now the time has almost arrived to switch it over. Right now, thanks to my Patreon supporters I am in the process of setting up a brand new server – with the latest Ubuntu Server OS. This will be the base of many things, which I need to port over from the old one (currently 2020 version).
Look out for updates on the blog – my Patreon supporters will hear about it first, though. Did you know you can support someone on Patreon without paying anything? “Free supporter” is a thing – check it out: come support me on patreon!
I had a fun few hours last week troubleshooting my “finished” SmartPoi firmware – which somehow decided to not do the one thing it really needs to do, connect to WiFi.
Turns out that in an effort to make everything more efficient I removed all of the delay() statements and gave the WiFi part of the microcontroller software no time to execute!
A simple yield(); in the main FastLED display loop sending image data to the LED’s solved the problem. So remember, don’t forget to yield.
Just a quick note about some updates – some done and some to come.
I really like the SmartPoi Downloader idea, so I am going to be upgrading this to include downloads of the Smartpoi-js-utilities and associated Android app as well as automatically updating the data folder with the right size compressed images (currently they are 72px by default). Soon it will be a one-click affair to get up and running with Smart Poi!
Speaking of Smartpoi-js-utilities, I am making this more user-friendly, now the number of pixels is fetched from the poi you are connected to. I also added some UI updates, check out the github for changes, more to come soon (give it a star while you are there, why not?). Please make sure to get the latest SmartPoi firmware at the same time – from github or the new SmartPoi Downloader webapp(you can tell I like it because it’s got https).
Magic Poi has a new feature – Timelines! I went a bit overboard with the css – check out the video below:
Well.. It kind of mixed everything up and confused some things but that is possibly not helped by the input. I did like the format, though, and I’m used to robot voices – check out the hacker news recap for a great example.
Also, who doesn’t like flattery? These guys went on for +10 mins about how cool my project is!
I made a Flask app from scratch using Aider – the AI coding assistant – and FREE LLM’s.
This is for the SmartPoi Arduino Firmware project – POV Poi, now easier than ever to use, just add your details in and download the custom Arduino sketch.
If you don’t have a big budget to pay for ChatGPT or Claude access it turns out AI coding for free is surprisingly effective. I generate a Flask app from scratch – all the way to deployment – using only free models. I also briefly compare some of the best free ones.
YouTube video of the Aider developent process:
Some notes:
The free LLM’s are rate limited, on OpenRouter at least – so they take longer to load, and do make mistakes sometimes.
Claude 3.5 Sonnet is apparently the best?
Thinking of trying Aider for yourself? Check out IndyDevDan on YouTube first: https://www.youtube.com/watch?v=QlUt06XLbJE – here he explains the “advanced AI workflow” nicely.
Thanks to my new Patreon supporter Flavio I will be trying the paid version on the SmartPoi and MagicPoi code bases very soon
Note: While recording I forgot the name of the best paid LLM for coding: Anthropic’s Claude 3.5 as of record date. Join my patreon to help pay for my AI addiction and subscribe to the channel for more video’s!
UPDATE:
I am getting the best results lately from aider –model gemini/gemini-1.5-pro-exp-0827 – currently free with sign-up to google.
TLDR: Magic Poi Alpha is getting test circuit boards, new firmware which works with the new web service and development is being accelerated by AI. At the end I ask for money to fund the AI coding assistant – via my Patreon Account.
Major updates to the Magic Poi project:
HARDWARE:
ESP32 S3 chip
Buttons
2020 size LED’s for more pixels
Lithium battery
Full housing re-design
FIRMWARE:
OTA programming
Dual Core with FreeRTOS background processes (downloading images won’t interfere with display)
Streaming from web functionality
Full integration with magicpoi web service API but works offline
There have been some challenges – recently I found out that the new ESP32 boards I bought aren’t even fully supported by PlatformIO – but I found a way to work around that.
Ultimately I want MagicPoi to work seamlessly. Add your friends on the web dashboard, create some timelines and push a button on your poi to sync everything up.
Hardware:
The first test board is coming out soon. The design is finished, using EasyEDA. We will be sending the board for production by JLPCB in the very near future – look out for an update.
After that it’s on to the poi body full re-design and finally Indigogo when you will be able to purchase the very first Magic Poi.
You can help!
If you want to be a part of MagicPoi development and the road to the Alpha production line, you can. I have started a Patreon to fund my AI dev tool and services addiction* as well as web hosting costs** – until we have something to sell that is. A few dollars per month from you would really help make this thing go faster. Also, anyone who signs up will get some exclusive discounts on the finished product.
*Go check out Cursor IDE and also the open source Aider they are so worth it.
**I’m spending $25 per month on hosting, $20 per month on AI coding tools and of course my friends over at EnterAction are putting up their own money to do the prototypes.
Feel free to reach out to me and don’t forget to subscribe to the magicpoi mailing list if you haven’t already.
I recently purchased a new board, the ESP32S3 Super Mini. That’s an S3 dual core version of ESP32 on a tiny yet powerful board.
The problem
The issue was that this board wasn’t working right – I had my code all set up (the new “Alpha” version of Magic Poi firmware – not published) and parts of it ran great for testing in Arduino IDE but as soon as I ported to PlatformIO it wasn’t compiling.
The real problem
It turns out that ESP32 S3 Super Mini and many newer ESP32 boards are simply not supported any more in PlatformIO. In fact, anything that relies on Espressif Arduino framework > version 4 is out of luck – as far as I can tell the owner of PlatformIO had a falling out with Espressif (business? personal? no reason at all?) and now they don’t support the new versions which work great on Arduino by the way (now version 6.something) Here is the issue on Espressif arduino-esp32 github: https://github.com/espressif/arduino-esp32/pull/8606#issuecomment-1805781410 for reference.
A very smart and intrepid PlatformIO user, Jason2866 made a fork of the PlatformIO Arduino Espressif base and put it here, with instructions on how to use it – and he updated it on his own to use the latest arduino-esp32. After some light editing and moving stuff around (including accidentally putting GND into +5v and vice versa – thank you Super Mini board for not blowing up) everything is now working. The Magic Poi project moves forward!
The monkey detector is temporarily live as a web service (I’m using the free version of Roboflow for image recognition – to save on server resources – so it will run out at some point)
Try it out! Send an image via curl like so*:
curl -X POST -F "file=@image.jpg" http://detect.devsoft.co.za/vision
For example if your filename is monkey.jpg then it’s “file=@monkey.jpg” You should see True or False as a response in the terminal.
Successful monkeys detected will be displayed on this web page: detect.devsoft.co.za – just re-fresh the page after your POST request.
This service will eventually be part of the Monkey Squirter project.
*please be nice and don’t spam my service, right now the server is pretty overloaded and running low on resources!