Bladeplug Charger. Version 1.0

Based on the discussions by @Sabersense and @profezzorn on this thread I decided to make a first version of the charging bladeplug. Apparently TCSS went with doing it in stand way. But my design requires just 1 3D printed piece, and the rest can be made with common blade parts.

Caveats
Let’s start with some basics:

  1. This only works with Plecter Labs/TCSS/ShtockCustomWorx-style NeoPixel connectors.
  2. The hilt has to have Battery + wired directly to the NPXL connector and the negative has to only have FETs between them. As such, we have validated this with Proffieboards but I don’t know about the other soundboards.
  3. In this implementation I used a particular but pretty popular TP4056 USB-C module for practicality reasons. You could use anything that charges a Lithium-Ion battery. But I can’t stress the need for protection circuits in general.
  4. Most lithium ion charging modules depend on current to know when the battery has top off. Thus, it is important to minimize consumption while charging. Since you need the Proffie to stay on, you want to have it detect the blade (I used a 39k resistor) and make a minimal preset with no sound that turn’s off every other blade and element. In my implementation, I chose a module that has OUT lines to feed the neopixel leds off the charger.
  5. I’ve tested one charger with one Proffie installed saber with a completely depleted battery, where the board wouldn’t even start up, and the charger worked. I can’t assure that it will work with every board, and may be a different manufacturer of the charging board might not work with a turned off soundboard. But the only test I did, worked.

Now, to the particulars of my implementation.

Blade Charger V1.0

I’ve designed it so you can use any piece of blade tube and connector adapter. But, I made my own tube so I could undersized it so it will be a loose fit on every hilt. Some are ridiculously undersized and require a lot of sanding for blades to fit. And since I wanted this to be as universal as possible, I just printed my own. Since I’m assuming that you will print with opaque stock, I added windows for the LEDS.
I’ve chosen to just have a 5 strip of 5050 WS2812B 144 px/m, which is what I use to make my blades, but 3535 should work just as well as long as you use 144px/m strip. I decided on 5 elements because I like to cut my blades to 124px and I can do two chargers with what’s left.

Since you have to minimize power consumption while charging, I’ve added a 39k Ohm resistor between Data and Negative, so I can use Blade ID to turn off every blade but the main blade. Note that when I install my Proffies I always add a 22k resistor between Data1 and 3.3v so I can use the “true” resistor values for Blade ID. If you don’t, you will first need to measure the resistor value from your Proffie and input that value into your preset. If you don’t want to set up blade ID, I recommend that you set a charging preset and just plug it in that mode. You will probably not even need the LEDS in that case, and if you used a blade tube, the charging module’s lights for charging and done will be seen through.

I’m adding 1" thin, 1" thick and 7/8" thin versions of my charger. I also have made TCSS and ShtokCustomWorx PCB adapters. You should use normal blade PCB and not the ones with LEDs so you don’t add consumtion to the charging line. In the modules I use it needs less than 1/C (100mA for the stock implementation) of current to stop the topping off process. Each NPX might draw up to 60mA, so no pixel should be on the line.
You could just use a scrap of blade tube, the corresponding PCB adaptor and a PCB and just print my top and you would have everything.
For wiring you will need to be able to carry a bit more than 1 Amp, anything 29 gauge and above should do it. I usually use a little scrap of Category 5a or 6 UTP cable, and use those pairs. They are gauge 28 and have really thin pvc, so they are amazingly practical for saber intalls. Please remember that you can’t use them for anything power hungry (i.e. anything that feed a Cree, TriCree, NeoPixel nor Soundboard).

