VOXL 2 IO - 8 PWM channels & Futaba (SBUS) Rx
-
@konwersa , I am sorry for not getting back to you sooner. DSHOT support in M0065 is still a possibility but I do not have a specific timeline for implementing this, also considering that you have a very specific use case, which would need a custom firmware because M0065 does not support arbitrary configuration of the 8 IO pins due to the fact that the hardware timers are shared between pins and only certain combinations are possible.
I did double check that the hardware can support 5x dshot, 2x pwm, and 1x gpio (but not 5x dshot and 3x pwm due to a timer conflict), but it would be a very specific pin assignment (which is not really a problem as long as you know what it is).
A much more common use case would be 4 dshot + 4 pwm, which would be much easier for us to support. This is what we have prototyped, but the feature has not marked for a release. If there is enough demand from the users, it would make the decision easier, otherwise it is hard to prioritize it..
If you have other options for your dshot application, please consider pursuing those, since I cannot give you a clear timeline for the feature you requested.
Alex
-
@Alex-Kushleyev Hi, I am developing a project that would require the 4 dshot outputs on the voxl2 IO expander. Is this somehting you would be able to help with? Currently at a standstill on trying to figure out what hardware to use but if the voxl2 can support the dshot outputs that would make this ALOT easier design wise.
-
Hi @Gary-Holmgren,
We do have experimental firmware for M0065 that is capable of outputting 4 DSHOT600 signals and reading back UART telemetry (not dshot telemetry, which would come back on the 4 pwm signals.. may be able to do implement dshot telemetry, but who knows if we ever get to it ).
I am actually about to work on some dshot-related items and was going to use M0065 to generate dshot signals for testing another device, so this might be good timing.
The current state of the firmware is that it has been tested on the bench (very little) but i would definitely not fly with it before putting in at least several hours of continuous bench testing with different inputs.
Nice thing is that
voxl-esc
tools can be used to test M0065 in dshot mode, so test scripts can be written to bench test the firmware to ensure proper operation. You can also use the PX4 driver in VOLX2 with slight modifications for flight (eventually).If you would like to test this firmware, i have to warn you that it will come with NO GUARANTEES because it has not been through any rigorous testing. However, you should be able to perform sufficient testing, if you are willing and I can help with the software tools for testing. I can't say for sure that this feature will be ever officially supported, but the test firmware will be available and I will try to address issues if they come up. I should be able to share test firmware in about a week or so, when i go back to working on it and get a chance to test.
Alex
-
@Alex-Kushleyev This is good news! So for the 4 dshot channels I wouldn't need it for flight just to drive bldc motors bidirectionally. I am under the impression the FCv2 also has dshot capability? However when i try to select dshot in the actuators tab in QGC for FCv2 and reboot the actuators have no output. Works fine with PWM however but there is no bidirectionaity there. I am wondering what might be the best option since there is no real risk of crashing.
Would you be able to clarify a little more on how I can implement voxl-esc tools to set the dshot outputs on the M0065?
Really appreciate the quick response!
-
@Gary-Holmgren , I have not used dshot on flight core (v1 or v2), but based on the following, i believe at least it should be working on Flight Core V1: https://docs.modalai.com/flight-core-pwm-esc-calibration/ (there is a mention of dshot and I am pretty sure we had that working). Not sure about V2, but i will ask. If you have a Flight Core V1, maybe worth giving it a shot.
If there is no risk of crashing a drone, that certainly makes things a bit easier and you should be able to get to testing much sooner.
I will provide more details about
voxl-esc
integration, but just to summarize, it will be very similar to sending RPM or power commands usingvoxl-esc
tools (which you may have already done with ModalAI ESCs), and M0065 will take the 4 commands sent out byvoxl-esc
and convert them to dshot outputs. At the low level, M0065 will basically continuously receive UART packets of a certain type that contains 4x 11-bit throttle values and some other flags and generate the Dshot signal using PWM + DMA. You should be able to send that control packet to M0065 from any device that has UART, butvoxl-esc
python tools make it a bit easier to get started (and you can use these python tools either on voxl2 or a linux PC). I like to do my experimental testing using a fast Linux PC to reduce any latency with UART communication.What device are you actually planning to use for calculating the dshot values to be sent to the motors? Is it VOXL2 or something else (does not matter, just curious).
Alex
-
@Alex-Kushleyev Ahh I only have the FCv2. I have a quick linux machine to work with and planned to do this work either on that or the voxl2. I guess my ultimate goal is to have the ability for PX4 to use esc's in the actuators tab bidirectionally. I am wondering how I would make the change to have the M0064 output dshot permanently after verifying test commands so px4 can control the motors to operate in two directions using my 4in1 dshot supported ESC.
I seen an alternative solution here where two voxl-esc's can be wired in parallel together but just using separate ID's to get 8 channels. Wold these ESC's also support bi-directional operation in PX4? It would be a decent cost to implement these so I am hoping my current setup can work but if it proves too difficult to get working I might consider if these are more plug and play.
-
@Gary-Holmgren , can you help me understand your set up better? Are you already using a ModalAI esc with 4 outputs and want to add another 4? Is the reason for going to dshot due to the fact that ModalAI esc does not support 8 outputs?
By the way, ModalAI esc does have support for changing direction in real time, but i am not sure if PX4 has this ability to command negative rpms (mainly, the mixer would need to do that).
Alex
-
@Alex-Kushleyev Yes of course, I am trying to experiment with ground vehicles but in order for proper operation the motors need to reverse direction for forward and reverse driving. I dont have a modalai in my setup. I wanted to have 4 channels of dshot so my motors could allow for forward and reverse operation, and since the other 4 PWM are still available on the M0064, I could use them for other servo/actuators. I am trying to understand how others may have configured the UGV or rover options using voxl2/ESC combos but have had no luck in having a working setup.
-
@Alex-Kushleyev Im starting to think the problem may be my 4in1 ESC I have chosen to power the motors as its meant for drone motors not drive motors. Although I dont see why it wouldn't work since turtlemode allows you to reverse motor direction on demand. I guess I dont know what PX4 expects for an ESC of that vehicle type as there is no documentation I could find on what ESC to use.
-
Is your ground vehicle a direct drive BLDC (or do you have a gear box?). Direct drive motors usually require FOC control because wheels typically spin much slower than drone propellers and you need frequent start / stop and high torque / low speed operation.
Do you have an ESC that uses FOC control with dshot input?
Non-FOC control would work if you have a gearbox, but there may still be some jittering at very low RPM.
Alex
-
@Alex-Kushleyev Yes it does have a gearbox, and good to know I considered using FOC for avoiding it but I needed quite a bit of torque.
This is the ESC im currently using as it supports PWM/dshot/etc but its just a basic 4in1 meant for flight so I am not sure if I can confugure it to otput bidirectionally ex: 1500uS is zero 1050 is full reverse and 1950 is full forward.
-
@Gary-Holmgren, do you have any ModalAI ESCs? If so, which one? I can help you test it with a geared BLDC motor.
Alex
-
@Alex-Kushleyev Unfortunately I do not have one, but if that is the only solution here I would think about getting one.
-
@Gary-Holmgren , since you already have the IO board M0065 and the Tmotor ESC, you can try the M0065 approach. I will follow up in a few days.
Meanwhile please make sure that you can communicate to VOXL IO (M0065) board from your Linux PC or VOXL2 using
voxl-esc
tools. You should be able to runvoxl-esc-scan.py
and the board will be detected (if using VOXL2, you can plug M0065 into the 4-pin ESC port) J18 : https://docs.modalai.com/voxl2-connectors/#j18-uart-escvoxl-esc tools: https://gitlab.com/voxl-public/voxl-sdk/utilities/voxl-esc (they are also shipped with the SDK, you can find it in /usr/share/modalai/voxl-esc-tools/)
Alex
-
I was just thinking that another option for you is to get a standard reversible ESC that is designed for RC race cars - those ESCs support reversing. I am assuming 1500us pwm signal is neutral , 2000us full forward, 1000us full reverse.
You would need 4 of those and should be able to use PX4 standard PWM output.
It is probably best to use ESCs designed for RC cars, so they are tuned for robust start-up, etc. Those ESCs also often come with their own fans for cooling, since you don't have propellers blowing air over the ESC.
For example, you can even buy a motor with integrated ESC : https://www.losi.com/product/tazer-twin-2-in1-3000kv-brushless-motor-45a-esc-combo-2s-ec3/DYNS1450.html . I have not tried it, but i do have a race car with a Tazer ESC, which is reversible and is controlled by a standard Spektrum receiver.
Alex