Board Orientation Question

I have a saber I’ve installed where the board sits at an angle with the USB oriented towards the blade. I tried to be clever and thought “ORIENTATION_ROTATION 0,45,180” would suffice. Unfortunately the saber thinks that when it’s sideways (emitter to the left) it’s pointed up and thinks it’s pointed down when it’s sideways (emitter to the right).

I believe I should have instead used “ORIENTATION_ROTATION 0,-45,0” coupled with “ORIENTATION_USB_TOWARDS_BLADE”? The saber is the shoto hilt of the Korbanth Fulcrum V2 hilts using the new Goth3Designs chassis from The Saber Armory. Any advice would be most appreciated.

Good question.

How about ORIENTATION_ROTATION 180,-45,0
?

Combining ORIENTATION_ROTATION and ORIENTATION_USB_TOWARDS_BLADE seems complicated.

NoSloppy’s idea seems better. No idea if it’s the right numbers, but it very well could be. :slight_smile:

I’ll give this a try and report back.

I tried NoSloppy’s ORIENTATION_ROTATION and the board still thinks when the saber is on it’s side is when it’s pointed up or down. Which side is up might have changed. I tried using the combination of ORIENTATION_ROTATION and ORIENTATION_USP_TOWARDS_BLADE and it now cycles forward and backward through presets as expected when the emitter is pointed up or down. I’ve used ORIENTATION_ROTATION 0,-45,0 for this combination.

The issue I’m having with the combination is Twist Off. I’m able to use Twist On reliably, but Twist Off seems to only work when the saber is oriented at about a 45º angle with the emitter downward. In this orientation the board is oriented with the USB towards the ground and about the orientation it would be if it were installed normally (flat in the chassis with the USB towards the pommel). I’m not sure if this means that the USB_TOWARDS_BLADE define is overriding the ROTATION define, or if I should use 45 instead of -45.

This is a Proffieboard V3 using ProffieOS 7.8. My understanding of the axes of the Proffieboard are that the x-axis is the long axis in the plane of the board, the y-axis is the short axis in the plane of the board, and that the z-axis is perpendicular to the board. Another question I have is, are the rotations applied in any particular order, and are they applied to the board’s axes, or a global set of axes? My original thinking was seeing other configs that used ORIENTATION_ROTATION used a negative number for the middle (presumably y-axis) to have the USB elevated. I presumed then, that if I used a positive middle number that would orient the USB further down in the chassis, then a rotation of 180º about the board’s z-axis should then place the USB where it sits in the chassis (towards the emitter, elevated about 45º). Is this thinking incorrect?

Maybe what you need is:

#define ORIENTATION_ROTATION 0,225,0

?

The actual code that applies the orientation is here:

Perhaps not the most obvious thing in the world, maybe the article on Euler Angles would be more helpful?

#define ORIENTATION_ROTATION 0,225,0

I hadn’t thought about doing that, since rotation about the x-axis isn’t strictly necessary. That may be just the ticket.

Using the 0,225,0 rotation seems to have pretty much everything working as expected. It’s still difficult to use Twist Off, but that’s really the only issue. Thanks for the help.

Just FYI there is no difference between Twist On and Off other than commands they are set to trigger.
A twist motion while the blade is OFF will turn it ON.
A twist motion while the blade is ON will turn it OFF.
It’s the same twist motion though that gets detected…

Yeah, I understand, which is why it’s weird to me that I can so easily get it to twist on, but not twist off easily. Of course, I suppose it’s possible that since the saber is so short that the twist on is actually registered as a swing on, and it just seems that it’s twisting on.

The serial monitor should tell you if it’s registering as a twist or a swing.

Before trying connecting to the serial monitor, I decided to actually measure the angle, like I should have done when installing instead of eyeballing it. Turns out the board sits at a 30º angle. So, changed the ORIENTATION_ROTATION to 0,210,0, and all the gesture controls work as expected and intended. Thanks to everyone for their help.

1 Like