Proffie issue with it hanging the power button

Put together a v2.2 hilt and have been having an issue with the power button. It acts like you are double clicking the button, and starts the saber muted BUT the power button won’t respond after that. It has been working by twisting the saber off and then restarting with the power button. It does this a few times and then suddenly goes to working correctly again. Once you leave it off for a couple minutes, or cycle the battery power, it resumes the double-tap of the power button. The weird thing it’s done since the start, you can hold the power button down and the track plays as normal. Then tap the power button to turn on and it acts like a double tap. Twist off and you can start the track right up without button malfunction, it does not stop/start the track or anything. It only has the issue with the power button, once you ignite the hilt.

I chased it thinking I had cracked the PCB in the switch section with long pins bottoming out (though they really were not). Swapped a new pin-PCB in and the issue remained. Pulled the SD card and formatted a new one, broke it in half getting it back in, so formatted a third card and installed it… same pow-button issue. Tested the first SD with serial monitor and it passed with good speeds.

It seemed that once it warmed up, the issue would solve itself. I assumed being outside in the Florida weather, it would act right without issue. Took the hilt to Disney yesterday and it was far worse than it has been at home. Maybe 2 times it acted right but started turning itself on/off and starting tracks on it’s own. It only did the trouble after activating it, once twisted off, it would remain off and not play tracks or anything. Brought it home and messed with it a bit tonight.
The last time(s) I hooked it to serial monitor, it was not doing much wrong other than commands would often hang the board and comm up, requiring unpluging the USB and plugging back in. Those times I had the battery in the chassis. Tonight I pulled the battery and hooked to SM. The “paste” below is from commanding the board on, via serial monitor. The chassis has a PCB connection to the switch section and was out of the hilt, so the buttons are not connected. The PCB has about 1.5" of wire between it and the power button (button 1) on the proffieboard.

I originally programmed with 7.10 but its on 7.11 now.

I’m guessing the proffie has some sort of issue. If it randomly turned itself on or started the track, I’d assume a piece of solder or wire floating around the board but it only acts up, after the power button is pushed.

It’s an electronics123 proffie that I got in the last month or so.

Welcome to ProffieOS v7.11
For available serial commands, see:

Battery voltage: 1.50
Saving Current Preset
Style RAM = 144
Scanning sound font: rescue done
Scanning sound font: common done
Activating polyphonic font.
Activating SmoothSwing V2
Accent Swings Enabled.
Polyphonic swings: 16
Monophonic swings: 0
Accent Slashes NOT Detected:
DISPLAY: white
unit = 0 vol = 0.50, Playing rescue/font/font.wav
channels: 1 rate: 44100 bits: 16
Unmounting SD Card.
Amplifier off.
Ignition.
unit = 0 vol = 0.00, Playing rescue/hum/hum01.wav
channels: 1 rate: 44100 bits: 16
unit = 1 vol = 0.50, Playing rescue/out/out02.wav
channels: 1 rate: 44100 bits: 16
humstart: 1800
unit = 2 vol = 0.00, Playing rescue/swingl/swingl01.wav
channels: 1 rate: 44100 bits: 16
unit = 3 vol = 0.00, Playing rescue/swingh/swingh01.wav
channels: 1 rate: 44100 bits: 16
EVENT: Power-Pressed#1 ON millis=92552
EVENT: Power-Pressed ON millis=92553
EVENT: Power-Released#1 ON millis=92645
EVENT: Power-Released ON millis=92645
EVENT: Power-Shortclick#1 ON millis=92645
unit = 4 vol = 0.50, Playing rescue/in/in01.wav
channels: 1 rate: 44100 bits: 16
EVENT: Power-Pressed#2 millis=92656
EVENT: Power-Pressed millis=92656
EVENT: Power-Released#2 millis=92665
EVENT: Power-Released millis=92665
EVENT: Power-Shortclick#2 millis=92665
EVENT: Power-Shortclick millis=92665
Ignition.
unit = 5 vol = 0.50, Playing rescue/out/out01.wav
channels: 1 rate: 44100 bits: 16
humstart: 1800
EVENT: Power-Pressed#3 ON millis=92693
EVENT: Power-Pressed ON millis=92693
EVENT: Power-Released#3 ON millis=92720
EVENT: Power-Released ON millis=92720
EVENT: Power-Shortclick#3 ON millis=92720
EVENT: Power-Shortclick ON millis=92720
EVENT: Power-Pressed#4 ON millis=92735
EVENT: Power-Pressed ON millis=92735
EVENT: Power-Released#4 ON millis=92741
EVENT: Power-Released ON millis=92741
EVENT: Power-Shortclick#4 ON millis=92741
EVENT: Power-Shortclick ON millis=92741
EVENT: Power-Pressed#4 ON millis=92753
EVENT: Power-Pressed ON millis=92753
EVENT: Power-Released#4 ON millis=92817
EVENT: Power-Released ON millis=92817
EVENT: Power-Shortclick#4 ON millis=92819
EVENT: Power-Shortclick ON millis=92819
EVENT: Power-Pressed#4 ON millis=92834
EVENT: Power-Pressed ON millis=92835
EVENT: Power-Released#4 ON millis=92852
EVENT: Power-Released ON millis=92852
EVENT: Power-Shortclick#4 ON millis=92852
EVENT: Power-Shortclick ON millis=92855
EVENT: Power-Pressed#4 ON millis=92863
EVENT: Power-Pressed ON millis=92863
EVENT: Power-Released#4 ON millis=92956
EVENT: Power-Released ON millis=92956
EVENT: Power-Shortclick#4 ON millis=92956
EVENT: Power-Shortclick ON millis=92956
EVENT: Power-Pressed#4 ON millis=92967
EVENT: Power-Pressed ON millis=92967
EVENT: Power-Released#4 ON millis=93090
EVENT: Power-Released ON millis=93090
EVENT: Power-Shortclick#4 ON millis=93090
EVENT: Power-Shortclick ON millis=93091
EVENT: Power-Pressed#4 ON millis=93107
EVENT: Power-Pressed ON millis=93107
EVENT: Power-Released#4 ON millis=93384
EVENT: Power-Released ON millis=93384
EVENT: Power-Shortclick#4 ON millis=93384
EVENT: Power-Shortclick ON millis=93384
EVENT: Power-Pressed#4 ON millis=93397
EVENT: Power-Pressed ON millis=93397
EVENT: Power-Released#4 ON millis=93697
EVENT: Power-Released ON millis=93697
EVENT: Power-Shortclick#4 ON millis=93697
EVENT: Power-Shortclick ON millis=93697
EVENT: Power-Pressed#4 ON millis=93712
EVENT: Power-Pressed ON millis=93712
No sounds found: pstoff
EVENT: Power-Held#4 ON millis=94013
EVENT: Power-Held ON millis=94013
EVENT: Power-Released#4 ON millis=94023
EVENT: Power-Released ON millis=94024
EVENT: Power-Shortclick#4 ON millis=94024
EVENT: Power-Shortclick ON millis=94024
EVENT: Power-Pressed#4 ON millis=94035
EVENT: Power-Pressed ON millis=94035
EVENT: Power-Held#4 ON millis=94336
EVENT: Power-Held ON millis=94336
EVENT: Power-Released#4 ON millis=94662
EVENT: Power-Released ON millis=94662
EVENT: Power-Longclick#4 ON millis=94662
EVENT: Power-Longclick ON millis=94662
unit = 1 vol = 0.50, Playing rescue/force/force.wav
channels: 1 rate: 44100 bits: 16
EVENT: Power-Pressed#1 ON millis=94673
EVENT: Power-Pressed ON millis=94673
EVENT: Power-Held#1 ON millis=94974
EVENT: Power-Held ON millis=94974
EVENT: Power-Released#1 ON millis=95177
EVENT: Power-Released ON millis=95177
EVENT: Power-Longclick#1 ON millis=95177
EVENT: Power-Longclick ON millis=95177
unit = 4 vol = 0.50, Playing rescue/force/force2.wav
channels: 1 rate: 44100 bits: 16
EVENT: Power-Pressed#1 ON millis=95188
EVENT: Power-Pressed ON millis=95188
EVENT: Power-Held#1 ON millis=95490
EVENT: Power-Held ON millis=95490
EVENT: Power-HeldMedium#1 ON millis=95989
EVENT: Power-HeldMedium ON millis=95989
EVENT: Power-Released#1 ON millis=96004
EVENT: Power-Released ON millis=96004
EVENT: Power-Longclick#1 ON millis=96004
EVENT: Power-Longclick ON millis=96004
unit = 5 vol = 0.50, Playing rescue/force/force2.wav
channels: 1 rate: 44100 bits: 16
EVENT: Power-Pressed#1 ON millis=96016
EVENT: Power-Pressed ON millis=96016
EVENT: Power-Held#1 ON millis=96317
EVENT: Power-Held ON millis=96317
EVENT: Power-Released#1 ON millis=96795
EVENT: Power-Released ON millis=96795
EVENT: Power-Longclick#1 ON millis=96795
EVENT: Power-Longclick ON millis=96796
unit = 4 vol = 0.50, Playing rescue/force/force.wav
channels: 1 rate: 44100 bits: 16
EVENT: Power-Pressed#1 ON millis=96808
EVENT: Power-Pressed ON millis=96808
EVENT: Power-Held#1 ON millis=97115
EVENT: Power-Held ON millis=97115
EVENT: Power-HeldMedium#1 ON millis=97609
EVENT: Power-HeldMedium ON millis=97609
EVENT: Power-HeldLong#1 ON millis=98809
EVENT: Power-HeldLong ON millis=98809
EVENT: Power-Released#1 ON millis=99391
EVENT: Power-Released ON millis=99391
EVENT: Power-Pressed#1 ON millis=99407
EVENT: Power-Pressed ON millis=99407
EVENT: Power-Held#1 ON millis=99708
EVENT: Power-Held ON millis=99708
Battery voltage: 0.97
EVENT: Power-HeldMedium#1 ON millis=100208
EVENT: Power-HeldMedium ON millis=100208
EVENT: Power-HeldLong#1 ON millis=101408
EVENT: Power-HeldLong ON millis=101408

