VOXL2 IO Board and External ESCs - voxl2-io driver fails to initialize
-
Originally posted this elsewhere a couple of days ago and on seeing no replies after a couple of days, realized that maybe it should be posted here for your engineers to see it.
We'd appreciate suggestions for troubleshooting as it seems at this point we're making little progress. And, of course, if we can provide additional info to make it easier, please let us know. Thanks!
SUMMARY
VOXL2-IO driver is failing to initialize. When we 'scan' and 'detect' using utilities of the voxl-2-io wizard, the M00065 is detected, however there appears to be no UID or FW hash values which makes us suspicious of its response. We have followed instruction in the forum topic ' VOXL 2 IO Board troubleshooting - Driver will not start' at https://forum.modalai.com/topic/3242/voxl-2-io-board-troubleshooting-driver-will-not-start. Platform SDK and VOXL IO Board firmware have been updated to latest released versions (see 'ENVIRONMENT' above).
'Spin' command in the voxl-2-io wizard drives Motor1 (on PWM Channel 1) but none of the others. We are not able to drive motors from QGC.
And finally, upon startup, there is no PWM signal. Not even the idle/disarmed pulse sent right after power on to stop ESCs timing out, which causes an Arming Timeout to occur on ESCs.
More specific observations follow below.
OUR ENVIRONMENT
VOXL2
system-image: 1.8.02-M0054-14.1a-perf
kernel: #1 SMP PREEMPT Mon Nov 11 22:08:01 UTC 2024 4.19.125
hw platform: M0054
mach.var: 1.0.0
voxl-suite: 1.4.0VOXL2 IO Board w/ Firmware upgraded to 'VOXL2 IO FW v1_35_58c82813' using procedure at https://docs.modalai.com/voxl2-io-firmware/#via-voxl-2-command-line-tools. (NOTE: Upgrade seemed to go flawlessly.)
ESCs Configured as follows:
Pulse width zero throttle = 1050 us
Pulse width full throttle = 2000 us
Pulse width center = 1050 us
Pulse deadband = 20 usDoodle Labs Mini OEM Mesh Rider (915 + 2.4)
UXV SROC Controller
Maxon EC69 Motors PN 725770
Maxon UAV-ESC 52/30 PN 654541OBSERVATIONS
OBSERVATION #1
During startup (see 'PX4 STARTUP LOG' that follows), when PX4 attempts to detect the M0065 board, we expect to see a UID value, current FW version, and a hash value like this example from the forum topic 'VOXL 2 IO Board troubleshooting - Driver will not start' at https://forum.modalai.com/topic/3242/voxl-2-io-board-troubleshooting-driver-will-not-start/6:
INFO [muorb] SLPI: VOXL2_IO: Detecting M0065 board... INFO [muorb] SLPI: VOXL2_IO: VOXL2_IO ID: 0 INFO [muorb] SLPI: VOXL2_IO: Board Type : 35: ModalAi I/O Expander (M0065) INFO [muorb] SLPI: VOXL2_IO: Unique ID : 0x4304296039364B560671FF36 INFO [muorb] SLPI: VOXL2_IO: Firmware : version 2, hash f94baad1 INFO [muorb] SLPI: VOXL2_IO: Bootloader : version 0, hash 17147346* INFO [muorb] SLPI: VOXL2_IO: Reply time : 2584us
Instead our PX4 log indicates no version info response from VOXL2_IO and Driver initialization fails.:
INFO [muorb] SLPI: VOXL2_IO: M0065 using external RC INFO [muorb] SLPI: VOXL2_IO: Driver starting INFO [uORB] Advertising remote topic sensor_baro INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_BAUD : 921600 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC1 : 101 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC2 : 102 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC3 : 103 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC4 : 104 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC5 : 0 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC6 : 0 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC7 : 0 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC8 : 0 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_DIS : 1000 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_MIN : 1100 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_MAX : 2000 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_CMIN : 1050 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_CMAX : 2000 INFO [muorb] SLPI: VOXL2_IO: INFO [muorb] SLPI: VOXL2_IO: Opening UART device 2, baud rate 921600 INFO [muorb] SLPI: VOXL2_IO: Successfully opened UART device INFO [muorb] SLPI: VOXL2_IO: Detecting M0065 board... ERROR [muorb] SLPI: VOXL2_IO: Board version info response timeout (2 retries left) ERROR [muorb] SLPI: VOXL2_IO: Board version info response timeout (1 retries left) ERROR [muorb] SLPI: VOXL2_IO: Board version info response timeout (0 retries left) ERROR [muorb] SLPI: VOXL2_IO: Could not detect the board ERROR [muorb] SLPI: VOXL2_IO: Driver initialization failed. Exiting INFO [muorb] SLPI: VOXL2_IO: Closing uart port ERROR [muorb] SLPI: Task start failed (-1) ERROR [muorb] SLPI: Failed to execute command: voxl2_io start -e INFO [qshell] cmd returned with: -1 INFO [qshell] qshell return value timestamp: 90708410, local time: 90709998 ERROR [qshell] Command failed
Note also that when we execute the voxl-2-io 'spin' utility (see included 'SPIN LOG'), it's log does indicate successful detection of an ESC, but lacks UID, hash, and FW version is '1'. It looks to us like it isn't responding:
INFO: ESC(s) detected on port: /dev/slpi-uart-2, baud rate: 921600 ID : 0 Board : version 35: ModalAi I/O Expander (M0065) UID : 0x000000000000000000000000 Firmware : version 1, hash Bootloader : version 0, hash
FULL PX4 STARTUP LOG
voxl2:/$ systemctl stop voxl-px4 voxl2:/$ voxl-px4 start -d [INFO] Reading from /etc/modalai/voxl-px4.conf Found DSP signature file [INFO] Daemon mode enabled ************************* AIRFRAME=MULTICOPTER GPS=NONE RC=EXTERNAL ESC=VOXL2_IO_PWM_ESC POWER MANAGER=NONE AIRSPEED SENSOR=NONE DISTANCE SENSOR=NONE OSD=DISABLE DAEMON_MODE=ENABLE SENSOR_CAL=ACTUAL ARTIFACT_MODE=DISABLE EXTRA STEPS: ************************* INFO [px4] mlockall() enabled. PX4's virtual address space is locked into RAM. INFO [px4] assuming working directory is rootfs, no symlinks needed. INFO [muorb] Got muorb init command Sending initialization request Got topic data before configuration complete Got topic data before configuration complete Got topic data before configuration complete Got topic data before configuration complete Got topic data before configuration complete Got topic data before configuration complete Got topic data before configuration complete Got topic data before configuration complete Got topic data before configuration complete Got topic data before configuration complete Got topic data before configuration complete Got topic data before configuration complete Got topic data before configuration complete INFO [muorb] SLPI: muorb aggregator thread running INFO [muorb] muorb protobuf initalize method succeeded INFO [muorb] succesfully did ADVERTISE_TEST_TYPE INFO [muorb] SLPI: Creating pthread test_MUORB INFO [muorb] SLPI: Successfully created px4 task PX4_test_MUORB with tid 2097656 INFO [muorb] succesfully did SUBSCRIBE_TEST_TYPE INFO [muorb] SLPI: Creating pthread test_MUORB INFO [muorb] SLPI: Successfully created px4 task PX4_test_MUORB with tid 2097655 INFO [muorb] succesfully did TOPIC_TEST_TYPE INFO [muorb] SLPI: Creating pthread test_MUORB INFO [muorb] SLPI: Successfully created px4 task PX4_test_MUORB with tid 2097654 INFO [muorb] SLPI: Creating pthread test_MUORB INFO [muorb] succesfully did UNSUBSCRIBE_TEST_TYPE INFO [muorb] SLPI: Successfully created px4 task PX4_test_MUORB with tid 2097653 INFO [muorb] muorb test passed ______ __ __ ___ | ___ \ \ \ / / / | | |_/ / \ V / / /| | | __/ / \ / /_| | | | / /^\ \ \___ | \_| \/ \/ |_/ px4 starting. INFO [muorb] SLPI: Advertising remote topic log_message INFO [px4] startup script: /bin/sh /usr/bin/voxl-px4-start 0 INFO [parameters] Starting param sync THREAD ************************* AIRFRAME: MULTICOPTER GPS: NONE RC: EXTERNAL ESC: VOXL2_IO_PWM_ESC POWER MANAGER: NONE AIRSPEED SENSOR: NONE DISTANCE SENSOR: NONE OSD: DISABLE ARTIFACT_MODE: DISABLE EXTRA STEPS: ************************* Running on M0054 INFO [muorb] SLPI: Starting param sync THREAD INFO [muorb] SLPI: before starting the qshell_entry task INFO [muorb] SLPI: Creating pthread qshell INFO [muorb] SLPI: Successfully created px4 task PX4_qshell with tid 2097652 INFO [muorb] SLPI: qshell entry..... INFO [muorb] SLPI: after starting the qshell_entry task INFO [muorb] SLPI: Init app map initialized INFO [param] selected parameter default file /data/px4/param/parameters INFO [muorb] SLPI: Marking DeviceNode(parameter_client_reset_request) as advertised in process_remote_topic INFO [uORB] Marking DeviceNode(parameter_client_reset_response) as advertised in process_remote_topic INFO [muorb] SLPI: Advertising remote topic parameter_update INFO [muorb] SLPI: Marking DeviceNode(parameter_client_set_value_request) as advertised in process_remote_to INFO [uORB] Marking DeviceNode(parameter_server_set_used_request) as advertised in process_remote_topic INFO [muorb] SLPI: Marking DeviceNode(parameter_server_set_used_response) as advertised in process_remote_to INFO [uORB] Marking DeviceNode(parameter_client_set_value_response) as advertised in process_remote_topic INFO [parameters] BSON document size 3005 bytes, decoded 3005 bytes (INT32:35, FLOAT:103) INFO [logger] logger started (mode=all) Starting IMU driver with no rotation INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: icm42688p start -s INFO [muorb] SLPI: arg0 = 'icm42688p' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: arg2 = '-s' INFO [muorb] SLPI: *** SPI Device ID 0x26000a 2490378 INFO [uORB] Advertising remote topic sensor_accel INFO [uORB] Advertising remote topic sensor_gyro INFO [qshell] Send cmd: 'icm42688p start -s' INFO [muorb] SLPI: ICM42688P::probe successful! INFO [muorb] SLPI: on SPI bus 1 INFO [muorb] SLPI: icm42688p #0 on SPI bus 1 INFO [muorb] SLPI: INFO [muorb] SLPI: >>> ICM42688P this: b25ffd38 INFO [muorb] SLPI: Ok executing command: icm42688p start -s INFO [uORB] Advertising remote topic qshell_retval INFO [muorb] SLPI: >>> ICM42688P this: b25ffd38 INFO [qshell] qshell return value timestamp: 90293111, local time: 90297992 INFO [muorb] SLPI: >>> ICM42688P this: b25ffd38 INFO [muorb] SLPI: Register interrupt b214ec48 e61f670c b25ffd38 INFO [uORB] Advertising remote topic sensor_gyro_fifo INFO [uORB] Advertising remote topic sensor_accel_fifo INFO [uORB] Advertising remote topic imu_server INFO [qshell] Send cmd: 'icp101xx start -I -b 5' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: icp101xx start -I -b 5 INFO [muorb] SLPI: arg0 = 'icp101xx' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: arg2 = '-I' INFO [muorb] SLPI: arg3 = '-b' INFO [muorb] SLPI: arg4 = '5' INFO [muorb] SLPI: *** I2C Device ID 0xb76329 12018473 INFO [muorb] SLPI: Set up I2C bus mutex for bus 5 INFO [muorb] SLPI: icp101xx #0 on I2C bus 5 INFO [muorb] SLPI: address 0x63 INFO [muorb] SLPI: INFO [muorb] SLPI: Ok executing command: icp101xx start -I -b 5 INFO [qshell] qshell return value timestamp: 90326507, local time: 90328104 Looking for qmc5883l magnetometer INFO [qshell] Send cmd: 'qmc5883l start -R 10 -X -b 1' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: qmc5883l start -R 10 -X -b 1 INFO [muorb] SLPI: arg0 = 'qmc5883l' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: arg2 = '-R' INFO [muorb] SLPI: arg3 = '10' INFO [muorb] SLPI: arg4 = '-X' INFO [muorb] SLPI: arg5 = '-b' INFO [muorb] SLPI: arg6 = '1' INFO [muorb] SLPI: *** I2C Device ID 0x80d09 527625 INFO [muorb] SLPI: Set up I2C bus mutex for bus 1 ERROR [muorb] SLPI: i2c probe failed INFO [muorb] SLPI: PX4_qshell: no instance started (no device on bus?) ERROR [muorb] SLPI: Failed to execute command: qmc5883l start -R 10 -X -b 1 INFO [qshell] cmd returned with: -1 INFO [qshell] qshell return value timestamp: 90361561, local time: 90365409 ERROR [qshell] Command failed Looking for ist8310 magnetometer INFO [qshell] Send cmd: 'ist8310 start -R 10 -X -b 1' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: ist8310 start -R 10 -X -b 1 INFO [muorb] SLPI: arg0 = 'ist8310' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: arg2 = '-R' INFO [muorb] SLPI: arg3 = '10' INFO [muorb] SLPI: arg4 = '-X' INFO [muorb] SLPI: arg5 = '-b' INFO [muorb] SLPI: arg6 = '1' INFO [muorb] SLPI: *** I2C Device ID 0x60e09 396809 INFO [muorb] SLPI: Set up I2C bus mutex for bus 1 ERROR [muorb] SLPI: i2c probe failed INFO [muorb] SLPI: PX4_qshell: no instance started (no device on bus?) ERROR [muorb] SLPI: Failed to execute command: ist8310 start -R 10 -X -b 1 INFO [qshell] cmd returned with: -1 INFO [qshell] qshell return value timestamp: 90397222, local time: 90398475 ERROR [qshell] Command failed Looking for ncp5623c RGB LED INFO [muorb] SLPI: >>> ICM42688P this: b25ffd38 INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: rgbled_ncp5623c start -X -b 1 -f 400 -a 56 INFO [muorb] SLPI: arg0 = 'rgbled_ncp5623c' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: arg2 = '-X' INFO [muorb] SLPI: arg3 = '-b' INFO [muorb] SLPI: arg4 = '1' INFO [muorb] SLPI: arg5 = '-f' INFO [muorb] SLPI: arg6 = '400' INFO [muorb] SLPI: arg7 = '-a' INFO [muorb] SLPI: arg8 = '56' INFO [qshell] Send cmd: 'rgbled_ncp5623c start -X -b 1 -f 400 -a 56' INFO [muorb] SLPI: *** I2C Device ID 0x7b3809 8075273 INFO [muorb] SLPI: Set up I2C bus mutex for bus 1 INFO [muorb] SLPI: Set i2c address 0x38, fd 3 ERROR [muorb] SLPI: i2c probe failed INFO [muorb] SLPI: PX4_qshell: no instance started (no device on bus?) ERROR [muorb] SLPI: Failed to execute command: rgbled_ncp5623c start -X -b 1 -f 400 -a 56 INFO [qshell] cmd returned with: -1 INFO [qshell] qshell return value timestamp: 90438912, local time: 90440578 ERROR [qshell] Command failed Starting VOXL IO for PWM ESC without SBUS RC INFO [qshell] Send cmd: 'voxl2_io start -e' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: voxl2_io start -e INFO [muorb] SLPI: arg0 = 'voxl2_io' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: arg2 = '-e' INFO [uORB] Advertising remote topic actuator_outputs INFO [muorb] SLPI: VOXL2_IO: M0065 using external RC INFO [muorb] SLPI: VOXL2_IO: Driver starting INFO [uORB] Advertising remote topic sensor_baro INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_BAUD : 921600 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC1 : 101 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC2 : 102 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC3 : 103 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC4 : 104 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC5 : 0 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC6 : 0 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC7 : 0 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_FUNC8 : 0 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_DIS : 1000 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_MIN : 1100 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_MAX : 2000 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_CMIN : 1050 INFO [muorb] SLPI: VOXL2_IO: Params: VOXL2_IO_CMAX : 2000 INFO [muorb] SLPI: VOXL2_IO: INFO [muorb] SLPI: VOXL2_IO: Opening UART device 2, baud rate 921600 INFO [muorb] SLPI: VOXL2_IO: Successfully opened UART device INFO [muorb] SLPI: VOXL2_IO: Detecting M0065 board... ERROR [muorb] SLPI: VOXL2_IO: Board version info response timeout (2 retries left) ERROR [muorb] SLPI: VOXL2_IO: Board version info response timeout (1 retries left) ERROR [muorb] SLPI: VOXL2_IO: Board version info response timeout (0 retries left) ERROR [muorb] SLPI: VOXL2_IO: Could not detect the board ERROR [muorb] SLPI: VOXL2_IO: Driver initialization failed. Exiting INFO [muorb] SLPI: VOXL2_IO: Closing uart port ERROR [muorb] SLPI: Task start failed (-1) ERROR [muorb] SLPI: Failed to execute command: voxl2_io start -e INFO [qshell] cmd returned with: -1 INFO [qshell] qshell return value timestamp: 90708410, local time: 90709998 ERROR [qshell] Command failed INFO [qshell] Send cmd: 'sensors start' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: sensors start INFO [muorb] SLPI: arg0 = 'sensors' INFO [muorb] SLPI: arg1 = 'start' INFO [uORB] Advertising remote topic sensor_selection INFO [uORB] Advertising remote topic sensors_status_imu INFO [uORB] Advertising remote topic vehicle_acceleration INFO [uORB] Advertising remote topic vehicle_angular_velocity INFO [uORB] Advertising remote topic sensor_combined INFO [uORB] Advertising remote topic vehicle_air_data INFO [uORB] Advertising remote topic vehicle_gps_position INFO [uORB] Advertising remote topic vehicle_imu INFO [uORB] Advertising remote topic vehicle_imu_status INFO [muorb] SLPI: Ok executing command: sensors start INFO [qshell] qshell return value timestamp: 90880763, local time: 90883241 INFO [qshell] Send cmd: 'ekf2 start' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: ekf2 start INFO [muorb] SLPI: arg0 = 'ekf2' INFO [muorb] SLPI: arg1 = 'start' INFO [uORB] Advertising remote topic sensors_status_baro INFO [uORB] Advertising remote topic vehicle_attitude INFO [uORB] Advertising remote topic vehicle_local_position INFO [uORB] Advertising remote topic estimator_event_flags INFO [uORB] Advertising remote topic estimator_innovation_test_ratios INFO [uORB] Advertising remote topic estimator_innovation_variances INFO [uORB] Advertising remote topic estimator_innovations INFO [uORB] Advertising remote topic estimator_sensor_bias INFO [uORB] Advertising remote topic estimator_states INFO [uORB] Advertising remote topic estimator_status_flags INFO [uORB] Advertising remote topic estimator_status INFO [muorb] SLPI: Ok executing command: ekf2 start INFO [uORB] Advertising remote topic ekf2_timestamps INFO [qshell] qshell return value timestamp: 91260100, local time: 91262420 INFO [uORB] Advertising remote topic vehicle_odometry INFO [uORB] Advertising remote topic estimator_aid_src_baro_hgt INFO [uORB] Advertising remote topic estimator_aid_src_fake_pos INFO [uORB] Advertising remote topic estimator_aid_src_fake_hgt INFO [uORB] Advertising remote topic estimator_aid_src_gravity INFO [qshell] Send cmd: 'mc_pos_control start' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: mc_pos_control start INFO [muorb] SLPI: arg0 = 'mc_pos_control' INFO [muorb] SLPI: arg1 = 'start' INFO [uORB] Advertising remote topic takeoff_status INFO [muorb] SLPI: Ok executing command: mc_pos_control start INFO [qshell] qshell return value timestamp: 91371052, local time: 91372794 INFO [qshell] Send cmd: 'mc_att_control start' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: mc_att_control start INFO [muorb] SLPI: arg0 = 'mc_att_control' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: Ok executing command: mc_att_control start INFO [qshell] qshell return value timestamp: 91413593, local time: 91416091 INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: mc_rate_control start INFO [muorb] SLPI: arg0 = 'mc_rate_control' INFO [muorb] SLPI: arg1 = 'start' INFO [qshell] Send cmd: 'mc_rate_control start' INFO [uORB] Advertising remote topic rate_ctrl_status INFO [muorb] SLPI: Ok executing command: mc_rate_control start INFO [qshell] qshell return value timestamp: 91539655, local time: 91542694 INFO [qshell] Send cmd: 'mc_hover_thrust_estimator start' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: mc_hover_thrust_estimator start INFO [muorb] SLPI: arg0 = 'mc_hover_thrust_estimator' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: Ok executing command: mc_hover_thrust_estimator start INFO [qshell] qshell return value timestamp: 91585850, local time: 91587809 INFO [qshell] Send cmd: 'mc_autotune_attitude_control start' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: mc_autotune_attitude_control start INFO [muorb] SLPI: arg0 = 'mc_autotune_attitude_control' INFO [muorb] SLPI: arg1 = 'start' INFO [uORB] Advertising remote topic autotune_attitude_control_status INFO [muorb] SLPI: Ok executing command: mc_autotune_attitude_control start INFO [qshell] qshell return value timestamp: 91631578, local time: 91634001 INFO [qshell] Send cmd: 'land_detector start multicopter' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: land_detector start multicopter INFO [muorb] SLPI: arg0 = 'land_detector' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: arg2 = 'multicopter' INFO [muorb] SLPI: Ok executing command: land_detector start multicopter INFO [qshell] qshell return value timestamp: 91677358, local time: 91679935 INFO [uORB] Advertising remote topic vehicle_land_detected INFO [qshell] Send cmd: 'manual_control start' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: manual_control start INFO [muorb] SLPI: arg0 = 'manual_control' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: Ok executing command: manual_control start INFO [qshell] qshell return value timestamp: 91741340, local time: 91744122 INFO [uORB] Advertising remote topic manual_control_setpoint INFO [qshell] Send cmd: 'control_allocator start' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: control_allocator start INFO [muorb] SLPI: arg0 = 'control_allocator' INFO [muorb] SLPI: arg1 = 'start' INFO [uORB] Advertising remote topic control_allocator_status INFO [uORB] Marking DeviceNode(control_allocator_status) as advertised in process_remote_topic INFO [uORB] Advertising remote topic actuator_motors INFO [uORB] Advertising remote topic actuator_servos INFO [uORB] Advertising remote topic actuator_servos_trim INFO [muorb] SLPI: Ok executing command: control_allocator start INFO [qshell] qshell return value timestamp: 92109870, local time: 92111836 INFO [qshell] Send cmd: 'load_mon start' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: load_mon start INFO [muorb] SLPI: arg0 = 'load_mon' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: Ok executing command: load_mon start INFO [uORB] Advertising remote topic cpuload INFO [qshell] qshell return value timestamp: 92145480, local time: 92148536 INFO [qshell] Send cmd: 'commander start' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: commander start INFO [muorb] SLPI: arg0 = 'commander' INFO [muorb] SLPI: arg1 = 'start' INFO [muorb] SLPI: Creating pthread commander INFO [muorb] SLPI: Successfully created px4 task PX4_commander with tid 2097641 INFO [uORB] Advertising remote topic led_control INFO [muorb] SLPI: LED: open /dev/led0 failed (22) INFO [uORB] Advertising remote topic tune_control INFO [muorb] SLPI: Ok executing command: commander start INFO [qshell] qshell return value timestamp: 92586069, local time: 92586898 INFO [uORB] Advertising remote topic event INFO [uORB] Advertising remote topic health_report INFO [uORB] Advertising remote topic failsafe_flags INFO [uORB] Advertising remote topic actuator_armed INFO [uORB] Advertising remote topic vehicle_control_mode INFO [uORB] Advertising remote topic vehicle_thrust_setpoint INFO [uORB] Advertising remote topic vehicle_torque_setpoint INFO [uORB] Advertising remote topic vehicle_status INFO [uORB] Advertising remote topic failure_detector_status INFO [uORB] Advertising remote topic vehicle_attitude_setpoint INFO [uORB] Advertising remote topic vehicle_rates_setpoint INFO [qshell] Send cmd: 'flight_mode_manager start' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: flight_mode_manager start INFO [muorb] SLPI: arg0 = 'flight_mode_manager' INFO [muorb] SLPI: arg1 = 'start' INFO [uORB] Advertising remote topic vehicle_command INFO [muorb] SLPI: Ok executing command: flight_mode_manager start INFO [qshell] qshell return value timestamp: 92700683, local time: 92703821 INFO [dataman] data manager file '/data/px4/dataman' size is 7866640 bytes INFO [muorb] SLPI: Advertising remote topic transponder_report INFO [muorb] SLPI: Advertising remote topic rtl_time_estimate INFO [muorb] SLPI: Advertising remote topic position_setpoint_triplet INFO [modal_io_bridge] Modal IO Bridge driver starting INFO [mavlink] mode: Onboard, data rate: 100000 B/s on udp port 14556 remote port 14557 INFO [muorb] SLPI: Advertising remote topic telemetry_status INFO [mavlink] partner IP: 127.0.0.1 INFO [muorb] SLPI: Advertising remote topic vehicle_visual_odometry INFO [muorb] SLPI: Advertising remote topic offboard_control_mode INFO [muorb] SLPI: Advertising remote topic obstacle_distance INFO [uORB] Advertising remote topic estimator_aid_src_ev_hgt INFO [uORB] Advertising remote topic estimator_aid_src_ev_pos INFO [uORB] Advertising remote topic estimator_aid_src_ev_vel INFO [uORB] Advertising remote topic estimator_aid_src_ev_yaw INFO [muorb] SLPI: Advertising remote topic timesync_status INFO [muorb] SLPI: Marking DeviceNode(vehicle_command_ack) as advertised in process_remote_topic INFO [mavlink] mode: Normal, data rate: 100000 B/s on udp port 14558 remote port 14559 INFO [muorb] SLPI: Marking DeviceNode(telemetry_status) as advertised in process_remote_topic INFO [uORB] Advertising remote topic actuator_controls_status_0 INFO [mavlink] MAVLink only on localhost (set param MAV_{i}_BROADCAST = 1 to enable network) INFO [px4] Startup script returned successfully
APPENDED TO PX4 STARTUP LOG UPON STARTING VOXL2-IO (see separate 'VOXL2-IO LOG' that follows)
INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: voxl2-io start ERROR [muorb] SLPI: Command voxl2-io not found ERROR [muorb] SLPI: Failed to execute command: voxl2-io start And the VOXL2-IO LOG: voxl2:/$ px4-qshell voxl2-io start INFO [qshell] Send cmd: 'voxl2-io start' INFO [qshell] cmd returned with: 1 INFO [qshell] qshell return value timestamp: 300755910, local time: 300757780 ERROR [qshell] Command failed
OBSERVATION #2
When running the Spin utility in voxl-2-io (See 'SPIN LOG' that follows), we expect all motors to spin (is this wrong?). Instead, Motor1 is driven at ~1100 μs and all others at only ~1000 μs. We have measured this on an oscilloscope directly from J1 on VOXL2 IO Board, and have observed the same from Maxon EPOS ESC utility:
Observed on ESC1:
Frequency actual value = 400 Hz
Pulse width actual value = 1101 μs
Throttle level actual value = 3%
Target Velocity: 217 RPM
Velocity Demand Value (Output): 300 RPM
Velocity Actual Value Avg (Output): 300 RPMObserved on ESC2:
Frequency actual value = 400 Hz
Pulse width actual value = 999 μs
Throttle level actual value = 0%
Target Velocity: 0 RPM
Velocity Demand Value (Output): 0 RPM
Velocity Actual Value Avg (Output): 0 RPMObserved on ESC3:
Frequency actual value = 400 Hz
Pulse width actual value = 999 μs
Throttle level actual value = 0%
Target Velocity: 0 RPM
Velocity Demand Value (Output): 0 RPM
Velocity Actual Value Avg (Output): 0 RPMObserved on ESC4:
Frequency actual value = 400 Hz
Pulse width actual value = 999 μs
Throttle level actual value = 0%
Target Velocity: 0 RPM
Velocity Demand Value (Output): 0 RPM
Velocity Actual Value Avg (Output): 0 RPMAnd, the SPIN LOG:
enabling bridge detected voxl-px4 is enabled Removed /etc/systemd/system/multi-user.target.wants/voxl-px4.service. detected voxl-px4 is running, stopping it now bridge enabled [INFO] Detected VOXL2 IO on default port (2). Detected Python version : 3.6.9 (default, Mar 10 2023, 16:46:00) [GCC 8.4.0] Found voxl-esc tools bin version: 1.9 INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 2000000 Sending library name request: libslpi_qrb5165_io.so Sending initialization request INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 250000 INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 921600 INFO: ESC(s) detected on port: /dev/slpi-uart-2, baud rate: 921600 ID : 0 Board : version 35: ModalAi I/O Expander (M0065) UID : 0x000000000000000000000000 Firmware : version 1, hash Bootloader : version 0, hash --------------------- WARNING: skipping user prompt to start the test due to override [0.019] (0) RPM: 0, PWR: 0, VOLTAGE: 0.000V, TEMPERATURE: 0.00C, CURRENT: 0.000A [0.039] (0) RPM: 0, PWR: 0, VOLTAGE: 0.000V, TEMPERATURE: 0.00C, CURRENT: 0.000A [0.059] (0) RPM: 0, PWR: 0, VOLTAGE: 0.000V, TEMPERATURE: 0.00C, CURRENT: 0.000A [0.079] (0) RPM: 0, PWR: 0, VOLTAGE: 0.000V, TEMPERATURE: 0.00C, CURRENT: 0.000A --- CUT FOR BREVITY --- [4.940] (0) RPM: 0, PWR: 0, VOLTAGE: 0.000V, TEMPERATURE: 0.00C, CURRENT: 0.000A [4.960] (0) RPM: 0, PWR: 0, VOLTAGE: 0.000V, TEMPERATURE: 0.00C, CURRENT: 0.000A [4.980] (0) RPM: 0, PWR: 0, VOLTAGE: 0.000V, TEMPERATURE: 0.00C, CURRENT: 0.000A [5.000] (0) RPM: 0, PWR: 0, VOLTAGE: 0.000V, TEMPERATURE: 0.00C, CURRENT: 0.000A Finished! [4.999678] TX=2508, RX=4 packets, RX CRC ERRORS=0 Average RPMs: 0.00 0.00 0.00 0.00 Average RPM deviation between ESCs : 0.00 Detected Python version : 3.6.9 (default, Mar 10 2023, 16:46:00) [GCC 8.4.0] Found voxl-esc tools bin version: 1.9 INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 2000000 Sending library name request: libslpi_qrb5165_io.so Sending initialization request INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 250000 INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 921600 INFO: ESC(s) detected on port: /dev/slpi-uart-2, baud rate: 921600 ID : 0 Board : version 35: ModalAi I/O Expander (M0065) UID : 0x000000000000000000000000 Firmware : version 1, hash Bootloader : version 0, hash --------------------- ERROR: Specified ESC ID not found--exiting. Detected Python version : 3.6.9 (default, Mar 10 2023, 16:46:00) [GCC 8.4.0] Found voxl-esc tools bin version: 1.9 INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 2000000 Sending library name request: libslpi_qrb5165_io.so Sending initialization request INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 250000 INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 921600 INFO: ESC(s) detected on port: /dev/slpi-uart-2, baud rate: 921600 ID : 0 Board : version 35: ModalAi I/O Expander (M0065) UID : 0x000000000000000000000000 Firmware : version 1, hash Bootloader : version 0, hash --------------------- ERROR: Specified ESC ID not found--exiting. Detected Python version : 3.6.9 (default, Mar 10 2023, 16:46:00) [GCC 8.4.0] Found voxl-esc tools bin version: 1.9 INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 2000000 Sending library name request: libslpi_qrb5165_io.so Sending initialization request INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 250000 INFO: Scanning for ESC firmware: /dev/slpi-uart-2, baud: 921600 INFO: ESC(s) detected on port: /dev/slpi-uart-2, baud rate: 921600 ID : 0 Board : version 35: ModalAi I/O Expander (M0065) UID : 0x000000000000000000000000 Firmware : version 1, hash Bootloader : version 0, hash --------------------- ERROR: Specified ESC ID not found--exiting. disabling bridge re-enabling voxl-px4 Created symlink /etc/systemd/system/multi-user.target.wants/voxl-px4.service → /etc/systemd/system/voxl-px4.service. restarting voxl-px4 bridge disabled DONE