Skip to the content
PCBKitNew board
4 layers40 × 52.5 mmVAL3000, the printed circuit board in 3D

The easiest, fastest, cheapest, and safest way to spin a stepper motor wirelessly. Valar Motion is a family of tiny Wi-Fi stepper controllers built around a Trinamic TMC2209 driver — precisely control a motor's…

Size
40 × 52.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
61
Nets
50
Pads
241
Tracks, vias
416, 99
Pours
14
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
20 Jul 2026
Updated
21 Sep 2026

Overview

VAL3000 is an open-source printed circuit board by Valar-Systems, from the Valar-Systems/valar-motion repository on GitHub. It is a 4-layer board of 40 × 52.5 mm with 61 parts on 50 nets, routed with 416 tracks and 99 vias.

It is built around the ESP32-C3-WROOM-02-H4, TMC2209-LA-T and TC-6615-4.5-160G, with the RT9080-33GJ5, ESD9L3.3ST5GB and BSD5C051L among its other parts. Its parts include 21 capacitors, 14 resistors, 7 ICs, 7 diodes and 6 connectors. It belongs with the ESP32 and RISC-V boards of this library.

Main components

11

README

README.md

Valar Motion — Valar Systems motor controllers

The easiest, fastest, cheapest, and safest way to spin a stepper motor wirelessly. Valar Motion is a family of tiny Wi-Fi stepper controllers built around a Trinamic TMC2209 driver — precisely control a motor's distance, speed, current, and stall behaviour within minutes of unboxing, from any browser, with no Home Assistant required.

Valar Motion board driving a NEMA-17 stepper motor

All three boards share the same TMC2209 driver, a synchronous DC/DC converter, three buttons, end-stop inputs, and a USB-C port for flashing. They differ only in the microcontroller and — on the 3101 — an onboard magnetic encoder.

BoardMCURadiosExtraPrice
VAL3000ESP32-C3Wi-Fi—$34.99
VAL3100ESP32-C6Wi-Fi / Thread / Zigbee / Matter / BLEStatus LED$44.99
VAL3101ESP32-C6Wi-Fi / Thread / Zigbee / Matter / BLEStatus LED + AS5600 encoder (closed-loop)$54.99

Buy them at valarsystems.com. Sold out? Hit the "Notify me when available" button — that's the only way we know to make more.

What's on the board

The board packs a full wireless stepper controller into a footprint that bolts onto the back of a NEMA 17 motor (the four mounting holes line up with the motor face):

  • Espressif ESP32 — Wi-Fi microcontroller with native USB (C3 on the VAL3000; C6 with Thread/Zigbee/Matter/BLE on the VAL3100/3101)
  • Trinamic TMC2209 stepper driver — silent StealthChop + sensorless StallGuard
  • 5–24 V synchronous DC/DC converter — efficient on-board regulation from the motor supply, no separate logic power needed
  • Three buttons for manual open / close / Wi-Fi-reset
  • Motor hookup — the VAL3100 / VAL3101 ship with a 4-pin screw terminal pre-soldered for the stepper (alongside the JST-XH); the VAL3000 has the JST-XH connector (screw terminal included to solder on, or wire directly to the pads)
  • Power — 2.1 × 5.5 mm barrel and a 2-pin screw terminal, plus USB-C for flashing
  • Reverse-polarity protection on the VAL3100 / VAL3101 (the VAL3000 has none — mind the polarity)

Annotated Valar Motion board (VAL3000 shown)
Board anatomy (VAL3000 shown; the VAL3100/3101 share the same layout on an ESP32-C6).

Quick start

Setup takes about three minutes:

  1. Connect any bipolar (4-wire) stepper motor.
  2. Connect a 12–24 V, 2 A+ power supply (2.1 × 5.5 mm barrel, center positive).
  3. Press one of the buttons — the motor starts and stops.

That's it. When you're ready to customize, plug in USB-C and flash a build below.

⚠️ VAL3000 only: the VAL3000 has no reverse-polarity protection — double-check your supply is center-positive before powering on. The VAL3100 / VAL3101 add reverse-polarity protection.

Flash a board (the fast way)

The board ships bare. Grab the prebuilt binary for your board from the latest release and flash it from your browser at web.esphome.io with a USB-C cable — no toolchain, no soldering, no Home Assistant required. On first boot the board makes its own Wi-Fi hotspot; connect, join it to your network, and control it from any browser. It's discoverable in Home Assistant over the ESPHome API too.

