controllers
| Parts infobox | |
|---|---|
| Image | |
| designers | Timothy Schmidt |
| date | 2026 |
| vitamins | |
| materials | |
| transformations | |
| lifecycles | |
| parts | Resistors, Capacitors, Inductors, Microcontrollers, Transistors, Diodes |
| techniques | Voltage dividers, Buck-boost converters, Active rectification, Gate drivers, Current sensors, Digital to analog conversion, Analog to digital conversion, Pulse width modulation, PID, Bang bang, MPPT |
| tools | 3D printers, Soldering irons, Drill presses |
| files | |
| suppliers | |
| git | |
Introduction
Industrial control system (ICS) is a general term that encompasses several types of control systems and associated instrumentation used for industrial process control.
Such systems can range in size from a few modular panel-mounted controllers to large interconnected and interactive distributed control systems with many thousands of field connections. Systems receive data from remote sensors measuring process variables (PVs), compare the collected data with desired setpoints (SPs), and derive command functions which are used to control a process through the final control elements (FCEs), such as control valves.
Larger systems are usually implemented by supervisory control and data acquisition (SCADA) systems, or distributed control systems (DCS), and programmable logic controllers (PLCs), though SCADA and PLC systems are scalable down to small systems with few control loops. Such systems are extensively used in industries such as chemical processing, pulp and paper manufacture, power generation, oil and gas processing, and telecommunications.
Challenges
Most devices require some internal logic or digital control. Most devices go about that in entirely incompatible ways. Can we unify digital control across the construction system?
Potential functions
- aiming solar panels
- logging power input from mains, solar, wind, etc
- battery charging, management and logging power usage
- maintaining comfortable internal temperature and humidity
- maintaining hot water / refrigerated food
- managing solar oven
- managing internal lighting - individually addressable RGB LED strip allows for full light, night light, simulated sunrise/sunset, simulated lightning, etc.
- managing compost
- laundry?
- dishes?
- managing small indoor garden - light, watering, airflow, humidity
- interact with the wifi router / server / TV / workstation
- CNC router, plasma, laser cutter, mill, or lathe
- robot arm
- welder
- multimeter
- inductive load driver
Approaches
We work hard to avoid depending on computers as much as possible - for example: Replimat projects can be drawn with pen and paper using grids. Where we do depend on computers, we work hard to make sure they're as simple as possible, the same computer everywhere possible, that they run the same software everywhere possible. This has led the project to standardize on Rust and Risc-V.
Related development:
- Soldering iron attachment
- Manufacture inductors across HV, buck-boost, etc.
- Printed power connector (PETG printed sprung m3 bolt (printed-in-place spring mechanism) and buna-n or ninjaflex O ring panel mount waterproof connector, crimp-on terminal connector for m3 bolt)
Development Targets
MKS TinyBee
MKS ESP32 FOCv2
ESP32-CAM
T-Deck Pro
T-Lora Pager
NEMA-17 Single Axis Stepper Controller
1. Project Background
1.1 Project Positioning
Replimat is a modular machine and construction system for open manufacturing. Its applications include 3D printing, laser, plasma, CNC milling, and turning equipment. The controller is not intended to serve only one machine type; it is intended to become a general-purpose, composable control backplane for this system and related machines.
The software stack uses the Rust-based Alumina firmware/UI as the motion-control layer, together with exact-geometry and exact-real-number work in csgrs, Hyper/Hyperreal, hypercurve, and related projects. The core objective is to preserve an exact analytical representation of geometry from CAD/CAM through motion output whenever possible, avoiding early conversion of curves into approximate line segments; approximation should occur only at explicit I/O boundaries.
The control system favors a distributed architecture in which one motor/actuator corresponds to one control board: each board handles one axis and its nearby I/O, while multiple boards cooperate over a network. Beyond stepper axes, the platform may eventually evolve into servo-axis controllers, complete multi-axis controllers, and other modular electromechanical-control products.
1.2 First-Revision Product and Validation Sequence
The first-revision product should focus on a single-axis stepper-motor control board with integrated ADC and power MOSFET outputs. It should be sufficient to support one axis or local function of a printer or laser machine, rather than including longer-term ideas such as MPPT, inverters, PLCs, or flight controllers in the first PCB.
The first physical bring-up target is a self-built laser machine. As a relatively simple 2.5D application, it can first validate motion, networking, power, and peripheral I/O. Subsequent priorities are:
- Plasma Torch Height Control (THC);
- FDM/RepRap 3D printing;
- Subtractive CNC (milling and turning);
- Larger motors or closed-loop servo control.
After phase-one validation, the goal is small-batch validation. The controller should ultimately be easy to install, maintain, and reproduce on real machines.
1.3 Firmware and System-Architecture Constraints
- Alumina is bare-metal firmware written in Rust, using Embassy’s compile-time async model and zero-allocation runtime approach.
- The dual-core MCU concept assigns networking, TCP/IP, DHCP, HTTP, command handling, and the device Web UI to one core, while the other runs only the real-time motion-control loop and avoids dynamic allocation.
- Real-time tasks are expected to use a fixed stack of approximately 32 KB, so it can remain in the MCU L1 cache as much as possible.
- Existing discussions proposed an exploratory control-loop target of roughly 100 kHz–2 MHz. This is a performance aspiration, not a proven acceptance criterion. In particular, the effect of FOC PID on the closed-loop period still requires measurement on real hardware.
- The MCU serves the Web UI to a browser. Job files should be cached in on-board nonvolatile storage before execution, avoiding a removable SD card as a reliability weak point during operation.
- Multi-MCU synchronization is an architectural goal. Ethernet takes priority, with PTP (Precision Time Protocol) to be investigated later.
1.4 Open Collaboration and Engineering Boundaries
The project favors open collaboration and aims to retain MIT/Apache-2.0-style software licensing to reduce integration barriers for equipment manufacturers. Existing large-scale exact-real-number and geometry audit documents show that the software mathematics stack has undergone extensive review for correctness, performance, and memory use. They are not PCB documents, however, and cannot replace component datasheets, schematic review, EMC, safety compliance, thermal design, or physical-hardware validation.
2. First-Revision Hardware Requirements
2.1 System Boundary and Overall Architecture
The first revision is a 24 V single-axis control board that can be mounted near an individual stepper motor. Its functions can be summarized as follows:
Ethernet / USB-C ─┐
├─ MCU ── TMC stepper driver ── Stepper motor
I²C IMU / temp/RH ─┤
Limit / E-stop ────┤
├─ 3 MOSFET channels ── Heater / fan / similar loads
Isolated HV sense ─┤
├─ 0–10 V analog output ── Spindle speed control
eMMC / NAND ───────┘
24 V input ── fuse / protection / DC power tree ── motor, MOSFET, and low-voltage supplies
2.2 MCU, Storage, and Networking
| Item | Requirement / Preference | Notes |
|---|---|---|
| MCU architecture | Prefer a dual-core, newer RISC-V ESP32-series device | Must support both Web/network functions and hard real-time motion tasks. |
| MCU candidates | ESP32-P4 is the preferred choice in later discussions; “ESP32-S31” was also mentioned early on. ESP32/ESP32-S3 may be fallback options with reduced functionality. | Actual availability, SDK support, Rust HAL support, and Ethernet capability of “S31” must be independently verified during selection. |
| Memory target | An early ideal target is at least 8 MB Flash and 16 MB PSRAM. | This applies to the early MCU target and should be translated into firmware-image, cache, and RAM budgets. |
| Ethernet | High priority, for the device Web UI, network control, and future multi-board synchronization. | Native MCU MAC + PHY can be compared with W5500/ENC28J60 and similar solutions. References to “gigabit/PTP” describe a future system goal and require separate link and synchronization specifications. |
| Wi-Fi | Not required for the first revision. | If required later, an ESP32-C3/C6 may be added as a serially connected Wi-Fi coprocessor without changing the Alumina firmware architecture on the main MCU. |
| USB | USB-C for programming and a serial console. | Confirm whether it also supplies power, and define ESD protection, reverse-current protection, and the USB data role. |
| Local storage | Prefer approximately 2 GB of soldered eMMC connected through the MCU SD/MMC interface. | Used only as pre-execution storage for jobs delivered through the Web UI. Soldered SD-NAND was an early candidate; select one before design and confirm pins, boot method, file system, and endurance policy. |
2.3 Stepper Motor and Driver
| Item | Requirement |
|---|---|
| Board role | One board controls one motor axis and the peripheral I/O near that axis. |
| Typical motor | RepRap-size NEMA-17, while accommodating up to NEMA-23 where practical. |
| Driver path | TMC2209 or a comparable Trinamic driver was considered early; TMC2240 is preferred later because of data-bus speed. |
| MCU control | Connect every necessary TMC configuration and communication signal so firmware can programmatically tune driver parameters instead of being limited to fixed STEP/DIR control. |
| Expansion path | If the first stepper board matures, a higher-power board may consider TMC5160. Servo/closed-loop versions should be developed separately. |
| Closed-loop interface | Long-term support for magnetic encoders or optical feedback is desired for closed-loop control. Whether the first revision is populated, as well as the interface standard and voltage levels, remains undecided. |
2.4 24 V Power Input and Power Outputs
| Item | Explicit requirement |
|---|---|
| Input bus | 24 V input; the motor and MOSFET loads may be driven directly from the input voltage. |
| Component voltage rating | Capacitors and other power-related components should be rated for at least 36 V to provide margin for 24 V bus tolerances. |
| MOSFET outputs | At least three channels for heaters, fans, or similar loads. |
| Current rating | One channel should support at least approximately 10 A; the other two up to approximately 2 A each. The design freeze must define continuous versus peak current, ambient temperature, cable characteristics, load type, and PWM frequency. |
| Component preference | Prefer compact, surface-mount, high-efficiency FETs. |
| Fuse and protection | Use an automotive fuse holder or an equivalent serviceable fuse solution if possible. Input reverse-polarity, surge, overcurrent, load back-EMF, and thermal-protection approaches remain to be defined. |
| 0–10 V output | One MCU-controlled 0–10 V analog output is required for common spindle-speed control. Because the system bus is 24 V, it should have a dedicated low-power boost/analog-output stage. Accuracy, load impedance, update rate, isolation, and fault state must be finalized. |
2.5 Plasma THC, High-Voltage Measurement, and ADC
Plasma applications require measurement of 0–300 V signals and appropriate isolation between the high-voltage/noisy side and the MCU digital side. Current requirements are:
- Use a precision resistor divider on the “dirty” high-voltage side to scale 0–300 V to approximately 0–3.3 V;
- Use an ADC and suitable bus isolator; ADS131M04 has been proposed as a candidate isolated high-voltage measurement front end;
- ADS1115 or a comparable four-channel ADC was also proposed later for temperature and voltage measurement;
- One channel should be selectable by jumper for approximate 3.3:1, 50:1, or 100:1 divider ratios to suit different plasma equipment;
- Target sampling is approximately 1 kS/s with at least 8 effective bits of precision.
ADS131M04 and ADS1115 represent two candidate paths that have not yet been consolidated. At design freeze, define the measured quantity and maximum operating/transient voltage; divider power dissipation and series voltage-rating arrangement; input impedance; isolation withstand voltage; isolated power; common-mode range; accuracy; bandwidth; calibration method; wiring-terminal definition; creepage and clearance; and whether this interface is dedicated only to THC.
2.6 Temperature, IMU, and Sensor Interfaces
| Function | Requirement / Candidate | Purpose |
|---|---|---|
| Motor-vibration sensing | Small I²C IMU; MPU9250 was an early reference, while ICM-42670-P or equivalent is preferred later. | Harmonic-vibration detection, compensation, and suppression. |
| Environmental monitoring | SHTC3 or similar I²C temperature/humidity sensor. | System thermal management and environmental awareness. |
| Thermistors | The first revision may use the standard RepRap scheme: 4.7 kΩ pull-up + 100 kΩ NTC. | Recommend at least two channels for heater-temperature inputs. |
| Thermocouples | May be a refined-version feature and require a dedicated amplifier/converter. | It is not yet decided whether they coexist with the two thermistor channels. |
| I²C bus | The IMU, SHTC3, and any low-speed ADC may share the bus. | The schematic must define address conflicts, pull-ups, cable length, ESD, and peripheral power domains. |
2.7 External I/O, Serviceability, and Mechanical Design
| Category | Requirement |
|---|---|
| Limits and emergency stop | At least two limit inputs and one E-stop interface. The E-stop currently defines only an interface; it has not specified which power or enable paths must be independently interrupted. It cannot be treated as a completed safety function merely because it is handled as an ordinary GPIO. |
| Expansion I/O | Break out as much remaining MCU and ADC I/O as possible for peripherals associated with the axis. |
| Wiring method | Use WAGO-style tool-free lever terminals where practical for power, motor, FET loads, ADC/high-voltage inputs, and similar connections. |
| Indicators and reset | On-board power LED, status LED, and reset button. |
| Mechanical dimensions | Include NEMA-17 mounting holes and preferably mount to the back of the motor. If the board extends beyond the motor footprint, align as many board edges as possible with the motor outline. |
| Enclosure | A 3D-printed enclosure may be used. Terminal orientation, mounting clearance, ingress-protection rating, thermal management, and cable strain relief still need definition. |
3. Phased Scope
P0: Mandatory Focus for the First Revision
- Single-axis stepper control, NEMA-17 mounting, and 24 V power;
- A finalized TMC driver model and all necessary MCU control lines;
- At least three power MOSFET channels, including one load path of approximately 10 A;
- USB-C, reset/status indication, Ethernet, and on-board job cache;
- Two limit inputs and an E-stop interface;
- Clear choices for temperature inputs and IMU/environmental sensors;
- Laser-machine physical bring-up and functional, thermal, noise, and communications validation.
P1: Add or Validate After P0 Is Stable
- 0–300 V isolated measurement and THC;
- 0–10 V spindle output;
- Closed-loop encoder interface and vibration compensation;
- FDM heater, fan, and temperature-control scenarios;
- Multi-board synchronization and PTP investigation.
P2: Independent Follow-on Products
- Stepper boards for NEMA-23 or higher-power applications;
- Servo controllers;
- RepRap controllers integrating more than five axes;
- Longer-term modules such as MPPT, inverters, modular PLCs, GPS/LoRa, and camera controllers.
4. Items That Must Be Finalized Before Design Begins
- Exact MCU part number, package/module form, Flash/PSRAM configuration, Ethernet implementation, and Rust-support strategy;
- Final selection of TMC2209, TMC2240, or another driver, together with target motor continuous/peak current, supply voltage, and thermal limits;
- Whether 0–300 V THC belongs in the first revision, and the division of responsibilities between the isolated ADS131M04 approach and the low-speed multichannel ADS1115 approach;
- Final choice between eMMC and SD-NAND, including capacity, endurance, file system, and production-programming flow;
- Actual loads on the three MOSFET channels, continuous/peak currents, PWM frequency, cable length, fuse, and thermal-design requirements;
- Accuracy, maximum load, default failure state, and isolation requirements for the 0–10 V output;
- E-stop safety-function definition: alarm input only, pull driver EN low, or hardware interruption of the motor/power loads;
- Safety rating, isolation rating, creepage distance, clearance, surge protection, and miswiring protection for high-voltage measurement terminals;
- PCB outline, terminal positions, NEMA-17 mounting-hole locations, enclosure, thermal management, and assembly method;
- Acceptance-test metrics for the first revision: motion performance, network synchronization, ADC accuracy, output current/temperature rise, EMC/noise, and continuous operating time.
5. Related Links
Project, Software, and Application Equipment
MCU, Networking, and Storage Candidates
Motor-Driver and Motion-Control Candidates
Sensor and Measurement Candidates
Software
References
Resources
- DC motor drivers: Watch video on YouTube
- Open Source Inverters w/ OSE: Watch video on YouTube
- OpenTechLab FOSS logic analyzer videos
- Highly compliant input power/voltage (20 - 72v input into 180W buck converter, suitable to be run directly from solar, salvaged batteries, spotty grid power, buckwired into optional LiPo charger circuit, then to MKS 1.4 power-in):
- High-current adjustable voltage output (High-power heated bed FET of MKS 1.4 wired to high-amp adjustable buck-boost before the connector)
- Laser cut coroplast box
- Copper acetate solution - vinegar (white) + hydrogen peroxide + copper
- Chinese sine wave inverter controller Watch video on YouTube




