Skip to content

Contributors

Archita BK

Archita BK

Firmware

Kevin Jijo

Kevin Jijo

Design-End effector

Kurian Jacob

Kurian Jacob

Design-User Interface

Merin Cyriac

Merin Cyriac

Electronics and Documentation

Nadec Biju

Nadec Biju

Machine Design

Pixel Art

Slide

Slide.png

Video

Machine Week — Fab Academy 2025 · Fablab KOCHI

A CoreXY bead-placement machine that translates digital pixel art into physical monochrome art. Machine moves a bead dropper over a perforated acrylic sheet, dropping black or white beads into a grid of holes , one bead per pixel.

Group Assignment:

  • design a machine that includes mechanism+actuation+automation+function+user interface
  • build mechanical parts and operate it manually
  • document group project and your individual contribution

Team

MemberRoleGitHub
Nadec BijuMachine Gantry (CoreXY)@NB6RULES
Kevin J JijoEnd Effector@mrkubby
MerinElectronics & Documentation@merinmenamparambil
Architha B KFirmware & Presentation@architabk618-hue
KurianInterface & Fabrication@appukurian

Concept

Idea was to build a machine that could physically recreate pixel art, retro, grid-based aesthetic of early video game graphics, using real beads on an acrylic substrate. Instead of printing or drawing, machine places beads: each pixel in digital image becomes one physical bead dropped into a hole.

Perforated acrylic sheet acts as fixed grid. CoreXY gantry moves bead dropper to each hole position in sequence, activates correct feeder (black or white), drops one bead, and moves to next. Result: tactile, physical pixel art panel you can hold.

Concept sketch of Pixel Art Machine Early concept sketch, machine layout and bead-drop mechanism

Software pipeline: Image → Dithering / Thresholding → Grid Mapping → G-code → ESP32-GRBL → Machine

Design goals: 400 × 400 mm working area, configurable bead resolution (2–10 mm), open-source ESP32 firmware, and a browser-based interface so machine can be driven from any device over Wi-Fi without installing software.


Specifications

PropertyValue
Project NamePixel Art Machine
Machine TypeCoreXY bead-placement CNC
Build Area400 × 400 mm
Bead Diameter6.5 mm
Resolution6.5 mm per pixel (one bead per hole)
Color ModeMonochrome — black & white beads
Frame2020 aluminium V-slot extrusion
ControllerESP32 + grbl_esp32
Motors2× NEMA17 stepper (CoreXY XY axes)
BeltGT2 timing belt, 16T/20T pulleys
SubstratePerforated acrylic sheet
TeamNadec, Kevin, Merin, Architha, Kurian
LabFablab KOCHI, Kerala, India

Machine Breakdown

Core-XY Motion

By Nadec Biju

Motion system uses a CoreXY belt arrangement: two NEMA17 stepper motors mounted at back of frame, each driving a continuous GT2 belt. Both belts connect to same carriage. X motion = same direction; Y motion = opposite direction. This keeps moving mass low and enables fast diagonal moves.

Frame

Frame constructed from 2020 V-slot aluminium extrusion. V-slot wheels on carriage ride in profile grooves, providing smooth linear motion without separate linear rails. Corner brackets and printed motor mounts complete structure.

Key Components

ComponentSpecification
Motors2× NEMA17 stepper
BeltGT2 2 mm pitch timing belt
Pulleys16T / 20T GT2, 625 bearing idlers at corners
Frame2020 V-slot aluminium extrusion
CarriageV-slot polycarbonate wheels + eccentric nuts
Work area400 × 400 mm

3D Model

Full assembly was designed in SolidWorks. A first-draft 3D model available on Sketchfab:

View 3D Model on Sketchfab

References


Electronics & Control Board

By Merin

Electronics based on an ESP32 development board running grbl_esp32. Stepper drivers: DRV8825 modules. Power comes from a 12 V supply via a barrel jack.

Bill of Materials — Electronics

ComponentSpecification
MicrocontrollerESP32 development board
Stepper driversDRV8825 (×2 for XY)
Power supply12 V DC
Limit switches×2 (X, Y)
Feeder outputsM3 (black), M4 (white) via spindle pins
CommunicationUSB serial & Wi-Fi (ESP32 native)

ESP32's built-in Wi-Fi means G-code can be streamed wirelessly from interface — no USB cable needed during normal operation. NeoPI_Wireless approach used for wireless G-code streaming layer.

