diff --git a/boards/modalai/voxl2-slpi/src/CMakeLists.txt b/boards/modalai/voxl2-slpi/src/CMakeLists.txt index 4675d2e77a..21a1e6090e 100644 --- a/boards/modalai/voxl2-slpi/src/CMakeLists.txt +++ b/boards/modalai/voxl2-slpi/src/CMakeLists.txt @@ -46,7 +46,7 @@ add_library(drivers_board # Add custom drivers for SLPI add_subdirectory(${PX4_BOARD_DIR}/src/drivers/rc_controller) add_subdirectory(${PX4_BOARD_DIR}/src/drivers/mavlink_rc_in) -# add_subdirectory(${PX4_BOARD_DIR}/src/drivers/spektrum_rc) +add_subdirectory(${PX4_BOARD_DIR}/src/drivers/spektrum_rc) add_subdirectory(${PX4_BOARD_DIR}/src/drivers/ghst_rc) add_subdirectory(${PX4_BOARD_DIR}/src/drivers/dsp_hitl) add_subdirectory(${PX4_BOARD_DIR}/src/drivers/dsp_sbus) diff --git a/boards/modalai/voxl2-slpi/src/drivers/spektrum_rc/spektrum_rc.cpp b/boards/modalai/voxl2-slpi/src/drivers/spektrum_rc/spektrum_rc.cpp index 0cf350edeb..18067b1756 100644 --- a/boards/modalai/voxl2-slpi/src/drivers/spektrum_rc/spektrum_rc.cpp +++ b/boards/modalai/voxl2-slpi/src/drivers/spektrum_rc/spektrum_rc.cpp @@ -110,16 +110,18 @@ void task_main(int argc, char *argv[]) } } - int uart_fd = dsm_init(device_path); + int uart_fd = qurt_uart_open(device_path, 115200); if (uart_fd < 0) { - PX4_ERR("dsm init failed"); + PX4_ERR("uart open failed"); return; } else if (verbose) { - PX4_INFO("Spektrum RC: dsm_init succeeded"); + PX4_INFO("Spektrum RC: uart open succeeded"); } + dsm_proto_init(); + orb_advert_t rc_pub = nullptr; // Use a buffer size of the double of the minimum, just to be safe. diff --git a/src/lib/rc/dsm.cpp b/src/lib/rc/dsm.cpp index d1b78a99bf..257307a620 100644 --- a/src/lib/rc/dsm.cpp +++ b/src/lib/rc/dsm.cpp @@ -481,6 +481,9 @@ void dsm_proto_init() channel_buffer[i].last_seen = 0; channel_buffer[i].value = 0; } + + /* reset the format detector */ + dsm_guess_format(true); } /**