Skip to content

bskp/koebi

Repository files navigation

Köbi: Robotic Puppeteering

Setup

Köbi is a 6-channel wireless stepper controller consisting of a SparkFun ESP32 Thing (red) and a breakout shield (white). The latter is inspired by RAMPS and accomodates six stepper motor drivers (TMC2130 StepSticks, green), optical endstop sensors and fan control.

The software on the ESP32 provides an OSC (Open Sound Control) server. This, in combination with a matching tablet GUI for the modular TouchOSC app allows easy control of the steppers (which are the six thread spools).

Alternatively, the module can be controlled by any other OSC client. The OSC endpoints are documented at the end of this page.

No strings attached! Spindles with threads

Features

  • 500g per thread
  • Velocities up to 2m/s
  • Wireless control
  • Sub-centimeter precision
  • (Almost) unlimited thread lengths
  • Position and speed feedback for every channel
  • Self-calibration using optical markers on the threads (TODO)
  • Motor drivers configured using SPI, allowing for:
    • Microstepping reconfiguration (during operation)
    • Current control
    • Load estimation (TODO)
    • Count of missed steps if overload occurs (TODO)
  • Easily extendable code written in Micropython
  • Wireless console (WEBREPL) and code update (FTP)
  • Additional I2C / SPI / GPIOs broken out

There are a ton of things you can hook it to. Feel free to reuse!

Software + Firmware

The ESP32-Board runs a special build of the Micropython firmware due to two requirements:

  • The PWM hardware module, which generates the pulses for the stepper motors, is currently not supported by Micropython. This special build includes a Python module supporting it, implemented in C: The MCPWM module.

  • The Python module for the Trinamic TMC steppper drivers (which holds names and descriptions to dozens of its registers) had to be frozen in order to save memory: The TMC module. (TODO: Not published yet)

How much do you need? To get you started with the software, each of this three guides covers a different level:

  1. Getting started: Setup and interact with Köbi using a tablet and the default OSC API
  2. Hacking: Extend Köbis functionality by modifying the Micropython code running the ESP32
  3. Developing: Modify the Micropython firmware (written in C) to improve on the modules MCPWM or TMC. These are part of the modified Micropython built, ie. "frozen"

Hardware

This repo also supplies you with everything needed to build your own Köbi.

Bill of Ordering Materials

Thing Brand Part Source Price
Steppers (5-pack) Hanpose 17HS4401 AliExpress 38.-
Voltage Supply (120W) GYU&PW S-120-24 AliExpress 13.-
ESP32 Thing SparkFun DEV-13907 bastelgarage 22.-

SN74LS138N

  • bom: steppers, supply, esp32, tmcs, pcb/components, wall plug

3D Printed Parts

Thread Spool (40mm) Thread Spool (40mm): .stl Thread Spool (20mm) Pulley Voltage Supply Cover Pull Relief Poor Man's Fan Holder

  • stl, link zu onshape

Printed Circuit Board

  • PCB-Daten als pdf, gerber und kicad.

Ideas

  • Coordinated 2-axis movements
  • Load visualization
  • Presets with persistent storage
  • Self-calibration with markers
  • Sequencer (Sine and jitter movements)
  • Coordinated movements for more than 2 axes
  • Inverse kinematics