So I am having an issue with blade detect on my latest install. When I power on the saber it defaults into a blade configuration and not a no_blade configuration. I have two fonts one I have used SPEAK_BLADE_ID to determine if the proffieboard is seeing a change when a blade is added or removed and not getting any changes spoken. Unfortunately since I am using a chassis PCB for a removable chassis I cannot check this in serial monitor as the saber design wont let me get to the USB while the chassis in connected and dont have a stable way to connect the chassis halfs together with USB exposed.
A weird symptom I get is for the “&style_charging” the battery indicator is only shown on the hilt PCB not the blade, which is opposite of what it does on my working sabers that have the style written the exact same way.
I have tested continuity on all wires, both sections of removable chassis and as best as I could through a chassis connection as well and all wires seem to be going where they are supposed to be.
I am doing a one button install, removable chassis using a SHTOK Rotary Chassis and using the second button pin for passthrough of the blade detect line to my SHTOK NPXL PCB, with subblades for the HILT side PCB LEDs.
I have two other installs with blade detect that worked fine, so I have an idea what I am doing and have even tried a config from one of those and still not functioning correctly on this build. So I dont think it is a config issue, but something else. I have gotten a new PC since the last build and am using a different instance of ProffieOS than I was before, I have not reloaded configs on either of the other two sabers for risk of them failing. Fairly certain they were loaded with OS6.5 and trying 6.7 for this saber.
Config to double check me in case the issue is from there.
#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 2
#define NUM_BUTTONS 1
#define VOLUME 800
const unsigned int maxLedsPerStrip = 160;
#define CLASH_THRESHOLD_G 3.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define COLOR_CHANGE_DIRECT
#define DISABBLE_DIAGNOSTIC_COMMANDS
#define IDLE_OFF_TIME 60 * 5 * 1000
//Minutes multiplies by seconds multiplied by milliseconds.
//#define SAVE_STATE
#define SHARED_POWER_PINS
#define BLADE_DETECT_PIN 17
#endif
#ifdef CONFIG_PROP
#include"../props/saber_sa22c_buttons.h"
#endif
#ifdef CONFIG_PRESETS
Preset no_blade[] = {
{ "Batt00", "tracks/Royalty.wav",
&style_charging},
{ "No Blade", "tracks/Royalty.wav",
StylePtr<Cylon<DeepSkyBlue, 6, 20>>(),
StyleNormalPtr<BLACK, BLACK, 300, 800>()},
{ "No Blade", "tracks/Royalty.wav",
StylePtr<ColorCycle<DeepSkyBlue,6,25,GREEN,20,100,5000>>(),
StyleNormalPtr<BLACK, BLACK, 300, 800>()},
{ "No Blade", "tracks/Royalty.wav",
StylePtr<ColorCycle<White,6,50,DeepSkyBlue,20,100,5000>>(),
StyleNormalPtr<BLACK, BLACK, 300, 800>()},
{ "No Blade", "tracks/Royalty.wav",
StylePtr<Stripes<100,1000,DeepSkyBlue,Black,Black,Black>>(),
StyleNormalPtr<BLACK, BLACK, 300, 800>()},
{ "No Blade", "tracks/Royalty.wav",
StylePtr<Gradient<Pulsing<Black,DeepSkyBlue,5000>,ColorCycle<Rgb<100,100,100>,15,50,Rgb<100,100,100>,15,50,1>,Pulsing<Black,DeepSkyBlue,5000>,ColorCycle<Rgb<100,100,100>,15,50,Rgb<100,100,100>,15,50,1>,Pulsing<Black,DeepSkyBlue,5000>,ColorCycle<Rgb<100,100,100>,15,50,Rgb<100,100,100>,15,50,1>,Pulsing<Black,DeepSkyBlue,5000>,ColorCycle<Rgb<100,100,100>,15,50,Rgb<100,100,100>,15,50,1>,Pulsing<Black,DeepSkyBlue,5000>,ColorCycle<Rgb<100,100,100>,15,50,Rgb<100,100,100>,15,50,1>,Pulsing<Black,DeepSkyBlue,5000>,ColorCycle<Rgb<100,100,100>,15,50,Rgb<100,100,100>,15,50,1>,Pulsing<Black,DeepSkyBlue,5000>,ColorCycle<Rgb<100,100,100>,15,50,Rgb<100,100,100>,15,50,1>,Pulsing<Black,DeepSkyBlue,5000>,ColorCycle<Rgb<100,100,100>,15,50,Rgb<100,100,100>,15,50,1>>>(),
StyleNormalPtr<BLACK, BLACK, 300, 800>()},
};
Preset blade[] = {
{ "Bank15", "tracks/Royalty.wav",
StyleNormalPtr<BLACK, BLACK, 300, 800>(),
StylePtr<Layers<RandomFlicker<RotateColorsX<Variation,DeepSkyBlue>,RotateColorsX<Variation,Rgb<0,0,128>>>,TransitionEffectL<TrConcat<TrFade<400>,RotateColorsX<Variation,Rgb<90,180,255>>,TrDelay<1500>,RotateColorsX<Variation,Rgb<90,180,255>>,TrFade<800>>,EFFECT_FORCE>,TransitionEffectL<TrConcat<TrInstant,BrownNoiseFlickerL<AlphaL<White,Int<16000>>,Int<50>>,TrSmoothFade<600>>,EFFECT_LOCKUP_END>,ResponsiveLightningBlockL<Strobe<White,AudioFlicker<White,Blue>,50,1>,TrConcat<TrInstant,AlphaL<White,Bump<Int<12000>,Int<18000>>>,TrFade<200>>,TrConcat<TrInstant,HumpFlickerL<AlphaL<White,Int<16000>>,30>,TrSmoothFade<600>>>,ResponsiveBlastL<White,Int<400>,Scale<SwingSpeed<200>,Int<100>,Int<400>>,Int<400>>,ResponsiveClashL<White,TrInstant,TrFade<400>,Scale<BladeAngle<0,16000>,Int<4000>,Int<26000>>,Int<6000>>,LockupTrL<AlphaL<BrownNoiseFlickerL<White,Int<300>>,SmoothStep<Int<30000>,Int<5000>>>,TrWipeIn<400>,TrFade<300>,SaberBase::LOCKUP_DRAG>,LockupTrL<AlphaL<Mix<TwistAngle<>,Red,Orange>,SmoothStep<Int<28000>,Int<5000>>>,TrWipeIn<600>,TrFade<300>,SaberBase::LOCKUP_MELT>,InOutTrL<TrWipe<300>,TrWipeIn<500>,Black>>>()},
{ "Batt00", "tracks/cantina.wav",
&style_charging},
};
BladeConfig blades[] = {
{ 0, SubBlade(0,15,WS281XBladePtr<160, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
SubBlade(16,159,NULL),
CONFIGARRAY(blade), "blade" },
{ NO_BLADE, SubBlade(0,15,WS281XBladePtr<160, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
SubBlade(16,159,NULL),
CONFIGARRAY(no_blade), "noblade" },
};
#endif
#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
#endif