ProffieOS 7.x pre-alpha discussion

just default_profieboard_config.
Serial only.

Fresh sync of master.
fresh formatted SD.
Weird these numbers are all almost the same

35 -> Audio underflows: 505
02:05:28.443 -> Audio underflows: 510
02:05:28.515 -> Audio underflows: 500
02:05:28.623 -> Audio underflows: 510
02:05:28.730 -> Audio underflows: 505
02:05:28.837 -> Audio underflows: 505
02:05:28.947 -> Audio underflows: 510
02:05:29.023 -> Audio underflows: 505
02:05:29.135 -> Audio underflows: 510
02:05:29.241 -> Audio underflows: 510
02:05:29.348 -> Audio underflows: 505

Re-creatable by serial monitor “on”, then “n”, maybe “n” a few times.

I’ll try another SD

n seems to be the missing ingredient, weird.
I’ll see if I can figure out what causes it.

Yes, confirmed. All is normal until next or prev preset, then just a repeated output as posted above. Yet, the sound is fine, not choppy or laggy as typically with even just one or 2 Audio Underflow messages.

I have a feature request. Since I’ve made the blade plug charging device work, I’ve found out I’m depending on the fact that in most of my installs I have Blade Detect wired. But many NPXL connectors don’t even have the necessary pins. And I depend on Blade ID for setting the correct LED spec and setting the charging preset. Thus, I was wondering if we could do one of the following additions to 7:

A) Add a #define to make the OS poll Blade ID every X time while the blade is retracted.
B) Add a & preset specifically for charging that polls Blade ID every second (or could be a parameter) when set.

The nice part of A) is that it would solve the problem of swapping blades without shutting off the hilt. I don’t have killswitches nor on/off on all my sabers.
The nice part of B is that you could disable motion sensors and many other power hungry parts.
Any thoughts?

II think maybe one of the players get stuck in a state where it’s not quite “stopped”, and not producing audio either.

Check this thread out:

The audio underflow issue should hopefully be fixed now.

1 Like

yep! Thanks.

So Fett263 had a good idea: DISABLE_TALKIE; saves ~7.5Kb by disabling spoken error messages.
I improved upon the idea by replacing the spoken error messages with beep codes which takes very little space, but can still convey the same information.

Note that if DISABLE_TALKIE is used with a prop or style which uses talkie, you’ll get a compilation error. That error will explicitly mention DISABLE_TALKIE so it should be easy to figure out.

I’m working on a POD page which will have all he beep codes, including sounds you can listen to to figure out what they mean. In the meantime, try this cheat-(music)-sheet:


1 Like

I’m drawing a blank :wink:
and oddly there’s no “raw” icon to peek at what it’s supposed to be.
–edit-- oh, but I can drag it to the desktop and it’s a sheet music svg.
busting out the guitar…

What kind of browser do you have that can’t render SVGs?

We need a ProffieOS7 launch concert performance by the artist.

1 Like

Nevermind. It was the Experimental chrome flag for Dark mode setting.

I’ve no idea how the talkie system works, but would it not be possible to simply have 10 tiny wav files somehow loaded onto the board itself which just play a single number. Then when an error occurs, the board just plays the relevant number codes which you look up on a table?
So for instance if the board plays wavs 3, 7, 6, you look up what that number means.
This would mean no talking system is necessary as it’s just playing wavs, but it relies on the wavs being on the board in some kind of ram rather than on the SD card, and I don’t even know if that’s possible.

Just a thought.

Wavs take a fair amount of space. 88200 bytes per second in fact.
The 0-9 numbers would take up at least 5 seconds of audio, which
would take 441kb of memory.

Now, we can make that better by using phone quality audio (8-bit @ 8kHz), then it would only take up 40kb of memory.

This is where talkie comes in, it’s actually a simple audio compressor. WIth talkie, audio only takes up 200-500 bytes per second, which reduces the amount of memory needed from 40kb to 2.5k, plus ~5kb for the talkie code.

Oh wait, that means it would take 7.5k of memory, which is where we started, right?


I hear ya Prof.
It was worth a shot. :grin:

Ok, Maybe a morse code sort of beep sequences instead of musical tones?
beep beep beep - beeeeep beeeeeep - beep beep beep = Low battery? :wink:

or 2, 2, 2 = SD card not found
3, 3, 3 = Error in Font Directory
and so on?

Meanwhile, here’s what the beeps sound like currently:

I mean it would be trivial to do actual morse code:
Sd card not found: … -… / -.-. .- .-. -… / -. — - / …-. — …- -. -…

The advantage of musical beeps is that you may be able to tell which error code it is without having the score handy if you can sing the error code to the beeps. Also, they sound better.

I don’t expect everybody to be able to actually read musical scores though. Here is how they actually sound:

SD card not found:

Battery Low: (You can also use a wav file for this one.)

Error in the blade array:

Error in the font directory:

Font directory not found:

Aliens are here:

That last one is what you hear if you use the “beep” command in the serial monitor. The five notes are the same ones that are played in “close encounters of the 3rd kind”.


I didn’t mean actual morse code. More like a beep sequence, no different than a robot vacuum’s error code reporting, or a status light on almost any device.
If we assign each error a number, then just have that number of beeps, and repeat 3 times to allow for confirmation.
Error 1 = SD Card Not Found = 1beep, pause, 1beep, pause, 1beep.
Error 2 = Error in Font Directory = 2beeps, pause, 2beeps, pause, 2beeps.
and so on.
I think it’s cute to have them sound musical, but I’m pretty sure I know a good handful of tone deaf people who would have no idea about which passage is which, but would be fine just counting the number of beeps.

Here’s what the musical beeps sound like coming from a Proffieboard:

Here’s what they sound like on the board:

You’d have to be tone deaf AND rhythmically challenged, because none of the error beeps have the same groupings of notes. Unfortunately “error in the blade array” has the same number of notes as “font directory not found” due to having the same number of syllables. Otherwise counting number of notes would work too.

And nobody is so tone deaf that they can’t figure out the right one by comparing to a wav file.
(Unless they are actually deaf, in which case none of this matters.)