Wiring diagram from config

Hi is there anyone here who can take this blade config and give me a wiring diagram for connecting to a proffie 3.9 board. I would gladly pay for your time if possible.

BladeConfig blades[] = {
 { NO_BLADE,    
    // blade
    SubBlade(58, 189, WS281XBladePtr<190, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3>>()),

  //connector
    SubBlade(0, 29, NULL),

  //emitter
    SubBlade(30, 57, NULL),

  //Ring1
 SubBlade(0, 11, WS281XBladePtr<22, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin1> >()), 
  //Ring2
    SubBlade(12, 21, NULL),
  //Crystal
  WS281XBladePtr<1, bladePin, Color8::GRB, PowerPINS<bladePowerPin1> >(),
  //Sides 
  WS281XBladePtr<10, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin4> >(), 
  //Top
  WS281XBladePtr<4, blade5Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(), 
  //Motor
  SimpleBladePtr<CH1LED, NoLED, NoLED, NoLED, bladePowerPin6, -1, -1, -1>(),

CONFIGARRAY(noblade) },

 { 33000,    
    // Main
    SubBlade(58, 189, WS281XBladePtr<190, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3>>()),

  //connector
    SubBlade(0, 29, NULL),

  //emitter
    SubBlade(30, 57, NULL),

	//Ring1
 SubBlade(0, 11, WS281XBladePtr<22, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin1> >()), 
	//Ring2
    SubBlade(12, 21, NULL),
	//Crystal
	WS281XBladePtr<1, bladePin, Color8::GRB, PowerPINS<bladePowerPin1> >(),
	//Sides 
	WS281XBladePtr<10, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin4> >(), 
	//Top
	WS281XBladePtr<4, blade5Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(), 
	//Motor
	SimpleBladePtr<CH1LED, NoLED, NoLED, NoLED, bladePowerPin6, -1, -1, -1>(),

CONFIGARRAY(dark) },


 { 10000,
    // Main
    SubBlade(58, 189, WS281XBladePtr<190, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3>>()),

  //connector
    SubBlade(0, 29, NULL),

  //emitter
    SubBlade(30, 57, NULL),

  //Ring1
 SubBlade(0, 11, WS281XBladePtr<22, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin1> >()), 
  //Ring2
    SubBlade(12, 21, NULL),
  //Crystal
  WS281XBladePtr<1, bladePin, Color8::GRB, PowerPINS<bladePowerPin1> >(),
  //Sides 
  WS281XBladePtr<10, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin4> >(), 
  //Top
  WS281XBladePtr<4, blade5Pin, Color8::GRB, PowerPINS<bladePowerPin5> >(), 
  //Motor
  SimpleBladePtr<CH1LED, NoLED, NoLED, NoLED, bladePowerPin6, -1, -1, -1>(),

CONFIGARRAY(light) },

};
#endif

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

I can help you out later tonight, if nothing else comes in.

1 Like

Thanks man appreciate it! Def will pay you for your time

I started on a diagram, but there are some elements that are outside of my area of expertise.

I could be wrong, and will defer to others, but these are the issues I see:
You have Data 1 in series between an illuminated connector, the hilt-side PCB, and the main blade, but your config is using Blade ID. My understanding is that Blade-ID does not work reliably when data 1 is shared with anything.

The config shows the hilt-side PCB (emitter) in series, that means removing resistor R1 and jumper J bridged. Not an issue–just calling it out.

The connector in the config has 30 pixels–the only connector I know of with 30 pixels is the Shtok ECO v4, which can only be wired in parallel. However, if you put another standard V4 as the connector, you could wire that in series (again, R1 removed, jumper j bridged).

You have Data 1 going to the connectors and main blade with LED23 AND going to the crystal chamber with LED1. I don’t think that works. You could wire the crystal on Free2 (blade6Pin) and LED1 (which is shared with the pixel rings). You need shared power pins in the config.

you have 12 pixels on one of the pixel rings and 10 on the other. The small ShtokCustomWorx pixel rings have 11 pixels each.

This is my attempt at a diagram.
Wiring diagram 051225js.pdf

[edit] One thing I forgot. You included NO BLADE. If you wire blade detect on the connector, it will detect when the connector is connected–not the blade. You are already using Free1, which is normally used for blade detect–you could use Free2 or Free3, whichever you don’t use for the crystal chamber (indeed of also using data 1).

1 Like

Nah, just pay it forward.
User_diagram.pdf (19.1 KB)

