BLDC-SHIELD_IFX007T by Infineon. Will it run with SimpleFOC on an Arduino Uno? I think I've almost got it

Hi, all.

I’m messing around with the BLDC-SHIELD_IFX007T shield, which I am happy to see is a SimpleFOC-supported driver. Really wanted to get my hands on something with better heat dissipation than the B-G431B-ESC1, and ordering a SimpleFOCPowerShield from China would take a while. I’ve already soldered all the necessary connections and resistors and done my due diligence.

Or so I thought. I looked at the SimpleFOCPowerShield’s schematic and example sketch to help me figure stuff out, because the driver stage for the two boards is very similar, and I ran into two problems:

1.) According to the SimpleFOCDocs, the Arduino Uno only supports in-line current sensing, as does the SimpleFOCPowerShield, and the BLDC-SHIELD_IFX007T shield supports (only?) low-side current sensing?? Am I already doomed here? If not, what’s the correct initializer/definition for current sensing using an Uno and this shield? I’ve got the rest of my main.cpp written, just don’t know that bit.Edit: That’s correct. No current sensing, but board should still work.

2.) According to the SimpleFOCDocs, the Arduino Uno has a fixed PWM frequency of 32kHz, but the IFX007/BTN8982 half-bridge MOSFETs only do 15kHz? If it’s not perfect, too bad. As long as it works.

Following this thread regarding the PowerShield, I read that it’s “completely inspired by the Infineon board”, so I’m really hoping someone has got it working and has a working sketch somewhere.
Edit: Found my answer in this thread: there’s no current sensing support for this board because it uses the high-side current sensing topology, but it should still work. I fail to see how when current is never sensed and there are no hall sensors, but I’ll read more and try with hall sensors and find out. Fingers crossed.

Oh, also, why is the sense resistor R4 on the Infineon board 1kΩ?? It definitely looks different to the shunt resistors I’ve seen on other boards, too, which are in the mΩ range.
Edit: High-side current sensing topology. SimpleFOC doesn’t support yet. May never. Very inflexible design because it requires great synchronicity between PWM triggering and ADC triggering. Super hardware-specific. Read here if curious.

Also, how do I figure out what value to put for “current-sense op-amp gain”? I’m wondering if in my case this will be a really small number if the current-sense resistor is really large?
Edit: It doesn’t apply to the Infineon board, but I’m very curious to know for the future. Is this a number typically given in a board’s technical documentation/user manual?

A big thank you in advance to any helpful responses!

Schematics for comparison (top, Infineon; bottom, SimpleFOC):

My friend, you jump from one poor heat management board to another.

The BLDC-SHIELD_IFX007T shiled has its own thermal management problems, but at least it cools down better. I guess this is part of the learning curve here.

Yes, that’s correct. You are doomed.

That’s the real problem, please read this thread.

You put the current sensor op-amp gain which is defined in the documentation. Look for something called 100V/V, or 10V/V, which means for each 1 volt input you get 100 volts output. The 100 or 10 or whatever is your gain.

Yeah, I did one, please check this design. It’s a very old one I did, only for educational purposes, it’s got many problems, but will give you a decent idea what to expect.


1 Like

Yeah, and UNO is a bit slow for SimpleFOC anyways…

Why not try a nice Nucleo64 board? They’re not expensive and have much better performance than an UNO. They have UNO compatible headers, although you should check the pin out carefully to make sure it can work with the IFX007T…

I recommend a G474 or G431… but check the pinouts!

Yeah, in fact I think you’ll have to use 10kHz or even 5kHz or it will get too hot. And then it’s super-noisy… :weary: it’s just so disappointing! I was so optimistic about this board, but it turns out it’s not much good for bldc driving at all. Sometimes I wonder if we’re all somehow using it wrong, because how can Infineon produce such a lemon??
But on the other hand the product spec with “Capable of high frequency PWM e.g. 30kHz” should have been a warning… 30kHz isn’t high frequency for motor control, it’s just normal. 200kHz would be high frequency :wink:

Anyways, I gave up on it…

1 Like

Just want something that works, doesn’t have to be perfect.

I read the thread. Stark contrast to this thread where everyone is praising Infineon’s design and basing the SimpleFOCPowerShield off of it. What a beatdown. I’ve promised my teammates results, and now it’s looking more and more like we’ll have to go for a DC motor. I hate the idea, but…

…I might have to face my reality and tell my team I can’t deliver. I’ve found such a wealth of good open-source or hobbyist or Arduino library supported hardware everywhere, but not with these BLDC motors. Actually, just to find the B-G431 and SimpleFOC and this forum took me a lot of research. Really may have to put BLDC off for V2 when my skillset and timeframe will be better. Feeling disappointed.

Felt like a dunce for a second, but I don’t see it in the Infineon board’s documentation. Maybe if I scanned through the source code I’d find it, but…not doing that right now.

Thanks for sharing, but I meant an Arduino sketch. Using an Uno and the Infineon board I at least wanted to get my motor moving, but the example in Infineon’s repo doesn’t work and…well I might give SimpleFOC another try but I can’t even get sensor alignment to run…surely I’m doing something wrong, right? Here’s my code if anyone’s bothered enough.

Dont give up there are solutions. Ill respond tomorrow in details.

1 Like

I will try a Nucleo64 board! I’ll look into the headers and PlatformIO compatibility first, but that sounds great.

This made me feel so much better. I was starting to lose my mind. That being said, though, I don’t think I have anymore options, in that case, for a BLDC. All the drivers I’ve found, be they from Infineon or STM literally don’t do what it says on the box! The example sketch for running the Infineon board with FOC by Infineon got removed from their repo, and the hall-sensored one just doesn’t work. As I’m ranting, I’ll add that the STM32 IDE toolchain and the Infineon/Keil microvision toolchain are ridiculously ci have ridiculously complicated toolchains that see many complaints, which is why SimpleFOC is so great-- Maybe in fancy legal terms they do, but they don’t.

I’ve started to look at open-source designs based on VESC6. A little worried about supply chain issues as I get into it, but it’s too early to say. None of the repo’s I’ve seen have designs confirmed to be working, but there’s this one called the “Cheap FOCer (v2)” that could fit the bill.

In a crazy turn of events, my friend asked me to show him how far I got stuff working on the B-G431B-ESC, so I showed him with a different motor connected. And stuff works. Not completely, but as much as I’d expect it to.

At any speed and no load, the motor never draws more than 25W, and the chip stays nice and cool. I guess I destroyed the first medium motor during testing at some point, or it worked fine at first and then got progressively worse. Definitely continuing with the B-G431B-ESC, now.

Back in it. Might have some programming questions in the next day or two, but otherwise I’m ok. Way more than ok, actually.

Hi @Kacko,

I do hope we can get something working for you!!

But it is certainly true that driving BLDCs is actually quite difficult - much more so than DC motors.

You make the impression of being very dedicated, clued in, and seem to understand everything very quickly! So I think you’re actually doing extremely well, and I think you should not be discouraged!!! Its just a hard thing to do.

Here are a couple of drivers that have worked for me:

there’s also these ones, which I very much assume will work just as well (but I haven’t tried):

A bit simpler to use is the DRV8302 based ones because you don’t need SPI:

these are also cheaper because from AliExpress.

1 Like

@runger thanks so much for the encouragement.

As my board is finally performing simple tasks well–after swapping out board and motor :upside_down_face:–I may stick with the B-G431. It seems we had a miscommunication over my issue. The imperfections in thermal performance design that you were talking about weren’t what was wrong with the board. My overheating was on a whole 'nother level.

If I need to fall back on something else, I know what it will be, now. 24V with 15A would honestly be all I need right now.

On my desperate little detour to VESC, I saw that all the new designs avoid using a DRV8305 and it’s why they have like a million little passive components everywhere. No clue why yet. Also found out the reason I can’t see any capacitor-looking capacitors is because of “DirectFET” technology:

It’s nuts, they’re so compact.

Still, on my EDU board, I can’t even see these. Must be my eyes. Have a look: