Skip to the content
PCBKitNew board
2 layers43 × 43 mmDolly driver, the printed circuit board in 3D

Dolly driver

nLight/camamoto2

We welcome contributions! Please see our Development Guide for:

Size
43 × 43 mm
Copper layers
2
Thickness
1.6 mm
Parts
11
Nets
28
Pads
71
Tracks, vias
74, 4
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
6 Sep 2025
Updated
17 Oct 2025

Overview

Dolly driver is an open-source printed circuit board by nLight, from the nLight/camamoto repository on GitHub. It is a 2-layer board of 43 × 43 mm with 11 parts on 28 nets, routed with 74 tracks and 4 vias.

It is built around the AMS1117-5.0. Its parts include 3 capacitors, 2 ICs, 2 switches and 1 connector. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

Camamoto 🎬

Precision stepper motor controller with WebUSB interface for camera sliders, timelapses, and automation projects.

Arduino WebUSB License

✨ Features

  • 🌐 Browser Control: Direct WebUSB communication - no drivers needed
  • 📱 Dual Interface: Standalone OLED menu + web interface
  • 💾 Persistent Storage: Save up to 5 programs in EEPROM
  • ⚡ Precision Control: Customizable speed (1ms to 4.3M ms per step)
  • 🔄 Auto-Recovery: Graceful USB disconnection handling
  • 🎯 Infinite Programs: Forward/backward motion until manually stopped
  • 📊 Real-time Feedback: Live position and status updates

🚀 Quick Start

Hardware Requirements

ComponentSpecification
Arduino BoardLeonardo/Micro/Zero (WebUSB compatible)
Stepper Motor200 steps/revolution with compatible driver
DriverA4988, TMC2209
DisplaySSD1306 OLED 96×16 pixels (I2C)
Control ButtonMomentary push button

Connections

text
Arduino Leonardo/Micro:
├── Pin 10 → Stepper DIR
├── Pin 16 → Stepper STEP
├── Pin 2  → Control Button (internal pullup)
├── SDA/SCL → OLED Display (I2C)
└── USB → Computer (WebUSB + Power)

Installation

  1. Clone the repository:

    bash
    git clone https://github.com/yourusername/camamoto.git
    cd camamoto
  2. Upload firmware:

    • Open steppper.ino in Arduino IDE
    • Install required libraries (see Setup Guide)
    • Upload to your Arduino board
  3. Access web interface:

    • Serve the webusb/ folder on localhost
    • Connect via Chrome/Edge browser
    • Click "Connect Slider" to establish WebUSB connection

📖 Documentation

💡 Use Cases

  • 📹 Camera Sliders: Smooth motion for video production
  • ⏱ Timelapse Photography: Ultra-slow motion over hours/days
  • 🏭 Automation: Precise positioning for manufacturing
  • 🎓 Education: Learn motor control and WebUSB programming
  • 🔬 Research: Laboratory positioning systems

🎮 Control Modes

Standalone Mode (OLED + Button)

  • Navigate stored programs with push button
  • View current position and status
  • Start/stop/pause program execution

WebUSB Mode (Browser Interface)

  • Create and save motion programs
  • Manual jog controls with custom speed
  • Real-time monitoring and control
  • Bulk program management

🔧 Technical Specifications

ParameterRangeDefault
Speed Range1ms - 4,294,967,295ms per step1000ms
Max Programs5 stored programs-
Position Range0 - 65,535 steps2000 steps
Loop ProgramsInfinite until manually stopped-
Memory Usage~1KB EEPROM-

🏗 Architecture

text
┌─────────────────┐    ┌──────────────────┐
│   Web Browser   │◄──►│   Pro Micro      │
│   (WebUSB UI)   │    │   (Camamoto)    │
└─────────────────┘    └──────────────────┘
                                │
                        ┌───────┴───────┐
                        │ Stepper Motor │
                        │   + Driver    │
                        └───────────────┘

Modular Firmware:

  • motor_control - Movement and positioning
  • command_processor - WebUSB communication
  • config_manager - EEPROM storage
  • display_manager - OLED interface
  • menu_system - Standalone navigation

🤝 Contributing

We welcome contributions! Please see our Development Guide for:

  • Code architecture overview
  • Building and testing procedures
  • Pull request guidelines

📚 Complete Documentation

This README provides a quick overview. For comprehensive documentation:

Start with the Documentation Index for easy navigation.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Built with Arduino framework and WebUSB standard
  • OLED support via Adafruit libraries
  • Inspired by the maker community's creativity

Ready to automate your motion? Get started with the setup guide →

Parts

11
QtyValueFootprintReferences
2C_Polarized_SmallCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC2, C3
2SW_PushButton_Switch_THT:SW_PUSH_6mmSW1, SW2
1AMS1117-5.0Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1Barrel_Jack_MountingPinConnector_BarrelJack:BarrelJack_GCT_DCJ200-10-A_HorizontalJ1
1CCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC1
1Conn_01x04_MountingPinConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalOLED1
1Pololu_Breakout_A4988Module:Pololu_Breakout-16_15.2x20.3mmA1
1ProMicroKeebio:ArduinoProMicroU1
1Stepper_Motor_bipolarConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalM1

Questions

How big is the Dolly driver PCB?

It measures 43 × 43 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Dolly driver use?

11 parts, built around the AMS1117-5.0. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Dolly driver KiCad files?

From the nLight/camamoto repository on GitHub, at the commit this page was made from: the board is kicad/Dolly driver.kicad_pcb and its schematic kicad/Dolly driver.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Dolly driver design in my own project?

Its repository states no licence, so its author keeps all rights: ask nLight before reusing the design.

Similar boards

  • 2 layers100 × 100 mmHeatplate v1.1, the printed circuit board in 3D

    Heatplate v1.1

    DerSpatz/PCB-reflow-solder-heat-plate

    hardware design for a PCB reflow solder heat plate

    57 parts179MIT
  • 2 layers20.3 × 110 mm4HPico, the printed circuit board in 3D

    4HPico

    rheslip/2HPico-Eurorack-Module-Hardware

    2HP Eurorack module based on Raspberry Pi Pico 2

    73 parts84
  • 2 layers36 × 43 mmAsac fc rev a, the printed circuit board in 3D

    Asac fc rev a

    victorhook/asac-fc

    asac fc is an rp2040 based flight controller made for FPV drone flying

    119 parts52GPL-3.0
  • 2 layers73 × 113 mmFT817 buddy v4, the printed circuit board in 3D

    FT817 buddy v4

    g7uhn/ft817_buddy

    A companion display & controls for the FT-817

    76 parts28CC-BY-SA-4.0
  • 2 layers30 × 110.5 mmKicad main, the printed circuit board in 3D

    Kicad main

    johannesstrueber/dots

    DOTS eurorack module pcb schematics and code ATMega328 based

    72 parts28
  • 2 layers139.7 × 88.9 mmCharge Controller, the printed circuit board in 3D

    Charge Controller

    jharvey/Charge_Controller

    MPPT hardware which uses FUGU firmware

    163 parts24
  • 2 layers135 × 100 mmHotPlate V1.0, the printed circuit board in 3D

    HotPlate V1.0

    aitesam961/Reflow_Hotplate

    A reflow Hotplate for DIY SMD assembly

    89 parts23GPL-3.0