Smart Poi

Setting up Smart Poi

Just follow the steps.

1. Go to smartpoifirmware.circusscientist.com

2. download (after changing values) – downloads a file blink.zip

3. extract blink.zip

4. open extracted main.ino in Arduino ide (I am using 1.8.19

5. Settings for Arduino:

6. Upload ->

7. Tools -> ESP8266 LittleFS Data Upload

8. Open Serial Ouput in Arduino IDE (Tools -> Serial Monitor)

9. Press Reset button on D1 Mini

10. It should say “Started, some stuff about files a.bin etc, Changed to image 1 Pattern 1..”

11. Open WiFi settings (I am using Linux, Windows should be similar?) and look for AP

12. Connect to AP (Default name is Smart_Poi7)

13. Once connected to Smart_Poi_7, open the browser (tested on FireFox and Chrome)

14. In Firefox open a new tab – you should see this: 

Clicking on “Open Network Login page” takes you to the built-in controls. 

In Chrome you have to manually type in the Main poi IP address, In Chrome it looks like this:

This is just a basic web page which is on the poi already.

15. Test the built-in control page by changing the Pattern to 2. The Serial output should reflect this..

pattern change requested: 2
Changed to image: 0 Pattern: 2

16. Now you are ready to try the smartpoi-js-utilities or Android app. https://www.circusscientist.com/smartpoi-8-0-software/

If you got this far it really should work!

Try and try again

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!

Magic Poi first test board arrived!

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!

More SmartPoi news

In other news, I added a page for “The History of SmartPoi“, as well as instructions for making the charger and installing software (firmware and web/Android controls)

UPDATES:

Sign up for our update alerts:

MagicPoi is going online soon

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).

Things which I host on my “Experimental Server” include: LED Website Indicator, Monkey Detector api, AI Website Generation, LED Juggling simulator, the old test MagicPoi site, and a lot more. Soon the main magicpoi.com will live here too, with improved specs so hopefully it can handle the cool stuff it’s going to be doing (like image classification on upload and streaming direct to the poi).

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!

Don’t forget to yield

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.

Wireless Streaming to your phone from LibreElec Kodi

  1. Install the Snapcast Server addon from Kodi addons and enable it.
  2. Install the Snapcast Client app (find it in the in F-Droid store, search for “snapcast”).
  3. Later versions of LibreElec have PulseAudio disabled – but it’s needed by Snapcast, so you have to force enable PulseAudio (Link) for it to work.
  4. Select Snapcast audio in Settings -> System -> Audio
  5. When playing video sound over WiFi you have to put the audio offset to +1 second (+1000) then it syncs up.

SmartPoi and Magic Poi updates again

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:

Obligatory plug of my patreon:

Support me on patreon

SmartPoi AI Podcast Episode 1

The Overview episode:

This episode was generated by AI!

How To:

I used Google NotebookLM for this, and uploaded all of my blog posts and web pages relating to the SmartPoi and Magic Poi projects. Check out this link to learn more (it’s free and really easy to do) https://www.forbes.com/sites/rogerdooley/2024/10/04/how-to-create-an-ai-podcast-about-anything-in-seconds-with-notebooklm/

Is it any good?

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!

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: