Skip to the content
2 layers95.5 × 95 mmMCU, the printed circuit board in 3D

Virtual Flux: hardware-in-the-loop soldering simulator in Unity with thermal, flux and solder-wetting physics, driven by a 6DOF arm

Size
95.5 × 95 mm
Copper layers
2
Thickness
1.6 mm
Parts
19
Nets
63
Pads
130
Tracks, vias
139, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
26 May 2026
Updated
22 Jun 2026

Overview

MCU is an open-source printed circuit board by PotatoPeaSea, from the PotatoPeaSea/6dof repository on GitHub. It is a 2-layer board of 95.5 × 95 mm with 19 parts on 63 nets, routed with 139 tracks and 0 vias.

It is built around the ESP32-S3-DEVKITC-1-N8. Its parts include 3 capacitors, 3 switches and 1 IC. It belongs with the robots and motor control boards and the ESP32 boards of this library.

Main components

1

README

README.md

6dofPCB — Virtual Flux (Product Requirements & Overview)

1. Product Vision

Virtual Flux is a high-fidelity, hardware-in-the-loop soldering simulator. It bridges physical motion and virtual physics to create a realistic training and evaluation environment for hand soldering. By using a physical 6DOF (Six Degrees of Freedom) robotic arm that acts as the soldering iron (currently in development, with full keyboard/mouse fallbacks available now), users can practice their technique on a virtual PCB rendered in a Unity desktop application. The simulation provides deterministic, physics-based reactions—including thermodynamics, flux activation, and solder wetting—coupled with real-time evaluation.

2. Target Audience & Use Cases

  • Soldering Trainees & Students: Learn proper technique (angle, dwell time, temperature control, flux application) without consuming physical consumables or risking damage to expensive boards.
  • Instructors & Evaluators: Provide standardized, objective, and deterministic grading of a student's soldering joints.
  • Hardware Enthusiasts: Experiment with a novel hardware-software interface.

3. Core Features & Requirements (V1)

3.1 Physics & Simulation Engine

The core of Virtual Flux is its deterministic, grid-based simulation running at a fixed 5 ms timestep in Unity.

  • Thermal Model: Heuristic exponential heat transfer from the iron tip to the pad, propagating across a grid.
  • Flux Dynamics: Tracks states of flux (Cold -> Active -> Burnt) based on temperature thresholds. Flux cleans oxidation and enables solder flow.
  • Solder Flow & Wetting: Grid-based solder deposition that flows to heated cells. Features visual metallic rendering and dynamic fillet capillary action morphing towards component pins.
  • Component Bonding: Solderable pins detect solid vs. molten solder. A wetting reflow state machine ensures pins only bond if they contact molten solder that subsequently cools and solidifies.

3.2 User Interaction & Tooling

While the physical arm is the primary input, V1 supports full keyboard/mouse fallbacks.

  • 6DOF Iron: Translates and rotates in 3D space. Reports tip temperature and spatial pose.
  • Toolbelt:
    • Solder Wire: Click-to-feed solder deposition.
    • Flux Pen / Paste: Apply flux to pads prior to heating.
    • Tweezers: Drag-and-drop SMD component placement (e.g., resistors) with snap-to-surface raycasting and kinematic stability.

3.3 Evaluation & HUD

  • Real-Time Guidance: Dynamic UI panel tracking the active pad. Displays a collapsing step-by-step checklist (placement, flux, heat, solder, cool).
  • Deterministic Scoring: Evaluates the joint based on strict tolerances:
    • Soldering angle (e.g., 40–55°)
    • Dwell time (e.g., 1.5–3 s)
    • Peak temperature (e.g., 250–360 °C)
    • Flux sequence (must flux before heating)
    • Solder volume and tip-feeding requirements.
  • Status & Latency: Heads-up displays for iron temperature, active tool, board security status, and simulation frame timing.

4. System Architecture

The project is split into three tightly coupled domains:

4.1 Hardware (KiCad)

The physical 6DOF arm is driven by custom PCBs.

  • MCU Board: The brains of the arm.
  • Controller Board: Interfacing and power.
  • Located in Hardware/ as KiCad 7+ projects and RS-274X Gerbers.

4.2 Firmware (C/C++)

  • PlatformIO Project: Runs on the MCU board. Solves arm kinematics and streams the tool tip's pose and temperature over USB-serial to the PC.
  • Located in Firmware/6DoF Firmware/ (currently in progress).
  • Protocol locked and documented in docs/serial-protocol.md.

4.3 Software (Unity)

  • Unity 6 LTS (6000.0.x) using the Universal Render Pipeline (URP) and the New Input System.
  • Receives serial pose data (P,x,y,z,pitch,yaw,roll,temp,seq) and applies it to the virtual iron.
  • Parses real Gerber files to generate the virtual copper PCB meshes.
  • Located in Software/.

5. Repository Layout