First-time flashing note: the USB-C port connects straight to the ESP32 (USB CDC — no USB-to-UART bridge). If the board isn't detected on a brand-new unit, enter download mode manually: hold BOOT, tap RESET, then release BOOT. After the first upload this is automatic.

Build from source

bash
python3 -m venv venv && source venv/bin/activate
pip install esphome
cp secrets.example.yaml secrets.yaml     # not needed for a bare flash

esphome compile boards/val3100/val3100.yaml
# → factory image at:
#   boards/val3100/.esphome/build/val3100/.pioenvs/val3100/firmware.factory.bin

Swap val3100 for val3000 or val3101. CI (.github/workflows/build-firmware.yml) builds all three on every push and attaches *.factory.bin / *.ota.bin to tagged releases.

Firmware updates (OTA)

Boards can update themselves over Wi-Fi — no computer needed — by fetching the newest release asset for their board. Release asset names are an API: keep val3000.factory.bin, val3100.ota.bin, etc. stable so units already in the field keep updating after any repo move. See docs/MIGRATION.md.

Detailed features

Trinamic TMC2209 + StallGuard

The TMC2209 is one of the best stepper drivers on the market — feature-rich yet affordable, with silent StealthChop operation and sensorless stall detection. StallGuard stops the motor whenever the load exceeds a threshold you set — no limit switches needed — which makes the board safe for curtains, windows, blinds, and anything that could pinch or jam. The driver is controlled over a single-wire UART, so speed, current, microstepping, and stall sensitivity are all tunable live from the web UI.

Flexible motor connector

Connect a motor three ways: the on-board 4-pin JST-XH plug, the included 4-pin screw terminal (solder it to the exposed pins), or by soldering the motor wires directly to the board.

USB-C + three buttons

Flash firmware and monitor serial over USB-C — no programmer needed. Three on-board buttons give physical open / close control plus a Wi-Fi reset, handy for products built on the board (our Ropener curtain opener uses exactly this).

Repository layout

text
valar-motion/
├── boards/
│   ├── val3000/val3000.yaml   # ESP32-C3 pin map + substitutions
│   ├── val3100/val3100.yaml   # ESP32-C6 + status LED
│   └── val3101/val3101.yaml   # ESP32-C6 + status LED + AS5600 encoder
├── common/
│   └── valar-core.yaml        # shared, board-independent behaviour
├── hardware/                  # PCB, schematics, libraries (per board)
├── docs/                      # datasheets, guides, media
└── .github/workflows/         # CI: builds a factory + OTA bin per board

The important idea: behaviour lives in common/valar-core.yaml, which every board pulls in as a package. Each boards/<board>/<board>.yaml is a thin wrapper that only sets that board's chip, GPIO pin map, and OTA asset name. Change the core once and all three boards inherit it.

Hardware & documentation

Applications

This repo is the board firmware. Products built on these boards live in their own repos and layer their behaviour on top of common/valar-core.yaml — e.g. The Ropener, a smart curtain opener, which adds cover/position logic and homing on the same boards.

License

Licensed under the CERN Open Hardware Licence Version 2 — Strongly Reciprocal.

Parts

