ProffieConfig | All-In-One GUI Proffieboard Utility

I’d like to introduce a tool I’ve been working on for the past couple of weeks.

The biggest issue with the proffieboard as I see it is the need for a fair amount of computer and programming knowledge, or at least good reasoning and Google-fu, to be able to use it. There’s a lot of boilerplate, needing to deal with the Arduino IDE, and it’s simply not beginner-friendly.

This tool is designed to be an all-in-one solution for managing a proffieboard. The tool is intended to obfuscate the ProffieOS code from an end user, and provide a (relatively) simple GUI which is comprehensive enough to handle most configurations.

From first downloading, the tool can be run and there’s a menu option to Install necessary dependencies. This will install the proffieboard arduino core, get all that stuff configured, and run the installation for any drivers that need to be installed (runs proffie-dfu-setup.exe on windows and copies the rule sets for linux)

From there, most settings and functionality of ProffieOS can be accessed for configuration. General defines, prop selection and configuration (Fett… the number of features you have are incredible, but boy did it take some time to lay all that out, lol) Preset and blade array configuration, etc.

It’s a work-in-progress to add in tooltips and additional dialog boxes to explain certain functionality, and providing more human-readable errors for common problems, such as malformed styles.

The only place a user should have to interact with any code within this tool is pasting in styles into the given text box, the tool does all the formatting around them.

Once a user has created a configuration, it can be saved and/or exported out. Additionally, the tool supports the detection of connected proffieboards and flashing right in it’s GUI, no need to ever touch Arduino.

Finally, since it’s very likely people have a configuration already, there’s is support for importing existing configurations as well.

You can download the tool from here: GitHub - ryryog25/ProffieConfig: GUI Configuration tool for the ProffieBoard

There’s a few major features I know I’m missing, including OLED support (this is mostly there, just need to add in the option to enable the define) and blade detection, bladeID (multiple blade/preset arrays) which I plan to add in the future.

I appreciate any feedback or suggestions anyone may have, and hope it can be useful!

5 Likes

“disable developer commands” ?
Do you mean “disable diagnostic commands” ?
(There is also a define called ENABLE_DEVELOPER_COMMANDS which is for commands that normally only I use.)

1 Like

It does both of those… (so if it’s checked, DISABLE_DIAGNOSTIC_COMMANDS is defined and if it’s not, ENABLE_DEVELOPER_COMMANDS is defined…)this might be bad practice, please let me know if it is, but the reasoning behind it was that most of the time these shouldn’t be needed, and if they were, enabling all of them would be useful? Unless you think they should be separate.

I’ve updated the name of that option to “Disable Diagnostic Commands” regardless to avoid that confusion.

That’s just confusing, and I think it’s very rare that people need ENABLE_DEVELOPER_COMMANDS.

What would be really cool would be if the tool automatically used DISABLE_DIAGNOSTIC_COMMANDS if the config specified didn’t fit in memory. :slight_smile:

1 Like

Ok, I’ve updated that then.

image
(Is this a valid use of screenshots or would you rather I still refrain?)

I could definitely implement a feature to inform users they could try that to save space if the config doesn’t fit, I wouldn’t want to do it automatically though, that way the user knows that gets changed.

1 Like

I’ll have to create a config that overflows the flash to test it (just throw in a whole bunch of greyscale styles lol) but when a FLASH overflow is detected, it will inform the user how they can save memory.

I’ll make a note to maybe at some point make a button when the error is displayed to enable it though too.

When I’ve access to my macOS machine later today I’ll build a new release with these changes (and any other made until then)

Valid

In that case you may also want to add the DISABLE_TALKIE define which saves a fair amount of memory too.

Yeah, I saw that I didn’t have that… I’ve added it to my list.

#define DISABLE_BASIC_PARSER_STYLES
saves a bunch of mem. You could check if the style doesn’t use any and offer it?

I do that unconditionally, actually. I’ve never seen a style that uses the basic parser styles… (or rather, I’ve always used that define in my personal configs and never had a style that won’t compile…)

I’ll be honest, I’m not sure what the basic parser styles even are?

Look at styles/style_parser.h at the part for #ifndef DISABLE_BASIC_PARSER_STYLES

DISABLE_BASIC_PARSER_STYLES only affects which options are available in the ProffieOS workbench, it does not affect what styles are available to use in your config file.

Will do, I’ll take a look

Ah, I gotcha. I’ll expose that then in the case someone wants to use that. I don’t use the workbench so it makes sense I’ve never seen that.