ESC Calibration issues

  • After following the wiki for ESC calibration, once I type Y for all of the prompts and it should run, I get an immediate error. I'm able to connect via QGC. QGC is closed out and it is able to access the port. Errors are
    line 269 in <module>
    line 246 in mavcal
    if not mavshell.connect()
    line 74, in connect
    ret = selv.mav.wait_heartbeat(blocking=true, timeout=10)
    TypeError: wait_heartbeat() got an unexpected keyword argument 'timeout'

    Any ideas? From what I think I'm seeing is that there was a timeout in the connection maybe?

  • Dev Team

    Hi @Riley-Dove ,

    Do you what FW version you are using? I’ve seen some inconsistencies on v1.11. We’ll take a look, they work around we are using isn’t ideal so perhaps there’s some improvements we can make.

  • I just had a BEC failure, so I cant access the FC,. Will swap and let you know. I believe I updated to 1.11 via QGC.

  • @modaltb I have V1.11.3 loaded onto the Flight deck board.

  • Dev Team

    Hi @Riley-Dove ,

    Ok thanks. Let me get someone to check into this this AM.

    We use the tool a lot with our production release of 1.10,

    We haven’t moved to 1.11 in production on our side so the tools might need an update.

    A work around should be to go back to the release in the link above, but ideally we get the tool working with 1.11.

    I’ll keep you posted.


  • I just reverted back to the ModalAI version of V1.10 and still having the same issues. It must be somehow related to my system.

  • In the end goal, When I arm the copter, the motors stay at the ESC armed throttle level, despite seeing throttle input from the RC. Once I get this resolved, should it work, or are they unrelated?

  • Dev Team

    ESC cal "shouldn't" matter for this (it does set min/max range, but typically bad ESC cal just results in some iffy flights).

    I've seen throttling up occurring if the estimator isn't running. Are you using a magnetometer in the setup?

    PX4 expects an external mag by default, our custom FW is basically to handle this use case for indoor flight without a mag, there's work arounds for this so let me know and I can show you if this is the case.


  • @modaltb No magnetometer. I installed the No mag params file, as well as a few others, but I'd like to get your instructions. Mavlink inspector shows it not going above 1075.

  • Dev Team

    @Riley-Dove ,

    On VOXL, what happens if you run systemctl status voxl-vision-px4 ?

    In our 1.10, to fly without mag, the system expects VIO data from VOXL. The FlightDeck should have this setup by default (e.g VOXL is sending VIO data to FlightCore). This is setup via EKF2_AID_MASK which is seems like you loaded, can you check this step to make sure PX4 is getting VIO data?

    In our 1.11, we've reduced the requirement so simply check if EKF2_AID_MASK is configured (and doesn't care if there's actual vision data...)

  • This is what I see. I also cannot get to QGC through VOXL.

    ~ # systemctl status voxl-vision-px4
    ● voxl-vision-px4.service - voxl-vision-px4
    Loaded: loaded (/usr/bin/voxl-vision-px4; disabled; vendor preset: enabled)
    Active: failed (Result: signal) since Thu 1970-01-01 00:44:44 UTC; 5min ago
    Process: 3084 ExecStart=/usr/bin/voxl-vision-px4 (code=killed, signal=SEGV)
    Main PID: 3084 (code=killed, signal=SEGV)

    Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "en_send_voa_to_qgc": false,
    Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "en_mvl_video_stream": false,
    Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "en_adsb" false,
    Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "adsb_uart_bus": 7,
    Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "adsb_uart_baudrate": 57600,
    Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "en_offboard_figure_eight": true,
    Jan 01 00:44:44 apq8096 voxl-vision-px4[3084]: "vio_to_ned_rotation_matrix":...]
    Jan 01 00:44:44 apq8096 systemd[1]: voxl-vision-px4.service: Main process e...GV
    Jan 01 00:44:44 apq8096 systemd[1]: voxl-vision-px4.service: Unit entered f...e.
    Jan 01 00:44:44 apq8096 systemd[1]: voxl-vision-px4.service: Failed with re...'.
    Hint: Some lines were ellipsized, use -l to show in full.
    ~ #

  • Dev Team

    OK without that service running, the QGC link through VOXL won't work, and this would also prevent VIO data making it's way to PX4, and then flying without a mag won't work....

    How about systemctl stop voxl-vision-px4 and then running manually with the debug flag: voxl-vision-px4 -d

    This service is used when we calibrate the cameras before shipping so I'm wondering what's going on.

  • This is what I typed and what I get.

    ~ # systemctl stop voxl-vision-px4
    ~ # voxl-vision-px4 -d
    loading config file
    Error parsing config file before: en_vao": false,
    "en_send_vio_to_qgc": false,
    "en_send_voa_to_qgc": false,
    "en_mvl_video_stream": false,
    "en_adsb" false,
    "adsb_uart_bus": 7,
    "adsb_uart_baudrate": 57600,
    "en_offboard_figure_eight": true,
    "vio_to_ned_rotation_matrix": [[0, 1, 0], [1, 0, 0], [0, 0, -1]]

    Segmentation fault
    ~ #

  • Dev Team

    Hi @Riley-Dove , I think the config file got messed up. Perhaps around the "offboard_mode" setting.

    This lives at /etc/modalai/voxl-vision-px4.conf

    Here's an example, where the qgc_ip is your system with QGC's IP address:

    	"qgc_ip":	"",
    	"en_localhost_mavlink_udp":	true,
    	"en_secondary_qgc":	false,
    	"secondary_qgc_ip":	"",
    	"offboard_mode":	"none",
    	"en_vio":	false,
    	"en_voa":	false,
    	"en_send_vio_to_qgc":	false,
    	"en_send_voa_to_qgc":	false,
    	"en_adsb":	false,
    	"adsb_uart_bus":	7,
    	"adsb_uart_baudrate":	57600,
    	"px4_uart_bus":	5,
    	"px4_uart_baudrate":	921600,
    	"R_imu_to_body":	[[0, 1, 0], [1, 0, 0], [0, 0, -1]],
    	"T_imu_wrt_body":	[0.068, -0.015, -0.008],
    	"height_body_above_ground_m": 0.05,
    	"T_stereo_wrt_body":	[0.10, -0.04, 0.0],
    	"land_on_tag_id":	0,
    	"follow_tag_id":	0,
    	"en_apriltag_fixed_frame":	false,
    	"fixed_apriltags":	[{
    		"tag_id":	0,
    		"R_tag_to_fixed":	[[0, -1, 0], [1, 0, 0], [0, 0, 1]],
    		"T_tag_wrt_fixed":	[0, 0, 0]
    	"en_transform_mavlink_pos_setpoints_from_fixed_frame":	true,
    	"en_fixed_frame_pipe": false,
    	"fixed_frame_filter_len": 5

  • Dev Team

    Also, if you didn't modify this file and this is how it shipped let me know so I can look into what happened. We enable VOA during flight testing and then disable so if there's a typo introduced causing this issue I want to inform the team over here. Thanks!

  • Now it says only "error parsing config file before: ?
    Segmentation fault"

  • @modaltb I may have modified it, not even sure. I'm still learning the hardcore software side of this. I'm a hardware guy.

  • Dev Team

    @Riley-Dove ok, we can reset it to factory defaults, maybe that's easiest! If you can delete that file /etc/modalai/voxl-vision-px4.conf and then run the following command: voxl-configure-vision-px4 -f it will set the factory settings.

    Restart the service:
    systemctl restart voxl-vision-px4

    Check status:
    systemctl status voxl-vision-px4

    If all looks good, you can set your IP back up:

    vi /etc/modalai/voxl-vision-px4.conf

    vi isn't easy to use. But this should get you going:

    • hit 'i' to enter edit mode
    • move cursor to text using arrows, edit the ip address following the same format that's there
    • hit 'esc' to exit edit mode
    • to save, enter :wq

    Restart the service:
    systemctl restart voxl-vision-px4

    Check status:
    systemctl status voxl-vision-px4

    Then you should have a connection to QGC.

  • I run into the same issue when I check the voxl vision status. Active: Failed. There is nothing on the voxl-vision-px4.conf file. It's not properly configuring that file.

  • Dev Team

    Hi @Riley-Dove ,

    Sorry, something is happening when editing maybe... This setup is heavily used all over so trying to see what up, we can do a screen share if the following fails.

    What if you do the following, without editing the file at all.

    • systemctl stop voxl-vision-px4
    • voxl-configure-vision-px4 -f
    • cat /etc/modalai/voxl-vision-px4.conf

    Can you then copy paste the output of the last command here?

    Then if the JSON output looks OK above, try to start again... systemctl start voxl-vision-px4.

    This is where I'm getting the file.

Log in to reply