Georgios Michalis

Mechanical Engineer / Developer

Motor Controller

System Engineer on a development of a Field Oriented Control (FOC), motor controller for up to 400HP motor.

Before taking over there was an existing undocumented codebase in C with only the FOC algorithm implemented, and a prototype board.

  • The Project requirements were the following:
  • Create Graphical user interface for live monitoring of the motor status and easy configuration.
  • Design the Case of the controller.
  • Redesign the PCB to conform to specified standards.
  • Add CAN support (J1939).

The Team had 4 people. An electrical engineer, an electronics engineer, a mechanical engineer, and me.

  • On the scope of these project i accomplished the following things:
  • Gave the guidelines and the original concept for the case design.
  • Proof-checked all the engineering drawings
  • Gave the guidelines and all the requirements for the PCB redesign, after excessive research on the standards required, the industry required connections, and the client requirements.
  • Simulated the original code on Simuling + visim,
  • Refactored the C code documenting everything, and migrating the codebase on a git repository.
  • Adjusted the PI portion of the control algorithm and added autotuning functionality.
  • Added various redundant safety features
  • Designed the serial communication protocol in preperation for the GUI developement.
  • Researched, developed and merged on the codebase a robust J1939 CAN stack
  • Designed and Developed the GUI using C# and Xamarin
Rev0.3 controller Board


GUI page


Throttle Configuration Page


CAN controller software
SVPWM calculations


Uncovered Final Controller


Assembly process