Skip to content

Gear Controller

For the GearController is currently one applications available:

  • Firmware (folder: /gear_controller_simple)

Firmware Tasks

  • Cyphal Publishers
    • 2x Servo state messages + Gear Controller state (overall) message
  • Cyphal Receiver classes to receive GearState (deprecated message type from MB) and GearCommand messages
  • Hardware Interface helpers
    • PWM: ramping setpoints linearly
    • QDec: counting rotations when overflown, returning rad instead Zephyr driver's degree
    • LED: simple blinking by PWM
  • Gear Controller state machine
    • setter functions to move to extend or retract positions
    • 2x Axis state machines (each with one servo motor), checking if endpoints are reached individually
  • Update of Servo related analog read outs

Utilized Library

  • Cyphal Library (Registry, ...)
  • Interface definition for PWM Output and QDec Input
  • Servo class (consisting of 2x PWM Output, a QDec Input, a current ADC monitoring device, and a v12 getter)
    • update function to read out input channels
    • getter for states (e.g. isStalled, current, qdec position)
    • stepper helper function for fixed gear shaft rotation amount (workqueue task)