Caffeine, Code & Chaos

Systems engineer. Robotics geek. Maker of shiny things. Part race car, part glitter. Powered by caffeine and curiosity.

The Vision

Build a modern, flexible, fully customizable instrument cluster using inexpensive X27 automotive stepper motors, an Arduino (or compatible MCU), and simple YAML configuration. GaugeForge (formerly Goblin Gauge) brings professional-grade gauge clusters to DIY automotive enthusiasts with zero coding required.

Project Status: Active development, v1.1 released
Current Config Version: 1.1 (schema)
Hardware Platform: Arduino Mega 2560 (recommended), Nano, ESP32, STM32

What It Does

GaugeForge connects to your vehicle’s OBD-II port and drives physical analog-style gauges using real-time vehicle data. Support for standard OBD-II PIDs plus manufacturer-specific enhanced PIDs (GM, Ford, Honda, Toyota, and more). A desktop GUI makes configuration visual and validation automatic.

Core capabilities:

Key Features

Hardware Flexibility

X27 Stepper Motors

OBD-II Integration

Desktop Configuration GUI

Advanced Features (v1.1)

Project Components

Arduino Firmware (gaugeforge.ino)

C++ firmware for Arduino-compatible microcontrollers. Handles OBD-II communication, stepper motor control, RGB illumination, and real-time data processing.

Key modules:

Desktop GUI (Electron App)

Professional cross-platform configuration tool built with Electron, Node.js, and modern web technologies.

Features:

PID Database (pids.yaml)

Comprehensive database of 175+ OBD-II parameter IDs covering:

Configuration System (YAML)

Human-readable YAML configuration defines your entire gauge cluster setup. The GUI generates and validates these automatically, but you can also edit by hand.

Config includes:

Tech Stack

Firmware

Desktop GUI

Communication Protocols

Data Formats

Current Development Status

✅ Completed Features (v1.1)

🚧 In Progress

📋 Planned Features (Roadmap)

Getting Started

Hardware Requirements (Minimum)

Software Setup

# Clone repository
git clone https://github.com/jmassardo/gaugeforge.git
cd gaugeforge

# Launch GUI (optional but recommended)
cd gui
npm install
npm start

# Configure your setup visually or edit config.yaml manually

# Open gaugeforge.ino in Arduino IDE
# Select board (Mega 2560 recommended)
# Upload to Arduino

# Wire X27 steppers per config (4 pins each)
# Connect OBD-II adapter (RX/TX per config)
# Power up and observe self-test sweep

Quick Configuration

  1. Launch GUI and create new configuration
  2. Select Platform (Mega 2560 for most builds)
  3. Add Gauges - Choose PIDs from database (speed, RPM, temp, etc.)
  4. Assign Pins - Use interactive pin mapper or auto-assign
  5. Configure OBD - Set adapter type and communication pins
  6. Test Live - Connect to vehicle and verify data
  7. Export - Save YAML and flash firmware to Arduino

Example Configurations

The repository includes working examples for popular vehicles:

Development Workflow

  1. Extend pids.yaml - Add custom PIDs or manufacturer-specific parameters
  2. GUI Configuration - Visual editing with real-time validation
  3. Clear Validation Issues - Fix pin conflicts and configuration errors
  4. Export YAML - Save validated configuration
  5. Build & Flash - Upload firmware to Arduino
  6. Test & Tune - Observe startup sweep and live data, adjust as needed

Documentation

Comprehensive documentation available in the Jekyll site:

Community & Support

License & Contributing

Source-available project with planned mixed licensing strategy. See gaugeforge-site/docs/licensing.md and trademark policy before commercial use.

Contributions welcome:

  1. Fork and create feature branch
  2. Keep documentation in sync with code changes
  3. Provide test configurations or validation notes
  4. Submit pull request with clear description

Focus areas:

No related posts yet.