| 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 | |
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.
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?
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.
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.
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:
After phase-one validation, the goal is small-batch validation. The controller should ultimately be easy to install, maintain, and reproduce on real machines.
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.
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
| 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. |
| 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. |
| 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. |
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:
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.
| 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. |
| 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. |