# High power, all in one Arduino shield

**URL:** https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329
**Category:** hardware support
**Created:** [August 16, 2024, 3:14am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329 "2024-08-16T03:14:38Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![Jeremiah\_Rose](https://community.simplefoc.com/user_avatar/community.simplefoc.com/jeremiah_rose/32/7260_2.png) [@Jeremiah\_Rose](https://community.simplefoc.com/u/Jeremiah_Rose)
#### Post date: [August 16, 2024, 3:14am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/1 "2024-08-16T03:14:38Z")

</div>

Hi there, I’m wanting to use SimpleFOC to control two high speed, high current BLDCs with Arduino. I’ve noticed that there isn’t an off-the-shelf hardware solution to do this yet. I found the Power Shield but it looks like that project is defunct now, and also it wouldn’t have worked for very high speed motors with the Arduino anyway because of MCU processing speed constraints and lack of interrupts.

I’m wondering is anyone working on / interested in working on an all-in-one high power, dual motor shield for Arduino with an inbuild high speed MCU like an STM32?

I’m thinking the shield would run OpenFOC directly on the onboard STM32, and be programmed directly via USB port. Then the Arduno underneath it can send a single PWM signal to the shield to control speed or position or torque. The shield would have a standard sketch pre-programmed, with easily understandable constants for all of the motor’s main characteristics. So, a complete package that can control virtually any motor!

Is it doable?

---

<div class="post-metadata">

### Author: ![Valentine](https://community.simplefoc.com/user_avatar/community.simplefoc.com/valentine/32/1024_2.png) [@Valentine](https://community.simplefoc.com/u/Valentine)
#### Post date: [August 16, 2024, 4:54am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/2 "2024-08-16T04:54:26Z")

</div>

@Jeremiah_Rose

Welcome to the community.

Yes its possible.

Cheers,  
Valentine

---

<div class="post-metadata">

### Author: ![VIPQualityPost](https://community.simplefoc.com/user_avatar/community.simplefoc.com/vipqualitypost/32/4420_2.png) [@VIPQualityPost](https://community.simplefoc.com/u/VIPQualityPost)
#### Post date: [August 16, 2024, 5:00am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/3 "2024-08-16T05:00:42Z")

</div>

> [@Jeremiah\_Rose](#):
>
> shield for Arduino with an inbuild high speed MCU like an STM32?

Sorry, I don’t understand the reason to stack two microcontrollers like this? If you are going to have to program a microcontroller for motor control anyway, why not just do all on the STM32?

---

<div class="post-metadata">

### Author: ![o\_lampe](https://community.simplefoc.com/letter_avatar_proxy/v4/letter/o/85e7bf/32.png) [@o\_lampe](https://community.simplefoc.com/u/o_lampe)
#### Post date: [August 16, 2024, 7:40am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/4 "2024-08-16T07:40:08Z")

</div>

The dual motor/ high power part already exists with hoverboard controllers, but I’m not so sure about high speed.  
I never tried to run low pole count/ high kV motors on them.

---

<div class="post-metadata">

### Author: ![Jeremiah\_Rose](https://community.simplefoc.com/user_avatar/community.simplefoc.com/jeremiah_rose/32/7260_2.png) [@Jeremiah\_Rose](https://community.simplefoc.com/u/Jeremiah_Rose)
#### Post date: [August 16, 2024, 11:35pm UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/5 "2024-08-16T23:35:59Z")

</div>

> [@VIPQualityPost](#):
>
> I don’t understand the reason to stack two microcontrollers like this? If you are going to have to program a microcontroller for motor control anyway, why not just do all on the STM32?

I think if you’re running a FOC algorithm for two motors simultaneously at high speed, with interrupts, there won’t be any clock cycles left on the STM32 to run any other application logic. The FOC main loop needs to run at the fastest frequency possible.

If the BLDC shield has its own MCU, that frees up the Arduino for the user to do whatever they want on it.

---

<div class="post-metadata">

### Author: ![VIPQualityPost](https://community.simplefoc.com/user_avatar/community.simplefoc.com/vipqualitypost/32/4420_2.png) [@VIPQualityPost](https://community.simplefoc.com/u/VIPQualityPost)
#### Post date: [August 17, 2024, 2:13am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/6 "2024-08-17T02:13:36Z")

</div>

Sure, but the STM32 is quite fast, several orders of magnitude faster than the Arduino (unless you’re on the new R4). @Copper280z has proven there is more than enough bandwidth for even more than 2 motors on the STM32G4!

Not to say you shouldn’t do it, just that the motivation to me is not fully clear 🙂

---

<div class="post-metadata">

### Author: ![Jeremiah\_Rose](https://community.simplefoc.com/user_avatar/community.simplefoc.com/jeremiah_rose/32/7260_2.png) [@Jeremiah\_Rose](https://community.simplefoc.com/u/Jeremiah_Rose)
#### Post date: [August 17, 2024, 3:03am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/7 "2024-08-17T03:03:24Z")

</div>

For high KV motors running at high speeds e.g 40,000rpm? I’d like to see that.

I would sum up the motivation as follows:

- People prefer Arduino over STM32 because of the enormous level of hardware, software and community support.
- There isn’t currently a BLDC shield for Arduino that works for high power/fast motors as far as I’m aware.
- Running the FOC algorithm on the Arduino itself isn’t an option due to processor speed and lack of interrupts (including on the R4).
- The FOC algorithm prevents you from using the the MCU for general purpose code (e.g you can’t use sleep calls or wait for IO in the main loop), so putting it on a separate MCU makes sense.

---

<div class="post-metadata">

### Author: ![dekutree64](https://community.simplefoc.com/user_avatar/community.simplefoc.com/dekutree64/32/3398_2.png) [@dekutree64](https://community.simplefoc.com/u/dekutree64)
#### Post date: [August 17, 2024, 3:13am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/8 "2024-08-17T03:13:52Z")

</div>

The beauty of SimpleFOC is that you can do whatever the heck you want 🙂

Here’s a good thread from a couple weeks ago discussing high speed [Issues with going above a certain speed - hardware support - SimpleFOC Community](https://community.simplefoc.com/t/issues-with-going-above-a-certain-speed/5250)

---

<div class="post-metadata">

### Author: ![o\_lampe](https://community.simplefoc.com/letter_avatar_proxy/v4/letter/o/85e7bf/32.png) [@o\_lampe](https://community.simplefoc.com/u/o_lampe)
#### Post date: [August 17, 2024, 5:16am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/9 "2024-08-17T05:16:15Z")

</div>

We’ve recently discussed the Arduino Giga board: It has a dual core STM32.  
But I eat my shoes if arduino IDE is able to run both cores at their full potential.

---

<div class="post-metadata">

### Author: ![Copper280z](https://community.simplefoc.com/user_avatar/community.simplefoc.com/copper280z/32/5514_2.png) [@Copper280z](https://community.simplefoc.com/u/Copper280z)
#### Post date: [August 17, 2024, 8:33am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/10 "2024-08-17T08:33:37Z")

</div>

I’ve done 20,000rpm, but not 40,000, I haven’t set things up with appropriate safety to try that.

With one motor there’s plenty of time left over to do lots of interesting stuff if you schedule things efficiently. 2 motors is doable, even with high loop rates/HFI sensorless. That scheduling isn’t trivial though, and I’d say is somewhat outside of the scope of what I’d expect a normal arduino user to do/deal with. Especially with their love of sleep calls. If you were interested, I’d suggest you look at the SuperSimpleTasker project, search for it on GitHub.

I would say that you’re much better off using i2c, spi, uart, or can for this, rather than pwm, or using a pair of bg431esc boards. The control loops for each motor will be application specific, so the user will need to change those parameters either at runtime from their host mcu, or at compile time for the “esc” firmware. If you’re only giving a pwm interface, you force that to be compile time.

---

<div class="post-metadata">

### Author: ![runger](https://community.simplefoc.com/user_avatar/community.simplefoc.com/runger/32/395_2.png) [@runger](https://community.simplefoc.com/u/runger)
#### Post date: [August 17, 2024, 8:40am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/11 "2024-08-17T08:40:07Z")

</div>

Hey, just a note that ST Micro has some higher power motor shields like this:  
[https://www.st.com/en/ecosystems/x-nucleo-ihm08m1.html](https://www.st.com/en/ecosystems/x-nucleo-ihm08m1.html)

As does TI:

> **[slvuai8a.pdf](https://www.ti.com/lit/ug/slvuai8a/slvuai8a.pdf?ts=1641933706016&ref_url=https%253A%252F%252Fwww.ti.com%252Ftool%252FBOOSTXL-DRV8305EVM)**
>
> 1382.36 KB

And Infineon:  
[https://www.infineon.com/cms/en/product/evaluation-boards/bldc\_shield\_tle9879/](https://www.infineon.com/cms/en/product/evaluation-boards/bldc_shield_tle9879/)

YMMV of course and these products might not be exactly what you’re looking for.

In our forums, there are also some designs that you might be interested in, even if they aren’t in the form factor of an Arduino shield:

[https://community.simplefoc.com/t/new-modular-driver-board-60v-30-50a/4674](https://community.simplefoc.com/t/new-modular-driver-board-60v-30-50a/4674)

[https://community.simplefoc.com/t/135v-200a-esc-krakatoa/2037](https://community.simplefoc.com/t/135v-200a-esc-krakatoa/2037)

And it’s also worth mentioning Moteus a solid product at a good price, and open source:

> **[moteus r4.11 controller](https://mjbots.com/products/moteus-r4-11)**
>
> The moteus brushless controller turns a hobby brushless motor into a high performance servo actuator.  It integrates the necessary drive electronics, a high performance 32 bit microcontroller, an absolute magnetic encoder, and a high-speed data...

Or if you like the Arduino form factor, the Solo motor controllers, but their firmware isn’t open source:

> **[SOLO: Easy and Powerful Motor Controller for All Motors](https://www.solomotorcontrollers.com/)**
>
> SOLO is a Motor Controller for brushed DC, Brushless DC, PMSM and AC induction motors. It supports Arduino, Raspberry Pi, ROS, Matlab, LabView and more.

---

<div class="post-metadata">

### Author: ![Valentine](https://community.simplefoc.com/user_avatar/community.simplefoc.com/valentine/32/1024_2.png) [@Valentine](https://community.simplefoc.com/u/Valentine)
#### Post date: [August 17, 2024, 3:13pm UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/12 "2024-08-17T15:13:30Z")

</div>

> [@Jeremiah\_Rose](#):
>
> - People prefer Arduino over STM32 because of the enormous level of hardware, software and community support.

Perhaps I misunderstand your comment, but I believe you might be mixing the software framework/toolchain (Arduino) with an MCU family (ST Micro’s line of hardware).

> [@Jeremiah\_Rose](#):
>
> There isn’t currently a BLDC shield for Arduino

You mean there isn’t such a shield that sits on top of Microchip ATmega328P microcontroller in the “Arduino” footprint? Yes, there isn’t. The 328P isn’t fast enough to support this and the footprint is too small to allow for such a shield. We did develop something like close to that though, you may want to have a look:

> [@SimpleFOC Power Shield-D Beta](https://community.simplefoc.com/t/simplefoc-power-shield-d-beta/2686):
>
> Hello all! After a while, we are announcing a Beta version of the SimpleFOC PowerShield-D. D stands for [D]iscrete Power Shield, currently designed to work on Arduino UNO footprint pinout. The shield is sized for 30A peak power. Features: Overvoltage / ESD protection Reverse voltage protection. Buck converter with chained 5V and 3.3V for powering external components as well as the Arduino shield to form a standalone module. Discrete drivers and MOSFETs In-line current hall-based s…

 ![image](https://community.simplefoc.com/uploads/default/original/2X/7/7f449f05f4be2f4a0a79f41fd8129c5a6ae85c7b.jpeg)

> [@Jeremiah\_Rose](#):
>
> FOC algorithm on the Arduino itself

Again, perhaps we are mixing AT386p with Arduino toolchain?

> [@Jeremiah\_Rose](#):
>
> FOC algorithm prevents you from using the the MCU for general purpose code (e.g you can’t use sleep calls or wait for IO in the main loop)

Any real-time control algorithm will prevent you from doing that, as it would disrupt the motor control loop.

Cheers,  
Valentine

---

<div class="post-metadata">

### Author: ![Jeremiah\_Rose](https://community.simplefoc.com/user_avatar/community.simplefoc.com/jeremiah_rose/32/7260_2.png) [@Jeremiah\_Rose](https://community.simplefoc.com/u/Jeremiah_Rose)
#### Post date: [August 25, 2024, 3:22am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/13 "2024-08-25T03:22:01Z")

</div>

Thanks Valentine and everyone for such detailed replies. This is a thriving community!

Valentine, your power shield D beta looks great. I’m also keen to obtain one of these when they are available: [https://community.simplefoc.com/t/simplefoc-driveshield-a-big-more-powerful-brother-of-the-simplefocsheild/5368/3](https://community.simplefoc.com/t/simplefoc-driveshield-a-big-more-powerful-brother-of-the-simplefocsheild/5368/3)

Neither of these have an embedded MCU, but perhaps I can get away with just using 2 Arduinos for now instead of one, or an STM32 Nucleo for the motor control plus an Arduino for the rest. The lack of 3 interrupts on the Arduino R4 is a real bummer.

---

<div class="post-metadata">

### Author: ![dekutree64](https://community.simplefoc.com/user_avatar/community.simplefoc.com/dekutree64/32/3398_2.png) [@dekutree64](https://community.simplefoc.com/u/dekutree64)
#### Post date: [August 25, 2024, 3:42am UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/14 "2024-08-25T03:42:56Z")

</div>

If the interrupts are for hall sensors, that is no longer necessary. Candas1 added some code recently so HallSensor will just poll the sensor pins each frame if you don’t call enableInterrupts. Works great.

---

<div class="post-metadata">

### Author: ![Valentine](https://community.simplefoc.com/user_avatar/community.simplefoc.com/valentine/32/1024_2.png) [@Valentine](https://community.simplefoc.com/u/Valentine)
#### Post date: [August 25, 2024, 2:57pm UTC](https://community.simplefoc.com/t/high-power-all-in-one-arduino-shield/5329/15 "2024-08-25T14:57:22Z")

</div>

> [@Jeremiah\_Rose](#):
>
> Valentine, your power shield D beta looks great

Thank you. You may also want to check @Antun_Skuric 's latest power shield, too.

I don’t sell anything so you need to make those yourself. Contact Antun if you want to buy off shelf.

Or go for qvadrans for mcu integrated board.

Cheers,  
Valentine
