587,076 active members*
3,368 visitors online*
Register for free
Login
IndustryArena Forum > OpenSource CNC Design Center > Open Source Controller Boards > DIY BLDC / DC Motor Servo Drive - ARM MCU (STM32F103C8T6)
Results 1 to 20 of 490

Hybrid View

  1. #1

    Re: DIY BLDC / DC Motor Servo Drive - ARM MCU (STM32F103C8T6)

    Quote Originally Posted by mcm_xyz View Post
    Good news...

    The ARM servo drive project is rolling... Check out the progress so far:
    ...
    I will keep you updated...
    Hello Mihai!

    I found your threads (this one + AVR based) just a while ago. Very Impressive, thanks for sharing your designs! I've been working with very similar project for a while now. I have STM32F103 as well running on an ebay devboard and IR2101+IRFB3607 driver board. The difference is that I'm using HAL commutation at the moment, but I think I'll implement encoder or resolver interface when I receive some proper AC servo to try with. My initial setup is to have a simple PWM velocity input on my servo drive and have the encoder input + PID loop inside LinuxCNC, but having the full loop inside the microcontroller and having just step/dir or similar input would be more efficient I'm sure. But I'm taking small steps towards that.

    One question raised when reading your threads. You mention at some point in the AVR development that you removed the sinusoid commutation tables and went to square wave (trapezoid) commutation. It was a bit unclear what was the reason behind this. Because when reading any papers about servo control, the sinusoidal commutation is always referred as the best method providing the smoothest torque. Did you see the opposite? Or was it just that the advantage from sinusoid commutation was not noticeable and it certainly is easier to implement the trapezoid commutation with limited resources like AVR.. I have implemented trapezoidal commutation myself as well, but I think I'll try sinusoidal at some point or even go to try some current based vector control. But your servo runs so nicely, so it's difficult to see the benefits of more advanced methods just now. But I'd be happy to hear your comments about this.

    I'm planning to design a better driver PCB and probably a separate control board which sits somehow on top of the driver board. If you are going to share your software at some point, I'm eager to test it and of course if you (or anyone else) want to use my code or the forthcoming PCBs, I'm happy to share.

    Pekka

  2. #2
    Join Date
    May 2006
    Posts
    190

    Re: DIY BLDC / DC Motor Servo Drive - ARM MCU (STM32F103C8T6)

    Quote Originally Posted by roivai View Post
    Hello Mihai!

    I found your threads (this one + AVR based) just a while ago. Very Impressive, thanks for sharing your designs! I've been working with very similar project for a while now. I have STM32F103 as well running on an ebay devboard and IR2101+IRFB3607 driver board. The difference is that I'm using HAL commutation at the moment, but I think I'll implement encoder or resolver interface when I receive some proper AC servo to try with. My initial setup is to have a simple PWM velocity input on my servo drive and have the encoder input + PID loop inside LinuxCNC, but having the full loop inside the microcontroller and having just step/dir or similar input would be more efficient I'm sure. But I'm taking small steps towards that.

    One question raised when reading your threads. You mention at some point in the AVR development that you removed the sinusoid commutation tables and went to square wave (trapezoid) commutation. It was a bit unclear what was the reason behind this. Because when reading any papers about servo control, the sinusoidal commutation is always referred as the best method providing the smoothest torque. Did you see the opposite? Or was it just that the advantage from sinusoid commutation was not noticeable and it certainly is easier to implement the trapezoid commutation with limited resources like AVR.. I have implemented trapezoidal commutation myself as well, but I think I'll try sinusoidal at some point or even go to try some current based vector control. But your servo runs so nicely, so it's difficult to see the benefits of more advanced methods just now. But I'd be happy to hear your comments about this.

    I'm planning to design a better driver PCB and probably a separate control board which sits somehow on top of the driver board. If you are going to share your software at some point, I'm eager to test it and of course if you (or anyone else) want to use my code or the forthcoming PCBs, I'm happy to share.

    Pekka
    Hello Pekka

    Very nice to see your appreciation.

    To answer your question quickly... those were old times... I was learning with the AVR Servo project about motors, and how to control them... So basically I started with a code that tried to move the motor freely... when no feedback there is no solution to make the motor spin nicely at lower speeds but to generate somekid of sinous signals, to make the trasition from one pole to another as smooth as possible... However when a PID process is used to control the output power, it will adjust the power very quickly and according to encoder position... Don't really know how to explain better... In fact if you would measure the output of a pid controller when motor is moving at a constant speed you would get a sinus...
    So basically... When PID is in place for controlling movement sine commutation table is not a good idea...

    I will publish soon the schematic and firmware... when I will make some tests with the STM32F103... for now I am testing with STM32F407 that is much faster...
    You mentioned an ebay board with IR2101+IRFB3607... do you have a link? I just built one myself but such prebuilt boards could save time for me in the future...

    Thanks!

    Mihai

  3. #3

    Re: DIY BLDC / DC Motor Servo Drive - ARM MCU (STM32F103C8T6)

    Quote Originally Posted by mcm_xyz View Post
    Hello Pekka

    I will publish soon the schematic and firmware... when I will make some tests with the STM32F103... for now I am testing with STM32F407 that is much faster...
    You mentioned an ebay board with IR2101+IRFB3607... do you have a link? I just built one myself but such prebuilt boards could save time for me in the future...
    Mihai
    Thanks for your reply! Sorry, I wrote a bit misleading sentence. My driver board is home made as well, only the control board is from ebay ( Arm Cortex M3 STM32F103C8T6 STM32 Minimum System Development Board | eBay ). I have a possibility to mill prototype PCBs, so for me making boards myself is the easy part of this hobby. But like I said, I will design a driver PCB and have it manufactured somewhere and if it is something that you can use as well, I can make couple extra ones and send them to you.

    I don't fully understand the drive method you have.. I may have a bit too academic approach because I haven't done that much in practice yet, just reading. But when you publish the software, I'll take a deep look and I'm sure I will learn a lot. Looking forward to that!

    Pekka

Similar Threads

  1. Replies: 3
    Last Post: 02-11-2015, 06:07 AM
  2. Replies: 0
    Last Post: 10-21-2014, 09:29 PM
  3. Servo Drive AC + servo motor for car steering wheel simulator
    By yusukeand in forum Servo Motors / Drives
    Replies: 6
    Last Post: 01-10-2014, 09:06 AM
  4. VCE-750 with BLDC Servo - X Axis Servo fault
    By kostner in forum Haas Mills
    Replies: 6
    Last Post: 10-23-2011, 08:09 PM
  5. Sell Servo Motor, Servo Drive by GSKcnc.com from China
    By salecnc@hotmail in forum News Announcements
    Replies: 0
    Last Post: 06-03-2008, 08:55 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •