Hello everyone,
Marius here from RSX, with an update on what we’ve been doing lately. These are independently pursued developments that don’t fall under ‘UltraProffie’, so I’ve opened a new thread instead. It’s mostly about hardware but there are also some software parts that might be of interest for the Proffie community, so here they are:
SaberProp
We’re prototyping a new line of boards we call ‘SaberProp’, supporting 2 pixel blades and 4 power LED channels and running our ProffieOS fork. It comes as a core, factory-mounted on an M35 illuminated chassis, as well as in small board form on the same size as Proffieboard and CFX. The LITE version is based on a faster series of ARM, STM32U535, and the flagship on a dual-core ESP32-S3, so now we have native Bluetooth and WiFi. Porting the OS on the ESP proved to be a hard nut to crack, it took us a while to get it stable. We’re using only one core for the prop and the second one for wireless communication, but even though it lists more MHz and MB than an ARM, the ESP comes with so many performance penalties that a single core is barely enough for the prop. But this split allows us to run the prop and wireless com at the same time.
Getting a decent signal out of a closed hilt was, predictably, a hurdle. The solution we came up with is mounting an external antenna above the speaker, to take advantage of the pommel openings. On the cores the antenna is mounted on the chassis itself, for the boards we made an antenna/speaker combo, that most of the time fits in place of a standard 28mm or 31mm speaker - not always due to extra length. With this antenna, in a Prime Saber hilt we’re now reliably getting at least 6m (20ft) BLE range on all Android phones we tested - iPhones seem slightly weaker.
Apart from the wireless connectivity, which has been the focus so far, there are only a few changes from our previous release:
- We modified the way the color variation parameter is interpreted as blade color, allowing it to control not just hue but also saturation, so we inserted WHITE as a color option for remote (mobile) and local (on-board menu) setting, without the need for style reconfiguration.
- We broke the tight association between presets, fonts and tracks, so now we can assign any font and track to any preset via mobile app, web interface and on-board menu. We were already storing the presets exclusively on files, outside of flash, from our older release, now we just made them editable through gesture controls and ASCII commands.
- We coded a new prop (SaberProp) for single button sabers, which only uses the button for configuration commands, with all the effects triggered by motion only. It supports all the effects, including blaster deflects and gesture ignition.
- On a special ESP hardware with more RAM we added a piece of code to record the audio output just before the DAC, which we then save as WAV on SD. We’re using this to record live for our videos.
- We upgraded the ‘firmware upgrade from SD’ functionality to ‘firmware upgrade over-the-air’, by simply copying a file on the SD, wirelessly. We bypassed Espressif’s OTA because it was taking half of the flash for backup, and we can find better use for it.
We’re still fine tuning and debugging the code, as soon as it’s ready for release on SaberProp, our focus will move towards getting the styles completely out of flash. They don’t belong there, it’s bothering us because we’re aiming at full OTA content delivery, and it’s bothering many Proffie users because they have to go through Arduino to change styles. What we’re gonna do is store the pre-compiled style code as executable file and run it from RAM.
The updated code supporting the new boards - rebranded OSxs with ‘s’ from SaberProp - is on GitHub, here. Arduino board packages for the STM-based SaberProp Lite and ESP-based SaberProp also on GitHub - these are not published with the JSON yet so must be manually injected into Arduino. You can find instructions in the readme.
We also made a mobile app to support the ESP-based SaberProp, which gives basic configuration over Bluetooth as well as file transfer over WiFi. We added an AI assistant which we’re currently feeding wiring diagrams and all the technicalities required to support users with installs, troubleshooting and configuration. We will release the iOS and Android apps in a few months, we’re still beta-testing them and adding features.
Digital LED
We made a ‘digital’ RGBW LED that decodes pixel data and gets controlled just like a pixel blade through the NPXL-compatible connector. This LED runs custom code on a small STM32C011 so, unlike with hardware WS decoders, it’s not controlled as a single pixel. It runs on HSL statistics over the entire blade, so it catches localized effects designed for pixel blades. The chromaticity of the Cree emitters we’re using is not yet characterized so color mixing gets all over the place, but other than that it’s fully working. It allows hot swapping without the software needing to know which kind of blade is active, so we’re gonna offer it as an optional add-on to our pixel blades.
The Digital LED code is published on GitHub under the same open-source license as ProffieOS, here. It can be adapted to drive multiple accent / button / crystal LEDs. It doesn’t get as cheap as a hardware decoder but still, the STM chip retails at under $1, is programmable and available in a very small package. If anyone wishes to dig into such applications and needs our support, feel free to ask. So far this code is not properly documented.
Prime Saber
We packaged everything into a dueling hilt we call ‘Prime Saber’. With this we’re gonna start making our own installs, so we’re 3D printing the casing of a mating conector made with standard parts:
Here’s a demonstration of how installing a SaberProp core in a Prime Saber, using this connector, goes:
That’s it for now. More “under the hood” videos are in progress and will be released over the following weeks. Meanwhile, please share your thoughts!
Thanks.
Marius.