Twisted world of Esden

My small window to the world…

Open-BLDC V0.1 is alive!

Tags: , , , , , , , , , , , , , ,

I assembled the basic STM32 circuitry of Open-BLDC and it works. I also made a video showing the logic board and blinking around. I know it is a bit pointless but I love blinking LED’s! ;) I wrote the software using libopenstm32.

Have fun:

Video on Youtube and here the same video on Vimeo.

While assembling Uwe and I made some photographs that I don’t want to hold off either.

Open-BLDC mockup

Tags: , , , , , ,

Hi!

As you already know I have layouted the Open-BLDC boards. I was not sure if everything fits mechanically. So I took some cardboard and created a mechanical mockup. It really looks good! It is darn stable (even though it is only cardboard and not FR4) and the screws fit snugly. I think we are getting really near to a state where I can order some boards.

You can take a look at some images attached to this post.

Have fun! :)

Open-BLDC SMD prototype and final prototypes

Tags: , , , , , , , , , ,

Open-BLDC SMD Prototype

Open-BLDC SMD Prototype

It has been again a long time since the last post. (I have the feeling to repeat myself here)

There have been some news on the Open-BLDC front. I have been on Motodrone two weeks ago. Because I took the plane to get there I realized that it will be too difficult to take the breadboard prototype with me. So on a short notice I soldered together a smaller version using smd parts. As an extra feature this prototype includes Allegro hall based current sensors. These will enable us to investigate vector control (aka. field-oriented control).

At first it worked perfectly. Sadly after some tests I burned two of the three bridge drivers. I only had one spare to replace, so I could not work on the software for long. Today I got replacement bridge drivers. Now I should have enough spare ones to compensate for more burning. ;) So no news on the vector control front yet.

Open-BLDC Logic Board V0.1

Open-BLDC Logic Board V0.1

Open-BLDC Powerstage V0.1

Open-BLDC Powerstage V0.1

But I was not lazy while waiting for the replacement parts. I finalized the circuit and routed the logic board and powerstage. The powerstage was more or less straight forward but I am not very happy about the size and dimensions. I just am not sure if it is fittable on a standard Quadrocopter. Still it should be good enough as first etched prototype.

A much bigger challenge was the logic board. I somehow came up with this crazy idea to constrain the size of it to 45mm X 20mm. Still after many many hours of struggling with that puzzle I managed to squeeze all parts and wires into 45.5mm X 21mm! Yes you are right I am pretty proud of myself. I am still a routing beginner so the result seems to be good for me. :)

Now I have to wait so some other people review the work I did to try decreasing the amout of possible bugs in this boards. (If you like you can clone the repository here and check the stuff out, and give feedback on the mailinglist. (please subscribe before posting! :/ )) When I feel confident enough I will order some boards for testing and we can finally concentrate more on the software. :)

Open-BLDC PWM Schemes

Tags: , , , , , ,

Only a short note. I made a video showing all the different PWM Schemes Open-BLDC supports. Have fun watching:

Cheers Esden

Open-BLDC Sensorless Commutation Detection

Tags: , , , , , , ,

Hi!

As promised I made some videos. First one is showing the maiden run of a motor connected to the breadboard prototype of Open-BLDC.

(There is also a Vimeo version: Maiden Run of Open-BLDC from Piotr Esden-Tempski on Vimeo)

Yes the motor sounds like a truck. The reason is that I am making forced commutation (not detecting the right time to commutate but do it in fixed time) and the PWM duty cycle is higher then it should be. This way the motor is just jumping between the magnets and has a lot of vibrations.

The second video is a demo of sensorless commutation detection.

(There is also a Vimeo version: Open-BLDC Sensorless Commutation Detection Test from Piotr Esden-Tempski on Vimeo)

We are using a novel way without a virtual crosspoint. (you can read it up in this paper) We do it even a little bit differently then described in the paper, there are no comparators and latches. What we do is condition the signal to be in the range of 0V to 3.3V and sample it with the ADC at the right times. This is probably the simplest way to do something like this in the STM32. One can now play around with the data that the ADC delivers. I think there is a lot of stuff that can be done using such an approach.

In the video you may also wonder why it is so loud. Well the PC fan that I just forced onto the rotor is not really the best payload, also it is not balanced well and the bearings in the motor are not the best anymore because of the unbalanced load. ^^ I am also using the simplest and worst PWM scheme that I know of. The so called H PWM L ON scheme.


“H PWM L ON” PWM scheme. Click on the Image to see other PWM schemes.

You can also see in the video that the motor is pretty robust to external disturbances when running in the commutation detection closed loop. Still I am sure that it can be improved. (If you are interested the sourcecode running this can be seen here)

If I am not mistaken then only current measurement is missing in the circuitry. When that is done then I can design the first etched prototype of Open-BLDC. WOOO! :)

Cheers Esden

