# Changing VOXL2 DSP PX4 Orientation

Source: https://forum.modalai.com/topic/1914/changing-voxl2-dsp-px4-orientation
Category: VOXL 2 and VOXL 2 Mini (https://forum.modalai.com/category/26/voxl-2-and-voxl-2-mini)
Tags: voxl-2
Posted: 2023-03-06 20:55:31 UTC by msberk
Replies: 10 · Views: 1958

## msberk · 2023-03-06 20:55:31 UTC

Note, this is exact issue is referenced [here](https://forum.modalai.com/topic/1629/some-general-questions-issues-with-voxl2) and never answered, but we have also run into it: 

While testing we had the voxl2 mounted with an 180 degrees roll. We were able to change the extrinsics file for qvio, and vision-px4, but when calibrating the sensors with QGroundcontrol the system was unable to calibrate, because the px4 could not discern the right orientation it was in. The px4 was configures to have a roll of 180 degrees, and when calibrating the sensors while the drone was standing on the ground, px4 still thought it was upside down, and after trying to calibrate that orientation, it gave an error saying the z readout was in the wrong direction. Is it possible that there is a setting on the voxl2 that needs to be set when the voxl is mounted upside down?

## Reply by Eric Katzfey (ModalAI staff) · 2023-03-06 21:21:26 UTC

@msberk Yes, when mounting the board in a different orientation the IMU driver needs to know the rotation. So, for example, we have one model of drone that has the board rotated by 180 degrees. So the start line for the imu driver adds `-R 4` to specify that (`qshell icm42688p start -s -R 4`). The number 4 comes from the file `src/lib/conversion/rotation.h` and corresponds to `ROTATION_YAW_180`. For your case I think you would want to specify `-R 8` for `ROTATION_ROLL_180`.

## Reply by msberk · 2023-03-07 20:43:11 UTC

@Eric-Katzfey 
Ok, that worked. Thanks! 

How would you advise setting it up to run at boot? I found the target script [here](https://github.com/modalai/px4-firmware/blob/voxl-dev/boards/modalai/voxl2/target/voxl-px4.config) but it's set up differently than a typical Pixhawk board target.

## Reply by Eric Katzfey (ModalAI staff) · 2023-03-07 20:56:15 UTC (in reply to msberk)

@msberk There are different ways to go about starting px4. What we do is use the voxl-px4 script to launch everything (In that same target directory). That can be be used in a systemd service file to launch px4 at board startup. That script has command line options that control certain features. Ultimately px4 is passed that voxl-px4.config script using the `-s` option. Both voxl-px4 and voxl-px4.config are bash scripts which makes them quite flexible. For a different perspective you can look at our voxl-px4 gitlab project which acts as a wrapper for px4 and creates a debian package that can be installed on target. The package will place all needed files in the correct places during installation and has a voxl-px4.service file example for systemd startup. (https://gitlab.com/voxl-public/voxl-sdk/services/voxl-px4/-/tree/dev)

## Reply by Abdullah01 · 2023-06-13 10:47:33 UTC (in reply to Eric Katzfey)

@Eric-Katzfey 

from where can add this command? 

it is not clear. If you can clarify more about the process 

thank you

## Reply by Eric Katzfey (ModalAI staff) · 2023-06-13 16:00:12 UTC (in reply to Abdullah01)

@Abdullah01 In voxl-px4 1.12.31 you can find all of the PX4 startup commands in /etc/modalai/voxl-px4.config.

## Reply by Abdullah01 · 2023-06-14 05:42:50 UTC (in reply to Eric Katzfey)

@Eric-Katzfey 

Great thank you. 

I checked the file and the imu is already rotated as you can see in the picture

 ![Screenshot 2023-06-14 053818.png](https://forum.modalai.com/assets/uploads/files/1686721114097-screenshot-2023-06-14-053818.png) 

But when I start the calibration process and face the drone's nose upward. it shows that it faces downward 

should I make the changes on the config file and on QGC? or just on the file?

thank you

## Reply by Abdullah01 · 2023-06-14 07:04:03 UTC (in reply to Abdullah01)

@Abdullah01 

Now It works with the correct orientation.

But there are two issues, 

1- Once I complete the compass calibration process, and restart the voxl/drone. it shows me that the calibration process has not been done and I need to re-calibrate again.

2- the accelerometer calibration process keeps crashing and it shows this message 

![AAAAA.png](https://forum.modalai.com/assets/uploads/files/1686726242475-aaaaa.png)

## Reply by Eric Katzfey (ModalAI staff) · 2023-06-14 16:55:52 UTC (in reply to Abdullah01)

@Abdullah01 It still seems like your rotation is not setup correctly. Have you set SENS_BOARD_ROT to anything? Did you change the imu start line to have a rotation of 8 instead of 4?

## Reply by Abdullah01 · 2023-06-18 07:54:03 UTC (in reply to Eric Katzfey)

@Eric-Katzfey 

I just tried to change it from 4 to 8 but nothing changed. 

Yes, I changed the SENS_BOARD_ROT to Yaw 180 degrees 

![Screenshot 2023-06-18 111320.png](https://forum.modalai.com/assets/uploads/files/1687076076180-screenshot-2023-06-18-111320.png)

## Reply by Eric Katzfey (ModalAI staff) · 2023-06-19 17:19:22 UTC (in reply to Abdullah01)

@Abdullah01 Leave SENS_BOARD_ROT as the default value. You are specifying the rotation of the board by giving the IMU driver the `-R 4` option.