Parts List
1 x AC to USB-C power charger with cable. You should have many of these laying around your house for your phones, tablets, etc.
1 x USB-C TP4056 module with both BAT and OUT pads. (mine is HW-373 V1.1, others are marked 03962A, just buy one like in the pictures). Reference size is 28mm x 17.35mm board (the USB-C connector adds 1mm).
1 x Neopixel blade-side PCB connector WITHOUT LEDS but with the 303 Ohm resistor.
1 x Blade PCB adapter.
1 x An 85mm (3in plus 3/16") long piece of blade tube (optional).
1 x An 39k resistor 0603 SMD or really small carbon one (optional)
2 x Five pixel WS2812B strip (either 5050 or 3535) 144 px/m.
1 x 3D printed charger top.
28 gauge or thicker wire.

Steps:

  1. Print whatever pieces you will need.

  2. Cut and sand tube to size (85mm), or just use the printed tube. When you cut the WS2812B try to cut so the first element, has some extra connector from the previous one. It won’t be needing it and it will help you to solder later on.

  3. Add the PCB blade connector resistors. Inline in Data use a 330 Ohm. Between Data and Negative use a 39k. Also pre-tin the PCB pads that you will use.


  4. Solder first all the wires to the TP 4056. Then pre-tin the two WS2812B strips and the PCB side connector.
    Use 10cm to 12cm for the wires that go from BAT to the PCB connector.
    3 to 4 cm for the ones that go from OUT to the WS2812B PWR and GND.
    And cut 10cm for the ones that go from the WS2812B Data to the PCB.
    It is easier to twist together the tip of the two wires that go to each OUT pad first and then solder them together at the pad in one go.
    For the Data solder one wire to each Data line and then join together both tips that will go to the PCB connector.

  5. Insert the TP 4056 module into the head (is easier if it enters sideways).

  6. Remove the protective strip from both WS2812B strips and glue them on each side of the top piece as shown in the picture. REMEMBER TO POINT THE ARROW TOWARDS THE USB-C Conector SIDE!! Please note that I’ve added a stop so you can align them perfectly to the tube’s windows.


    g)

  7. Solder power and data to both pixel strips and introduce into the tube.

  8. Pass the wires down the tube and through the PCB adaptor. Then solder power and data to the PCB connector. Without adding glue, press your PCB into the adaptor, put the adaptor into the tube.

  9. As discussed before, if you want to depend on Blade ID to recognize the charging plug, you have to configure your hilt. For Proffieboard, you should add the following line to your blades[] definition:

BladeConfig blades[] = {
(...)
    //Charging Blade
    { 39000, //Or whatever resistor you put between Data and NPXL negative
        WS281XBladePtr<5, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(), // Charging Blade with 5 Neopixels
        //Plus whatever other blades you have defined, like any illuminated PCB or crystal chamber.
        CONFIGARRAY(presetchargeblade)
    }
 };

Remember to add your other blades, like illuminated PCB or crystal chamber to that definition.
Please note that I’ve added a new preset setting presetchargeblade.

Now to add the new preset. I made a font directory called PwrCell and just added font01.wav and boot01.wav. No other sound means no extra power wasting. Then edit your presets section with a the new preset.

//----------------------------------------------------------------------------------------------
// For the Charging BladePlug
//----------------------------------------------------------------------------------------------
Preset presetchargeblade[] = {
	{ "PwrCell", "tracks/mars.wav",
		&style_charging,
		//Also black out any extra blades with StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		"Blade Chrg\nLevel"}	
};

I did it this way because I have Blade Detect wired in my hilt. If you have a killswitch or an on/off switch, you will need to turn off the hilt, introduce the plug, and then turn it on again for charging. And after charging, you will have to turn it off, swap to your favorite blade, and turn it on again.
Now, recompile, upload, and star up your hilt.
10) First plug the AC to USB-C on the wall, then on the charging bladeplug. Then introduce into the blade port, press firmly. You should see the first lights. If so, just screw the hex nut to keep the bladeplug in place and let it charge your blade.
11) If everything is working properly, just add some glut to the top and PCB adaptors and close it definitely.

3 Likes

I will be uploading my files in this post.
BM-ChargingBladePlug-01-Body-01-1inThin.STL (1.4 MB)
BM-ChargingBladePlug-01-PCB Adapter-01-1inThin.STL (261.8 KB)
BM-ChargingBladePlug-01-USD-C TP4056 Adapter-02-1inThin.STL (652.2 KB)
TCSS-Blade Side PCB Adaptor-02-1inThin.STL (281.3 KB)
BM-ChargingBladePlug-01-Body-01-1inThick.STL (1.4 MB)
BM-ChargingBladePlug-01-PCB Adapter-01-1inThick.STL (261.8 KB)
BM-ChargingBladePlug-01-USD-C TP4056 Adapter-02-1inThick.STL (652.6 KB)
TCSS-Blade Side PCB Adaptor-02-1inThick.STL (281.3 KB)
BM-ChargingBladePlug-01-Body-01-7of8Thin.STL (1.4 MB)
BM-ChargingBladePlug-01-PCB Adapter-01-7of8Thin.STL (261.8 KB)
BM-ChargingBladePlug-01-USD-C TP4056 Adapter-02-7of8Thin.STL (652.6 KB)
TCSS-Blade Side PCB Adaptor-02-7of8inThin.STL (281.3 KB)

So if using a typical, proper charger that utilizes a 2.1mm plug, it would be direct wiring to the + and - blade PCB pads.

but…if you did, couldn’t they take the place of your led strips in this design?

Yep, if you use a charger for Lithium Ion that’s wired to a 2.1mm plug, you just wire it directly and you should be done. You still have the issue that if you add LED you will be powering them through the same line that is charging and your charger might not detect that your battery is indeed full. But if you went for just plain dumb, you can do away with any LED and just use it as a plug adapter.

