Can scanid be ran while there’s limited port access?

I’m playing around with BladeID and realized that while I can obviously run scanid it’s not so easily done when the chassis is inside the hilt. Having outside access via wireless or even a define would set it up so I could then after scanning the removable chassis itself, scan up through the blade pcb connector, and then with different blade plugs and blades to get the array listings.

Maybe something akin to what @profezzorn came up with to record things back when we were fixing BladeDetect?

The working idea being where I can insert and pull the removable chassis say 5 times, a blade plug 5 times, shoto blade…, katana blade… to get the data on the blade arrays from Serial Monitor output to put in the config.

Chime in because yeah, I’m down for ideas.

Are you thinking of SPEAK_BLADE_ID or something else?
It would seem that SPEAK_BLADE_ID is undocumented, we should probably fix that.
Setting up continuous scanning, plus SPEAK_BLADE_ID should solve this, right?

Possibly, depending on how legible the output is or the ability to have it recorded to reference later so as to get the correct values so they can then be used in the config after the reading is done. With the board’s port being blocked inside the hilt there’s not a current way to get the datalogging done for the array defines.

We need correct values, not just examples, right?

Say it’s a 120 pixel blade, say it’s a 100 pixel blade.

BladeConfig blades[] = {
      { 5000,
        WS281XBladePtr<132, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
//What would value here be if 120 pixel, not 5000 correct?
        CONFIGARRAY(blade1_in) },
      { 10000,
        WS281XBladePtr<128, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
//What would value here be if 100 pixel, not 10000 correct?
        CONFIGARRAY(blade2_in) },
      { NO_BLADE,
        WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
        CONFIGARRAY(no_blade) },
    };

SPEAK_BLADE_ID speaks the resistance value, not the pixel count. The board has no way of determining that, that’s why the pixel count is manually specified in the blade definitions.
But you’ll hear talkie voice say “I D 4 5 0 3 6” or similar, so that’s 45k.

Interesting. Here’s where I last left off. OS8_S3_Current_1Blade_2Button_BladeID_V3.h (13.7 KB) What other changes besides adding in #define SPEAK_BLADE_ID would I have to do to this config to give it another shot?

Obviously the bottom values in the blade listings are going to be incorrect. Is there a base value usable or necessary?

The blade definitions are irrelevant to measuring. Just enable the define and run `scanid’
Oh… You’re gonna need a button combo to tell it to run scanid . Unless it does it on boot/new font which I don’t remember. AFCATM.

In that case I’d defer to @Fett263 since we do run our sabers using SpecialAbilities and it could be an easily enough thing.

*So it’s basically #define SPEAK_BLADE_ID and try out each blade and listen for the talkie feedback? I would also have to disable BladeDetect or at least put in silent wav files so wave detect isn’t playing while the talkie is working, right?

OS8 has Manual Blade ID Control via define:

#define FETT263_MANUAL_BLADE_ID
1 Like

Thanks! :smiley: