Arduino Issues

So I have proffie v2.2 and am trying to upload proffie os with my config. I am both getting a compiling error and at the bottom of arduino it says proffieboard 2.2 not connected. I tried selecting the ports but they come up grey and are not accessible. I did everything I was supposed to in zadig but it only registers as STM32 Bootloader. I’m lost as to what to do tried almost every turtorial to the tee and still won’t read. I may have the wrong cable not capable of transferring data or is my board screwed? I will post the errors when I am home just had to run some errands but it is frustrating as all hell because my saber is in tomorrow and wanted it programmed ahead just running into problem after problem.
If it is my config any help would be appreciated. As I stated above I’m out so when I’m home I will have the error codes posted
Edit: btw I used Fett263 OS7 config tool so I really just selected my styles and pathways for the fonts didn’t mess with the config.
I also tried the older version of Arduino and still not showing in the port. I keep forgetting things sorry I suffer from a TBI, anyway, do I have to have the board wired to a power source? I came across a tutorial and he had his wired to a power source.

If you’re seeing STM32 BOOTLOADER, your board is connected, so no need to worry about the cable, that’s fine.

This shouldn’t matter, though I have seen some weird cases where being connected to battery power drove away the gremlins…

This is to be expected if you’re in STM32 BOOTLOADER mode. My best guess right this second is that the compilation itself is failing, but that the upload will probably work fine and there’s nothing wrong in that regard, so once you get a chance to post those error messages we can take a look and figure that out :slight_smile:

Thanks I appreciate the help trying to have the wife huddle so I can get back lol

I hit copy error code and pasted here sorry if it’s long… But I see a few errors but the main one that keeps showing up is at the very bottom

In file included from E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\props\saber_fett263_buttons.h:928,
                 from E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\config\mysaber_config.h:42,
                 from E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\ProffieOS.ino:633:
E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\props\prop_base.h:25:1: error: expected '}' before 'class'
   25 | class SaveGlobalStateFile : public ConfigFile {
      | ^~~~~
In file included from E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\ProffieOS.ino:629:
E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\config\mysaber_config.h:430:24: note: to match this '{'
  430 | BladeConfig blades[] = {
      |                        ^
In file included from E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\props\saber_fett263_buttons.h:928,
                 from E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\config\mysaber_config.h:42,
                 from E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\ProffieOS.ino:633:
E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\props\prop_base.h:25:1: error: expected ',' or ';' before 'class'
   25 | class SaveGlobalStateFile : public ConfigFile {
      | ^~~~~
E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\props\prop_base.h:681:3: error: 'SaveGlobalStateFile' does not name a type; did you mean 'SavePresetStateFile'?
  681 |   SaveGlobalStateFile saved_global_state;
      |   ^~~~~~~~~~~~~~~~~~~
      |   SavePresetStateFile
E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\props\prop_base.h: In member function 'void PropBase::SaveVolumeIfNeeded()':
E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\props\prop_base.h:363:40: error: 'saved_global_state' was not declared in this scope; did you mean 'SaveGlobalState'?
  363 |       || dynamic_mixer.get_volume() != saved_global_state.volume
      |                                        ^~~~~~~~~~~~~~~~~~
      |                                        SaveGlobalState
E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\props\prop_base.h: In member function 'void PropBase::RestoreGlobalState()':
E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\props\prop_base.h:684:5: error: 'saved_global_state' was not declared in this scope; did you mean 'SaveGlobalState'?
  684 |     saved_global_state.ReadINIFromDir(NULL, "global");
      |     ^~~~~~~~~~~~~~~~~~
      |     SaveGlobalState
E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\props\prop_base.h: In member function 'void PropBase::SaveGlobalState()':
E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\props\prop_base.h:707:5: error: 'saved_global_state' was not declared in this scope; did you mean 'SaveGlobalState'?
  707 |     saved_global_state.clash_threshold = GetCurrentClashThreshold();
      |     ^~~~~~~~~~~~~~~~~~
      |     SaveGlobalState

exit status 1

**Compilation error: expected '}' before 'class'**

I am sorry I feel stupid because I don’t know where to begin to fix this issue nor how too, but this being my first build ever I figured this was the best place to ask. Also I feel like my drivers aren’t installing right even those zadig says it was successful, and that may be causing an issue as well since I can’t select a port… Again apologies I know this is quite a bit of things being asked in this post, forgive me but know I appreciate all help!

Don’t worry it’s a little tricky at first but everyone here is glad to help :slight_smile:

Try posting you config using a triple backtic (before and after) like:

your config here

You can do it manually or there’d a button at the top of the reply box that looks like </>.

1 Like

need to share the config file.

thats my config

You cut off the closing “};” from your BladeConfig when pasting into the config tool. As the directions indicate:

Your BladeConfig is found at the bottom of your config.h file, it will begin with "BladeConfig blades[] = {" and end with "};". This section contains information on how your saber has been wired and set up.
This tool will parse the BladeConfig above to determine the Number of Blades and CONFIGARRAYS found.

NOTE: if using Edit Mode or ProffieOS Workbench with All Edit Options or Edit Blade Length enabled the blade length in the BladeConfig is the maximum length. It is recommended to set the blades that you may need to edit to the maximum blade length you will need (see "132" in example below).

Example:

BladeConfig blades[] = {
{ 0, WS281XBladePtr<132, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(), CONFIGARRAY(presets) },
};

This tool cannot check your BladeConfig, there are too many possible wiring and set up options. You will need to troubleshoot any issues with your BladeConfig separately before using this tool.

Your BladeConfig was pasted as

BladeConfig blades[] = {
 { 0, WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
    WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin4, bladePowerPin5> >(),
    WS281XBladePtr<1, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >()
  , CONFIGARRAY(presets) }

It should be:

BladeConfig blades[] = {
 { 0, WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
    WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin4, bladePowerPin5> >(),
    WS281XBladePtr<1, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin6> >()
  , CONFIGARRAY(presets) },
};

Thank you I was wondering where that was talking about sorry didnt know what ‘Class’ was I will adjust and let the results be know thanks again!!!

well it looked like it was working then this

c:/users/jkrel/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe:C:\Users\jkrel\AppData\Local\Arduino15\packages\proffieboard\hardware\stm32l4\3.6\variants\STM32L433CC-ProffieboardV2/linker_scripts/STM32L433CC_FLASH.ld:224: warning: memory region `SRAM2' not declared
In function 'operator new',
    inlined from 'run' at E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\functions\sparkle.h:22:17,
    inlined from 'run' at E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\styles\blade_style.h:129:5,
    inlined from 'RunFunction' at E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\styles\blade_style.h:142:64,
    inlined from 'run' at E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\styles\alpha.h:21:40,
    inlined from 'run' at E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\styles\mix.h:52:5,
    inlined from 'run' at E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\styles\mix.h:67:5,
    inlined from 'run' at E:\ProffieOSConfigect\ProffieOS-v7.14\ProffieOS\styles\color_select.h:26:5:
C:\Users\jkrel\AppData\Local\Arduino15\packages\proffieboard\hardware\stm32l4\3.6\cores\stm32l4\new.cpp:22:16: warning: argument 1 value '4294967295' exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
   22 |   return malloc(size);
      |                ^
C:\Users\jkrel\AppData\Local\Arduino15\packages\proffieboard\hardware\stm32l4\3.6\cores\stm32l4\new.cpp: In member function 'run':
c:\users\jkrel\appdata\local\arduino15\packages\proffieboard\tools\arm-none-eabi-gcc\9-2020-q2-update\arm-none-eabi\include\malloc.h:37:14: note: in a call to allocation function 'malloc' declared here
   37 | extern void *malloc (size_t);
      |              ^
c:/users/jkrel/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 8 bytes
c:/users/jkrel/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 8 bytes
c:/users/jkrel/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\jkrel\AppData\Local\Temp\arduino\sketches\54E0F328B010BE20BBF128459E04140C/ProffieOS.ino.elf section `.text' will not fit in region `FLASH'
c:/users/jkrel/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 8 bytes
c:/users/jkrel/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 8 bytes
c:/users/jkrel/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: changing start of section .bss by 8 bytes
c:/users/jkrel/appdata/local/arduino15/packages/proffieboard/tools/arm-none-eabi-gcc/9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 104624 bytes
collect2.exe: error: ld returned 1 exit status

exit status 1

Compilation error: exit status 1

Is something with my config taking to much memory or space? Man I am really about to start studying c++ because I really want to understand this…

Yes, but I tried that config and it compiled fine. What are your settings under Tools?

It looks like you have optimization set to “fastest” which takes up a lot more flash memory.
Please try setting it to “smallest”.

More information here:

Thank You SO MUCH!! I appreciate all the help! one last question after upload, a usb drive D: pops up is that the SD Card?

Yes.
Note that it is important that you eject that before unplugging and/or programming board.
You can turn this off by changing Arduino → Tools → USB Type to something that doesn’t have “mass storage” in it, and then upload.

Also note that Proffieboards are very slow SD card readers. If you plop a few fonts on there it can take several minutes before you can safely disconnect the proffieboard from the computer.

Under Tools > USB type make sure you don’t have “Mass Storage” option. If you do, choose one without and re-upload.

Is that necessary? Or can I have the Mass storage and take out the card before upload? sorry just was following the tutorial and thats the options they selected. what is the exact purpose? (sorry I feel dumb lol)

I always recommend removing Mass Storage, with it enabled your computer will occupy the SD everytime you connect and if you fail to properly Eject you will corrupt your SD. Inevitably it’s just easier to not have IMHO, otherwise you run the risk of corruption if you forget to Eject.

I recommend this page for instructions, just follow step-by-step.

1 Like

Ok, So I can just reupload Proffie OS with the mass storage option taken off I don’t have to go through all the beginning steps again? I know that may sound stupid but want to make sure I absolutely do this correct. to avoid any further issues or corruption as you stated.
Sorry but serial+WebUSB correct?

Again thank you so so much for all the help, I would not have know where to look if my life depended on it lol. Glad google led me here, this is a great and helpful community and its awsome that some of the biggest and main DEVs are here helping us newbies out, really helping everyone. Definitely can’t wait to do more installs.
And today of all days you guys helped me solve this issue because my Revanted Hilt just arrived!