PathContents
Hardware/MCU/MCU board — KiCad project + Gerbers. Lives on the arm itself.
Hardware/Controller/Controller board — KiCad project + Gerbers.
Hardware/Gerbers/Zipped Gerber bundles for fabrication.
Hardware/assets.pretty/Shared KiCad footprint library.
Firmware/PlatformIO firmware project for the 6DOF arm.
Software/Unity 6 LTS project. Open this folder in Unity Hub.
docs/Cross-cutting docs — start with serial-protocol.md.
CLAUDE.mdWorking agreement for AI coding assistants.
NOTES.mdSession handoff log & historical milestones.

6. Quick Start

  1. Hardware: Open Hardware/MCU/MCU.kicad_pro or Hardware/Controller/Controller.kicad_pro in KiCad 7+.
  2. Software: Open Software/ in Unity 6 LTS. Load Assets/Scenes/Workbench.unity and press Play. See Software/README.md for detailed keyboard/mouse controls.

7. Future Roadmap (Post-V1)

  • Arm Firmware Completion: Finish the C/C++ kinematics solver and hardware integration.
  • AI Joint-Quality Evaluation: Machine learning models to assess the visual quality of the final solder fillet.
  • Advanced Hardware: Haptic feedback, VR integration, and BLE wireless connectivity.

License

TBD.

Parts

19
QtyValueFootprintReferences
3C_PolarizedCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC1, C2, C3
3Conn_01x03Connector_JST:JST_EH_B3B-EH-A_1x03_P2.50mm_VerticalS1, S2, S3
3Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalENC1, ENC2, ENC3
3Conn_01x04Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalM1, M2, M3
3Pololu_Breakout_DRV8825Module:Pololu_Breakout-16_15.2x20.3mmA1, A2, A3
112VinTestPoint:TestPoint_Plated_Hole_D5.0mmTP2
17.5VinTestPoint:TestPoint_Plated_Hole_D5.0mmTP1
1ESP32-S3-DevKitCPCM_Espressif:ESP32-S3-DevKitCU2
1LOGOassets:hobonewG***

More from PotatoPeaSea/6dof

1
  • 2 layers55 × 74 mmController, the printed circuit board in 3D

    Controller

    PotatoPeaSea/6dof

    Virtual Flux: hardware-in-the-loop soldering simulator in Unity with thermal, flux and solder-wetting physics, driven by a 6DOF arm

    8 parts

Similar boards

  • 4 layers95 × 95 mmCube motherboard, the printed circuit board in 3D

    Cube motherboard

    willem-pennings/balancing-cube

    A cube that balances itself in a corner or edge using reaction wheels

    52 parts1.1kGPL-3.0
  • 2 layers129.9 × 63.6 mmTraeger rev 2.3.0.kicad pro, the printed circuit board in 3D

    Traeger rev 2.3.0.kicad pro

    jazzmonger/Traeger-PID-Controller

    Traeger Smoker/Grill Controller based on an

    45 parts36
  • 2 layers168.8 × 78.9 mmGameboy3, the printed circuit board in 3D

    Gameboy3

    ohasanov-hbrw/tribit32-advanced

    A tri-microcontroller, overengineered GameBoy Advance clone. More value was given to the controls and the exterior look, which is cool!

    61 parts8
  • 2 layers134.6 × 49.5 mmMem esp, the printed circuit board in 3D

    Mem esp

    fread/visvitalis

    A very simple modular relay computer

    71 parts7
  • 2 layers90 × 102 mmPL Toon, the printed circuit board in 3D

    PL Toon

    pl-toon/pl-toon-codes

    PL-TOON material

    39 parts7
  • 2 layers119.4 × 98.9 mmPCB Pami, the printed circuit board in 3D

    PCB Pami

    FIPATECH/CDFR26_PAMI

    Open source firmware and PCB for a differential mobile robot (PAMI) based on ESP32-S3 - Coupe de France de Robotique

    25 parts6
  • 2 layers76.2 × 40.6 mmEspressifESP32toExpressAdaptor, the printed circuit board in 3D

    EspressifESP32toExpressAdaptor

    dnhutchins/ETC_Express_Reverse_Eng

    The ultimate goal of this work is to develop an interface to use the control surface from a legacy ETC Express 24/48 lighting controller as a modern EOSNomad compatible programming and fader wing.

    3 parts5
  • 2 layersE ink multi sensor, the printed circuit board in 3D

    E ink multi sensor

    heckler/esphome-device-configs

    Configuration definitions for local ESPHome files

    11 parts4Apache-2.0

Questions

How big is the MCU PCB?

It measures 95.5 × 95 mm and has 2 copper layers, 1.6 mm thick.

What parts does the MCU use?

19 parts, built around the ESP32-S3-DEVKITC-1-N8. 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 MCU KiCad files?

From the PotatoPeaSea/6dof repository on GitHub, at the commit this page was made from: the board is Hardware/MCU/MCU.kicad_pcb and its schematic Hardware/Controller/Controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the MCU design in my own project?

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