It's time for an update.
There has been some significant progress on the software including two major new features. The v3.1 hardware that I wrote about in the previous post has been further tested, this time not only by myself, but by several early developers. We managed to find only one serious hardware bug so far, which is fixed by replacing four capacitors. With the fixes to those bugs, the alpha testing stage is around the corner.
Two new major features are ready: USB Serial and brake resistor control.
USB CDC - The main way for the ODrive to communicate with a PC or embedded computer (such as the RaspberryPI) is via USB Serial (aka USB CDC). This interface will be used both for sending configuration and commissioning commands, and interfacing with existing tools that have G-Code style output. With further extension, it can also support binary, and various application specific, protocols. Yay for open source.
With significant help and contribution from @nickaknudson we now have a working USB CDC interface, which runs in a task parallel to the motor control tasks. The current implementation is very basic, it parses the commands and relays position commands directly to the motor control task. Going forward we will add trajectory generation to support coherent movement between multiple axes. Then we can handle the basic G0 and G1 G-Code "go-to" commands.
Brake resistor - Software support for a brake resistor is now in place. This means that we can safely dissipate the energy absorbed when decelerating. This is important since many power supplies cannot handle reverse energy flow. The implementation has the two motor controllers estimate their power draw, and then calculates the net power draw from the power rail. If it is negative in total, the pulse width of the brake resistor control is set to exactly dissipate and hence cancel this power.
Demo - In the above video you can see a demo of both features.
Hardware bug found
Everyone knows that voltage amplifiers have high input impedance, and low output impedance. Right? Well, apparently not.
Above is a figure from the DRV8301 datasheet. 100 ohm output impedance doesn't qualify as low output impedance in my book... So this extra output impedance is causing a way too large "R" in the RC filter that filters the current sensor output. Hence the current sensing is way too slow, and barely usable.
The fix involves replacing the capacitors highlighted in green painted labels with 2.2nF capacitors.
Replacing 0603 capacitors on lots of boards gets quite tedious. Nevertheless, I don't want to ship out any of the remaining ODrive 3.1 boards with known errors on them. As you can see, I have 8 left, and they should all work now. If you are interested in claiming one of them, sign up for an Initial Development board on this form.
I'm incredibly grateful for the people who were brave enough to pay for a board that was completely untested and with missing core features, and generous to spend their time helping to test those features as the were being brought up. You know who you are: Thank you!
Below are some videos of some ODrives out there ;D
ODrive v3.2 and Alpha Testing
Already almost 200 of you have signed up for a board and at the same time shared with me the amazingly diverse projects that you want to use ODrive for. There were many projects that I expected like 3D printers, CNC mills, and Pick and Place machines. However there were so many cool and diverse projects I didn't expect. Here are some examples that was mentioned by more than one person each:
- robot arms
- walking robots
- motion simulation platform
- heavy duty camera gimbals
- camera dolly/slide
- under water robots
- mobile ground robots
- various art projects
I aim to have a quote ready for the manufacture of ODrive v3.2 at the beginning of April, and with that, I will open pre-orders for the Alpha release. I will send an email to everyone signed up on the google form. It will also be possible for anyone else who wants to join in during the couple of weeks that the pre-order is open, before manufacturing starts.
The project is gaining momentum. With the fantastic response from the community, I am motivated to spend more time on this. In April, I will quit my current job, and I will be able to work on ODrive full time. This should lead to approximately a factor 8 increase in my contribution rate.
Lets do this!