Skip to content

Releases: Source-Robotics/STEPFOC-stepper-controller

Release 106

Choose a tag to compare

@PCrnjak PCrnjak released this 05 Jul 14:47

STEPFOC firmware V106 — application image for flashing via the Spectral bootloader.

CAN bus

  • The controller now drains up to 8 CAN messages per pass instead of just 1, so short bursts (multiple commands sent back-to-back, or a busy multi-node bus) no longer silently drop messages once the 3-deep hardware FIFO fills.
  • A CAN peripheral that fails to initialize no longer bricks the board — UART stays fully usable, only the CAN bus is skipped.

Safety

  • Added a hardware watchdog (100ms). If the control loop ever stops running, the board resets instead of leaving the motor driven at a stale duty cycle.
  • Fixed a bug where Torque_mode could silently overwrite your commanded Iq setpoint when clamping to the current limit — reading it back after clamping now shows what you actually asked for, and raising the current limit afterward immediately restores the original commanded torque instead of requiring the command to be resent.
  • Fixed undefined behavior in a serial-protocol integer conversion (fourBytesToInt).
  • Synced default configuration values that had drifted between two locations in the code, so a fresh #Default and a freshly-flashed board's built-in defaults now agree.

EEPROM / configuration integrity

  • Added CRC validation over the saved configuration, split into two independent halves: calibration data (resistance, inductance, Kt/KV, angle offset, current-loop gains, etc.) and settings (PID tuning, limits, watchdog config, CAN ID, etc.).
  • This means a corrupted save (e.g. from a power loss mid-write) is detected and safely defaulted instead of silently running with garbage values — and critically, a future firmware update that only adds a new setting can no longer wipe your calibration, since the two are validated independently.
  • Boards upgrading from older, pre-CRC firmware keep their existing calibration automatically — no need to recalibrate after this update.
  • A few unused slots were reserved in the calibration block for upcoming features (e.g. magnet alignment), so those can be added later without another migration.

Performance

  • PWM output no longer re-resolves which timer/channel it's writing to on every single call (it was doing this 4x per control tick) — resolved once and cached, freeing up ISR headroom.
  • Velocity calculation switched from a floating-point divide to an integer multiply.

Usability

  • New #Help command — prints a summary of the available commands.
  • Serial now responds with "Unknown command" for unrecognized input instead of silently ignoring it.
  • Calibration now prints progress during the angle-offset search (previously up to ~40 seconds of silence that could look like the board had hung).
  • #Error now also reports driver faults (undervoltage/thermal/overcurrent), not just the other error types.
  • #Info now always reports live ISR execution time, useful for checking control-loop headroom on the bench.

Assets

  • stepfoc-firmware-V106.bin — application firmware image (flash at 0x08003000, target STM32F103CB).
  • firmware.json — manifest with version, size, and SHA-256 for download verification by the web flasher.

Integrity

  • SHA-256: bc061fb273e7c836e3180fa597ecd373e7e357b0eab9130b63a7fd19b70a6073
  • Size: 98940 bytes

Built from commit 661e7d3 on bootloader-version. Includes bootloader entry support (CAN/UART reset-into-bootloader).

Release 105

Choose a tag to compare

@PCrnjak PCrnjak released this 04 Jul 18:47

STEPFOC firmware V105 — application image for flashing via the Spectral bootloader.

What's new

  • Reversed stepper phase wiring now calibrates automatically — no more "switch phases and try again." The firmware detects the wiring and compensates it in software, so all 8 phase-wiring permutations calibrate identically and symmetrically.
  • #Info now reports the firmware's own build version, so the version is correct immediately after flashing (no #Default needed).

Assets

  • stepfoc-firmware-V105.bin — application firmware image (flash at 0x08003000, target STM32F103CB).
  • firmware.json — manifest with version, size, and SHA-256 for download verification by the web flasher.

Integrity

  • SHA-256: 0d80ce3cf78109f6ff54697425ed475ffca4e97e220d72fe0823ce1bd60a4908
  • Size: 95924 bytes

Built from commit bda57d6 on bootloader-version. Includes bootloader entry support (CAN/UART reset-into-bootloader).

Release 103

Choose a tag to compare

@PCrnjak PCrnjak released this 28 Dec 19:42

First stable release for public

Release 102

Choose a tag to compare

@PCrnjak PCrnjak released this 28 Dec 13:52
cd3b861

First official release for the public

release 101

Choose a tag to compare

@PCrnjak PCrnjak released this 29 Sep 17:10
2ccd0f5

Initial fully functional release based on spectral micro firmware.