Well I was writing this whole long thing of what I was experiencing, but it’s all too erratic to even log.
It might be because of the way it’s wired (Data1->emitter NPXL PCB in parallel with main blade)
It might be it doesn’t like to work with SnapshotBladeID.
I bridged Data 1 to the TX pin, and the values are jumping all over the place and I get constant switching back and forth between preset banks.
So I’m standing down.
I think the proper test is actually using Blade ID resistors in the blade.
That said, I did notice that the scan just stops when switching… SOMEtimes.
And, it doesn’t seem to be running at boot, or cycling through presets. It needs to have a first ignition to start scanning?
Like when using SnapshotBladeID, it WANTS to work.
It reads a constant same value once per 1000ms until I add the first change (which in this case is a removable chassis going into a hilt with an emitter NPXL PCB)
Then it keeps reading 2 different IDs, and it switches back and forth , and I get stuck in a loop.
Notice how there’s 2 ID readouts each loop once the resistance is added.
Why the second reading?
Is it stable when not using BLADE_ID_SCaN_MILLIS ?
If you run scanid while the blade is off, do you get a similar values each time?
Not running on boot sounds like a bug, I should fix that.
I checked in some fixes and optimizations for BLADE_ID_SCAN_MILLIS.
Also, I added a new define BLADE_ID_TIMES. It lets you tell ProffieOS to turn blade ID N times and take the average, which seems to be pretty much required to use BLADE_ID_SCAN_MILLIS, as the values are pretty noisy otherwise.
Working great with SnapshotBladeID as far as recognizing blades and switching.
However, it’s crippling everything else.
For example, a pulsing Color When Off is about 3 slow stepped levels of brightness.
Can not turn on (no button event registered). Spamming the power button I got one to be recognized and it turned on, but then everything pretty much behaving like molasses and unusable.
ok so that fixes it for SnapshotBladeID.
Again, my setup is a bit unconventional for BladeID, yet probably a pretty typical wiring;
Data1 feeds the emitter PCB, which feeds the main blade in parallel.
No BladeID resistors installed.
Using SnapshotBladeID, these numbers fluctuate each time slightly.
With nothing connected (chassis only) = ~519
Chassis into hilt (so adding emitter PCB) = ~634
Add blade = ~720
This works perfectly, switching as expected, anytime, On() or Off().
When using BridgedPullupBladeID TX pin 9, I don’t get the separation between emitter PCB and Blade in.
With nothing connected (chassis only) = ~733000
Chassis into hilt (so adding emitter PCB) = ~630000
Add blade = same ~630000
So for this setup, SnapshotBladeID it is, and it’s all good!
If you had a blade ID resistor in the blade, this might work better.
Most blade id implementations are focused on measuring resistance, but that doesn’t really change when you just add one more neopixel in parallel with the existing one. However, the RC value will change, which is what the snapshot id measures.
Understood, it’s just odd that having 16 LEDs on the PCB, then adding 132 additional doesn’t trigger a difference. Well, odd in the theory, but the execution of what’s going on it probably makes perfect sense.
All good.
Someone with BladeID resistor needs to test.
Maybe they can try this same setup and see the difference (I’m not opening this blade )
Number of LEDs have little or no effect on blade ID.
Blade ID basically has no way of knowing anything about what is behind the first LED.
If SnapshotID is working for you, don’t worry about adding a blade ID resistor.