New build, Soundboard is working, hilt-side LED is working but blade and illuminated switch are not

As the topic states, I just finished soldering a lightsaber with the following diagram and config:

Wiring diagram picture

Config
#include "proffieboard_v3_config.h"
#define NUM_BLADES 4
#define NUM_BUTTONS 1
#define VOLUME 1000
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 1.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define ORIENTATION ORIENTATION_USB_TOWARDS_BLADE
#define SHARED_POWER_PINS
#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
   { "TeensySF", "tracks/venus.wav",
    StyleNormalPtr<CYAN, WHITE, 300, 800>(),
    StyleNormalPtr<CYAN, WHITE, 300, 800>(),
    StyleNormalPtr<CYAN, WHITE, 300, 800>(),
    StyleNormalPtr<CYAN, WHITE, 300, 800>(), "cyan"},
   { "SmthJedi", "tracks/mars.wav",
    StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(),
    StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(),
    StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(),
    StylePtr<InOutSparkTip<EASYBLADE(BLUE, WHITE), 300, 800> >(), "blue"},
   { "SmthGrey", "tracks/mercury.wav",
    StyleFirePtr<RED, YELLOW, 0>(),
    StyleFirePtr<RED, YELLOW, 1>(),
    StyleFirePtr<RED, YELLOW, 2>(),
    StyleFirePtr<RED, YELLOW, 3>(), "fire"},
   { "SmthFuzz", "tracks/uranus.wav",
    StyleNormalPtr<RED, WHITE, 300, 800>(),
    StyleNormalPtr<RED, WHITE, 300, 800>(),
    StyleNormalPtr<RED, WHITE, 300, 800>(),
    StyleNormalPtr<RED, WHITE, 300, 800>(), "red"},
   { "RgueCmdr", "tracks/venus.wav",
    StyleFirePtr<BLUE, CYAN, 0>(),
    StyleFirePtr<BLUE, CYAN, 1>(),
    StyleFirePtr<BLUE, CYAN, 2>(),
    StyleFirePtr<BLUE, CYAN, 3>(), "blue fire"},
   { "TthCrstl", "tracks/mars.wav",
    StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >(),
    StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >(),
    StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >(),
    StylePtr<InOutHelper<EASYBLADE(OnSpark<GREEN>, WHITE), 300, 800> >(), "green"},
   { "TeensySF", "tracks/mercury.wav",
    StyleNormalPtr<WHITE, RED, 300, 800, RED>(),
    StyleNormalPtr<WHITE, RED, 300, 800, RED>(),
    StyleNormalPtr<WHITE, RED, 300, 800, RED>(),
    StyleNormalPtr<WHITE, RED, 300, 800, RED>(), "white"},
   { "SmthJedi", "tracks/uranus.wav",
    StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>(),
    StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>(),
    StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>(),
    StyleNormalPtr<AudioFlicker<YELLOW, WHITE>, BLUE, 300, 800>(), "yellow"},
   { "SmthGrey", "tracks/venus.wav",
    StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >(),
    StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >(),
    StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >(),
    StylePtr<InOutSparkTip<EASYBLADE(MAGENTA, WHITE), 300, 800> >(), "magenta"},
   { "SmthFuzz", "tracks/mars.wav",
    StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(),
    StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(),
    StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(),
    StyleNormalPtr<Gradient<RED, BLUE>, Gradient<CYAN, YELLOW>, 300, 800>(), "gradient"},
   { "RgueCmdr", "tracks/mercury.wav",
    StyleRainbowPtr<300, 800>(),
    StyleRainbowPtr<300, 800>(),
    StyleRainbowPtr<300, 800>(),
    StyleRainbowPtr<300, 800>(), "rainbow"},
   { "TthCrstl", "tracks/uranus.wav",
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(), "strobe"},
   { "TeensySF", "tracks/venus.wav",
    &style_pov,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "POV"},
   { "SmthJedi", "tracks/mars.wav",
    &style_charging,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(),
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "Battery\nLevel"}
};
BladeConfig blades[] = {
 { 0, WS281XBladePtr<80, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
    SubBladeWithStride(0, 15, 2, WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
    SubBladeWithStride(1, 15, 2, NULL),
    SimpleBladePtr<CreeXPE2WhiteTemplate<550>, NoLED, NoLED, NoLED, blade5Pin, -1, -1, -1>()
  , CONFIGARRAY(presets) },
};
#endif

#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
#endif

The saber/soundboard powers on properly, but there are a few issues.

  • The hilt side blade connector LED works properly.
  • The blade does not light up at all.
  • The illuminated switch turns on for a second and then goes out.

I’m thinking/hoping it’s configuration related issues?

First, I’m noticing that by Proffieboard V3.9 differs from the V3.7 in the above wiring diagram. I soldered the illuminated switch resistor to the contact next to Data2 (same location as pictured) which on my board is Free1 not Free3 as in the V3.7 pictured. Unless it’s just a typo on the board/picture? (I see two Free3’s.)

For the blade not working, I’m trying to check continuity… I used this kit: 1" BTF SK6812 Show Blade Builders Bundle. But strangely, I’m trying to check for the simple continuity on the blade connector (Pixel PCB - blade side) from the middle “D” pad to the center circle on the other side of PCB and I’m not getting anything? :thinking: I kind of think that’s my issue, but idk how else I could wire it…seems very straight forward.

Other notes:

  • On the hilt-side blade connector I wired/shorted the negative (-) and BD pads together as shown in the wiring diagram.
  • There are two resistors on the hilt-side connector and one resistor on the blade side connector.
  • The illuminated switch uses a 20mA DynaOhm™ Variable Resistor.

Ty

Ok, I think I figured out one issue. The preinstalled resistor on the blade-side connector (i think) was no good. I couldn’t get an continuity across it. I removed it and bridged the connectors instead (I think I read the proffieboard has it’s own resistor on D1). Now at least I get continuity from the center circle of the PCB to the data connection on the LED strip. Unfortunately, the blade still doesn’t work…Do I need to change resistance values in the config?

The LED strip I’m using is also this one: BTF SK6812 RGB 144 LED Pixel Strip.

Does it matter that it’s a SK6812 LED strip and the config using a WS281XBladePtr? I tried changing it to"Color8::RGB" without success.

SK6812 use the same exact protocol, and they are also most commonly GRB(W). If you’re not getting any output at all, that’s not the issue. Sounds like a hardware/wiring issue.

Also I’m not sure what you’re referring to by “change resistance values in config,” for neopixels there’s no resistance value to change. Unless you’re getting confused with blade ID settings? (But you’re not using blade ID so maybe there’s just some misunderstanding?)

1 Like

By nature of the resistor, you won’t get continuity if you’re measuring across one, so not getting continuity is normal, and it doesn’t necessarily mean an issue

1 Like

Currently you have just one backtick before and after your config. Could you do us a favor and change it to 3 so it formats properly?

Looking over your config it seems fine given the diagram, so I’d just suggest double checking your wiring and explaining if there’s anything different going on.

Dumb question, but you have uploaded the config to the board, right?

1 Like

Two things:

  1. If you have a ShtokD illumated pogo pin PCB with two resistors on it, you usually have to remove one of them to prevent signals from the last LED on the PCB from going to the center pin.
  2. The power button only lighting up for a second seems to be an issue with the generated config. It uses colored styles (RED, BLUE, etc. ), but the blade config expects WHITE. If you replace RED/BLUE/etc. in the last style in each preset with WHITE, does it work better?
1 Like

Yeah, that was what I was misunderstanding.

Oh, ok. I knew it wouldn’t be a full short, but I thought there should show enough continuity to not be OL either… I thought there would be some measured resistance value. But that does explain things better!

Sorry about the ticks, I’ll fix it. And yeah I uploaded it three or four times trying different things lol.

Hmmm. Damn that may have been the issue .

This also may have been the issue but unfortunately I rolled with what I got working and it is a very tight almost permanent package. It’s going to be stuck this way for now lol… the illuminated switch lights up with clash detection.

I finally got it mostly fixed… Not sure what I did or why it worked, but as I was concerned about in my other thread (Number of lines per preset in config?) the issue seem to be related to the number blades configured.

Eventually, I tried a completely stock config “with one blade” (instead of the 4 it wanted me to use) and after uploading it, the blade worked! I added back the illuminated switch to the config generator (“for a 2nd blade”), and now everything is working (mostly…aside from the illuminated switch not** being illuminated on when the blade is on**). Even the illuminated Pogo pin PCB is working, while not being configured as a separate blade.

Edit: I forgot to mention the other tweak I had to make it get it working was to switch from an Illuminated PCB to WS2811/Neopixel in the config generator (which is how I got down to 1 blade.)

It sounds like the Shtok PCB is configured to be in series with the blade then. That’s the V3 Config as described in the manual.

If you want to set it up as a separate blade for bladestyle purposes, you’d subblade up the one blade you have now for it. Fredrik will have to comment on whether is possible to combine Subblade and SubBladeWithStride, as I actually don’t know.

The illuminated switch being permanently on might just be because of a plain style? Would need to see the config to see what’s going on there.

1 Like

You just need to change the config to fix this, no rewiring is needed.

This would make sense, with no input signal to the pixels on the pogo pin PCB, the output would be constant, which would be a lot less likely to interfere with the main blade signal.