Yes, but again, you will be adding some current to your charging circuit and your charger might not detect your battery full. I only use protected batteries and this circuits with plenty of warnings because I don’t know the technical and safety knowledge of all the readers. If you are aware of the dangers on forgetting your charger while pumping a lithium ion battery with a charger that can’t detect the battery full and want to take the risks, that’s up to you.

On a totally different note, the PCB leds won’t be seen if printed with opaque materials. And even if they did, you wouldn’t see more than the color. With this lineal arrangement you actually watch the charge “go up”. But that’s just on the aesthetics. This is a very basic version. I’m no artist.

I appreciate the detail in your design. Sometimes, I do like to go for “just plain dumb” though as a quick alternative :slight_smile:

1 Like

Very cool. Nice design.

1 Like

I am happy to report that after painfully draining the battery to the point where the board does not even starts up, the plug charger did worked and so could actually charge a depleted battery. This means that you can do away with any charging port and depend 100% on the plug charger.
You might want a killswitch/on off and easy access to programming your board, though. But some simplifications of the installs might be done.

3 Likes

Fantastic news.
Hopefully most chargers go by current, not voltage. :slight_smile:

Nice work! This is awesome stuff.

Hi,

Just wanted clarification on this snippet

If you have a killswitch or an on/off switch, you will need to turn off the hilt, introduce the plug - snip-

From reading the original thread is this due to needing to reboot the board to trigger scanid to detect the blade ID of the new blade?

So if I have blade detect already set up, then from my understanding it already triggers scanid and the kill switch toggling isn’t needed?

This is only if you want to have the LEDs display the charge level and you don’t have Blade Detect nor are using ProffieOS 7+ with BLADE_ID_SCAN_MILLIS enabled.

You guys are genius. Been looking for ways to free up space and through pixel charging is a god send. Question though. Idk if it’s been addressed, but what wiring has to happen hilt side? Saw TCSS had a chip to wire to but I wanted to go USB route and seems like they recommend only their charger… thoughts?

None, no extra wiring is required.
However, it might be good to have blade ID and blade detect working properly.

1 Like

So TCSS chip is pointless?

I don’t actually know what the TCSS thing does, so I can’t really answer that.

Charging through the blade connector requires that the proffieboard keeps the FETs on while charging, I imagine that the TCSS thing removes that requirement.

1 Like

Wanted to verify that this was the correct input for the config for preset and Blade config. Beginner.

Edit: Apologies, screenshots removed.

#ifdef CONFIG_TOP
#include "proffieboard_v2_config.h"
#define NUM_BLADES 1
#define NUM_BUTTONS 1
#define VOLUME 1700
const unsigned int maxLedsPerStrip = 144;
#define CLASH_THRESHOLD_G 3.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define COLOR_CHANGE_DIRECT
#define DISABLE_DIAGNOSTIC_COMMANDS
#define SA22C_SWING_ON
#define SA22C_TWIST_ON
#define SA22C_THRUST_ON
#define SA22C_TWIST_OFF
#define SA22C_FORCE_PUSH
#define IDLE_OFF_TIME 60*5*1000
#define ENABLE_ALL_EDIT_OPTIONS
#define FETT263_EDIT_MODE_MENU
#define DISABLE_BASIC_PARSER_STYLES
#define KEEP_SAVEFILES_WHEN_PROGRAMMING
#define ENABLE_SERIAL
#define FETT263_SAY_BATTERY_PERCENT
#define BLADE_ID_CLASS SnapshotBladeID<bladeIdentifyPin>
#define ENABLE_POWER_FOR_ID PowerPINS<bladePowerPin2, bladePowerPin3>
#endif

#ifdef CONFIG_PROP
#include "../props/saber_fett263_buttons.h"
#endif

#ifdef CONFIG_PRESETS
Preset presets[] = {

Preset stuff....
};


Preset presetchargeblade[] = {
{ "PwrCell", "tracks/mars.wav",
		&style_charging,
		//Also black out any extra blades with StyleNormalPtr<BLACK, BLACK, 300, 800>(),
		"Blade Chrg\nLevel"}

};

BladeConfig blades[] = {
 { 0, WS281XBladePtr<132, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(), CONFIGARRAY(presets) },
 
 { 39000, WS281XBladePtr<5, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
CONFIGARRAY(presetchargeblade) },
};
#endif

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

Looks reasonable.
If you need more help, please start a new thread.
(Rule of thumb; if you’re looking for help, start a new thread, only use existing threads when helping someone else, or participating in a discussion.)

no idea if this should be new thread also

but i was wondering if this could be expanded on or possibly a wire diagram as a novice builder

“so I can use Blade ID to turn off every blade but the main blade. Note that when I install my Proffies I always add a 22k resistor between Data1 and 3.3v so I can use the “true” resistor values for Blade ID”

is it just a wire from data1 to 3.3v on the proffie board with the resistor inbetween?

Yes. It also requires a small configuration change to use the right blade ID class: