Tag Archives: electronics

Open-BLDC and the CLogic story

Castle ICE HV to Open-BLDC Mod Tutorial Step 10Hi,

It was again a while since my last post, but as always I was quite busy. 🙂

The last news about Open-BLDC was about its V0.3 iteration. A lot has changed and happened since then. I was realizing that I am getting more and more inquires where people were asking about obldc being able to control very different sizes of motors, ranging from 12V and 10A up to 48V and 200A.

This requirement does not really ask for different logic and controls but it definitely asks for many different power stages. Open-BLDC was designed to be modular from the beginning but still to accomodate that kind of a power range it would be necessary to design and create quite a big lineup of hardware.

Around that time I had the opportunity to take a look inside a dead motor controller from Castle Creations just to realize that these guys seem to know what they are doing and that they went with a modular design too. To make a long story short I decided that it will be better to buy one of their of the shelf motor controllers and retrofit them with my logic. That is how CLogic was born.

As it seems other manufacturers are selling ESCs that have the same interface between the logic and the power stage too. Tekin for example. But my guess is that they are just OEM of castle themselves. But who knows. 🙂

Turingy also came out with an ESC that seems to have the same interface, the Turingy dlux. I ordered a few of them to take a look for myself and see if CLogic will fit in there. That would be a great source of cheep power stages. 🙂

CLogic has most of the functionality the Open-BLDC v0.3 had. Because of the size constrains I had to get rid of the dedicated i2c and PPM connectors, but I added isolation on the CAN interface that should provide additional safety when used on a 50V and bigger systems. The i2c and PPM interfaces are still available either over the new AUX connector or through the UART interface connector.

The new AUX connector gives the possibility of easily connecting encoders or hal sensors for sensored operation. So the interfaces stay very flexible with added flexibility due to the big variety of power stages you can use, while being very very compact.

Sure some people complained “The power stages are not Open-Source!!!”, yes that is true. Also these systems start at a higher power and weight class than some of you would want to operate them. That is why there is CPico Power. It is a very small, low power and a hopefully cheep power stage that we are putting together for those who want it all fully open! So no worries. 🙂

I think that wraps up the news about the new direction Open-BLDC is going. I hope you like it. I am looking forward to your comments.

Cheers Esden

FLOSS-JTAG V1.0 Released and Available

Hey everyone,

As you might know some time ago I have developed a small JTAG adapter based on the FT2232H chip. I gave it the name FLOSS-JTAG as the idea was that it should be absolutely OpenSource and OpenHardware.

You can find the project at GitHub and some more info at it’s random projects wiki page.

FLOSS-JTAG not only has the high speed 24MHz FT2232H chip (there are some designs based on my idea that are using a low speed version of the same chip). It provides the new standard 0.05″ pitch 10 pin Cortex JTAG header as well as a TTL level serial interface on it’s second interface.

I am glad to announce that I have reached the V1.0 with it. All necessary files to make your own are in the GitHub repository. But if you don’t want to go through the pains of ordering PCB, sourcing parts, assembling QFN SMD packages you can also purchase it in the Joby Robotics online shop.

At Joby Robotics you get a cable assembly to connect the FLOSS-JTAG to a target. This allows you to debug and connect to targets that are difficult to reach otherwise. You also will get a cortex connector to old standard 20pin 0.1″ pitch connector adapter.

The adapter is small and will make it also easier to debug targets that are difficult to reach.

You can get precrimped Molex Picoblade wires in 10 different colors at Joby Robotics too. This way you can easily build a UART cable that connects FLOSS-JTAG to a device.

I am very happy that FLOSS-JTAG is finally easily accessible to anyone who needs it.

FLOSS-JTAG works perfectly together with Openocd and Summon-ARM-Toolchain.

Cheers Esden

Open-BLDC V0.3 Hardware Based Closed Loop Control

Hi,

Good news everyone!

After again a way too long time some new news! I finally implemented hardware based commutation detection and the associated closed loop controller.

That was quite a run because of a cascade of timing and timer problems. And a very nasty compiler bug. But now it works and very well on top of that. Woohoo o/ But see for yourself in the video.

The video also shows the new implementation of the startup routine. It uses now a separate software timer. It was made possible by using SysTick as timer base and implementing the timer in software. This way it is easy to add new timers that don’t need to be very time precise, as it is the case in startup, or ignite as I like to call it. 🙂 The old implementation was using timer overflows of the commutation timer that led to nasty speed jumps while starting up and made the startup unreliable.

Next step, put Open-BLDC on a plane! 🙂

As always you are welcome to drop by in #open-bldc channel on freenode if you have questions or just want to hang around to follow the cutting edge development. 🙂

Open-BLDC v0.3

Open-BLDC V0.3 Full Front
Hey everyone!

Just a short update so that you don’t think that I have disappeared completely. 🙂

Lately I am really busy so that is why my updates here are very rare. I have moved to California few months ago to work full time on Open-BLDC and Paparazzi. Although Open-BLDC got quite a bunch of attention there is still a lot to do, and this project is still not in a state where it is possible to put the controller on a vehicle and fly with it. 🙁

There is some good and bad news. I got the sampling based commutation detection running pretty good. There is an issue with it. Because you can sample the BEMF only once a PWM cycle the resolution prevents turning the motor very fast without adding some kind of an estimator or at least a PLL. So currently only 4000RPM with a 7pole pare motor are possible. 🙁

That is why I started working on Open-BLDC v0.3 hardware. It is assembled now and you can look at some pictures here. It has a comparator integrated into the power driver board to make commutation detection really easy and have something usable _NOW_. I also found out that using many small mosfet’s is much more efficient then using single big ones. The gate capacitance is lower, the heat dissipation is easier, the on resistance is tiny. The only question is if they will distribute the power evenly between the switches. That is still something that has to be tested. But the power stage board looks really pretty with all those tiny fets on it. There are many more other smaller and bigger improvements that would be too much for such a small post.

I am currently bringing up one subsystem after another. I had to change some of the connections to the STM32 which means that I have to change the low level drivers and it is always a pain to do.

Anyways, there is progress and Open-BLDC is not dead! I am working on it. And I am sorry for not keeping you guys more up to date. As always I will try to be better about that. 😉

Floss-JTAG V0.1 Assembly and V0.2 boards.

Because I wanted to have a small JTAG adapter with additional UART port and a different (smaller) connector then what is available out there, I have decided to make a JTAG adapter. I chose the FT2232 USB adapter chip. This guy is pretty nice because it has a special engine inside that is supporting many different protocols. One of them is JTAG. I have released what I made as always on GitHub under the CC-BY-SA 3.0 license. There is no software needed on the adapter side so no software included. All you need is OpenOCD. It now even has a config file dedicated for Floss-JTAG. Calling for example:

#> openocd -f interface/flossjtag.cfg -f board/open-bldc.cfg

will connect to Open-BLDC using the Floss-JTAG adapter.

Building Floss-JTAG I learned a nice lesson. Always check your footprints 10x before you send the gerber files to the manufacturer!!! I had to customize the footprint for the FT2232 chip and made a mistake. The pads were not long enough so the pins had only 0.1mm overlap area. It was a real pain to solder that. I assembled 3 of Floss-JTAG using this design. Sadly only two are working.

Because of that mistake I immediately corrected the board layout and sent it out. I got the boards today. I hope that there is no other mistake hidden somewhere. 🙂 Attached are the images of V0.1 assembly and of the V0.2 boards.

Open-BLDC V0.1 Fully Assembled

I finished soldering Open-BLDC V0.1 boards and took some pictures while doing so.

After connecting it to the power everything seems to work properly and nothing is burning. That is really good news.

One little thing that is bothering me. The board draws 60mA, what is a value that I expected. The 5V linear regulator gets really warm. I am not sure if that will be a problem or not. But I did not find any other problems or screwups yet, even the big MOSFETs can be soldered using a simple soldering iron. It takes some time though, because the board and the MOSFETs are monstrous heatsinks.

More news coming up as soon as I start playing around with the software.

Open-BLDC V0.1 is alive!

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.

IR2110 based power stage circuit

Circuit

Circuit

I started to build up the Open-BLDC circuit on a breadboard. Then a problem occurred. The low side works as it should but the high side just did not. After several hours of trying and reading the data sheet of IR2110 I gave up and asked Federico again for help. After some time we found an application note AN-978 from International Rectifier. This explained everything. You need to select very carefully the Boot capacitor. This is the one between VB and VS pins of IR2110. It is providing the charge for the gate of the high side MOSFET when you turn it on.

For testing you can take a big capacitor, so that when you manually switch on the high side you see something happen. I took a 330uF capacitor and it is enough to turn the high side MOSFET on for about 30 seconds. Still you have to be careful because the capacitor only gets charged when the low side MOSFET is turned on. So after turning on the power the capacitor is not charged and you have to turn the low side MOSFET on first, then turn it off again and finally switch the high side on.

In the final design one should probably select the right bootstrap capacitor. The equation for calculating that value is described on page 6 of the International Rectifier application note AN-978.

You can probably get rid of the capacitor and the diode if you connect VCC directly to VB. The problem you get then is that when the current on VS gets higher then 12V you get a problem. But I may be mistaken. Correct me if I am wrong.

Conclusion: read the damn application notes and I still have problems with understanding the electrical engineer talk! 🙂

I hope this helps someone. You can see my circuit for one half bridge attached to this post. And a picture of my breadboard.

I use the two LEDs to see what happens with the MOSFETs. They are glowing a little when both sides are off. The one connected to 12V is switching off when the high side is on and the one connected to GND switches off when the low side is on. I love LEDs! 🙂

Cheers Esden

Breadboard Adapters

I am currently working on building a breadboard prototype of Open-BLDC. I will write about that in more detail in a separate post. I had a problem there. The Olimex STM32 board has two dual in line connectors that just don’t fit on a breadboard. There are some adapters that you can buy for money, for example from Number Six. But that would cost me too much time and money.

So I decided to build my own adapters with parts that I had ling around and a prototype board that I got from Uwe. (Thanks Uwe I will buy one and give you a replacement as soon as possible!) It was a lot of fun building the adapters. They are really easy to make!

Step 1
Just cut out piece of prototype board with the length you need and four holes wide.

Step 2
Solder a dual in line connector to the copper side of the board. Just don’t push the connector completely into the holes so that you can reach the copper with your soldering iron.

Step 3
Solder two single line pin connectors on the other side of the board, right and left of the dual connector.

Step 4
This is a bit tricky. You can use some wire to connect the pins of the DIL (Dual In Line) with the single line connectors. But I found out it is much easier just to put a bit more solder between the pins and let them connect. You may have to try one or two times. Having some desoldering wick around is a good thing if you happen to solder together wrong pins. ^^

Step 5
Profit! 😉

I appended some images you may consider more or less useful. I should make one more adapter to document the build process. :/ I am sure there will be such an opportunity soon.

Cheers Esden