Concept sketch of Pixel Art Machine


Firmware — grbl_esp32

By Architha B K

Machine runs grbl_esp32 by bdring — a port of original GRBL motion controller adapted for ESP32. It handles real-time step generation, acceleration planning, G-code parsing, and Wi-Fi communication out of box.

CoreXY Kinematics

grbl_esp32 supports CoreXY natively. Kinematic transform applied at firmware level — interface sends standard X/Y G-code and firmware resolves it to motor A/B steps:

steps_A = steps_X + steps_Y; // Motor A (left) steps_B = steps_X - steps_Y; // Motor B (right)

G-code Command Reference

CommandDescription
G21Set units to mm
G90Absolute positioning
G28Home all axes
G0 Xn Yn F3000Rapid move to hole position
G4 PnDwell n ms — wait for bead to seat
M3 S100Black bead feeder ON (spindle CW)
M4 S100White bead feeder ON (spindle CCW)
M5Feeder OFF
M30End of program

Feeder command only changes when bead color changes — unnecessary M3/M4 transitions skipped to keep G-code compact.

grbl_esp32 on GitHub


Bead Dropper End Effector

By Kevin J Jijo

End effector: bead dropper mechanism mounted on CoreXY carriage. It holds a hopper of beads (sorted by color) and releases one bead on command when carriage positioned over a hole.

Actuation via a servo or solenoid that gates bead channel. A short dwell (G4 Pn) after each move gives bead time to fall and seat in hole before carriage moves on.

Specifications

PropertyValue
ActuationServo / solenoid gate
Bead diameter6.5 mm
Bead colorsBlack, white (monochrome)
Feeder triggerM3 (black) / M4 (white) G-code commands
SubstratePerforated acrylic sheet, hole pitch = bead size
Material3D-printed PLA mount + hopper

Parametric design: bead size and hole pitch configurable — same end effector works with any bead diameter by reprinting channel insert. Interface's bead-size setting must match physical bead used.


Pixel Bead Placer — Web Interface

By Kurian

Kurian built a fully browser-based tool — no installation required. It provides a pixel canvas editor, an image importer, and a G-code generator that outputs GRBL 1.1 / grbl_esp32 compatible code.

Features

  • Configurable bead size (1–200 mm) → recalculates grid automatically
  • Pen (black) and eraser (white) tools for manual pixel editing
  • Image import — any PNG/JPG auto-dithered to the grid resolution
  • One-click G-code generation — downloads as bead_art.gcode
  • Snake-path toolpath (even rows L→R, odd rows R→L) to minimise travel
  • Feeder switching: only emits M3/M4 when color actually changes

G-code Output Structure

gcode G21 ; mm units G90 ; absolute positioning G28 ; home

; Row 0 (L→R) M3 S100 ; black feeder ON G0 X5.00 Y5.00 F3000 G4 P300 G0 X15.00 Y5.00 F3000 G4 P300 ... M5 ; feeders off G28 ; return home M30 ; end of program

Image Pipeline

js // Per-pixel luma threshold luma = 0.299 * R + 0.587 * G + 0.114 * B; bead = (luma < 128) ? BLACK : WHITE;

Pixel Bead Placer interface by Kurian

Open Pixel Bead Placer

@appukurian on GitHub


Timeline

DateActivity
Apr 09Initial discussion and team role allocation
Apr 10Concept sketch, gantry CAD start, interface design, first G-code tests
Apr 11End effector mechanism design and working structure
Apr 12End effector parametric sizing (bead measurements), electronics design
Apr 13G-code / gantry movement testing, firmware bring-up
Apr 15Fabrication and integration
Apr 20–21Video editing and presentation

Downloads & Files

Repository

GitHub — NB6RULES/Pixel-Art

Mechanical

Electronics

  • KiCad Schematic
  • KiCad PCB
  • Gerber Files

Firmware

Interface


Pixel Art Machine — Machine Week, Fab Academy 2025 · Fablab KOCHI

Nadec · Kevin · Merin · Architha · Kurian

Contributors

Archita BK

Archita BK

Firmware

Kevin Jijo

Kevin Jijo

Design-End effector

Kurian Jacob

Kurian Jacob

Design-User Interface

Merin Cyriac

Merin Cyriac

Electronics and Documentation

Nadec Biju

Nadec Biju

Machine Design