Blade not lighting up

The blade of my saber doesn’t light up, while the hilt works fine. I am using an NPXL V4 and two LED strips. The NPXL turns on, the sound plays, and everything works, but as soon as I try to connect it to the blade, the sound of the hilt turns off and the NPXL changes color.

This is my config


#ifdef CONFIG_TOP
#include "proffieboard_config.h"
#define NUM_BLADES 2
#define NUM_BUTTONS 2
#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 SAVE_STATE
#define ENABLE_ALL_EDIT_OPTIONS
#define MENU_SPEC_TEMPLATE DefaultMenuSpec
#define MOUNT_SD_SETTING
#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {
  { "TeensySF", "tracks/venus.wav",
    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> >(), "blue"},
  { "SmthGrey", "tracks/mercury.wav",
    StyleFirePtr<RED, YELLOW, 0>(),
    StyleFirePtr<RED, YELLOW, 1>(), "fire"},
  { "SmthFuzz", "tracks/uranus.wav",
    StyleNormalPtr<RED, WHITE, 300, 800>(),
    StyleNormalPtr<RED, WHITE, 300, 800>(), "red"},
  { "RgueCmdr", "tracks/venus.wav",
    StyleFirePtr<BLUE, CYAN, 0>(),
    StyleFirePtr<BLUE, CYAN, 1>(), "blue fire"},
  { "TthCrstl", "tracks/mars.wav",
    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>(), "white"},
  { "SmthJedi", "tracks/uranus.wav",
    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> >(), "magenta"},
  { "SmthFuzz", "tracks/mars.wav",
    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>(), "rainbow"},
  { "TthCrstl", "tracks/uranus.wav",
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(),
    StyleStrobePtr<WHITE, Rainbow, 15, 300, 800>(), "strobe"},
  { "TeensySF", "tracks/venus.wav",
    &style_pov,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "POV"},
  { "SmthJedi", "tracks/mars.wav",
    &style_charging,
    StyleNormalPtr<BLACK, BLACK, 300, 800>(), "Battery\nLevel"}
};
BladeConfig blades[] = {
 { 0, WS2811BladePtr<97, WS2811_800kHz>(),
     SimpleBladePtr<CreeXPE2WhiteTemplate<550>,
                    CreeXPE2BlueTemplate<240>,
                    CreeXPE2BlueTemplate<240>, NoLED, bladePowerPin4, bladePowerPin5, bladePowerPin6, -1>(),
     CONFIGARRAY(presets) },
  };
#endif

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

What kind of battery do you have?
Is it fully charged?
What is the voltage of the battery when everything is connected? (and supposedly on)
Does anything get hot?

1 Like

I’m using an 18650 battery. Sometimes a wire gets hot and smoke appears next to the Proffieboard. I have disassembled it and rewired it, but the same issue occurs. I covered the exposed wires in heat shrink, and it reads 4.11 volts

Battery is fully charged

I have checked again and the npxl gets very hot

Does is the battery protected from over discharge? Or is it a bare 18650 with the a protection circuit elsewhere? What amperage is it rated for?

It’s rated for 3A. It’s just a bare 18650 that I put in a single-cell holder. I don’t think it has protection, and at the bottom the voltage drops 1 volt without pressing it. I don’t know if it matters. I’m new to this stuff.

Button not bottom

That’s not enough. I did the same thing at first since old sabers were fine with this amount of current draw. You’ll want one that’s rated for like 15 amps…the blade needs a lof of juice.

Like this:

https://www.thecustomsabershop.com/Electronics/Batteries-and-Packs/Li-ion-37V/Sony-Li-Ion-18650-37V-15A-3120mAh-PCB-Protected-Rechargeable-Battery

There are other places like Saberbay and the Saber Armory to get them…Keeppower is also a good brand.

That could be why you’re getting so much heat. The protection switch will “shut off” the battery if the electronics want too much power because they will get very hot. That is bad. Your blade gets inserted and is puliing like 10 amps from a 3 amp battery. Please consider that might be dangerous :slight_smile: When there’s no blade, 3amp is prob fine for the board and the accent leds on the pcb.

1 Like

I got a battery that outputs 25A. Still the same problem the blade does not light up at all. The NPXL goes through different colors and turns off sound while I connect the blade to the hilt, it did not get hot this time.

Is the battery fully charged?
So what voltage do you have at the battery?
What voltage do you have at the board?
What voltage do you have at the blade?

Battery is fully charged voltage at the battery it reads 3.68v at the blade 2.82 and at the board 2.82

Please do follow Profezzorn’s advice more than mine, but I thought I share thoughts just incase it’s something basic.

I noticed you have all yellow wiring at the blade pcb. Nothing wrong with that ofcourse, but for me it’d be confusing. Have you checked the blade for shorts or a misplaced wire? Sometimes the back coating on a strip can wear thin, or the pads at the base of the blade touch.

Do you have another blade to test with?

And not to be a pain, but is that very beefy battery protected?

It’s not yellow wiring it’s just the heat shrink. I checked for shorts and couldn’t find any shorts or misplaced wires. I don’t have any other blade I could test with, and the battery has no over-discharge protection.

Is it possible that it is the config file?

I think this is low, I thought a fully charged new battery should be at around 4.1V ?

1 Like

I was guessing power problems, but your config is a bit wonky.

There’s no prop slected (which is ok it will revert to default), which tells the saber what control setup to use. Also the blade array doesn’t seem to match your wiring diagram and description. Also the top section has

If you have a v3.7 board it should have

#include "proffieboard_v3_config.h"

If I’m reading right, you just have a pcb and a blade, no other accents?

Did you use the configuration generator for V3 boards?

With 97 pixel in your blade (I got that from the config above), 2 buttons, no kill switch or charge port, seperate data lines for the pcb leds, and a NPXLv4 pcb that lights up with the nice ring pattern everyone wants (it is divided into two subblades, giving you a total of 3) you should get this config:

#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 3
#define NUM_BUTTONS 2
#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 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>(), "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> >(), "blue"},
   { "SmthGrey", "tracks/mercury.wav",
    StyleFirePtr<RED, YELLOW, 0>(),
    StyleFirePtr<RED, YELLOW, 1>(),
    StyleFirePtr<RED, YELLOW, 2>(), "fire"},
   { "SmthFuzz", "tracks/uranus.wav",
    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>(), "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> >(), "green"},
   { "TeensySF", "tracks/mercury.wav",
    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>(), "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> >(), "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>(), "gradient"},
   { "RgueCmdr", "tracks/mercury.wav",
    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>(), "strobe"},
   { "TeensySF", "tracks/venus.wav",
    &style_pov,
    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>(), "Battery\nLevel"}
};
BladeConfig blades[] = {
 { 0, WS281XBladePtr<97, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
    SubBladeWithStride(0, 15, 2, WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
    SubBladeWithStride(1, 15, 2, NULL)
  , CONFIGARRAY(presets) },
};
#endif

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

I tried, and it did not work. It’s not getting hot anywhere, and when I connected the blade, the NPXL LEDs did not turn on only the sound played. When I disconnected the blade, it reverted back to normal. Should I ditch the NPXL and blade PCB?

The wiring diagram seems to have Blade Detect pin wired but it is not declared in your config. Then you would need to have a second NO_BLADE blade array

I think your initial config doesn’t match your wiring diagram.

What version of Proffieboard do you have ? v2.2 or v3.9

I believe that would be 2 rings of pixels, correct ? So you can choose to have that as one blade or two blades (inner and outer ring)

What do you mean by that ? 2 strips of 97 pixels wired in parallel inside your blade ? If yes that would just be one blade.