61
QtyValueFootprintReferences
120.1uFCapacitor_SMD:C_0402_1005MetricC2, C3, C4, C5, C6, C21, C24, C25, C29, C31, C32, C38
510KResistor_SMD:R_0402_1005MetricR1, R5, R6, R8, R26
55.1KResistor_SMD:R_0402_1005MetricR7, R9, R10, R11, R13
410uFCapacitor_SMD:C_0805_2012MetricC10, C23, C27, C30
3ESD9L3.3ST5GESD9L3-3ST5G:SOD-923_L0.8-W0.6-LS1.0-RDD4, D5, D6
3SOD-523_BSD5C051LDiode_SMD:D_SOD-523D1, D2, D3
3TC-6615-4.5-160GTC-6615-4.5-160G:KEY-TH_TC-6615-4.5-160GU3, U4, U5
20R10Capacitor_SMD:C_0805_2012MetricR2, R3
222uFCapacitor_SMD:C_0603_1608MetricC41, C51
2OSTVN02A150footprints:CONN_OSTVN02A150_OSTJ5, J6
2TS-1088-AR02016TS-1088-AR02016:SW-SMD_L3.9-W3.0-P4.45SW7, SW8
119846171984617:PHOENIX_1984617J1
11KResistor_SMD:R_0402_1005MetricR4
1220uFUWT1H221MNL1GS:CAP-SMD_BD10.0-L10.3-W10.3-LS11.3-FDC1
122nFCapacitor_SMD:C_0402_1005MetricC19
14.7uFCapacitor_SMD:C_0402_1005MetricC20
168Resistor_SMD:R_0402_1005MetricR17
1AP63203QWU-7Package_TO_SOT_SMD:TSOT-23-6U9
1B4B-XH-AB4B-XH-A:JST_B4B-XH-AJ4
1BSMD1812-200-33VBSMD1812-200-30V:F1812F1
1Conn_01x01_PinConnector_Pin:Pin_D1.0mm_L10.0mmJ3
1DC-005 5.5-2.0MMDC-005:DC-IN-TH_DC-005-5.5-2.0DC1
1ESP32-C3-WROOM-02RF_Module:ESP32-C3-WROOM-02U6
1LSWPA3015S3R3MT:IND-SMD_L3.0-W3.0_FNR30XXSL2
1LEDLED_SMD:LED_0603_1608MetricD7
1OSTVN04A150footprints:CONN_OSTVN04A150_OSTJ2
1RT9080-33GJ5RT9080-33GJ5:TSOT-23-5_L2.9-W1.6-P0.95-LS2.8-BLU1
1TMC2209-LA-TPackage_DFN_QFN:VQFN-28-1EP_5x5mm_P0.5mm_EP3.7x3.7mm_ThermalViasU2
1TYPE-C 16PIN 2MD(073)USB-C-LCSC_C2765186:USB-C-SMD_TYPE-C-6PIN-2MD-073USB1

Questions

How big is the VAL3000 PCB?

It measures 40 × 52.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the VAL3000 use?

61 parts, built around the ESP32-C3-WROOM-02-H4, TMC2209-LA-T, TC-6615-4.5-160G and RT9080-33GJ5. 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 VAL3000 KiCad files?

From the Valar-Systems/valar-motion repository on GitHub, at the commit this page was made from: the board is hardware/val3000/PCB/VAL3000.kicad_pcb and its schematic hardware/val3000/PCB/VAL3000.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the VAL3000 design in my own project?

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

Similar boards

  • 4 layers40 × 52.5 mmVAL3100, the printed circuit board in 3D

    VAL3100

    Valar-Systems/VAL3100

    The VAL3100 is now part of the Valar Motion mono-repo, alongside the VAL3000 and VAL3101 controllers:

    67 parts2CERN-OHL-S-2.0
  • 4 layers50 × 50 mmMiniSpeedCam-1.2, the printed circuit board in 3D

    MiniSpeedCam-1.2

    Valar-Systems/MiniSpeedCam

    MiniSpeedCam

    101 parts116CERN-OHL-S-2.0
  • 2 layers48.8 × 49.9 mmHexpansion, the printed circuit board in 3D

    Hexpansion

    Corteil/EMF_space_unicorn

    code and PCB design files for my Space Unicorn hextension for EMF 2026

    50 parts1GPL-2.0
  • 2 layers177 × 35 mmPower, the printed circuit board in 3D

    Power

    plektra/syntsamix

    Analog mixer for synthesizers

    97 parts
  • 4 layers70 × 70 mmVehiclePowerDistributionSystem, the printed circuit board in 3D

    VehiclePowerDistributionSystem

    RockSat-X/RSXVT2026

    Our experiment aims to evaluate the use of optical navigation with Commercial-off-the-Shelf (COTS) products for use in spaceflight applications.

    70 parts3MIT
  • 4 layers52 × 80 mmLeddimmer hw, the printed circuit board in 3D

    Leddimmer hw

    Wassasin/leddimmer

    Quick low-side PWM device to crudely dim two 24V 4A LED strips

    117 parts
  • 2 layers35 × 42 mmAstroUniBoard, the printed circuit board in 3D

    AstroUniBoard

    xlazam01/AstroUniBoard

    STM32G0B1-based telescope focuser/rotator controller — OnStepX firmware port + KiCad PCB

    146 parts1GPL-3.0
  • 2 layers90 × 54 mmTest 09. With ESP module, the printed circuit board in 3D

    Test 09. With ESP module

    henkjannl/RoomThermostat

    Opentherm room thermostat that can be controlled through Telegram, but also locally

    66 parts1MIT