You have a lot going on. See how this looks. As jedi_j_stream mentioned. I changed the pixel sharing data one to free2. I can edit if you have changes. As it is the config will need to be tweaked.

2 Likes

Thanks so much for helping me out and pointing out where things need be tweaked/changed

What’s the actual saber? Can we get pictures? Who wrote those blades styles?’
There are some errors and parts that I don’t quite understand.

It’s going into the new goth3designs master chassis for the Vader mpp kit from kr sabers. I got the code from someone who worked on the original programming of it. The blade id is meant to work by changing crystal in chamber each crystal having a different resistor one for light and other for dark side. I was also told this will only work with Proffie master os. Don’t have the chassis pieces yet said it would be a couple months

I’ve noticed that blade4Pin (Data4) is not used. I’m starting to suspect that it should be used for the connector, PCB and main blade. Because, as far as I know, only Data 1, 2 and 3 are wired for BladeID.

@profezzorn Can we ose on V3.9 //#define BLADE_ID_CLASS BridgedPullupBladeID<bladeIdentifyPin, bladePin> with Data 2 and Data 3?

I went and looked for the electronics parts on the kit:

– 1 x ProffieBoard 3.9
– 1 x OLED Screen
– 1 x Motor
– 1 x 3W 31mm Bass Speaker
– 1 x NPXL Chassis Connector
– 1 x NPXL Blade Connector
– 1 x set of resistors (2) for Blade-ID setup
– 3 x 2020 pixel strips
– 2 x single pixel accents (2020)
– 1 x Custom Middle Chassis Connector
– 1 x single pixel accent (5050)
– 1 x High Amp Kill Switch
– 1 x Mill-Max pins (10 pins bar each – to be cut)
– 1 x Mill-Max Socket (10 sockets bar – to be cut)
– 2 x Battery contacts (pos and neg)
– 1 x set of PTFE Wires (22awg, 28awg, 30awg)

If we assume that Data4 is used for the main blade, it should go like this:

LED1/Data 1 ---- 5050 Pixel
LED1/Data 2 -- (470R resistor) -- Ring 1 Data IN --- Ring 1 Data  OUT --- Ring 2 Data IN
LED4/Data 3 -- (470R resistor) -- (splice) |---- 2020 strip 1
                                      |---- 2020 strip 2
LED2/LED3+ Data 4 -- (470R resistor)  -- NPXL Chassis Connector ---  NPXL Blade Connector
LED5/Data 5 -- (470R resistor)  -- (whatever Top is)
LED5 negative --- Motor negative.

Then you will have to add to your CONFIG_TOP section:

#define SHARED_POWER_PINS
#define ENABLE_POWER_FOR_ID PowerPINS<bladePowerPin1>

That def makes sense to me I wonder why it was written this way or maybe just an early draft. Here is top config


#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 9
#define NUM_BUTTONS 2
#define VOLUME 2500
const unsigned int maxLedsPerStrip = 195;
#define CLASH_THRESHOLD_G 3.0
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define ENABLE_ALL_EDIT_OPTIONS
#define COLOR_CHANGE_DIRECT
#define DISABLE_DIAGNOSTIC_COMMANDS
#define DISABLE_BASIC_PARSER_STYLES
#define NO_REPEAT_RANDOM
#define SAVE_STATE
#define MOTION_TIMEOUT 60 * 15 * 1000
#define IDLE_OFF_TIME 60 * 15 * 1000
#define FETT263_EDIT_MODE_MENU
#define FETT263_SPECIAL_ABILITIES
#define FETT263_LOCKUP_DELAY 200
#define FETT263_TWIST_OFF
#define FETT263_TWIST_ON
#define FETT263_TWIST_ON_NO_BM
#define FETT263_SAY_COLOR_LIST
#define FETT263_SAY_COLOR_LIST_CC
#define FETT263_SAY_BATTERY_PERCENT
#define FETT263_MOTION_WAKE_POWER_BUTTON
#define FETT263_RANDOMIZE_QUOTE_PLAYER
//#define BLADE_DETECT_PIN blade6Pin
#define SHARED_POWER_PINS
#define ENABLE_SSD1306
#define ENABLE_SERIAL
#define ENABLE_POWER_FOR_ID PowerPINS<bladePowerPin1>
#define BLADE_ID_SCAN_MILLIS 1000
#define BLADE_ID_TIMES 15
#define NO_BLADE_ID_RANGE 600000,999999999

#endif