# ProffieOS 7.x pre-alpha discussion

**URL:** <https://crucible.hubbe.net/t/proffieos-7-x-pre-alpha-discussion/2502>\
**Category:** ProffieOS\
**Created:** [October 23, 2022, 7:25am UTC](https://crucible.hubbe.net/t/proffieos-7-x-pre-alpha-discussion/2502 "2022-10-23T07:25:27Z")\
**Posts on this page:** 1\
**Showing post:** 70

<div class="post-metadata">

**Author:** ![NoSloppy](https://crucible.hubbe.net/user_avatar/crucible.hubbe.net/nosloppy/32/3865_2.png) [@NoSloppy](https://crucible.hubbe.net/u/NoSloppy)\
**Post date:** [January 21, 2023, 8:11pm UTC](https://crucible.hubbe.net/t/proffieos-7-x-pre-alpha-discussion/2502/70 "2023-01-21T20:11:19Z")

</div>

> [@baldusi](#):
>
> I have a feature request. Since I’ve made the blade plug charging device work, I’ve found out I’m depending on the fact that in most of my installs I have Blade Detect wired. But many NPXL connectors don’t even have the necessary pins. And I depend on Blade ID for setting the correct LED spec and setting the charging preset. Thus, I was wondering if we could do one of the following additions to 7:
> 
> A) Add a #define to make the OS poll Blade ID every X time while the blade is retracted.  
> B) Add a & preset specifically for charging that polls Blade ID every second (or could be a parameter) when set.
> 
> The nice part of A) is that it would solve the problem of swapping blades without shutting off the hilt. I don’t have killswitches nor on/off on all my sabers.  
> The nice part of B is that you could disable motion sensors and many other power hungry parts.  
> Any thoughts?

Check this thread out:

> [@Crazy idea of the day - Constant Blade ID monitoring](https://crucible.hubbe.net/t/crazy-idea-of-the-day-constant-blade-id-monitoring/2847):
>
> This was a PM, but putting it here for public input. Disclaimer - totally off-the-cuff experimental and likely might take up resources, be a bad idea in general, etc… but is working in testing by adding/removing any blade, even a NPXL PCB first (detects the change), then add a blade on top of that (2nd change detected) (They’re wired in parallel) No BLADE\_ID resistors are installed anywhere. If you have bladein.wav, it will play that when detected. Used these defines: #define ENABLE\_POWER\_FOR\_ID PowerPINS\<bladePowerPin2, bladePowerPin3\> #define BLADE\_ID\_CLASS SnapshotBladeID #define BLADE\_ID\_MONITORED Edited the prop’s void Loop() to start like this: BLADE\_ID\_CLASS\_INTERNAL blade\_id; void Loop() override { PropBase::Loop(); DetectTwist(); DetectShake(); #ifdef BLADE\_ID\_MONITORED if (millis() - last\_blade\_id\_ \> 2000) { STDOUT \<\< "BLADE ID: OLD = "\<\< looped\_blade\_id\_ \<\< "\n"; blade\_id.id(); last\_blade\_id\_ = millis(); STDOUT \<\< "BLADE ID: checked = "\<\< blade\_id.id() \<\< "\n"; if (looped\_blade\_id\_ \> blade\_id.id() + 100 || looped\_blade\_id\_ \< blade\_id.id() - 100) { STDOUT \<\< "BLADE ID: DIFFERENT \*\*\*\*\* do something here\n"; // beeper.Beep(0.5, 1000); FindBladeAgain(); SaberBase::DoBladeDetect(true); } looped\_blade\_id\_ = blade\_id.id(); } #endif Vec3 mss = fusor.mss(); .................. and initialized these at the bottom uint32\_t last\_blade\_id\_ = millis(); uint32\_t looped\_blade\_id\_ = 0; Might need to be tweaked per setup: ENABLE\_POWER\_FOR\_ID’s bladePowerPins are your blade’s LED pads. The id() +/- values. The 2000 delay adjust to taste. The detected values set in the BladeConfig. Use something reasonable based on what it shows in Serial Monitor for “BLADE ID: checked” for each state. You can kill the beep if you use bladein.wav instead. Terrible?

---

_[View the full topic](https://crucible.hubbe.net/t/proffieos-7-x-pre-alpha-discussion/2502)._