There is a number of things that could be going on here, like:

  • bad button
  • bad pullup resistor in the board (if so, add an external one, or switch to using aux2 for the power button)
  • a short between the button ground and something else (like speaker, or LED1/2)
  • Some part of the config file trying to use the power button pad for something else.

Start by posting your config file so we can check that nothing else is trying to use the power button pad, then start measuring the voltage between GND and the button 1 pad and see if anything weird shows up.

ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 1
#define NUM_BUTTONS 2
#define VOLUME 1950
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 3.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define ORIENTATION_ROTATION 0,20,0
#define SAVE_STATE

#define FETT263_SPECIAL_ABILITIES
#define COLOR_CHANGE_DIRECT

#define FETT263_STAB_ON
#define FETT263_TWIST_OFF
#define FETT263_FORCE_PUSH

#endif

#ifdef CONFIG_PROP
#include "../props/saber_fett263_buttons.h"
#endif



#ifdef CONFIG_PRESETS
Preset presets[] = {
   (left them off for space)

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

};
#endif


#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
Button AuxButton(BUTTON_AUX, auxPin, "aux");
#endif

The conf file looks fine, nothing else using the power button pin there.

If I set the aux as power, and remove power button 1, will the proffie ignore button presses from it? Can I swap them and use the power for aux, or if the resistor is having an issue, will it cause blaster block trips?

If you just swap them, the problem will just move.
However, you can use the aux2 pad, as far as we know that one should still work, right?

Likely should, I’d have to do some dissasembly of the chassis to get it

I swapped the pins in config, just for testing. The hilt turns on now, and off without issue. When off, you can swap fonts by tabbing the aux button but once on, the aux goes dead. I did not run it long enough to know if it will cause random aux presses.
Believe I’ll have to dig in and move the wire to aux2 and see if the troubles go away. Where would the resistor you spoke of be and how could I add an external?

Placed the chassis back in the hilt, the aux button, running through the power pin pad works fine with the saber off (swaps fonts) but stops working once on. Also, it takes 5-10 seconds for it to start working again once the saber is off. I got one random sound/clash that likely was the aux firing off through the bad power button pin. I think I may drop to one button control on this thing for a bit, I’ve been fighting it for 2 weeks and don’t feel like yanking the chassis apart to move one wire right now.
It’s a homemade chassis that I designed and printed to get a proffie into a prekit UW Lop hilt. It will be a hardcore pain to remove the PCB for access to the wire as I think it’s too short to clip off the proffie and move to auxpin2’s pad.

The pullup resistor is inside the CPU itself.
If you wanted to add an external one, you would take a resistor somewhere in the 10k to 100k range and connect it between the button pad and the 3.3v pad.

On a testing note, I ran the saber for about 15 minutes with the aux button swap. It operates as normal but the aux button won’t function while the saber is on. It won’t start working until the saber is off for 3-5 seconds. It will then swap fonts and act normal until you turn the saber on. It also won’t work for a longer time, if the blade has a cooldown feature. Once the cooldown stops, add 3-5 seconds and the button resumes operation. In the 15 minute test, it did not cause any blaster blocks or other weird sounds/issues.

It’s almost like the board shuts fully down and then the button resumes working. Im going to get it warmer by laying it outside in the sun for a few minutes tomorrow and see if it causes errors. If not, I’ll likely just live with the button malfunction while the saber is on as I rarely play with the aux button when I’m running sabers. I do like having the option to swap fonts via the aux though.