This comprehensive guide documents all the differences between Smoothieboard V2 and V1, including hardware specifications, firmware architecture, configuration changes, and migration considerations.
| Feature | V1 (LPC1769) | V2 (STM32H745) | Improvement |
|---|---|---|---|
| CPU Clock | 120 MHz | 480 MHz | 4x faster |
| Flash | 512 KB | 2 MB | 4x more |
| RAM | 64 KB | 1 MB | 16x more |
| Step Rate | 100 kHz | 200 kHz | 2x faster |
| Microstepping | 1/32 | 1/256 | 8x finer |
| SD Card Speed | 0.4-0.5 MB/s | 10-25 MB/s | 20-50x faster |
| Stepper Drivers | A5984 (basic) | TMC2660/2590 (silent) | Much quieter |
| Expansion GPIO | Limited | 90 pins (Gadgeteer) | Extensive |
| Price | $100-150 | $230 | Higher |
| Specification | Value |
|---|---|
| Core | ARM Cortex-M3 |
| Clock | 100-120 MHz |
| Flash | 512 KB |
| RAM | 64 KB (32 KB local + 32 KB AHB SRAM) |
| FPU | None (software emulation) |
| Cache | None |
| Specification | Value |
|---|---|
| Core | Dual-core: Cortex-M7 (480MHz) + Cortex-M4 (240MHz) |
| Flash | 2 MB |
| RAM | 1 MB total (DTCM: 128KB, ITCM: 128KB, AXI SRAM: 512KB, SRAM1-4: 352KB) |
| FPU | Double-precision (M7), single-precision (M4) |
| Cache | 16KB I-cache + 16KB D-cache |
| Package | 265-pin BGA |
V2 Prime (In Production):
V2 Mini (Development Postponed):
V2 Pro (Cancelled):
| Dimension | V1 | V2 |
|---|---|---|
| Length | 129 mm | ~140-150 mm |
| Width | 105 mm | ~120-130 mm |
| Mounting | 4 corner M3 holes | 4 corner M3 holes |
| Feature | V1 (A5984) | V2 (TMC2660/2590) |
|---|---|---|
| Count | 3-5x | 4x |
| Max Current | 2A | 2.8A (2660) / 5.0A (2590) |
| Microstepping | Up to 1/32 | Up to 1/256 |
| Silent Mode | No | StealthChop2 |
| Sensorless Homing | No | StallGuard4 |
| Dynamic Current | No | CoolStep |
| Interface | Digital pot (I2C) | SPI configuration |
| Specification | TMC2660 | TMC2590 |
|---|---|---|
| Ideal Current | 1.2-2.2A | 2.5-4.6A |
| Best For | 3D printers (NEMA 17) | CNC (NEMA 23/24) |
| Thermal | Lower heat, passive cooling OK | Higher heat, may need fan |
| Board ID | 1 | 0 |
V1 Motor Configuration:
alpha_steps_per_mm 100
alpha_step_pin 2.0
alpha_dir_pin 0.5
alpha_en_pin 0.4
alpha_current 1.5
alpha_max_rate 30000.0
V2 Motor Configuration:
[actuator]
alpha.steps_per_mm = 100
alpha.step_pin = PG0
alpha.dir_pin = PG1
alpha.en_pin = PJ2
alpha.max_rate = 30000
alpha.microsteps = 32
alpha.driver = tmc2660
[tmc2660]
alpha.current = 1500 # mA (not A like v1)
alpha.step_interpolation = false
Key changes:
| Input | V1 | V2 |
|---|---|---|
| Motor Power | Single input, 12-24V | Vmot via XT30, 12-24V |
| MOSFET Power | Shared with motor | VFET via 2x XT30, 12-24V (30A total) |
| Logic 5V | Regulator or USB | 3 sources with ideal diode OR |
| 5V Regulator | Optional (solder on) | Onboard 3A |
V2 5V Power Sources (automatic selection):
| Output | V1 | V2 |
|---|---|---|
| Low-current FETs | 3x ~5A | 4x ~5A (hotend1, hotend2, fan1, fan2) |
| Bed FET | 3x ~12A | 2x parallel ~10-12A |
| Safety | None | High-side PFET watchdog on 4 low-current FETs |
| SSR Outputs | None | 2x logic-level outputs |
| Feature | V1 | V2 |
|---|---|---|
| ADC Resolution | 12-bit | 16-bit (oversampled) |
| Buffered Inputs | Basic | 3x with ESD protection + op-amp buffer |
| Unbuffered | - | 6x on Gadgeteer headers |
| Board Thermistor | No | Yes (PCB temperature monitoring) |
| Voltage Monitoring | No | Yes (Vmot, Vfet, Vbat via ADC3) |
| Feature | V1 | V2 |
|---|---|---|
| Count | 6 (X/Y/Z min/max) | 6 (X/Y/Z min/max) |
| Protection | Basic | Buffered + ESD protected |
| Current Limiting | No | Yes (3.3V and 5V outputs) |
| Feature | V1 | V2 |
|---|---|---|
| Input Type | Basic | Comparator-based |
| Voltage Range | ~5V | 3-45V (configurable via JP7) |
| Protection | Basic | ESD + buffering + comparator |
V2 introduces 9 standardized Gadgeteer headers (GA through GI):
| Per Header | Value |
|---|---|
| Pins | 10 |
| GPIO | 7 |
| Power | 5V + 3.3V + GND |
| Total GPIO | 63 pins |
Power Budget:
Use Cases:
| Feature | V1 | V2 |
|---|---|---|
| Interface | SPI | SDIO |
| Speed | 0.4-0.5 MB/s | 10-25 MB/s |
| Max Capacity | 32 GB SDHC | 32 GB SDHC |
| Feature | V1 | V2 |
|---|---|---|
| Ports | 1 (Device) | 2 (Device + Host) |
| Speed | 12 Mbps (Full Speed) | 12 Mbps (Full Speed) |
| Functions | CDC/ACM + MSC | CDC/ACM + MSC (MTP planned) |
| Host Support | No | Hardware present, firmware WIP |
| Feature | V1 | V2 |
|---|---|---|
| Speed | 10/100 Mbps | 10/100 Mbps |
| Stack | uIP (lightweight) | FreeRTOS+TCP (full-featured) |
| Throughput | ~1 Mbps | ~10 Mbps |
V2 Network Services:
| Feature | V1 | V2 |
|---|---|---|
| Architecture | Bare-metal superloop | FreeRTOS multitasking |
| Concurrency | Single-threaded | Multi-threaded with task scheduling |
| Event System | Global event bus | Direct module communication |
| Step Ticker | 100 kHz | 200 kHz (50 kHz in debug) |
RTOS Benefits:
V1: Event-based with broadcast model
class Module {
virtual void on_main_loop(void *);
virtual void on_gcode_received(void *);
// ~9 events total
};
V2: Configuration-based with direct communication
class Module {
Module(const char* group, const char* instance);
virtual bool configure(ConfigReader& cr);
virtual bool request(const char *key, void *value);
static Module* lookup(const char *group, const char *instance);
};
V1: Custom checksum-based key-value (flat file)
alpha_steps_per_mm 100
beta_steps_per_mm 100
default_feed_rate 4000
V2: Standard INI with sections
[motion control]
default_feed_rate = 4000
default_acceleration = 1000.0
[actuator]
alpha.steps_per_mm = 100
alpha.max_rate = 30000
| Setting | |
|---|---|
| Steps/mm | |
| Max rate | |
| Acceleration | |
| Junction deviation | |
| Step pin | |
| Motor current | |
| Heater enable | |
| PID P |
[general]
[system]
[motion control]
[planner]
[actuator]
[tmc2660] or [tmc2590]
[current control]
[endstops]
[zprobe]
[temperature control]
[extruder]
[switch]
[voltage monitor]
[network]
V1 pins: Port.Pin format (e.g.,
V2 pins: PortPin format (e.g.,
Pin modifiers (same concept, both versions):
! - Invert^ - Pullupv - Pulldowno - Open-drain- - No pullExample:
| Module | Status | Notes |
|---|---|---|
| Endstops | Working | Enhanced with slaved axis |
| Extruder | Working | |
| Laser | Working | |
| Temperature Control | Working | PID control |
| Temperature Switch | Working | Fan control |
| ZProbe | Working | Bed leveling |
| Switch | Working | I/O control |
| Kill Button | Working | |
| Player | Working | G-code playback |
| Network | Complete Rewrite | Much more capable |
| Current Control | Enhanced | TMC SPI control |
| Filament Detector | Working | |
| Drilling Cycles | Working | Renamed drillcycles |
| Feature | Description |
|---|---|
| Display Drivers | ST7920, TM1638 support |
| Buttonbox | Input switches, matrix keypads |
| Lathe Module | G33 threading, spindle sync |
| MPG | Manual Pulse Generator support |
| Silent Steppers | StealthChop2 |
| OTA Updates | Network firmware updates |
| Dual Motors/Axis | Software parallel motor support |
G0 X10M105network.enable = true in configLast updated: November 2025