Skip to the content
PCBKitNew board
2 layers35 × 34.3 mmCnc, the printed circuit board in 3D

Custom FluidNC mod for multipen pen plotter with ATC

Size
35 × 34.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
17
Nets
27
Pads
70
Tracks, vias
175, 16
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
25 Jun 2025
Updated
5 Jan 2026

Overview

Cnc is an open-source printed circuit board by vishnu-c-r, from the vishnu-c-r/PolyPlot-Firmware repository on GitHub. It is a 2-layer board of 35 × 34.3 mm with 17 parts on 27 nets, routed with 175 tracks and 16 vias.

It is built around the ATTINY1614-SSN and ULN2003. Its parts include 5 connectors, 3 capacitors, 3 ICs and 2 resistors. It belongs with the robots and motor control boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

2

README

README.md

SSK Multi-Pen Plotter Firmware

A custom firmware for an ESP32-based multi-pen plotter with automatic tool changing capabilities, designed for educational tinkering labs across Kerala schools.

🎯 Project Overview

This project is part of a government initiative undertaken by SSK to establish tinkering labs in 98 schools across Kerala. The multi-pen plotter provides students with hands-on experience in machine programming and operation, fostering practical learning in automation and digital fabrication.

Key Features

  • 🖊️ Multi-Pen Plotting: Support for multiple pens with automatic tool changing
  • 🔄 Automatic Tool Change: M6T command for seamless pen switching (X = pen number)
  • 📱 Multiple User Interfaces: Built-in UI for drawing and image import
  • 🌐 Connectivity: Serial, WiFi, and Bluetooth communication support
  • 💾 Storage: SD card support for storing drawings and configurations
  • 🔦 Laser Pointer: Integrated laser pointer for positioning and alignment
  • ⌨️ Input Control: Keypad interface via daughter board
  • 🎛️ Web Configuration: FluidNC web installer for easy machine setup

🏗️ Hardware

  • Microcontroller: ESP32 with custom PCB design
  • Motion Control: Stepper motor drivers
  • Tool System: Automatic pen changing mechanism
  • Storage: SD card module
  • Interface: Keypad daughter board
  • Positioning Aid: Laser pointer module
  • Connectivity: WiFi, Bluetooth, Serial communication

🚀 Installation

Prerequisites

  • FluidNC Web Installer
  • Git (for cloning the repository)

Setup Process

  1. Clone the Repository

    bash
    https://github.com/vishnu-c-r/PolyPlot-Firmware.git
    cd PolyPlot-Firmware
  2. Install Firmware

    • flash the firmware using platformio or arduino
  3. Configure Machine

    • Use the FluidNC web installer to set the machine configuration
    • Upload your specific plotter parameters and tool definitions

📖 Usage

Basic Operations

Tool Changing

Use the M6T command to change tools automatically:

gcode
M6T1  ; Change to pen 1
M6T2  ; Change to pen 2
M6T3  ; Change to pen 3
Drawing Operations
  • Import SVG images through the built-in UI
  • Use the web interface for real-time control
  • Connect via serial, WiFi, or Bluetooth for remote operation

User Interface Options

  1. Built-in UI: Direct machine interface for drawing and image import
  2. Web Interface: Browser-based control panel
  3. Serial Terminal: Command-line interface for advanced users
  4. Mobile Apps: Bluetooth connectivity for mobile control

🔧 Configuration

The machine configuration is handled through the FluidNC web installer. Key parameters include:

  • Stepper motor settings
  • Tool change positions and sequences
  • Communication interface settings
  • SD card and storage options
  • UI preferences and display settings

🎓 Educational Applications

Perfect for:

  • STEM Education: Hands-on programming and automation learning
  • Art & Design: Digital art creation and physical plotting
  • Engineering Concepts: Understanding CNC principles and G-code
  • Problem Solving: Troubleshooting and optimization exercises

🔄 Version History

Current Version

  • ✅ Automatic tool changing with M6T command
  • ✅ Multiple UI options with built-in drawing interface
  • ✅ Enhanced connectivity (Serial, WiFi, Bluetooth)
  • ✅ Improved SD card handling
  • ✅ Laser pointer integration
  • ✅ Keypad control interface

Previous Versions

  • Basic pen plotting functionality
  • Single tool operation
  • Limited UI

🛠️ Technical Details

Based on FluidNC

This firmware is a modified version of FluidNC by bdring, customized specifically for multi-pen plotting applications with automatic tool changing capabilities.

