newlandmark

【ART-Pi】【FOC】Brushless motor driver ODrive AP0.3

 
Overview

image.png

image.png

image.png

write in front

1. You can directly flash the official ODrive 3.6-24V firmware, which is the same as the official OD 3.6.

2. Most functions have been tested (it is best to clone the project before proofing and keep the exported gerber file to facilitate checking for hardware problems. It is best to do DRC before exporting gerber. If there are any errors, please modify them yourself or contact me to modify them)

It is best to do DRC before exporting gerber

3. Version optimized for cost and function: [FOC] Brushless motor driver ODrive AP1.0-DRV8303 version

Introduction

This project is based on ODrive's V3.6 hardware, which is an ART-Pi expansion board (also suitable for Raspberry Pi - only the P1 expansion pin is welded). It can realize two-way brushless motor closed-loop control and has the function of being used for human-machine applications. Interactive screen and five-way switch

Communication group 1: 778255240

Communication group 2: 851421965

Communication group 3: 732557609

Communication group 4: 957377627 (My group, I hope friends who are planning to make boards can join the group, we will promptly notify you of the modification status - especially BUG)

Layout

image.pngimage.png

project instruction

This project is for the purpose of learning. The ODriver hardware is reconstructed to fit the ART-Pi. The intended driving object is a low-power brushless motor.

ART-Pi is configured through the serial port and uses the serial port or direction/pulse signal or PWM signal to control the expansion board

Compared with the original project, the power dissipation resistor circuit is deleted but the expansion interface is reserved.

Added 1.14' IPS screen and five-way switch, you can choose whether to use ODrive or ART-Pi

Initially, I planned to transplant ODrive to ART-Pi and drive it directly, but due to the limited IO function, I decided to settle for the second best.

Wiring hastily, continue to optimize

(The current version can directly flash the official firmware to achieve basic functions. Boards made before April 7 have bugs and need to modify the firmware)

Expansion board:

https://oshwhub.com/Knight_Sin/abcd_copy

Encoder:

https://oshwhub.com/Knight_Sin/art-pi-2312s-bian-ma-qi

planned tasks

1. Interface testing

(1) External interface

1) SPI encoder interface

2) CAN interface

3) PWM input√

4) S/D input√

4) Voltage input

(2) ART-Pi interface

1) UART interface√

2) PWM input√

3) S/D input√

4) Voltage input

2. LCD multi-level menu

(1) FLSAH font library

(2) GUI design

(3) Multi-level menu

Modify records

1. (January 19, 2021 02:07) The BUCK circuit of Motor0's DRV8301 is redundant. It is modified to output 12V to power the power dissipation resistor circuit (VGS).

image.png

2. (23:46 on January 20, 2021) The wiring and silk screen are sorted out, and the AVCC is used to power the temperature sampling circuit of the brake resistor circuit. The first version of the PCB is finalized. The board name is tentatively ODrive AP. The current version number is 0.1 , full name ODrive AP trial model one

3. (January 25, 2021 16:53) Replace the 47uF/35V tantalum capacitor with the 1812 package 47uF/35V MLCC

4. (February 4, 2021, 17:28) Adjusted the wiring of the sampling resistor part

5. (22:12 on February 6, 2021) Added hardware reset button

6. (20:49 on February 14, 2021) Try to elicit the remaining IO; add a W25Q32 with the intention of saving the settings in W25Q32

7. (March 1, 2021 15:13) The packaging error of the five-way switch has been confirmed and has been corrected. If the board has been printed, the large positioning post at the bottom of the five-way switch can be cut off and then rotated 180° for welding.

// 8. (02:45 on March 5, 2021) Connect the CS/SDA/SCL of the screen to the SPI5 position of STM32F4xxVGT6 (405 does not have SPI5 and is planned to be replaced with 412) (After careful inspection, it was found that 412 and The 405 pins are actually incompatible. If modified, the scope involved would be too large. Careful consideration is needed as to whether to replace it.)

8. (March 18, 2021 19:58) Lead the MCU reset pin to the ART-Pi interface to meet the needs of the ART-Pi forced reset driver

9. (01:57 on March 19, 2021) The interface was split, and the original 14P socket was split into 2 PWM or STEP/DIR or analog signal input interfaces and 2 SPI interfaces (can be connected SPI encoder), a UART interface, the CAN interface is led out in the form of an XH2.54 socket instead of the original pin header; the wiring has been significantly modified, it is only connected at present and needs further optimization; some silk screens have been adjusted (not yet completed ). (The work is still in progress. If you find that the project is being edited, please do not clone it for the time being. It will usually switch back to the release version)

10. (20:02 on March 19, 2021) The second version of PCB is finalized, and the current version number is 0.2

11. (22:05 on March 20, 2021) Added test points for nFault and EN_GATE

12. (April 5, 2021 00:50) Fixed a BUG: SP2 of axis1's DRV8301 accidentally connected to the underlying PGND copper sheet

13. (April 7, 2021 00:07) Fixed a BUG: M1_SO1/M1_SO2 connection sequence is wrong

14. (20:15 on April 8, 2021) The order of the IN0/IN1 interface has been adjusted (the PCB only changes the silk screen) to comply with usage habits

15. (April 13, 2021 at 20:44) The pin sequence of the IN0/IN1/CAN interface has been adjusted to make it more consistent with usage habits; the power supply of the IN0/IN1 interface has been modified to 5V. This pin should usually not be used. However, if a single power supply is used, the control board can be powered from this port.

16. (April 29, 2021, 18:29) The current sampling method is changed from single-ended sampling to differential sampling; 3.3V/A3.3V/5.0V/12.0V test points are added, and silk screens are added to all test points; Added a new NRST reset pin, connected to the PA15 pin of ART-Pi, and retained the old reset pin connection to be compatible with the old version of the program; replaced 1117 with RT9193-33; changed the design idea to focus on practicality, and added some interface descriptions Description silk screen; upgrade version number to 0.3

17. (May 4, 2021 18:55) Fixed a bug. The effective level of the EN pin of RT9193-33 is wrong. It should be high level enable.

18. (19:12 on May 31, 2021) DRV8303+TPS54160 replaces DRV8301. The program is fully compatible and no changes are needed. Create a new project to separate the 8301 version and the 8303 version.

image.png

https://oshwhub.com/Knight_Sin/abcd_copy_copy_copy_copy_copy

19. (00:34 on June 17, 2021) Removed some IO leads, modified the wiring, and continue to streamline and optimize

debug log

https://blog.csdn.net/qq_17459305/article/details/115522151

ODrive project introduction

ODrive is a high-performance FOC servo driver based on STM32. It can drive two brushless motors at the same time. In the early days, it was widely used in the design of 3D printers or homemade CNC electrical systems. The well-known geek James Bruton used it for most of his own production. The core unit of the robot servo drive, Stanford's previous open source 8-degree-of-freedom quadruped robot Doggo also uses Odrive as the core driver. [1]

Official website: https://odriverobotics.com/

Firmware: https://github.com/odriverobotics/ODrive

Hardware: https://github.com/madcowswe/ODriveHardware

Documentation: https://docs.odriverobotics.com/

image.png

references

[1] High-performance open source server ODRIVE - Motor and Control - CSDN

Recommended high-quality information

CSDN blogger: codenocold

Application

ODrive Application #1 ODrive Getting Started Guide - codenocold - CSDN

ODrive Application #2 odrivetool Getting Started Guide - codenocold - CSDN

ODrive Application #3 odrive_gui Getting Started Guide - codenocold - CSDN

ODrive Application #4 Configuration Parameters & Instructions - codenocold - CSDN

ODrive application #5 input interface - codenocold - CSDN

ODrive Application #6 Coder - codenocold - CSDN

ODrive Application #7 Controller & Parameter Tuning - codenocold - CSDN

ODrive Application #8 Balance Wheel Hub Motor and Remote Control Setup Guide - codenocold - CSDN

ODrive application #8 (suspicious error) troubleshooting - codenocold - CSDN

Dry information

ODrive dry stuff #1 Building a development environment under Windows - codenocold - CSDN

ODrive dry stuff #2 Building a development environment under Ubuntu - codenocold - CSDN

ODrive dry information #3 ODriveTool command collection - codenocold - CSDN

ODrive dry information #4 Why are the brushless motor current and power supply current different - codenocold - CSDN

Examples

ODrive Example #1 Motor Configuration Example (4250-520KV + TLE5012B-E1000) - codenocold - CSDN

ODrive Example #2 Motor Configuration Example (Xiaomi No. 9 Balance Wheel Hub Motor) - codenocold - CSDN

Development

ODrive Development #1 ODrive Firmware Development Guide - codenocold - CSDN

ODrive development #2 Configure Visual Studio Code development environment - codenocold - CSDN

ODrive development #3 Configure Eclipse development environment - codenocold - CSDN

Other articles

ODrive communication protocol - codenocold - CSDN

ODrive ASCII format protocol - codenocold - CSDN

Station B UP: Teacher Tang talks about e-sports

Open source ODrive brushless DC motor BLDC control system, FOC servo driver hardware introduction based on DRV8301 and STM32F405 - Teacher Tang Lectures on Electric Competition - bilibili

Open source VESC brushless DC motor BLDC control system based on DRV8302 and STM32F405, L6234 and Arduino's SimpleFOC, ODriveFOC servo driver - Teacher Tang Lectures on Electric Competition - bilibili

Open source quadruped robot FOC driver circuit based on DRV8323RH and STM32F446RET6 - Mr. Tang talks about electronic competition - bilibili

Perfectly tame DRV8301 DRV8302 DRV8323 chip - Mr. Tang talks about electronics competition - bilibili

Station B UP: Deng Ge open source

[Tutorial] Deng Ge teaches you how to get started with Odrive brushless driver (1) - Development and debugging environment configuration - Deng Ge open source - bilibili

[Tutorial] Deng Ge teaches you how to get started with Odrive brushless driver (2) - Motor, encoder parameter configuration and motor calibration - Deng Ge Open Source - bilibili

Zhihu: Zhihui/Bilibili UP: Zhihui Jun

[Homemade FOC driver] An in-depth explanation of the FOC algorithm and SVPWM technology - Zhihui's article - Zhihu

Chip data sheet

DRV8301 data sheet: http://www.ti.com/cn/lit/gpn/drv8301

TPS54160 (built-in DRV8301) data sheet: http://www.ti.com/cn/lit/gpn/tps54160

Five-way switch data sheet: https://item.szlcsc.com/471384.html

Welded 1.14-inch IPS: https://item.taobao.com/item.htm?spm=a1z09.2.0.0.5c8f2e8dijiLL5&id=586409078629&_u=l21l4csi9ba5

Additional recommendation

Here we recommend Mr. Mo’s board to imitate the ODrive dual-axis MINI FOC controller. It is based on DRV8301. It has a compact appearance and beautiful appearance. It has been sampled and tested. Please see the attachment for the source file.image.png

参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2025-06-18 22:03:43

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号