Custom Odrive PCB


First of all quite impressed by Odrive project and would like to use it in a project im working on. Due to size constraints im planning to design a custom pcb based of of v3.4 and possibly for a single motor. Since v3.5+ versions is not available ( reason here), the plan was to incorporate the changes/improvements from the changelog documents. then i thought why just stop there :grimacing: , and change the driver DRV8301 to a fancier version DRV8353. also might design it Kicad as anyone can use it though i like altium. having said this i have a couple of questions:

  1. should i be expecting major changes in the firmware by switching the driver IC or will it be some minor changes. or in other words, is it worth the hassle to change the driver IC.
  2. i would like to make the design opensource. but as described in the link above, the knockoffs of it will affect the Odrive Team and indirectly the project as in general. what should be the best way to support the community?



I don’t have a definitive answer on swapping gate drivers, but I would be inclined to say that, absent a clear need to switch chips, it would be best to keep it the same. Making an open source clone is a big enough job without adding additional complexity (imo).

Regarding an open source version. This is definitely something I want. I design open source robots specifically with the hope that others will clone and fork the design, and it was discouraging to learn that the ODrive hardware designs went closed source. I want cheap clones (even of my own hardware) to exist. To me that is the point of open source.

But that is a deeper philosophical argument. I understand that making money with open source is difficult, and ODrive team is trying to support growth. It’s hard to find the right balance.

But it would be nice if there was an option. Oskar I believe said that he supports someone else making an updated design. I would love for it to be done in kicad! That would be really nice.

Lets see if ODrive team can give us some buy-in on the idea.

1 Like

So i decided to give a try to making a single channel driver based on Odriver. Just finished the schematics. the whole project can be found here .

its designed in Kicad 5. im planning to finish the layout by this weekend. would love to get feedback. for a quick review schematics pdf is available in outputs folder. the project is opensource and open for collaboration.
To keep things simple, i kept the same gate driver DRV8301 along with most of the circuit hoping that the firmware will work right away with little to no modifications. The plan is to finish the pcb and test it asap. and then in later iterations use DRV8353 to further shrink the design.


Promising! I’ve just glanced at the schematic. I think it would be nice to have the TTL serial broken out to a header (I didn’t see it but maybe I missed it).

Also a typo (I assume) on Page 4:
“MP30 can handle 30A peak and 15A cont. if more current is needed, the connector cant be changed.”
I assume you mean “can be changed”? :slight_smile:

Thanks for your work! Do you have experience with surface mount PCB assembly?

1 Like

This is an encouraging project. I hope I can help in some way if possible.


1 Like

thanks for the review and suggestions. i will incorporate them in the design.

regarding surface mount PCBA, yeah i have been designing high density pcbs but i will stick to minimum 0402 size for easier assembly.

1 Like

thanks for the support. at the moment everythings on track :slight_smile:

Feel free to fork the repo and modify the design to suit your needs.

@azmatb Hi! I’m currently doing pretty much same thing as you, but in Altium ahah. I almost finished my design, but I was wondering if you knew which firmware release to use to be compatible with the ODrivev3.4 ?

Also, since i’m doing a single channel too, and i have a question on your design: how many 470uF caps do you have ? 3 for M0 and 2 for Aux ?

i am using 4x 150uF caps.

since both M0 and Aux have the same supply line and i am trying to make is as compact as possible, the sharing of the caps is pretty communal :slight_smile:

edited: using 150uF caps and not 470uF.

i am designing using v3.5 schematics. havent looked into the FW yet, but i am hoping to use the firmware compatible with v3.5 with little to no modifications.

Differential line receivers With isolator for inputs would be a big plus to the design. They would make the design safer and easier to use for longer cable lengths and in noisier environments.

I designed an add on board for this some time ago. Never got around to making it though.

there is a CAN interface which is differential and good enough for relatively longer cables. also it is used a lot in robotics and industrial environment. its not isolated but if needed the design can be modified.

My issue with the CAN interface is that the software does not support the standard protocol, so you can’t do normal config over CAN as far as I know.

I’m using UART to avoid this, but if the UART had RS485 that would be nice.

forgot to mention, the gpio1 and gpio2 already have a uart peripheral. additionally ill try to have an option (either jumpers or header) of using the uart pins for CAN as a uart/serial instead of CAN.

I meant more for the step/dir lines which are used more in cnc applications and are typically differential lines since the environment tends to be rather noisy. Also most industrial and cnc systems are 24V so a miswiring van fry the board. Making the system more resilient is worth it.

In case you have not seen this, there is a single drive version available on Aliexpress



@azmatb How did you manage the layers on your board? i checked the about how he changed for a 4 planes design but i dont understand what planes are what. So how did you do it?


i just finished the pcb and the schematics.
the DRC looks good but will recheck the design once again.

i will generate the gerbers and BOM and create a release so that whom ever wants to just fabricate the pcb can download the release files.

let me know if there are any suggestions or minor tweaks i should fix before generating gerbers.

just uploaded the finished design. as you can see in the images, there is not enough space to add more components. i was able to make some room near the ldo but it wasnt enough. i will try adding isolation in the next design.