Skip to content

About

Open-source Dragonframe DMC v2 USB bridge for DIY motorized camera sliders on RP2040-Zero (C++/PlatformIO): path play, GIO, camera trigger & live DMX512. Part of one stack with SliderMC (STEP/DIR motion), SliderCtrl (panel UI), SliderWeb (phone/tablet Wi-Fi), and SliderDoc (build guides). Arc stop-motion — filmmaking makers.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

Repository files navigation

DF_DMC_2_MC

Dragonframe DMC v2 USB bridge for DIY motorized camera sliders — C++ / PlatformIO on a Waveshare RP2040-Zero, talking SliderMC ASCII over UART.

About

DF_DMC_2_MC lets Dragonframe Arc drive the same motion board as the physical panel (SliderCtrl). The PC speaks binary DMC v2 on USB CDC; this Zero translates millimetre moves, path play, GIO, camera, and live DMX onto SliderMC’s UART contract (VH, CG, MT, PG, …).

Use it instead of a UIC on that UART, not in parallel. Rail, motor, and housing stay yours.

Documentation: docs/README.md

Slider context (rail, panel, MC UART): SliderDoc.

Dragonframe (PC)
        USB CDC  — binary DMC v2  (device type dmc-lite)
DF_DMC_2_MC  (RP2040-Zero)
        UART 115200  GP12 TX / GP13 RX
SliderMC

Features

  • Connect as dmc-lite — hello name jDF-MC V1 <motors>M+<servos>S+6L+4O+4I+CT+DMX; Arc steps per unit = 1000
  • Units — 1000 DMC steps = 1 mm or 1 deg (same for speed/accel)
  • Live GIO — 4 out (GP1–4) / 4 in (GP5–8) on this Zero, not MC extenders
  • DMX512 — 512 channels on GP0 (PIO UART + MAX485 for a real universe). Channels 1–6 also drive DMX1–DMX6 PWM at 18 kHz on GP29, GP28, GP27, GP26, GP15, GP14 (high-active, duty = level/255)
  • MOVE — GP11 high while the verbose status letter is M, A, B, H, or P
  • Camera / bloop — GP9 shutter + MC CT; GP10 buzzer + MC BE
  • Path upload — DF frames → SliderMC PD / PG (0-based inclusive; reverse if start > end)
  • Simulator — -DSIMULATE (default): 1-axis stand-in if no MC answers

Flash a release

No compiler and no PlatformIO. Board: Waveshare RP2040-Zero.

  1. Download DF_DMC_2_MC-<tag>-rp2040zero.uf2 from the Releases page.
  2. Hold BOOTSEL, plug in USB, then release BOOTSEL.
  3. Copy the UF2 onto the RPI-RP2 drive. The board reboots into the new firmware.

The file is the default firmware, including -DSIMULATE (a 1-axis stand-in only if no SliderMC answers). USB CDC is binary DMC, not a text console.

A new file is built when a v* tag is pushed. That tag's commit must already contain this workflow. Rebuild an existing tag from the Actions page with Run workflow.


Quick start (VS Code)

  1. Install VS Code and the PlatformIO IDE extension.
  2. File → Open Folder → this repository (DF_DMC_2_MC).
  3. PlatformIO: Build / Upload.
  4. Dragonframe: Scene → Connections → device type dmc-lite → this COM port → Connect.
  5. In Arc, set steps per unit = 1000.

Shared DMC framing, the path upload table, DMX, and GIO come from the sibling checkout DF_DMC_Common (../DF_DMC_Common). Clone it next to this repo before building.

USB CDC is binary DMC — do not use the PlatformIO serial monitor as a console. Details: docs/build.md.

PC smoke test (Dragonframe disconnected): python pc_dmc_test.py COM21 --sequence hi — see docs/build.md.


Documentation

Topic Document
Overview / Connect / units docs/overview.md
Build / flash / PC test docs/build.md
GPIO / UART / wiring docs/pins.md
DMC opcode → MC map docs/mapping.md
SliderMC UART contract/protocol.md
Official DMC v2 (Dragonframe) DMC-Protocol-2024-08-13.pdf

Repository layout

src/config.h         Pins, limits, 1000 steps = 1 mm/deg
src/path_store       DF upload → PD samples (positions in DF_DMC_Common)
src/mc_client        SliderMC UART + simulator
src/status_led       WS2812 / classic LED
src/bridge           USB DMC dispatch
src/main.cpp         setup() / loop()
pc_dmc_test.py       Host DMC smoke test

License

Copyright (c) 2026 Jochen Krapf <jk@nerd2nerd.org>

Licensed under the MIT License.

Company names and product names mentioned in this project are trademarks or registered trademarks of their respective owners. Use here is for identification only.

About

Open-source Dragonframe DMC v2 USB bridge for DIY motorized camera sliders on RP2040-Zero (C++/PlatformIO): path play, GIO, camera trigger & live DMX512. Part of one stack with SliderMC (STEP/DIR motion), SliderCtrl (panel UI), SliderWeb (phone/tablet Wi-Fi), and SliderDoc (build guides). Arc stop-motion — filmmaking makers.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages