VOXL 2 IO Board troubleshooting - Driver will not start
-
can you start px4 in foreground mode using
systemctl stop voxl-px4 #stop the voxl-px4 service voxl-px4 -d #wait for px4 to start and finish printing messages qshell voxl2_io start
You should get the printout from the voxl2_io module. when running commands using
px4-qshell
the messages from the DSP (SLPI) are not printed. -
@Jeremy-Frederick Alex, thanks for the quick response. It looks like PX4 is still expecting to find the IO board on port 2, where do I need to update the uart number? Originally I thought updating the UART number in the flashing bash script was all that is necessary but now I see why that was an incorrect assumption.
-
@Jeremy-Frederick All of the start commands are in the file
/usr/bin/voxl-px4-start
. The/etc/modalai/voxl-px4.conf
file provides the configuration for how those start commands are called. In your case, if you want to use M0065 for RC input only, then set RC to M0065_SBUS and it will callqshell voxl2_io start -d -p 7
-
@Eric-Katzfey I'm not looking to run RC through the IO board, I'm using external RC commands for control. I'm looking to utilize the PWM outputs on the board to control a servo for a dropper mechanism. I made the change and am commanding the start of the voxl2_io driver successfully. As of now I am still unable to drive a servo through the QGC actuators tab, all the correct parameters have been loaded.
-
Hi @Jeremy-Frederick , we are moving towards using updated M0065 firmware and PX4 driver which has some improvements as well as easier to debug. Can you please check out this thread : https://forum.modalai.com/topic/3265/additional-voxl-2-pwm-ouputs
You will need to update M0065 firmware and use px4 build from a branch (either build it yourself or i provided a link to deb in that thread).
When you update the M0065 firmware, if you also have the ESC plugged in, just unplug the ESC UART connection in order to avoid any confusion, because the M0065 and ESC use the same tools / protocol to update the firmware. You will not be able to upload wrong firmware to any of these boards, but unplugging the ESC uart will just make things simpler, so that the update tools can autodetect the port.
After you install the updates, please check output of
voxl-px4 -d | grep VOXL2_IO
, which will print a bunch of voxl2 io driver initialization info. then make sure your channel mapping is set up correctly (specifically,VOXL2_IO_FUNC*
params and then you can test using QGC.You should see output that looks something like this, which is set up to map motors 1-4 to pwm, but you may need to change it for your aux functionality. There is no change in how you start the driver (you can still provide the port number, etc)
INFO [muorb] SLPI: VOXL2_IO: Driver starting 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... 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 INFO [muorb] SLPI: VOXL2_IO: Driver initialization succeeded
-
@Alex-Kushleyev I appreciate it, all is working now
-
Hello @Jeremy-Frederick
I'm just trying to perform the same operation. What servo have you used? How did you make the connection? I have doubts about the 5V power supply for the servos and the 3.3V signal from the IO board.Thank you!
-
@valvarez Any PWM based servo should work, we're using 5g servos with very little torque capability and haven't seen any issues with the power supply capabilities of the IO board in this regard. I connected the PWM Signal to output 1 on the IO board and the 5V and G of the same port. Has been working consistently through QGC.
-
Hi @Jeremy-Frederick @valvarez
ModalAI has not designed any power supply reference voltages on JST connectors as a REF or Power Tap Off as capable of powering servos.
If you wish to power micro-servos then please do so at your own risk. However, you may likely damage your ModalAI hardware since we do not have any back EMF/Stall/Load dump protection on any of our JST connectors.Servos need to have their independent supply from your system battery.
Apologies we have not made that clearer in our Tech Docs.Thanks!
-
@Vinny Appreciate the heads up