The code for 3 Phase motor control is meant to run on the ATmega32U4 microcontroller, on our open-sourced 3 Phase Driver Board.
A few other notes:
The current Makefile is setup to program an AVR via USB DFU.
The servo simulates the 3 sin waves needed to drive a 3-phase motor with a ~32KHz PWM of 3 half-H bridges.
The 3-phase controller handles ingesting predictor data (part of the controller code) to understand current position and push at a 90° (electrical rotational) angle to current position.
The magnetometer is MLX90363 - SOIC8 package, communicating over SPI.
This magnetometer allows for 14 bit precision and is updated at a rate of ~1 kHz. Reads from the device happen at ~800 Hz. However, 800 Hz update rate is insufficient for use as exact position in pwm cycle, therefore we must use a predictor, which is part of the code.