Smart Poi

SmartPoi Firmware Downloader – made with AI

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:

Aider with FREE LLM’s

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

Links:

Support me on Patreon: https://www.patreon.com/CircusScientist

Aider open source code assistant: https://aider.chat/

OpenRouter – link your LLM’s: https://openrouter.ai/

SmartPoi project info: smart poi project page

SmartPoi Downloader app: https://smartpoifirmware.circusscientist.com

SmartPoi Downloader code (with LLM comparison): https://github.com/tomjuggler/SmartPoi-Downloader

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.

AIDER LEADERBOARD (best performing models)

Introducing MagicPoi Alpha

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
  • Any number of LED’s supported
  • Timed events supported

Instagram video of magicpoi breadboard in action: https://www.instagram.com/reel/C-KaTrBOwb_/

WEB SERVICE:

  • Friends – share with friends (working on this now)
  • Products – currently legacy 36px, 72px and new 200px with more to be supported.
  • Image classification with AI on upload
  • Moved back-end data to PostgreSQL for scaling purposes
  • Actually complete re-write of the whole thing (old version online at http://magicpoi.circusscientist.com, new version to be hosted at https://magicpoi.com soon)
Adding friends to the new magicpoi.com alpha version

Development:

Firmware and Web Service are moving forward really fast now – recently I moved over to Cursor IDE, the AI based IDE that’s so easy to use my kid loves it: https://www.circusscientist.com/2024/09/05/my-10-year-old-son-made-an-android-game-with-no-coding-experience

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.

UPDATES:

Sign up for our update alerts:

The deal with PlatformIO and ESP32 Arduino

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.

PlatformIO has their own version of arduino-esp32 called platform-espressif32. Here is a long discussion about the dropping of support on their github: https://github.com/platformio/platform-espressif32/issues/1225 for reference.

After reading more discussions on the PlatformIO github, Reddit and other places, I finally stumbled on this thread https://github.com/platformio/platform-espressif32/issues/1435 which contained:

The Solution

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!

My 10 year old son made an Android Game with no coding experience

Recently I have been trying out cursor IDE – based on VSCode.

My verdict is: it’s magic. After trying out several others including Github Co-pilot, I have to say that in my opinion this is the future of coding. It’s so easy that after I set it up for him, my son spent a few happy hours prompting his way to a really fun Android game, without writing a single line of code*. You can download and and try it yourself! I especially love level 2 where you have to fight poop emoji’s – fire at will! Just be ready for level 3 where a bug new feature means you can’t fire, and have to collect powerups and ram the enemy ships.

*OK I helped with the image files and debugging, compiling for Android etc..

The future of coding is awesome. That’s why I have now made a patreon account, where you can support my AI addiction – unfortunately cursor and other services I love to use are not free. Help me by subscribing with a few bucks please! https://www.patreon.com/CircusScientist. I promise every cent will be spent on products and services to improve my open source code (currently focused on finishing the awesome Magic Poi)

Monkey Detector web service!

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!

Magic Poi Lite Firmware (Definitive Version)

Ever had your computer crash and had to re-install the OS, then restore all of your projects one by one, only to forget about an important file and re-do all of the work?

I did the test firmware for Magic Poi Lite 7 months and one Laptop crash ago. Today I went to upload the firmware I worked on all last week and it turns out I already have a GitHub repo set up – for the same project – which I forgot about.

Turns out the new version is better though, so here it is: https://devsoft-co-za.github.io/magic-poi-lite/ – made in PlatformIO, now with bonus Documentation!

In case you didn’t already know, Magic Poi Lite is the single colour version of Magic Poi – WiFi enabled, internet connected flashy lights poi.

SmartPoi js utilities update

Hi Smart Poi enthusiasts!

I have been working on more stability and functionality for the offline web utilities for Smart Poi. (see the code here: https://github.com/tomjuggler/SmartPoi-js-utilities)

Check out the video walkthrough here:

If you want to try it out, make sure to get the latest Smart Poi firmware in order for this to work: https://github.com/tomjuggler/SmartPoi-Firmware