Wiring the blade and crystal lights

Hi, newbie here. Trying the first build. I’ve got a Proffieboard 2.2, neopixel blade (yet to be soldered) and neopixel v3 PC-BSD. I am also planning to have two crystal less. Want to make sure that I do the wiring the right way.

I’m bit confused with the data resistors and wiring the crystals. Was thinking to wire them in series using “sub-blades”. Looks like it only needs one 330ohm resistors on the data wire, but I can see two resistors on the hilt side of and another one on the blade side. Which ones do I keep and which ones do I remove/bridge?

Do I need another Resistor so the the first two LEDs(for the crystals) work? How about the 16 LEDs on the PCB?

Also, want to make sure to wire in a way so that blade detection would work.

Would appreciate some help here.


on bladePin (data pin 1) there’s already a resistor on there, and more resistance (to an extent) doesn’t hurt here, so you can leave everything as is.

SubBlades can make wiring a lot easier, for sure. They program the same as multiple individual NeoPixel blades in the config too.

On the PCB, take a look at this:

There’s an explanation of all the possible configurations on there (Page 4).

It also goes over how to wire blade detection. Essentially, you set it up so that your blade detect pin gets bridged to ground whenever you insert the blade. So where you see “BD” on the NPXL, DON’T bridge it with the rest of the ground pins.

I was planning on going with option “V3 – blade + pcb leds in series”:

  • data wire soldered to D2
  • resistor R1 removed
    what means “bridging jumper J” ? Should I solder it to D1?

Does it matter what kind of “SMD 0603 (2-100 kOhm)” resistor do I pick?

On page 10 it says that in sub-pixel configuration only D1 is used, but it looks like contradicts with V3 described in page 4. Am I missing something?

Also, should I put another resistor behind the crystal chamber LEDs? If I keep all resistors, it would be 3 * 330ohm resistors until it reaches the blade.

You could, on a proffieboard’s data 1 pin, use no resistors at all, and extra are just that: extra. I wouldn’t recommend adding more but that shouldn’t cause an issue.

That right there is the “J” jumper. You can see in V3 (as opposed to the way it’s depicted in the other configurations) there’s solder bridging those pads, don’t solder it to D1.

What’s described on page 10 is admittedly confusing since it seems to switch between describing pins on the proffieboard and the solder pads on the PCB.
You’d solder to D2 on the PCB, and connect that to Data Pin 1 on the proffieboard.

Also, no, it doesn’t matter what resistor you use, you could even simply bridge those pads with solder instead of a resistor. (Assuming you use Data Pin 1 on the proffieboard)

EDIT: I didn’t understand what resistor you were referring to. IT ABSOLUTELY MATTERS what resistor you have for blade ID, it needs to be in that range so it can be identified. However what value you choose in that range does not matter so long as each blade is unique.

I recommend having a resistor on the hilt side and another one on the blade side. Protects against shorts.

Anything under 8k total resistance should work just fine.

1 Like

I’ve got the blade side PCB which already has the 330ohm resistor installed. It looks different from the PCB in the manual which has two spots for resistors. Does this mean that the connector I have wouldn’t support blade ID? Should I solder another 2-100 kOhm resister inside the blade? How does the board determine that the blade is present?

Also, is the board able to distinguish blades based on different resistors?

Are you saying to keep below 8k ohms before it reaches the blade, and use higher ohm resistor inside the blade?

I’ve been reading this, and got completely lost…

Just because there is no space for an ID resistor doesn’t mean you can’t add one anyways. Also, it’s often (but not always) possible to use blade ID even without a blade ID resistor.

It’s a lot easier to help you if you put your question in the form of a question…

Agreed. Do you think 20k resistor between Data pin and Negative terminal inside the blade would work? I’m using proffieboard V2.2. I’ve read about limitations on that board, but tbh it is hitting my understanding of that thing…

How would I know that the blade ID and detection works? Do you think this configuration would work:

BladeConfig blades[] = {
        WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
                StyleNormalPtr<RED, WHITE, 300, 800>(), "red"},
        WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
                StyleNormalPtr<GREEN, WHITE, 300, 800>(), "green"},

0 is an unlikely resistance, because that would mean that there is a short between GND and the data pin, and if that was true, then no signal would reach the neopixels.

A blade with no ID resistor usually measures as a very high resistance, like maybe 150k or so. Same is usually true if there is no blade.

Blade detect is something different than blade ID though. It uses a separate pin to detect when a blade is connected or not. Blade ID just tells of which blade is connected… or at least that is how it used to be.

I don’t know if we have good documentation for it, but it’s possible to configure your saber such that it will run blade ID a couple of times per second. If you combine that with a blade ID class which returns NO_BLADE for high values, then you get pretty much the same effect as blade detect, but without the extra pin.

So now we have blade detect without blade detect, which is… confusing?

Oh, and a 20k resistor should work fine, but depending on what board you have and how it is configured and wired, that might in fact not be the value you need to put in the config file for it to work. It’s usually better to just wire everything up, then run “scanid” from the serial monitor to figure out what value to put in the config file.

1 Like

There’s two connectors in that manual, one for the blade side PCB and one for the hilt side, I think you’re getting confused between those two. The one that has a spot for the ID resistor is the blade side PCB.

If you were to add a blade ID resistor, you’d add it inside the blade, since it’s per-blade (so you can ID the blade). It seems like what you’re after might be just blade detection, to tell whether or not a blade is inserted?

[quote="rubenhak, post:11,

Looks like the NO_BLADE is the right constant to use.

I thought Blade ID could also be used for detection. If it could identify that there is a particular blade connected, that would kind indicate a presence of a blade. It was confusing that BladeID and BladeDetect functionality was separate. Its more clear now.

I have proffieboard v2.2. What kind of options do I have for wiring? I was thinking to connect the data wire to Data1 pin on the proffie board. Would that work?
How do run “scanid”?

I think I got that part right. Was just not sure where exactly to put that resistor.

Should I wire it like this?

That is correct.

Not necessarily.
NO_BLADE is defined as 1 billion.
If the result is 150k, that is closer to 20k than 1b, so it would then pick the 20k entry.

However, if you use blade detect, then it is correct, as that modifies the blade ID to 1b when no blade is present.

It can, but it wasn’t really meant that way originally, and by default it only runs when the saber starts up. (In my original saber, connecting the blade also powered the board up, so the “no blade” state was also the power off state.)


You just type scanid in the serial monitor.

1 Like

Got that. Thanks!

Ona different note, but still within the context of resistors, what kind of wattage should I go for the blade resistor? How about accent LEDs and Button Led?

Basically doesn’t matter, almost anything will work.

Basically also doesn’t matter, accent leds are generally 20mA, they may absorb up to a volt or so, which means 0.02W.

1 Like