Communication Protocols

  • Serial: USB/UART communication
  • WiFi: Wireless network connectivity
  • Bluetooth: Mobile device pairing

Supported G-code Commands

  • Standard FluidNC G-code set
  • Custom M6T tool change commands
  • Extended plotting-specific commands

🤝 Contributing

This project is part of the SSK initiative for educational tinkering labs. Contributions that enhance the educational value and machine functionality are welcome.

🙏 Acknowledgments

  • FluidNC Project: bdring/FluidNC for the base firmware
  • Students and Educators: Who will use and improve this system
  • FabLab Kerala MTM team: for building the project from ground up

Empowering the next generation of makers and engineers through hands-on learning experiences.

Parts

17
QtyValueFootprintReferences
2LEDFAB1206footprints:fab-LED1206FABM1, M2
110uFfootprints:fab-C1206C1
110uffootprints:fab-C1206C2
11Kfootprints:fab-R1206FABR1
11kfootprints:fab-R1206FABR2
122uffootprints:fab-C1206C3
1ATtiny1614-SSPackage_SO:SOIC-14_3.9x8.7mm_P1.27mmU2
1AZ1117-5.0footprints:fab-SOT223U3
1Conn_01x02_PinConnector_JST:JST_XA_B02B-XASK-1_1x02_P2.50mm_VerticalJ3
1Conn_01x03_PinConnector_Harwin:Harwin_M20-89003xx_1x03_P2.54mm_HorizontalJ2
1Conn_01x03_PinConnector_JST:JST_EH_B3B-EH-A_1x03_P2.50mm_VerticalJ7
1Conn_01x05_PinConnector_JST:JST_EH_B5B-EH-A_1x05_P2.50mm_VerticalJ4
1Conn_01x05_PinConnector_JST:JST_XA_B05B-XASK-1_1x05_P2.50mm_VerticalJ1
1RES-US1206FABfootprints:fab-R1206FAB10K1
1ULN2003Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU1

The 16 most common of 17 parts.

Questions

How big is the Cnc PCB?

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

What parts does the Cnc use?

17 parts, built around the ATTINY1614-SSN and ULN2003. 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 Cnc KiCad files?

From the vishnu-c-r/PolyPlot-Firmware repository on GitHub, at the commit this page was made from: the board is Electonics/Mini_Plotter/daughter board/pcb/v1/cnc.kicad_pcb and its schematic Electonics/Mini_Plotter/daughter board/pcb/v1/cnc.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Cnc design in my own project?

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

Similar boards

  • 4 layers67 × 98 mmSJ-201-R6, the printed circuit board in 3D

    SJ-201-R6

    MycroftAI/hardware-mycroft-mark-II

    Mycroft's Mark II Rpi mechanical, electrical and industrial designs

    235 parts113
  • 2 layers23.7 × 25.5 mmMalenki, the printed circuit board in 3D

    Malenki

    MarkR42/malenki-esc

    A small electronic speed controller for e.g. tiny fighting robots or other rc models

    30 parts7
  • 2 layers157.5 × 81.3 mmCollectorPanel, the printed circuit board in 3D

    CollectorPanel

    tjhiker/Personal-MiniBadges-2025

    My Personal MiniBadges used at SAINTCON 2025

    25 parts7
  • 2 layers179.1 × 67.9 mmControl Board, the printed circuit board in 3D

    Control Board

    Alan-JH/PCB-Heater

    Reflow hotplate PCB design

    77 parts6
  • 2 layers41 × 41 mmRid, the printed circuit board in 3D

    Rid

    swr06/LED-Wearable

    LED Wearable that displays patterns, based on ATTiny1614

    12 parts5MIT
  • 2 layers33 × 23.9 mmESPTiny1614, the printed circuit board in 3D

    ESPTiny1614

    tomtor/ESPTiny

    KiCad ATtiny84/x14/x02 (SMD) and ESP-01 (ESP 8266) PCB boards

    24 parts4GPL-3.0
  • 2 layers30.5 × 15.2 mmAvr attiny1614-mini, the printed circuit board in 3D

    Avr attiny1614-mini

    vladbelous/avr-attiny1614-mini

    AVR attiny1614 (tinyAVR 1-series) mini board

    26 parts4
  • 2 layers53.5 × 26.5 mmSB Pixel Count, the printed circuit board in 3D

    SB Pixel Count

    computergeek1507/SB_Pixel_Count

    SB Pixel Counter

    23 parts3