Blade ID - 3Leds and NPXL

Hello Everyone, I made my own PCB to make a 3led (cree/star) compatible with a NPXL hilt connector.
Does blade ID fonctionnaly allow me to say to the board when it should run a 3Led config and when it should run a NPXL config ?

I was thinking to add the resistor on the hilt connector (with pogos) (between D1 pogo and blade ID pogo).

NPXL case :
When putting a NPXL blade, the blade ID will be in contact with one of the L1/L2/L3 line and will be read by the board as it should be normally.

3led case :
When led modules is connected, the blade ID pin won’t be in contact with any lane (nor L1/L2/L3). Then board will understand, blade ID is 0 and then will run a 3Led preset (which will approax to a blade detect fonction).

Is it the right way to proceed ?

The interest is to be able to use the same hilt and same electronic to make both Combat and Cosplay only by switching the Blade.

Perhaps I’ve missed something, but if the BladeID resistor is in the hilt, surely your NPXL to TriCree adapter would be indistinguishable to the Proffieboard compared to a normal neopixel blade?

But to answer the general question, again presuming I’ve understood it right, yes, when the BladeID/Detect switches from one to the other, it switches from one preset array to the other and from one blade array to the other too. So yes, you could configure the second blade array differently and indeed have different blade styles for both blades.

The only caveat is that both blade arrays need to have the same number of blades. This means that you might need to have a dummy blade in one array that doesn’t do anything.

I think if it were me I would add different value resistors to the neopixel blade on the one hand and your NPXL to TriCree adapter on the other. My experience is that only resistoring one blade and relying on the absence of a resistor in the other for the BladeID system to interpret what’s fitted isn’t the most reliable, especially if you’re using continuous bladeID scanning, because the values can vary depending on whether the blade is lit or not and what it’s doing. The presence of the resistor I think locks things down to a certain extent.

Hello, and thank for this quick reply.
In fact, the blade id pogo will only be in contact (short resisted) with a npxl blade. In the case of the 3led adaptator, the blade id pogo in my hilt wont be in contact with any gnd line (kind of blade detect fonction).

3led adaptator is only a pcb ring soledred to the 3led pcb (seperated by a heatsink) with 4 circles (+/R/G/B)

I can’t quite picture how this will work as there seems no way of the neopixel blade connector passing negative to the Neo/3LED adapter if nothing is touching/connected to it. A wiring diagram might help. For instance, with only 4 rings, how are you getting the blade detect pin line back to the proffieboard?

But assuming you’ve solved all that side of it, then it seems to me you don’t need any resistors at all - you can just use Blade Detect to distinguish between contact closed (neo blade) and contact open (3LED blade).

Thanks a lot for your help and your time.
Probably better with some schemas, you are right !

NPXL blade PCB layout with the position of the pins (just for demonstration)

Led PCB layout with the same position of the pins than above:

So the idea, is to tell the board:

  • If no blade detected → use RGB 3led presets
  • If blade detected → use Blade ID preset depending on the Resistor of the blade side PCB (instead of the hilt side as previously mentionned by me, that was wrong indeed).

Hope this will help to understand my idea :slight_smile:

Sorry, I’m still slightly confused - positive and data are fine, but there aren’t any pins on an NPXL connector in the three planes you’ve shown for red/green/blue. All there is is five neg pins all in the same circle diameter as the blade detect. So where do those three pins come from?

My only other concern is that you seem to be relying on the blade detect pin landing in between contact circles. I would be very surprised if that pin didn’t short to either blue or green in actual use.

But again, assuming I’ve understood it wrong, the basic principle stiill applies - the Proffie can distiniguish between the BD pin not shorted to the other neg pins as one state, and the pin shorted as another. You can then have two separate blade arrays/preset arrays - one for each state.

The pins are just shown to illustrate the position from the hilt connector side. In 3led preset each mosfet will pilot a led (red/blue/green as respectively L1/L2/L3) and in npxl preset, the R/G/B pins all becomes gnd.

And of course, I will use a specific npxl hilt connector where wires are directly soledred to the pins instead of the pcb (which auto connected all the neg pins in many pcb on the market and i dont want this)

Regarding the blade detect pin, the pogo pin has a really short range of contact due to its round head.
More space will be added (the picture was to quickly show the idea)

And finally i understand that i can change presets between 3led and npxl using the blade detection fonction. Thanks
Now I will have to test it and see if also add the blade id fonction like:

  • no blade : 3led preset
  • blade detected with 50kohm : long npxl blade preset
  • blade detected with 100kohm resistor : short npxl blade preset (for exemple)

You might want to have a read of this: :slight_smile:


Sorry for the delay. I don’t think you need blade ID. Blade detect will do what you need.
(Assuming the blade detect pin is not connected when you use the RGB leds.)

Alternatively, you could use continous blade ID for this, in which case the extra blade ID pin is not required. However, might need some resistors between “data” and “GND” in the blade to tell the difference.

Thank for the reply and no need to say sorry haha, having rest time is normal and the rest of the community is there to help sometimes too :slight_smile:

Yes, indeed, after reading some threads on the topic, it seems there are 2 ways;

blade detect pin which allows me to say to the board:

  1. if connected, use NPXL preset
  2. If not connected, use 3Led preset

Or Continious blade ID which allows me to say to the board:

  1. if connected and resistor X, use NPXL preset x
  2. if connected and resistor Z, use NPXL preset Z
  3. If not connected, use 3Led preset No_Blade

The fact is that I need to be flexibale regarding the type of NPXL Blade I will use (LGT / KR / homemade etc…) Then the best way seems to be the blade detect fonctionnality with a pins on the + instead of the GND because I need to separate the PCB layout circle for each lane of color (RGB)) I also seen it was possible add 2 blade detections to be able to make the following cases:

  • NPXL blade insterted
  • RGB module inserted
  • Nothing inserted (equal to no blade + no RGB)

I will first give a try to the nique Blade detect and when i will be confortable enougth with it, Will give a try to the double blade detect using 2 differents pin of the CPU.

ya funny, I’m starting a new job, no rest for the wicked… :slight_smile:

You can also use blade detect + blade id (non-continous) for this.

1 Like