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)

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!

Upgrading K8 Prophecy club with new battery and firmware

My K8 Prophecy clubs have reached the end of their tether. After 8 years of use! First of all, many thanks to K8Malabares for their excellent equipment. Most smartphones won’t last that long (except for my Samsung Galaxy S2, which still works). If you need juggling equipment you can’t go wrong with K8. I have some of their non-LED equipment as well and it’s just as good.

Upgrade

About six years ago I did an experiment – to see if I could emulate the K8 IR code on an Attiny85 chip. I knew they used that chip, or possibly the Attiny45, because one of my clubs was faulty and I opened it up to have a look – K8 sent a replacement, by the way, talk about great customer service!

Now that my balls and clubs are not working anymore, due to the battery reaching end of life, it’s the perfect time to test out my new code. Luckily K8 didn’t solder their chips, instead opting for a convenient chip socket for easy replacement! I made some updates to the code, adding new functionality and colours. (K8 have also done an update since I bought my equipment) The most important, for me, was adding a timeline record and playback. This means that I can record the timed colour changes for my entire show into the chip via IR remote, and play it back (in time with the music) by pressing a single button. This is similar to how Aerotech Ultimates used to work.

You can check out the code for Attiny85 here.

Batteries

The batteries were the main thing. K8 use lithium batteries with 250mah power. I found some batteries online with a capacity of 600mah which I thought I could make fit (see below for details – not quite, but I made it work). I also bought a cool new charger for the new batteries.

The procedure

For anyone who wants to try and do this, I am posting some tips and photo’s.

1. Taking apart the club

Pull off the tape from the center, then pull out the staples:

Take off the knob and top bumper:

Pull off the plastic around the handle, then unscrew the plastic spacer (needs an allen key)

The next part is really sensitive – make holes in the top of the bulb cover to let the inside pipe come out. Get it out by pushing from the bottom – I also shoved a dowel inside and pushed upwards. If you use too much force this plastic pipe could bend, so be careful.

Now pull out some more screws holding the thicker top piece of the inside pipe on, and pull the spacer out to let the electronics out.