Dagor Brushless Motor Controller

Brushless motor controller for velocity and position control with wireless communication.

Public Chat
Similar projects worth following
Arduino-based fully integrated tiny solution for brushless-based actuators with wireless capabilities.

This controller is based on my previous design, the board includes an on-board ESP32, a buck regulator, a DRV8305 MOSFET driver, three current sensing resistors, a magnetic encoder and a temperature sensor. I have tested wireless communication with the ESP32 through ESPNOW and it seems to work reliable and more-than-fast enough without affecting the control sample-time. With ESPNOW you could potentially create a full robot without any single cable aside from power.

Old design:

The code is completely open-source and Arduino based. The bulk of the code will be based on the SimpleFOC arduino library, since it has worked perfectly in the past and is constantly being upgraded and updated.

  • 1 × ESP32 Wroom module
  • 1 × DRV8305 Smart MOSFET Gate Driver
  • 3 × TPH1R403NL Discrete Semiconductors / Power Transistors and MOSFETs
  • 1 × AS5147 Magnetic Encoder
  • 1 × LMR14010A 4-40V 1A Buck regulator

View all 7 components

View all 16 project logs

Enjoy this project?



srhassan71 wrote 11/30/2021 at 03:51 point

Would it be possible for you to build a brushless motor controller that would take PWM input from an RC receiver to control position? 

  Are you sure? yes | no

John Lauer wrote 12/08/2020 at 07:46 point

Hey, I posted on your form, but totally interested in a couple boards. jlauer12

  Are you sure? yes | no

David Gonzalez wrote 12/08/2020 at 22:54 point

I saw it, already contemplated for the alpha run :)

  Are you sure? yes | no

h3nrikmail wrote 11/25/2020 at 13:46 point

Very nice project! Can you approximate, how many erpm are possible with an esp32 and the simplefoc library? How fast can the brushless Motor turn?

  Are you sure? yes | no

Xasc wrote 11/25/2020 at 09:11 point

Nice, how big current can it hold?

  Are you sure? yes | no

David Gonzalez wrote 11/26/2020 at 19:26 point

It depends on the dissipation and the amount of time you draw current. I've draw continuous 3A without dissipation and without issues. The board should be around peak 40A for very very brief periods of time, again, depending on the cooling system and dissipation.

  Are you sure? yes | no

j fer wrote 11/20/2020 at 17:51 point

Really cool project, bravo :)
For a wire mode, the best option is to use an i2c network with the qwiic connector?

  Are you sure? yes | no

David Gonzalez wrote 11/20/2020 at 18:33 point

Totally a possibility. There is no i2c slave implementation for the ESP32 in the arduino core as of right now. There's a few workarounds, but I'm not sure how well these behave as I haven't tested them myself.

  Are you sure? yes | no

j fer wrote 11/20/2020 at 19:05 point

I was wondering if a quadruped robot with 12 actuators would be manageable with a Raspberry pi and the ESPNOW protocol.

  Are you sure? yes | no

David Gonzalez wrote 11/20/2020 at 19:12 point

I'm wondering the same. That link you sent me is part of the Solo 8 robot and I believe they don't use ESP-NOW for each individual motor. Id didn't know about the raspberry implementation, thanks for sharing :)

  Are you sure? yes | no

M. Ploegmakers wrote 10/17/2020 at 08:00 point

Well done! Maybe have a look at SwarmDrive, an open source ESP32 based motor driver development board. You can have a look at the code, perhaps it will help you out. See

  Are you sure? yes | no

David Gonzalez wrote 10/17/2020 at 18:43 point

Will take a look!

  Are you sure? yes | no

bozkurt13 wrote 10/09/2020 at 15:16 point

PBC'yi paylaşacak mısın?

  Are you sure? yes | no

zhuangfengzi wrote 09/27/2020 at 01:11 point

Well done! I want to be one too! Can you share your PCB?

Waiting for the goods, more your first version! Looking forward to it!


  Are you sure? yes | no

Owen Williams wrote 08/28/2020 at 09:02 point

I want one.  When do you think yours will arrive? I've read about espnow, wonder how the latency will compare with can bus. E.g for balancing applications it probably needs to be <5ms.

I'd love to study your design files. I've been following your janus and didn't realise you've moved on to dagor. 

Is this a jlpcb? What parts will you need to solder?

  Are you sure? yes | no

Simon Merrett wrote 08/28/2020 at 22:18 point

@Owen Williams off the top of my head I recall ESP-NOW taking under 1ms each way. But I could be confusing that timing with NRF24 which is around the same order of magnitude.

  Are you sure? yes | no

David Gonzalez wrote 08/29/2020 at 19:11 point

I haven't done a proper latency test, but I believe for small payloads it should be around 3-4 ms, which in my opinion is totally acceptable for most applications.

  Are you sure? yes | no

Paul Gould wrote 08/30/2020 at 01:57 point

You are correct. It varies between 0.5ms and 1ms for small payloads.

  Are you sure? yes | no

David Gonzalez wrote 08/29/2020 at 19:13 point

I think I will have them on my hand by next Friday. I will have to solder the ESP32, the encoder, buttons and an inductor; I already have all these parts here. I'll try to make sure you get one soon enough :)

  Are you sure? yes | no

Aaron wrote 08/06/2020 at 09:11 point

Nice,so tiny

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates