Skip to content

Managers

A manager is the one object that owns a board function: it knows which chips and pins implement it (from the pin map), creates and owns the hf-core handlers for them, and gives you a small API. Every manager is a singleton reached through the Vortex facade.

Manager Member What it gives you Start-up step
CommChannelsManager vortex.comms SPI2 devices, the I2C bus, the UART to the TMC9660, the TWAI (CAN) bus required
NvsManager vortex.nvs Three flash key-value namespaces: application, calibration, configuration required
GpioManager vortex.gpio Every GPIO-category pin by name or enum, on the ESP32-C6, the PCAL95555 and the TMC9660 required
MotorController vortex.motors The onboard TMC9660 (and up to two external ones), motor and load-frame velocity and position best effort
AdcManager vortex.adc The 15 TMC9660-hosted ADC channels: currents, supply voltages, temperatures, AIN inputs best effort
ImuManager vortex.imu The onboard BNO08x IMU and up to three external ones, data-ready interrupts best effort
EncoderManager vortex.encoders Up to four AS5047U angle encoders, created by you best effort
LedManager vortex.leds The WS2812 status LED: colours, brightness, animations, status patterns required
TemperatureManager vortex.temp ESP32-C6 die, NTC thermistor and TMC9660 chip temperatures best effort

Every manager has the same lifecycle calls: GetInstance(), EnsureInitialized() (idempotent), IsInitialized(), Deinitialize() (or Shutdown() for the LED manager), GetLastError(), GetSystemDiagnostics(...) and DumpStatistics(). The start-up step column says whether a failure stops Vortex::EnsureInitialized(); see Initialisation.