Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
67284f7
feat(build): add RP2040 board plumbing
ClutchplateDude Oct 10, 2026
4107efb
fix(config): define end-switch backslew constants unconditionally
ClutchplateDude Oct 10, 2026
ba77e38
feat(rp2040): add platform runtime support
ClutchplateDude Oct 10, 2026
850a4b9
feat(rp2040): add JackW01 and SKR Pico boards
ClutchplateDude Oct 10, 2026
7356649
ci(rp2040): add boards to build matrix
ClutchplateDude Oct 10, 2026
ef906c9
fix(rp2040): report RP2040 in getMountHardwareInfo
ClutchplateDude Oct 11, 2026
8a01003
fix(logging): write each log line with a single serial write
ClutchplateDude Oct 11, 2026
4a3b84e
fix(rp2040): harden USB CDC serial handling
ClutchplateDude Oct 11, 2026
5d3e0d2
feat(rp2040): raise stepper servicing rate to 5 kHz
ClutchplateDude Oct 11, 2026
32cde8d
fix(rp2040): bound the CDC console wait so headless boots proceed
ClutchplateDude Oct 11, 2026
3c3405f
fix(mount): stop overriding TMC2209 hold current to full scale
ClutchplateDude Oct 11, 2026
bdc2b8e
fix(rp2040): always bypass CDC flow control so DTR-less hosts get rep…
ClutchplateDude Oct 11, 2026
471937f
Merge develop (squashed #298) into rp2040-support
ClutchplateDude Oct 11, 2026
a7e8886
fix(testmenu): compare action instead of assigning in PassthroughCmd …
ClutchplateDude Oct 11, 2026
afc5d3e
ci(rp2040): restrict RA/DEC matrix driver types to TMC2209 UART
ClutchplateDude Oct 11, 2026
6e32af4
docs(rp2040): add wiring guide for supported peripherals
ClutchplateDude Oct 12, 2026
5c9a1ab
fix(rp2040): correct SKR Pico info display pins (GP0/GP1, not GP20/21)
ClutchplateDude Oct 12, 2026
da87b68
docs(rp2040): drop DIAG pin references; state StallGuard autohome uns…
ClutchplateDude Oct 12, 2026
5db9a4d
fix(config): drop StallGuard DIAG pragma messages
ClutchplateDude Oct 12, 2026
9a48e9d
Changed debug level test to inequality
ClutchplateDude Oct 12, 2026
ca166d8
style: apply clang-format fixes
openastrotech-bot Oct 12, 2026
d442e01
fix(display): draw logo header on every console frame; uppercase FW v…
ClutchplateDude Oct 12, 2026
77770fc
feat(rp2040): default USB serial speed to 115200
ClutchplateDude Oct 12, 2026
6bcc75d
Sample Pico config for OAM
ClutchplateDude Oct 12, 2026
749329a
style: apply clang-format fixes
openastrotech-bot Oct 12, 2026
83f08ea
Merge branch 'develop' into rp2040-support
ClutchplateDude Oct 14, 2026
331c20e
docs(rp2040): clarify FreeRTOS mention in timer comment
ClutchplateDude Oct 14, 2026
baab6f6
fix(rp2040): address PR review feedback
ClutchplateDude Oct 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ jobs:
- mksgenlv1
- esp32
- ramps
- rp2040_jackw01
- rp2040_skr_pico
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-pio
Expand Down
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@ CMakeListsPrivate.txt
build_cache

Configuration_local*
MeadeToWikiOutput.txt

!Configuration_local_examples/
!Configuration_local_examples/*
Comment thread
andre-stefanov marked this conversation as resolved.
MeadeToWikiOutput.txt

# macOS
**/.DS_Store
25 changes: 22 additions & 3 deletions Configuration.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,24 @@
#define INFO_DISPLAY_I2C_ADDRESS 0x3C
#endif
#ifndef INFO_DISPLAY_I2C_SDA_PIN
#define INFO_DISPLAY_I2C_SDA_PIN 5
#if (BOARD == BOARD_RP2040_SKR_PICO)
// The SKR Pico has exactly one header-accessible I2C-capable GPIO pair:
// GP0/GP1 on the left-side header (shared with the default GPS wiring).
#define INFO_DISPLAY_I2C_SDA_PIN 0
#elif (BOARD == BOARD_RP2040_JACKW01)
#define INFO_DISPLAY_I2C_SDA_PIN 20
#else
#define INFO_DISPLAY_I2C_SDA_PIN 5
#endif
#endif
#ifndef INFO_DISPLAY_I2C_SCL_PIN
#define INFO_DISPLAY_I2C_SCL_PIN 4
#if (BOARD == BOARD_RP2040_SKR_PICO)
#define INFO_DISPLAY_I2C_SCL_PIN 1
#elif (BOARD == BOARD_RP2040_JACKW01)
#define INFO_DISPLAY_I2C_SCL_PIN 21
#else
#define INFO_DISPLAY_I2C_SCL_PIN 4
#endif
#endif
#ifndef INFO_DISPLAY_UPSIDE_DOWN
#define INFO_DISPLAY_UPSIDE_DOWN 0
Expand Down Expand Up @@ -164,7 +178,12 @@
* See Constants.hpp for predefined SERIAL_BAUDRATE options, or customize as required.
*/
#ifndef SERIAL_BAUDRATE
#define SERIAL_BAUDRATE SERIAL_BAUDRATE_ASCOM
#if defined(ARDUINO_ARCH_RP2040)
// The 19200 ASCOM default exists because the 8-bit AVR platforms cannot keep up.
#define SERIAL_BAUDRATE SERIAL_BAUDRATE_FAST
#else
#define SERIAL_BAUDRATE SERIAL_BAUDRATE_ASCOM
#endif
#endif

/**
Expand Down
23 changes: 11 additions & 12 deletions ConfigurationValidation.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,17 @@
#error Unsupported GPS configuration. Use at own risk.
#endif

// RP2040 SKR Pico: info display pin sharing.
#if defined(ARDUINO_ARCH_RP2040) && (BOARD == BOARD_RP2040_SKR_PICO) && (INFO_DISPLAY_TYPE != INFO_DISPLAY_TYPE_NONE)
#if (USE_GPS == 1)
#error On the SKR Pico the info display and GPS share GP0/GP1 on the left-side header. Enable only one, or remap the pins explicitly.
#endif
#if (INFO_DISPLAY_I2C_SDA_PIN == 20) || (INFO_DISPLAY_I2C_SCL_PIN == 21) || (INFO_DISPLAY_I2C_SDA_PIN == 21) \
|| (INFO_DISPLAY_I2C_SCL_PIN == 20)
#error GP20/GP21 on the SKR Pico only drive on-board MOSFETs (HB/FAN/Laser power outputs); they are not exposed as GPIO on any connector and cannot be used for I2C. Use GP0/GP1 on the left-side header.
#endif
#endif

#if (USE_GYRO_LEVEL == 0)
// Baseline configuration without gyro is valid
#elif defined(ESP32) || defined(__AVR_ATmega2560__)
Expand Down Expand Up @@ -240,12 +251,6 @@
// Required pin assignments missing (ATmega uses SoftwareSerial for this driver)
#error Missing pin assignments for configured AZ DRIVER_TYPE_TMC2209_UART driver
#endif
#if !defined(AZ_DIAG_PIN)
// AZ_DIAG_PIN (TMC2209 DIAG output) is used only for stallGuard-based homing.
// It is optional: omit it if your hardware does not wire the DIAG output to a GPIO.
// Without it, stallGuard homing is unavailable but all other AZ motion works normally.
#pragma message "AZ_DIAG_PIN not defined. StallGuard homing unavailable for AZ axis."
#endif
#if !((defined(AZ_SERIAL_PORT_TX) && defined(AZ_SERIAL_PORT_RX)) || defined(AZ_SERIAL_PORT))
// Required pin assignments missing for UART serial
#error Missing pin assignments for configured AZ DRIVER_TYPE_TMC2209_UART driver serial connection
Expand All @@ -264,12 +269,6 @@
// Required pin assignments missing (ATmega uses SoftwareSerial for this driver)
#error Missing pin assignments for configured ALT DRIVER_TYPE_TMC2209_UART driver
#endif
#if !defined(ALT_DIAG_PIN)
// ALT_DIAG_PIN (TMC2209 DIAG output) is used only for stallGuard-based homing.
// It is optional: omit it if your hardware does not wire the DIAG output to a GPIO.
// Without it, stallGuard homing is unavailable but all other ALT motion works normally.
#pragma message "ALT_DIAG_PIN not defined. StallGuard homing unavailable for ALT axis."
#endif
#if !((defined(ALT_SERIAL_PORT_TX) && defined(ALT_SERIAL_PORT_RX)) || defined(ALT_SERIAL_PORT))
// Required pin assignments missing for UART serial
#error Missing pin assignments for configured ALT DRIVER_TYPE_TMC2209_UART driver serial connection
Expand Down
52 changes: 31 additions & 21 deletions Configuration_adv.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,19 @@
// ////////
// MOTOR & DRIVER SETTINGS ////////
// ////////
//////////////////////////////////////
//
// Interval at which the stepper control timer/interrupt services the steppers.
// Shorter intervals mean finer step timing. AVR is capped at 2 kHz: higher rates
// there interfere with serial communications. The RP2040 has ample headroom.
#ifndef STEPPER_CONTROL_INTERVAL_MS
#if defined(ARDUINO_ARCH_RP2040)
#define STEPPER_CONTROL_INTERVAL_MS 0.2f // 5 kHz
#else
#define STEPPER_CONTROL_INTERVAL_MS 0.5f // 2 kHz
#endif
#endif

//////////////////////////////////////
//
// This is how many steps your stepper needs for a full rotation.
Expand Down Expand Up @@ -556,16 +569,15 @@
// Enable RA End Switches in your local configuration. Do not edit here!
#ifndef USE_RA_END_SWITCH
#define USE_RA_END_SWITCH 0
#else
#ifndef RA_END_SWITCH_ACTIVE_STATE
#define RA_END_SWITCH_ACTIVE_STATE LOW
#endif
// You can define how many degrees to slew back after the end switch has triggered.
// Mechanical end switches might have a hysteresis behavior, meaning once signaled,
// it needs to move well back beyond the signal point to become un-signaled.
#ifndef RA_ENDSWITCH_BACKSLEW_DEG
#define RA_ENDSWITCH_BACKSLEW_DEG 0.5
#endif
#endif
#ifndef RA_END_SWITCH_ACTIVE_STATE
#define RA_END_SWITCH_ACTIVE_STATE LOW
#endif
// You can define how many degrees to slew back after the end switch has triggered.
// Mechanical end switches might have a hysteresis behavior, meaning once signaled,
// it needs to move well back beyond the signal point to become un-signaled.
#ifndef RA_ENDSWITCH_BACKSLEW_DEG
#define RA_ENDSWITCH_BACKSLEW_DEG 0.5
#endif

//////////////////////////////////////////
Expand All @@ -574,17 +586,15 @@
// Enable DEC End Switches in your local configuration. Do not edit here!
#ifndef USE_DEC_END_SWITCH
#define USE_DEC_END_SWITCH 0
#else
#ifndef DEC_END_SWITCH_ACTIVE_STATE
#define DEC_END_SWITCH_ACTIVE_STATE LOW
#endif
// You can define how many degrees to slew back after the end switch has triggered.
// Mechanical end switches might have a hysteresis behavior, meaning once signaled,
// it needs to move well back beyond the signal point to become un-signaled.
#ifndef DEC_ENDSWITCH_BACKSLEW_DEG
#define DEC_ENDSWITCH_BACKSLEW_DEG 0.5
#endif

#endif
#ifndef DEC_END_SWITCH_ACTIVE_STATE
#define DEC_END_SWITCH_ACTIVE_STATE LOW
#endif
// You can define how many degrees to slew back after the end switch has triggered.
// Mechanical end switches might have a hysteresis behavior, meaning once signaled,
// it needs to move well back beyond the signal point to become un-signaled.
#ifndef DEC_ENDSWITCH_BACKSLEW_DEG
#define DEC_ENDSWITCH_BACKSLEW_DEG 0.5
#endif

//////////////////////////////////////////
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* Stepper slot : E0 -> ALT (TMC2209, UART addr 3)
* Motor rating : 0.9 deg / step (400 SPR), 470 mA
* Pulley : 16T aluminium GT2
* RA homing : Hall sensor on GPIO4 (X-STOP / RA_DIAG_PIN)
* RA homing : Hall sensor on GPIO4 (X-STOP)
*
* All pin assignments are in boards/RP2040_SKR_PICO/pins_RP2040_SKR_PICO.hpp.
* R_SENSE (0.11 ohm) is set globally in src/a_inits.hpp for all TMC2209_UART
Expand Down Expand Up @@ -124,15 +124,25 @@
#endif

// ── RA Hall sensor auto-home ──────────────────────────────────────────────────
// Hall sensor is wired to GPIO4 (X-STOP input / RA_DIAG_PIN on SKR Pico).
// Hall sensor is wired to GPIO4 (X-STOP input on SKR Pico).
// Active state LOW: sensor pulls GPIO4 LOW when the magnet is present.
// Search distance: 30° default (RA_HOMING_SENSOR_SEARCH_DEGREES in Configuration_adv.hpp).
// GPIO4 is configured INPUT (no pull-up); add external 10kΩ to 3.3V if sensor
// is open-drain, or change to INPUT_PULLUP in b_setup.hpp.
#define USE_HALL_SENSOR_RA_AUTOHOME 1
#define RA_HOMING_SENSOR_PIN 4 // GPIO4 = RA_DIAG_PIN (X-STOP)
#define RA_HOMING_SENSOR_PIN 4 // GPIO4 (X-STOP)
#define RA_HOMING_SENSOR_ACTIVE_STATE LOW // sensor pulls LOW when active

// ── Info display (alternative to GPS) ─────────────────────────────────────────
// The SKR Pico has exactly one header-accessible I2C-capable GPIO pair: GP0/GP1
// on the left-side header (IO0/IO1/GND/5V). This example uses it for GPS below.
// For an SSD1306 128x64 info display instead, set USE_GPS to 0 and enable:
// #define INFO_DISPLAY_TYPE INFO_DISPLAY_TYPE_I2C_SSD1306_128x64
// (SDA/SCL then default to GP0/GP1: SDA->IO0, SCL->IO1, VCC->5V, GND->GND.)
// NOTE: GP20/GP21 must NOT be used for the display on this board - they only
// drive the HB/FAN/Laser MOSFET power outputs and never reach a connector as
// raw GPIO (wiring I2C there hangs the bus). Enforced by ConfigurationValidation.

// ── GPS ───────────────────────────────────────────────────────────────────────
// ATGM336H-5N wired to left-side header: GPS TX→IO1, GPS RX→IO0, VCC→5V, GND.
// GPS_SERIAL_PORT, RP2040_GPS_TX_PIN, RP2040_GPS_RX_PIN defined in pins file.
Expand Down
5 changes: 4 additions & 1 deletion Constants.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
#define BOARD_ESP32_ESP32DEV 1001
#define BOARD_OAE_V1 1002

// RP2040 based boards
// RP2040 based boards (2000-2999)
// 2101-2199: Pico family + JackW01 printer carrier board
// 2201-2299: BTT SKR Pico family
#define BOARD_RP2040_JACKW01 2101
#define BOARD_RP2040_SKR_PICO 2201

Expand Down Expand Up @@ -67,6 +69,7 @@

// USB serial port speed according to external controller
#define SERIAL_BAUDRATE_ASCOM 19200
#define SERIAL_BAUDRATE_FAST 115200 // For platforms that keep up (RP2040 USB CDC)

// Wifi operating modes (ESP32 only)
#define WIFI_MODE_INFRASTRUCTURE 0 // Infrastructure Only - OAT connects to an existing Router
Expand Down
143 changes: 143 additions & 0 deletions Example_Configuration_local_rp2040_skr_pico.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
/**
* @brief Bench configuration for the BTT SKR Pico v1.0 RP2040 board.
*
* Personal local config (gitignored). Based on
* Configuration_local_examples/Configuration_local_rp2040_skr_pico.hpp,
* adapted for the bench hardware:
* - Hall homing sensors on RA (X-STOP GPIO4) AND DEC (Y-STOP GPIO3)
* - DEC endstops on Z-STOP (GPIO25, down) and E-STOP (GPIO16, up)
* - SSD1306 info display on I2C0, GP0/GP1 on the left-side header
* - GPS disabled for the bench
*
* All other pin assignments are in boards/RP2040_SKR_PICO/pins_RP2040_SKR_PICO.hpp.
*/
#pragma once

// ── Board ─────────────────────────────────────────────────────────────────────
#define BOARD BOARD_RP2040_SKR_PICO
#define OAM
#define TEST_VERIFY_MODE 0

// ── Hemisphere ────────────────────────────────────────────────────────────────
#define NORTHERN_HEMISPHERE 1

// ── Display ────────────────────────────────────────────────────────────────────
// No LCD menu display (RP2040 phase 1); SSD1306 128x64 info display on I2C0.
// GP0/GP1 on the left-side header (IO0/IO1/GND/5V) - the only header-accessible
// I2C0 pair on the SKR Pico. Shares pins with the default GPS wiring, so
// USE_GPS must stay 0 while the display is enabled.
// (GP20/GP21 are MOSFET-gate-only nets on this board - HB/FAN/Laser outputs,
// never exposed as raw GPIO; wiring I2C there hangs the bus and the firmware.)
#define DISPLAY_TYPE DISPLAY_TYPE_NONE
#define INFO_DISPLAY_TYPE INFO_DISPLAY_TYPE_I2C_SSD1306_128x64
#define INFO_DISPLAY_I2C_ADDRESS 0x3C
#define INFO_DISPLAY_I2C_SDA_PIN 0 // GP0 (I2C0 SDA, left header IO0)
#define INFO_DISPLAY_I2C_SCL_PIN 1 // GP1 (I2C0 SCL, left header IO1)
#define INFO_DISPLAY_UPSIDE_DOWN 1
#define INFO_DISPLAY_MIRRORED 0

// ── Stepper control interval ─────────────────────────────────────────────────
// 5 kHz is the RP2040 default (see Configuration_adv.hpp) and the bench-verified
// rate. The RP2040 can also handle 10 kHz if you need faster step generation
// (set 0.1f), but that is not part of the verified baseline.
#define STEPPER_CONTROL_INTERVAL_MS 0.2f // 5 kHz

// ── Stepper motor types ───────────────────────────────────────────────────────
#define RA_STEPPER_TYPE STEPPER_TYPE_ENABLED
#define DEC_STEPPER_TYPE STEPPER_TYPE_ENABLED
#define AZ_STEPPER_TYPE STEPPER_TYPE_ENABLED
#define ALT_STEPPER_TYPE STEPPER_TYPE_ENABLED

// ── Stepper driver types ──────────────────────────────────────────────────────
#define RA_DRIVER_TYPE DRIVER_TYPE_TMC2209_UART
#define DEC_DRIVER_TYPE DRIVER_TYPE_TMC2209_UART
#define AZ_DRIVER_TYPE DRIVER_TYPE_TMC2209_UART
#define ALT_DRIVER_TYPE DRIVER_TYPE_TMC2209_UART

// ── RA Settings ───────────────────────────────────────────────────────────────
#define RA_SLEW_MICROSTEPPING 16 // µsteps used while slewing RA
#define RA_TRACKING_MICROSTEPPING 256 // µsteps used for sidereal tracking
#define RA_STEPPER_SPEED 8000 // steps/s. If SPEED and ACCELERATION numbers are the same, the spool up to full speed takes one second.
#define RA_STEPPER_ACCELERATION 8000 // steps/s/s
#define RA_MOTOR_CURRENT_RATING 1000 // mA
#define RA_OPERATING_CURRENT_SETTING 75 // %
#define RA_WHEEL_CIRCUMFERENCE 1130.97f // 360mm diam
#define RA_PULLEY_TEETH 16
#define RA_STEPPER_SPR (400 * 9) // change to (200 * 9) for 1.8° stepper
#define RA_LIMIT_LEFT 6.0f
#define RA_LIMIT_RIGHT 6.0f
#define RA_INVERT_DIR 1

// ── DEC settings ────────────────────────────────────────────────────────────
#define DEC_SLEW_MICROSTEPPING 16 // µsteps used while slewing DEC
#define DEC_GUIDE_MICROSTEPPING 256 // µsteps used for guide pulses
#define DEC_STEPPER_SPEED 8000 // steps/s. If SPEED and ACCELERATION numbers are the same, the spool up to full speed takes one second.
#define DEC_STEPPER_ACCELERATION 8000 // steps/s/s
#define DEC_MOTOR_CURRENT_RATING 1000 // mA
#define DEC_OPERATING_CURRENT_SETTING 75 // %
#define DEC_WHEEL_CIRCUMFERENCE 816.814f
#define DEC_PULLEY_TEETH 16
#define DEC_STEPPER_SPR (400 * 9) // change to (200 * 9) for 1.8° stepper
#define DEC_LIMIT_UP 130
#define DEC_LIMIT_DOWN 130
#define DEC_INVERT_DIR 1

// ── StealthChop (silent mode) ─────────────────────────────────────────────────
#define RA_UART_STEALTH_MODE 1
#define DEC_UART_STEALTH_MODE 1

// ── AZIMUTH definitions ──────────────────────────────────────────────────────
#define AZ_MICROSTEPPING 16
#define AZ_STEPPER_SPEED 2500
#define AZ_STEPPER_ACCELERATION 1250
#define AZ_MOTOR_CURRENT_RATING 2000 // mA
#define AZ_OPERATING_CURRENT_SETTING 80 // %
#define AZ_STEPPER_SPR 400
#define AZ_ALWAYS_ON 1
#define AZ_MOTOR_HOLD_SETTING 15
#define AZ_PULLEY_TEETH 20
#define AZ_ROD_PITCH 1.0f // mm per full rev of stepper
#define AZ_CIRCUMFERENCE (115 * 2 * 3.1415927)
#define AZIMUTH_STEPS_PER_REV (AZ_CIRCUMFERENCE / AZ_ROD_PITCH * AZ_STEPPER_SPR * AZ_MICROSTEPPING) // Steps needed to turn AZ 360deg
#define AZ_INVERT_DIR 1

// ── ALTITUDE definitions ─────────────────────────────────────────────────────
#define ALT_MICROSTEPPING 32
#define ALT_STEPPER_SPEED 2500
#define ALT_STEPPER_ACCELERATION 1250
#define ALT_MOTOR_CURRENT_RATING 1000 // mA
#define ALT_OPERATING_CURRENT_SETTING 70 // %
#define ALT_STEPPER_SPR 400
#define ALT_INVERT_DIR 0
#define ALT_ALWAYS_ON 0

// ── Hall sensor auto-homing (RA and DEC) ──────────────────────────────────────
// RA sensor on X-STOP (GPIO4 = RA_DIAG_PIN), DEC sensor on Y-STOP (GPIO3 = DEC_DIAG_PIN).
// Active state LOW: sensor pulls the GPIO LOW when the magnet is present.
#define USE_HALL_SENSOR_RA_AUTOHOME 0
#define RA_HOMING_SENSOR_PIN 4 // GPIO4 = X-STOP
#define RA_HOMING_SENSOR_ACTIVE_STATE LOW

#define USE_HALL_SENSOR_DEC_AUTOHOME 0
#define DEC_HOMING_SENSOR_PIN 3 // GPIO3 = Y-STOP
#define DEC_HOMING_SENSOR_ACTIVE_STATE LOW

// ── DEC endstops ──────────────────────────────────────────────────────────────
// Wired to the two remaining endstop inputs on the SKR Pico.
#define USE_DEC_END_SWITCH 0
#define DEC_ENDSWITCH_DOWN_SENSOR_PIN 25 // GPIO25 = Z-STOP
#define DEC_ENDSWITCH_UP_SENSOR_PIN 16 // GPIO16 = E-STOP
#define DEC_END_SWITCH_ACTIVE_STATE LOW

// ── GPS ───────────────────────────────────────────────────────────────────────
// Disabled for the bench (no module connected). NOTE: GPS shares GP0/GP1 with
// the info display on this board - only one of the two can be enabled.
#define USE_GPS 0

// ── FAN (disabled for now)───────────────────────────────────────────────────────────────────────
// #define RP2040_FAN1_POWER_PERCENT 60

// Track immediately after boot
#define TRACK_ON_BOOT 0

#define DEBUG_LEVEL (DEBUG_NONE)
Loading
Loading