Is it OK that Sabertrio is password protecting access to their ProffieOS update?

Nice! Thanks for sharing.

1 Like

Resurrecting this only because I just did a diff on the Sabertrio ProffieOS 6.7. vs official OS.
Not major stuff, in fact, pretty benign to the point i have no idea why people have all kinds of issues. Then again, this is their “Prconfiguration 2.0” version, so their latest is “3.0”
So if someone wants to send that over, I’ll diff it.
.

Sabertrio version of ProffieOS 6.7. vs official ProffieOS6.7:

They removed all the readmes, makefiles, and tests,
all config files except their three.
Changed functions/random.h

<   int calculate(BladeBase* blade) { return random(32768); }
---
>   int calculate(BladeBase* blade) { return random(15000); }

Removed DoStab().
Changed some button timings, and moved motion timeout from 20secs to 1 minute.
Removed custom prop files except theirs .

ok here’s the meat.
Their “3.01” version has:

>     DEFINE_EFFECT(SOUND_LEVEL)                  \
>     DEFINE_EFFECT(NOBLADE)                     \
>     DEFINE_EFFECT(KYBER)                        \
>     DEFINE_EFFECT(VOLUMEMENU)                   \
>     DEFINE_EFFECT(LENGTH)                       \
>     DEFINE_EFFECT(CANCEL)                       \
>     DEFINE_EFFECT(DEFAULT)       
-------------
>   static void DoNoBlade() { DoEffect(EFFECT_NOBLADE, 0); }
>   static void DoKyber() { DoEffect(EFFECT_KYBER, 0); }
>   static void DoVolMenu() { DoEffect(EFFECT_VOLUMEMENU, 0); }
>   static void DoBladeLength() { DoEffect(EFFECT_LENGTH, 0); }
>   static void DoCancelScreen() { DoEffect(EFFECT_CANCEL, 0); }
>   static void DoDefault() { DoEffect(EFFECT_DEFAULT, 0); }

added these images for the OLED display:

> IMAGE_FILESET(no_blade);
> IMAGE_FILESET(kyber);
> IMAGE_FILESET(length);
> IMAGE_FILESET(volumemenu);

added Volume Level on blade this way in sound/sound_level

// S3: Displaying Sound Level on Blade
// Usage: DisplaySoundLevel
// Returns 0-32768 divied by Max Volume(1750) based on current sound level
// Return value: INTERGER.
// Used to display current sound level of saber.
class DisplaySoundLevelSVF{
public:
  void run(BladeBase* blade){}
  int calculate(BladeBase* blade)
  {
    return clampi32(dynamic_mixer.get_volume() * 32768/VOLUME, 0, 32768);
  }
};
using DisplaySoundLevel = SingleValueAdapter<DisplaySoundLevelSVF>;

Added this background trackplayer that plays when cycling through presets apparently. prop_base.h

// S3 MOD  Starts the Menu Hum for Preset Menu/Soundfont Selection
  void StartMenuBackgrd()
  {
#ifdef ENABLE_AUDIO
      MountSDCard();
      EnableAmplifier();
      track_player_ = GetFreeWavPlayer();
      if (track_player_)
      {
        track_player_->Play("common/fontmenuback.wav");
      } else
      {
        STDOUT.println("No available WAV players.");
      }

#else
    STDOUT.println("Audio disabled.");
#endif
  }
1 Like

Anything we can nick?

It would be a cool option to have the background track player… but that would require a rework to how navigating menus works in normal ProffieOS as of right now. Personally I don’t really have a preference between how CFX and Proffie do this, but evidently Sabertrio liked CFX’s UI better (or just wanted the experience to be identical as possible for their customers between boads, and proffie is the board the modify behavior on if that’s the goal)

According to the latest release notes on pre-configuration 3.02, the background track player while choosing Soundfonts was removed to accommodate OS7 requirements.

If you still want to run pre-configuration 3.01, it’ll have the background track. The ‘new’ preconfig doesn’t actually do anything. They just um-modded stuff to bring it closer to default ProffieOS. Still messed with, but much closer.

They claim that when OS7 is released, they will bring back stuff they removed, like the track players. Check their firmware release notes under firmware update on their site

They don’t seem to understand their customers TBH. They seem think their customers “know what CFX is and how it works” and that they then want the experience for Proffie to be like CFX, which seems “BASS-ACKWARDS”. Every single SaberTrio customer I’ve dealt with just wants their Proffieboard saber to work like a Proffieboard saber but they run into constant issues because SaberTrio is trying to sell them a Playstation 5 that uses a Nintendo 64 controller. I think if they actually polled their Proffieboard customers, they’d see that just offering a Proffieboard saber that works like every other Proffieboard saber in the community is all they want. In discussing with them I don’t think they have an understanding of what makes people want a Proffieboard and what makes Proffieboard unique and all of the issues their customers are experiencing stem from that lack of understanding.
I’ve been discussing with them and they’re making changes, but they are still stuck on trying to “dumb down” their Proffieboard offerings because they ASSUME all users want it to be like CFX, but my experience tells me most of their customers buying Proffieboard, haven’t used CFX or don’t want CFX, they want to buy a Proffieboard to use as a Proffieboard. I think once they realize this and stop throwing hurdles up in front of their customers everyone will be better off…

1 Like

Eh, I don’t really care that much, that was just the only semi-interesting thing Brian found they had implemented.

Yeah. From a surface level customer experience position, I understand where they’re coming from, the CFX is more user friendly and they’re trying to make sure it’s easy to use for everyone, but even at that, trying to conflate the two ultimately just makes everything worse because, yeah, makes it more confusing for a user who is just trying to change basic things since the software doesn’t behave like normal, and just annoying for those who are trying to get back to normal functionality.

Not to mention they already explicitly made it clear people who don’t want to deal with what a proffie is shouldn’t buy one in their saber, and at that point the option is there to have… options… making two boards try to behave the same goes against that goal as it is