P.S. If you have any comments/ideas feel free to write them in the comment section. ^^

Open-BLDC status report

Tags: , , , ,

Hi!

It has been a pretty long time since my last post. But do not worry there is happening a lot “behind the scenes”. Well not so much behind them because I commit everything I do to the github repository (http://github.com/esden/open-bldc). If you want to follow the progress you can also subscribe to the commit mailinglist and/or the discussion mailinglist. Feel free to write on the mailinglist if you have any questions or just catch me on #uavp channel on the freenode network. (I think that are enough channels of communication :) )

Ok back to the topic. Last week I was able to turn a bldc motor the first time using the bread board prototype of the power stage, the STM32 Olimex H103 evaluation board and firmware that you can find in the repository. The basic PWM scheme that is used by most controllers is implemented and works pretty well. I am also trying out other PWM schemes that may improve efficiency. You may ask why I am doing it now and not after I made a real hardware prototype of the system. The answer is pretty simple. I have to see if and how it is possible, to make sensorless commutation detection, when using different PWM schemes. I had to realize that the schemes have a big influence on the signals that can be captured.

As soon as I have more results I will make a video showing the current state and how the controller behaves when using different approaches. So stay tuned!

Cheers, and I hope hearing from you too in the comments! :)

Selecting parts for Open-BLDC power stage prototype

Tags: , , , , , , ,

The other day I ordered parts to build the first prototype of Open-BLDC on a breadboard. It is a bit different animal then the board designs I already have because it needs legged parts.

The main problem is to find the right MOSFETs and driver chips for this application. As I have no electrical engineering background I did not really understand the values that were listed in the data sheets. I asked an electrical engineering friend and he helped me with locating the most important values. Thanks Federico!

MOSFET Values

I realized that the most important values for MOSFETs are:

  • Drain to source voltage
  • Gate to source voltage
  • Continuous drain current
  • Input/Output capacitance (turn on/off time)

The MOSFET I selected is not perfect but should do for this first prototype. It is the IRF1010N from International Rectifier.

Drain to source voltage
In my case as I am using the standard three cell LiPo batteries used in models. I need something above 12V. The smallest ones are 20V but the one I could get from Reichelt was 55V. That is still OK.

Gate to source voltage
For example the high side MOSFET has 12V attached to source. When the gate is driven low, the voltage difference between gate and source are 12V. In many cases that is a problem. Because when you charge your battery full the voltage difference gets even bigger or even worse when you try to use a battery with 4 cells instead of 3. Most MOSFET that I found have only 12V specified as gate to source voltage. It still probably works with more because of tolerances but still it is probably not good. The MOSFET I am now using for the prototype has ±20V in the specification. That should work.

Continuous drain current
This one will get more important in the future. It is telling how much current the MOSFET can put through. For the prototype that is more or less a functional test of the circuit it does not matter so much. But in the future when I want the controller to support up to 20A continuous current this one will get very important. The IRF1010N is specified for 85A at 25ºC and 60A at 100ºC. So this values are meant for applications where you have a heat sink attached to the MOSFET’s. I will try to avoid using heat sink. I could calculate the exact number but the rule of thumb is that one should take 1/10th of the value. This means that with this MOSFET I will be able to run at about 6A to 8A. As the lab power supply, I have access to and will use for the prototype, can only deliver 2A that should be more then enough. There are several other values that are connected to this one. Like drain to source on resistence, thermal resistence, power dissipation aso. One can use them to calculate the exact amount of current the part can put through. But I think it is too early to make all the calculations yet.

Input/Output capacitance (turn on/off time)
This is a set of values that tell how fast the MOSFET can be switched on and off. It will also get more important in the future when selecting the right MOSFET for the final design. For now the 76ns rise and 40ns fall times should be enough. They will probably get even lower because I am using a dedicated half bridge driver chip.

Half Bridge Driver

I did a lot less research here. Thankfully there are not as many half bridge drivers out there as there are MOSFETs. The one I selected is the IR2110. It would be a bit big for the final design because of the additional leads. But it should be OK for this prototype. The problem I had here is that I have 3.3V digital input from the microcontroller and I want to drive the MOSFETs with 12V. As it seems the other drivers that I considered don’t recommend that. That is why I had to choose this one. I hope that I will find something that is smaller and still supports the 3.3V input.

Conclusion

Selecting parts is a very tiresome endeavor. The shops only have a subset of the parts that are available out there. I wanted to order all parts from one shop that is somewhere in Germany. I could probably get better parts ordering from Digikey but it would cost more. For the next stage of Open-BLDC development I will have to select better parts. But first I how a feasible circuit should look like. That is why I am going for the breadboard test first.

If you find any mistakes or I misunderstood something here feel free to tell me.

Cheers Esden

© 2009 Twisted world of Esden. All Rights Reserved.

This blog is powered by Wordpress and Magatheme by Bryan Helmig.