Skip to content

Repository files navigation

Furuta pendulum controllers

This repository now keeps the two hardware implementations separate:

  • legacy_teensy_can/ is the original Teensy 4.1 + CAN firmware.
  • teensy_uart_web/ is the Teensy 4.1 + ODrive S1 isolated-UART controller with AS5048A SPI input and a guided local web dashboard for setup, testing, bounded tuning, logging, and run control.
  • raspberry_pi_usb/ is a temporary Raspberry Pi 5 controller that talks directly to the ODrive S1 over isolated USB, reads an AS5048A absolute pendulum encoder over SPI, and reads the safety loop from Pi GPIO.
  • teensy_as5048a_reader/ is a standalone Teensy 4.1 program that only reads the AS5048A and prints its values over USB serial.

Start with the README inside the implementation you intend to use. Both versions start disarmed and require an explicit zero followed by arm.

Experimental machinery warning: A Furuta pendulum can move suddenly and cause injury. Use guards, physical travel stops, conservative current/torque limits, and a hard-wired E-stop that removes motor power. Neither a Raspberry Pi GPIO input nor an ODrive enable input is a safety-rated E-stop.

The Pi/USB version is useful for bring-up while a CAN interface is unavailable, but it is not a like-for-like microcontroller replacement. Raspberry Pi OS is not a hard real-time operating system, and ODrive recommends CAN rather than USB for runtime operation. Validate loop timing and AS5048A readings with motor power disconnected before attempting motion.

About

Experimental Furuta pendulum control stack for Teensy, Raspberry Pi, ODrive, and AS5048A hardware.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages