Skip to content

NormaCore

NormaCore is a unified open-source toolkit and platform for developing and operating physical systems, including a 7+1 DoF 3D-printed robotic arm (ElRobot) and a desk lamp.

  • Robot arm
  • Open source
  • Works with AI
  • 3D model (URDF)
  • 3D printable

Suggested by Robotheca, created by @norma-core (opens in a new tab), from github.com/norma-core/norma-core (opens in a new tab). Pinned to commit 0d17bb3 (opens in a new tab).

Hardware license
Apache-2.0 (opens in a new tab)
Software license
Apache-2.0 (opens in a new tab)
Commercial use
Allowed

Photo and 3D model

NormaCore, photo from its repository
Photo:@norma-core (opens in a new tab)Apache-2.0source file (opens in a new tab)
Try it in the browser

3D preview converted from github.com/norma-core/norma-core at 0d17bb3, under Apache-2.0. View the original files from GitHub (12.0 MB) (opens in a new tab)

Degrees of freedom
5

What it can do

Written by Robotheca from the project's documents.

  • Fully 3D-printed 7+1 DoF robotic arm (ElRobot) for imitation learning and teleoperation with a leader and follower arm.
  • Fully 3D-printed 5 DoF desk lamp (Lamp) with yaw, shoulder, elbow, wrist and head roll, in simple and LED versions.
  • LED lamp version has a WS2812B light ring and a browser UI with sliders, actions, light effects and a program editor, plus REST and WebSocket control.
  • Station real-time platform handles data collection, inference and control; SmolVLA policy fine-tuning for the SO-101 arm is included.
  • Image-maker builds and personalizes SD-card images for NormaCore devices with Wi-Fi, SSH and Tailscale first-boot provisioning.
  • AirGradient Open Air sensor firmware streams one JSON air-quality reading per second over USB serial at 115200 baud.

Works with AI

Found by Robotheca in the project's files at commit 0d17bb3, its robot.yaml and Robotheca's notes on its documents. Never guessed; Robotheca doesn't run the code.

Bill of materials

This repository has no parts list Robotheca can read yet.

Build guide

The guide appears here as you scroll.

Guide by @norma-core (README.md), under Apache-2.0.

More guides

Wiring and electronics

Notes written by Robotheca from the project's documents.

Main parts

  • ST3215 serial bus servos (12 V 30 kg on the follower, 7.4 V on the leader) for ElRobot.
  • Waveshare Bus Servo Adapter or SeeedStudio XIAO driver board for the servo bus.
  • 12 V 4 A DC power supply for the follower arm and 5 V 3 A supply for the leader arm.
  • USB cameras: an arm camera and a table camera, any UVC-compatible webcam works.
  • Lamp: five ST3215 12 V servos on one bus, with an optional AI-Thinker ESP32-CAM in the head.
  • Lamp LED version: WS2812B LED strip, MP1584EN 12 V to 5 V buck converter and a 330 ohm resistor.
  • AirGradient Open Air O-1PST sensor with an ESP32-C3 board, PMS5003T, SenseAir S8 and SGP41 sensors.

Connections

  • Servos are daisy-chained on one serial bus, with the driver board connected to the host by USB data cable.
  • Motors are powered from an external DC supply; the driver board takes only data over USB, not motor power.
  • An externally powered active USB hub is recommended for the cameras to avoid overloading the host's USB ports.
  • Lamp servos use IDs 1 (base) to 5 (head); the ESP32-CAM connects to the bus adapter with four Dupont jumpers.
  • WS2812B data line runs through a series 330 ohm resistor from the ESP32-CAM.
  • The O-1PST sensor board is connected to the station over USB serial.