Recently due to Covid my focus has shifted from performance to full time programming. I now code for a living, and have done for the past six months.
Since my work project involves server architecture I have come up with a new idea for SmartPoi – what if I could use the full power of the internet on the poi? The idea is to have an online server which the Android app can connect to and retrieve images, timelines, and visualisations. Each Android app could be associated with an account, with private and sharing functionality (so we could share images – a bit like on the visualpoi site).
The first part of this new functionality I am working on is a virtual poi imager (see https://circusscientist.com/Axel_Belhache_Demo/ for an idea of how this could look). This will have a way to upload your own images, and eventually you will be able to create an account and save images there. The long term goal is to connect the online server with the Android app, and make it easier to get new images, and share them. *UPDATE: The test page is now live! Try it out by uploading your own poi images here:smartpoi.circusscientist.com/sketch. Currently limited to 10 images, and they need to be rotated 90 degrees before uploading.. I’m working on it!
As an added bonus, it is possible to send images to the poi straight from a browser (someone asked me about that recently on GitHub), so there could be a web app which would make SmartPoi usable without the Android app. Some functionality is not possible, though, with web alone – such as streaming images straight to the poi. For security reasons (DDOS) web browsers don’t allow UDP sending from the browser. Luckily SmartPoi backup images are uploaded using http requests. This means that standard poi things like offline images will be able to be loaded straight from the website onto the poi soon. Possibly timelines as well. I also hope to add re-sizing of images and text image generation to the list at some point.
Just as a side note – due to personal circumstances I am not able to do any hardware work for the rest of the year. The SmartPoi kit Indigogo launch will thus not be possible this year. Coding work is still very much in progress (I recently updated the app to work on Android version >9. )
As always, if you want to be first to hear the latest news about SmartPoi, you can sign up using the form below. Many thanks to those of you who emailed me with images of your own SmartPoi in action, it’s great to know that my contributions are inspiring people to make their own. We are just getting started. Loads more to come!
There have been a number of changes to the SmartPoi project in the last year. Due to issues I have had while spinning them at gigs I decided to make some much needed changes. This is a major upgrade
Changed to binary format to save images (in LittleFS file system) – this is so much smaller than the previous text based format, I can now fit 100 offline images onto the small poi and 50 images onto the large poi. The maximum image size is larger. Also, all images can be displayed one after the other. And the timing can be changed for offline images as well.
Added setup code to the Android app – no longer do I need to run a separate program to set up the test images, the Smart Poi Demo app now creates the correct files and folders* *unfortunately, Google in their wisdom are removing file system access slowly in newer versions of Android. This means that my code is going to have to be updated once again (angry face emoji)
Uploading offline images to the poi is simple and available straight from the Android app. An upload image button uploads all of the images at once (one folder at a time only for now)
The Future of Smart Poi
I am planning the launch of a kit version, hopefully this will be possible some time during 2021(*Update: more like 2022). The design will be modular, with the battery, circuit, and LED’s all coming separate. I have a friend who is a qualified designer who will be helping with this part. The idea is to be able to have a ‘snap-on’ LED strip, so that more pixels can be added at a much lower cost than if I was making a whole new set of poi. The same goes for the battery, and even the main circuit (ESP32 anyone?). If I can do it right, it will mean that upgrades will be cheaper and also easier.
– Smart Poi Overview page… may be a bit outdated now. Things are changing fast. I think you will agree that it’s improving with time. The future of Visual Poi is here, and it’s modular, open source, and streams over WiFi!
2020 is the future! In the future I want to have many projects complete and be working on something new. So here is the everything I have been working on for the past few years, all in one go. Is this complete? You tell me!
I have uploaded the code to github, and some programs to my site, all is explained, although possibly in a rather rushed way.
Significant things which I have finally open-sourced (as promised) are the Android App (for streaming images and patterns to the poi), the full firmware for ESP8266, the circuit and PCB I used, CAD files for 3d printing and more.
Still to come is the code for uploading the backup images to the poi (an old windows .exe is available for now).
To read about how all of these programs work together check out the SmartPoi menu option above, which include the following 3 new pages:
If anyone is interested in making their own streaming poi all of the parts are linked.
Affiliate links are included on this website. Please support my future projects! Another way to support my work, and help yourself to free stuff at the same time, is to check out DigitalOcean with their promotional 2 months free hosting. If you haven’t yet heard of them, they are the best and cheapest virtual server on the market right now, the link is in the banner at the top of my site.
If you are trying to make the poi please consider signing up to the mailing list, I am emailing updates to quite a few interested parties right now. No spam, just updates. In the last two years there have been only four emails, so not a whole lot…
I have been trying to make my poi easier for anyone to duplicate by eliminating the costly custom circuit board. So I tried to make it on stripboard, which was a disaster. Here is the idea:
And here is how it ends up looking on the stripboard (with tilt switch):
So that looks great and all but in practice, having to cut the stripboard and solder and everything else, there are too many possibilities for shorts and troubleshooting it was turning out to be a nightmare. There are 18 solder points on the board above, not to mention cutting the metal on the stripboard (under the esp-01)
Here is another idea, I am trying to make this simple, the D1 mini costs just $1 more and can run on 5v which is the right voltage for the LED strip anyway. This is the new circuit:
Now we have only 9 points to solder (not including the LED Strip, I didn’t include it above either).
I also re-imagined my poi outer shell, to give access to the usb programming port on the D1 Mini, so this will help with development as well.
Looking forward to putting this all together, and updating my tutorial series (if it all works as planned)
So, my Smart Poi are battery powered, of course. I chose AAA NIMH batteries in a pack of 4 for this originally as this provides around 5 volts of power for the LED strip, and I have a voltage regulator to turn that into 3.3 volts for the ESP8266. Originally I got the batteries with tags on and had them soldered together into a battery pack (by a pro) and added a jack input for the charger. Nothing lasts forever, and after almost two years of use I find my battery packs are degraded to the point that they don’t power the poi anymore.
The simple solution would be to get some more packs made and simply replace the old ones, however I have found myself in situations where the one hour (big poi) or two hours (small poi) is simply not enough time. While they are charging the poi are not earning me money, so the plan now is to take the same batteries and make them replaceable. I found a cheap spring loaded plastic battery holder which fits inside the poi housing, so a simple jtag connector (molex whatever you want to call it, I am getting the cheapest one) will give me hours more poi spinning time, which means more money of course!
In addition, I am going to be adding a tilt switch to the LED strip power line, so while the poi are held upside down the strip will be off, but the controller will still be on, and connected to the Android app. This will save power significantly during down time (walking from one area to another for example).
Simple improvements, but with a major impact on my performance.
Now to get onto improving the code I promised to release as open source! A hard task but it’s coming.
I emailed my favorite visual poi graphic artist, Axel Belhache and he agreed to let me use his images in my shows. Here is an online animation showcasing his amazing work. You can click on the animation to advance to the next image.
There are two .apk files included in the zip file (4mb). In order for the app to work correctly you need to install and run “Smart Poi Setup.apk” – it creates the necessary folders inside the “Pictures” directory on your device. You may need to run this twice, depending on your Android version (file access permissions may only work the second time) – just check if WirelessSmartPoi and WirlessSmartPoi72px folders have pics inside or the main app will not work correctly. Smart Poi Setup.apk can then be uninstalled.
The second “Smart Poi Demo.apk” is a test app to show the capabilities of the poi. This version of the app is for anyone demonstration purposes only, the UDP send is disabled and visualization enabled. In other words it does everything but send signals to the poi. This is because my app slows down function if no poi is connected, trying to send to nowhere. You may need to be connected to WiFi for this to work, I haven’t checked if that check is still in place.
The Timeline option won’t work on this demo unfortunately as it requires a zip file created by the Timeline creator desktop program which isn’t quite ready for sharing. To see what the other options are meant to do on the poi check out my post here:
Anyway, have a look and let me know what you think! So far tested working on Android KitKat through to Nougat. Please note all images need to be rotated 90 degrees to the right for the app to work correctly. One day I will fix this..
I will be uploading the full app to the Play Store once the Poi Arduino code is ready for sharing. The ultimate goal is of course to enable anyone to make a set of affordable Wireless Streaming Smart Poi of their own, and hopefully find some programmers interested enough to contribute to the development of this project.
Some images from one of my poi spinning gigs, animated to show how they look on the poi. I am hoping to be able to make this into a service for other poi spinners, so they too can showcase their work. All images copyright Nu Metro Cinemas, adapted for poi by my talented wife, Amanda Hastings.
This is a bit old now, I have integrated all the functionality shown here into one large app since, however the video does give a good idea of the functionality.
When spun in this video, the poi look choppy due to the low frame rate. Please take my word for it, they look a lot better in real life. I have a better looking video of both sizes of poi being spun here: