Janus Brushless Controller

The Janus Controller is a Brushless motor driver with an on-board magnetic encoder for position and velocity control.

Public Chat
Similar projects worth following

The Janus Controller is a Brushless motor driver with an on-board magnetic encoder, a three-phase MOSFET driver, three MOSFET half-bridges, a temperature sensor and current sensing resistors.

Janus Controller was designed to work with the ESP32 Dev-Kit1 as a shield so that the programing of the board is easier for hobbyist and students, and to bring down the overall price of the board. This board can be used to drive brushless motors as an open-loop system or use the on-board encoder to drive the motors as a closed-loop system and use more complicated algorithms, such as Field Oriented Control for position and velocity control. I recommend using the Simple FOC Arduino library as it has shown to work perfectly for position and velocity control and is easily implementable, but you can always use your own algorithm. 

  • 1 × DRV8305 MOSFET gate driver
  • 6 × NVTFS5C453NL N-Channel MOSFET/ 3.1mhom
  • 1 × MA730 Magnetic Encoder
  • 1 × MCP9701AT Sensors / Temperature
  • 1 × ESP32 DEVKIT V1

View all 6 components

  • New layout

    David Gonzalez08/10/2020 at 05:11 0 comments

    Decided to revisit the pcb of this project and I updated the layout. The encoder is centered on the board, connected the SPI of the encoder and the current sensing tracks are differential with kelvin connections. Will update files on the github repo soon.

  • Test Station V1.0

    David Gonzalez07/07/2020 at 22:39 0 comments

    Test Station V1.0 

    • Janus Controller 20.01
    • YUNM4234 brushless motor 
    • Diametrically polarized magnet 
    • 3D printed base 
    • ESP32 DevKit V1

View all 2 project logs

Enjoy this project?



zhuangfengzi wrote 10/19/2020 at 07:26 point

What are these mistakes? How to solve this problem? thank you!

E:\xxxxxx\esp32\Janus-Controller-master\JC01F05\JC01F05.ino: In function 'void setup_MCPWM()':

JC01F05:379: error: 'MCPWM_SELECT_SYNC_INT0' was not declared in this scope

exit status 1
'MCPWM_SELECT_SYNC_INT0' was not declared in this scope

  Are you sure? yes | no

zhuangfengzi wrote 10/19/2020 at 14:51 point

@Paul Gould 

    Thanks a lot!

  Are you sure? yes | no

David Gonzalez wrote 10/19/2020 at 16:14 point

Yes, Paul found a mistake on the mcpwm.h file as shown on his project log. Thanks Paul.

  Are you sure? yes | no

Steven wrote 09/20/2020 at 09:53 point

How much does it cost to produce the controller?

  Are you sure? yes | no

Owen Williams wrote 08/23/2020 at 17:10 point

Have you tried out your new board?  I was wondering whether your changes have meant that current sensing is now working?

  Are you sure? yes | no

David Gonzalez wrote 08/23/2020 at 23:08 point

I don't think I will order the corrected version of this controller. At the moment I'm putting all my resources in the following version of my BLDC controller.

  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