{"id":20161743,"url":"https://github.com/bskp/koebi","last_synced_at":"2026-05-09T19:41:28.473Z","repository":{"id":144952151,"uuid":"230733067","full_name":"bskp/koebi","owner":"bskp","description":"Robotic Puppeteering","archived":false,"fork":false,"pushed_at":"2020-03-29T13:59:18.000Z","size":15555,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-13T13:52:34.894Z","etag":null,"topics":["esp32","micropython","osc","stepper-motor","tmc2130","touchosc"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bskp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-29T10:08:56.000Z","updated_at":"2020-03-29T13:59:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"6651db6f-8cd2-4ed6-b868-a49e66024fb9","html_url":"https://github.com/bskp/koebi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bskp%2Fkoebi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bskp%2Fkoebi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bskp%2Fkoebi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bskp%2Fkoebi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bskp","download_url":"https://codeload.github.com/bskp/koebi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241600483,"owners_count":19988713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp32","micropython","osc","stepper-motor","tmc2130","touchosc"],"created_at":"2024-11-14T00:20:33.203Z","updated_at":"2026-05-09T19:41:28.434Z","avatar_url":"https://github.com/bskp.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Köbi: Robotic Puppeteering\n==========================\n\n![Setup](draufsicht.jpeg)\n\nKöbi is a 6-channel wireless stepper controller consisting of a [SparkFun ESP32 Thing](https://www.sparkfun.com/products/13907) (red) and a **breakout shield** (white). The latter is inspired by [RAMPS](https://reprap.org/wiki/Arduino_Mega_Pololu_Shield) and accomodates six stepper motor drivers ([TMC2130 StepSticks](https://shop.watterott.com/SilentStepStick-TMC2130), green), optical endstop sensors and fan control.\n\nThe software on the ESP32 provides an [OSC (Open Sound Control)](https://en.wikipedia.org/wiki/Open_Sound_Control) server. This, in combination with a matching tablet GUI for the modular [TouchOSC](https://hexler.net/products/touchosc) app allows easy control of the steppers (which are the six thread spools).\n\nAlternatively, the module can be controlled by any other OSC client. The OSC endpoints are documented at the [end of this page](#osc-api).\n\n![No strings attached!](setup.jpeg)\n![Spindles with threads](spulen.jpeg)\n\nFeatures\n--------\n\n- 500g per thread\n- Velocities up to 2m/s\n- Wireless control\n- Sub-centimeter precision\n- (Almost) unlimited thread lengths\n- Position and speed feedback for every channel\n- Self-calibration using optical markers on the threads (TODO)\n- Motor drivers configured using SPI, allowing for:\n    - Microstepping reconfiguration (during operation)\n    - Current control\n    - Load estimation (TODO)\n    - Count of missed steps if overload occurs (TODO)\n- Easily extendable code written in [Micropython](https://micropython.org)\n- Wireless console (WEBREPL) and code update (FTP)\n- Additional I2C / SPI / GPIOs broken out\n\nThere are a ton of things you can hook it to. Feel free to reuse!\n\n\nSoftware + Firmware\n-------------------\n\nThe ESP32-Board runs a **special build** of the Micropython firmware due to two requirements:\n\n- 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](https://github.com/bskp/micropython_esp32_mcpwm) module.\n\n- 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)\n\nHow much do you need? To get you started with the software, each of this three guides covers a different level:\n1. **[Getting started](getting_started.md)**: Setup and interact with Köbi _using a tablet_ and the default OSC API\n2. **[Hacking](hacking.md)**: Extend Köbis functionality _by modifying the Micropython_ code running the ESP32\n3. **[Developing](developing.md)**: 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\"\n\n\nHardware\n--------\n\nThis repo also supplies you with everything needed to build your own Köbi.\n\n### Bill of Ordering Materials\n\n| Thing                 | Brand    | Part      | Source          | Price |\n|-----------------------|----------|-----------|-----------------|-------|\n| Steppers (5-pack)     | Hanpose  | 17HS4401  | AliExpress      | 38.-  |\n| Voltage Supply (120W) | GYU\u0026PW   | S-120-24  | AliExpress      | 13.-  |\n| ESP32 Thing           | SparkFun | DEV-13907 | [bastelgarage](https://www.bastelgarage.ch/sparkfun-esp32-thing) | 22.- |\n\nSN74LS138N\n\n- bom: steppers, supply, esp32, tmcs, pcb/components, wall plug\n\n### 3D Printed Parts\n![Thread Spool (40mm)](parts/Sp40A.png)\n**Thread Spool (40mm)**: [.stl](parts/Sp40A.stl)\n![Thread Spool (20mm)](parts/Sp20A.png)\n![Pulley](parts/Redli46.png)\n![Voltage Supply Cover](parts/supply_cover.png)\n![Pull Relief](parts/pull_relief.png)\n![Poor Man's Fan Holder](parts/fan_clip.png)\n\n \n- stl, link zu onshape\n\n\n### Printed Circuit Board\n- PCB-Daten als pdf, gerber und kicad.\n\n\nIdeas\n-----\n\n- [x] Coordinated 2-axis movements\n- [ ] Load visualization\n- [ ] Presets with persistent storage\n- [ ] Self-calibration with markers\n- [x] Sequencer (Sine and jitter movements)\n- [x] Coordinated movements for more than 2 axes\n- [ ] Inverse kinematics\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbskp%2Fkoebi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbskp%2Fkoebi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbskp%2Fkoebi/lists"}