Close
0%
0%

DCServo AE

Control Board designed to transform any Brushed DC Motor into a Smart Continous Servo with Absolute Encoding

Public Chat
Similar projects worth following
DCServo AE transforms any brushed DC motor into a high-precision smart servo through an all-in-one solution combining controller, driver, and absolute encoder. Just mount the board, perform a one-time zeroing, and you're ready to control position with up to 0.05° accuracy.

Key Specs:
- 6-36V input (38V max)
- 4.1A continuous current
- CAN communication
- Compact design (from 12mm diameter)

Features:
- Advanced PID control (1ms fixed timestep)
- Anti-saturation and anti-windup protection
- Derivator feedback for stability
- Simple control via CAN:
- One-time zeroing - maintains absolute position after power loss
- Open-source hardware and software

Project Status: Active Development 🚧
Currently iterating through hardware and software implementations. While the core design is complete, we're rigorously testing and refining the control systems.

== Versions ==
Currently developing 4 variants:
[HIGH POWER - 10A]
• Board-mounted encoder version
• External encoder version (FFC connection)

[STANDARD - 4.1A]
• Board-mounted encoder version
• External encoder version (FFC connection)

== Technical Deep-Dive ==
[Motor Requirements]
• Extended/through shaft or secondary shaft (e.g., gear systems)
• Magnet mounting capability
• 6mm spacing requirement between magnet and encoder

[Control System]
The heart of DCServo AE is its sophisticated PID controller with several advanced features:
• Fixed 1ms discrete time steps
• Trapezoidal integration
• Back-calculation anti-windup system
• Derivative on measurement (prevents derivative kick)
• Low-pass filtered derivative term
• Deadband management
• Disturbance detection and automatic reset
• Real-time parameter tuning via CAN

[Real-Time Configuration]
ALL parameters are configurable via CAN during operation:
• PID gains (Kp, Ki, Kd)
• Maximum speed
• Error thresholds
• Anti-windup gains
• Low-pass filter time constant
• Disturbance thresholds
• Integration limits

[Hardware Specifications]
• Input Voltage: 6-36V (38V absolute maximum)
• Current Rating: 4.1A/10A depending on version
• Communication: CAN bus only
• Theoretical Resolution: 0.025 degrees
• Practical Resolution: 0.05 degrees
• Board Cost: ~$10 (components only)

== Implementation Details ==
The control loop implements several crucial features:
1. Trapezoidal integration for improved accuracy
2. Back-calculation anti-windup using adjustable gain
3. Derivative on measurement instead of error
4. Low-pass filtering on derivative term
5. Automatic reset on large disturbances
6. Output limiting with proper saturation handling

== Next Steps ==
[Immediate Focus]
• Software refinement
• Performance testing and validation
• Documentation development
• Creation of basic usage examples

[Future Plans]
• Mechanical design for enclosures
• Performance characterization under various loads
• Example applications and integration guides

== Get Involved ==
Current priorities for contribution:
1. Testing with different motor types
2. Mechanical design for mounting solutions
3. Documentation improvement
4. Use case validation

All design files will be open-source:
• Hardware: PCB designs (KiCAD)
• Software: STM32 firmware (C)
• Documentation: Assembly and usage guides

Stay tuned for:
• Prototype demonstrations
• Performance metrics
• Assembly guides
• Configuration tools

Want to contribute? The project especially needs help with mechanical design for different motor mounting solutions!

== Why DCServo AE? ==
• Complete solution: controller + driver + encoder
• Highly configurable via CAN
• Advanced control algorithms
• Open source hardware and software
• Affordable (~$10 board cost)
• Compact form factor
• Real-time parameter adjustment

Remember: This is an active development project. While the core design is complete, we're continuously improving and validating the implementation. Contributors and testers welcome!

  • 1 × STM32G0B1CBT6 Simple, Cheap, Powerfull MCU from ST use for it's low cost and good timers and peripherials
  • 1 × DRV8251DDAR Good Driver chosen for it's current feedback function, high voltage and high current range.
  • 1 × MA730 Absolute Magnetic Encoder chosen for it's high accuracy and fast communications
  • 1 × TJA1051T-3 Widely used CAN Transciever
  • 1 × LMR33630CDDA 38V-capable Buck Controller

View all 6 components

  • Hardware Version bump up

    Gabriel-Alexandru Constantinescu10/29/2024 at 12:26 0 comments

    Hey there! Still quite foreign to this platform, but I have deicided to scrap the current iteration alltogether and reorganize my project and scope.

    The new iteration for 36V @ 4.1A will be a rounded square of 4cm side length, and there's a few improvements:
    - MUCH lower cost for components
    - Much easier to debug
    - Changed the MCU to a STM32G0B1CBT6 - slightly bigger, but 0.25x the cost of the other one.
    - Redid the layout to be able to use the advanced timer for PWM
    - Can now  be 99% assembled by JLC PCB ( JLC does not stock Magnetic Encoders :c )

    Split the board names into Little Boy and Fat Man for 4.1A and 10A respectively... makes it easier to keep track of stuff.

    New scope:
    1x 36V 4.1A with on-board encoder (so the whole board is shaft mounted)
    1x 36V 4.1A with off-board encoder [with 6 pin FFC where I managed to get either SPI, I2C, PWM IN or Incremental => Much wider range of supported encoders ( I will only write code for SPI encoders sorry) ]

    1x 36V 10A with on-board encoder
    1x 36V 10A with off-board encoder

View project log

  • 1
    Must have:

    The absolute encoder requires a magnet mounted on the motor's output shaft, positioned 6mm from the sensor. For geared systems, mount on the output shaft or account for reduction ratio in software. Standard N42/N45 magnets recommended (40-90mT field strength at sensor).

View all instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates