MECHANICAL DESIGN & MACHINE DESIGN

This week was a group project week. All 10 students at Fablab Kochi came together, brainstormed machine ideas, then split into two groups of five. My group built the Pixel Art Machine, a CoreXY bead-placement CNC that physically recreates pixel art by dropping black and white beads into a perforated acrylic sheet, one bead per pixel.

My roles in the team were Electronics and Documentation.

Ideation

We started with a full group brainstorm. Everyone put forward machine ideas on the whiteboard, anything from fun to functional. The ideas ranged widely:

Alongside the ideas, we mapped out the generic structure of any machine — end effector, mechanism, electronics, firmware, sensors, communication, interface — to make sure whatever we built could be broken down into clear roles.

Ideation session whiteboard with machine ideas
Ideation session — all 10 students brainstorming machine ideas

After discussing the ideas, the 10 of us divided into two groups of five. My group chose the Pixel Art Machine.

Our Group

The project was split across five roles:

Concept Sketching

After settling on the Pixel Art Machine, we sketched out the machine on the whiteboard to figure out how all the parts would work together. The main things we needed to resolve at this stage were:

Concept sketch of the Pixel Art Machine on whiteboard
Concept sketches — end effector designs, bead drop mechanism, and role assignments

The sketches helped us align on the physical layout before anyone started designing in CAD. The funnel-shaped containers on the left explore different ways to hold and feed beads into the drop channel. The grid on the right represents the acrylic substrate and how the machine would traverse it row by row.

My Assignments

Within the group, my two roles were Electronics and Documentation. Here is what I was personally responsible for:

Documentation

I was responsible for documenting the entire group project, not just my own subsystem. That meant writing up the gantry design, end effector, firmware, and the web interface as well as the electronics, pulling together notes and photos from the rest of the team. The full site is on GitHub.

View Group Documentation Site →

Project Management

To keep track of who was doing what and when, I put together a Gantt chart mapping out the full project timeline across all five roles. The main challenge was that some things were blocked by others, the firmware couldn't be tested until the electronics were ready, and the end effector couldn't be assembled until the gantry was built. The chart helped make those dependencies visible early.

PCB Design

Before starting the schematic, I drew a block diagram to map out all the electronic components and how they connect to the MCU.

Block diagram of the Pixel Art Machine electronics
Electronics block diagram — MCU, motor drivers, steppers, servo, and limit switches

The diagram has three output branches from the MCU:

The dotted lines represent sensor feedback (limit switches back to the MCU). The solid lines are control outputs.

I designed the control board in KiCad. The board brings together the RP2040, two DRV8825/TMC2209 stepper drivers, limit switch inputs, and feeder control outputs onto a single board.

The main things I had to work through during layout:

KiCad schematic
Schematic
KiCad PCB layout
PCB Layout

The RP2040 was chosen specifically because it has built-in Wi-Fi — this means the machine can receive G-code wirelessly from Kurian's browser-based interface, with no USB tether needed during normal operation.

Bill of Materials — Electronics

Component Details
Microcontroller RP2040 development board
Stepper Drivers DRV8825 / TMC2209 (×2 for XY axes)
Power Supply 12V / 24V DC
Limit Switches ×2 (X, Y)
Feeder Outputs M3 (black bead), M4 (white bead) via spindle pins
Communication USB serial & Wi-Fi (RP2040 native)

The schematic and PCB layout were done in KiCad. The board routes stepper driver signals from the RP2040 GPIO pins, provides 3.3V logic level compatibility, and breaks out the limit switch inputs and feeder control outputs.

How the Machine Works

The software pipeline runs from image to physical bead placement:

  1. Image Input — A monochrome image is loaded into Kurian's browser-based Pixel Bead Placer tool
  2. Thresholding — Each pixel is converted to black or white based on its brightness
  3. G-code Generation — The tool maps pixel coordinates to hole positions and generates a G-code file
  4. Wireless Streaming — G-code is sent over Wi-Fi to the RP2040 via the NeoPI_Wireless approach
  5. Bead Placement — The CoreXY gantry moves to each hole, activates the correct feeder (M3 for black, M4 for white), and drops a bead

Machine Specifications

Parameter Value
Build Area 400 × 400 mm
Bead Diameter 6.5 mm
Color Mode Monochrome — black & white beads
Motion System CoreXY (2× NEMA17 stepper motors)
Frame 2020 aluminium V-slot extrusion
Belt GT2 timing belt, 16T/20T pulleys
Controller RP2040
Substrate Perforated acrylic sheet

Group Documentation

The full group documentation site — covering all subsystems including gantry design, end effector, firmware, and the web interface — was also put together by me as part of the Documentation role.

View Group Repository on GitHub →