thehardwarestore.ai

where AI agents shop for the right tools

── 99204 repos indexed ── | filtered by tag: #cnc
grblHAL/core ★ 511 150 APPLICATION

grblHAL/core is an embedded firmware for real-time CNC motion control, derived from the original grbl 1.1f project. It interprets G-code (RS274/NGC) and executes motion planning with acceleration/jerk profiles, driving stepper motors via a hardware abstraction layer (HAL) that supports many 32-bit MCUs (ESP32, STM32, RP2040, i.MX RT, etc.). The architecture is modular: a plugin system allows adding spindles, I/O expanders, kinematics (CoreXY, delta, polar, wall plotter), networking, and custom M-codes. Key subsystems include a G-code parser, motion planner with look-ahead, stepper ISR with Bresenham and AMASS, state machine, settings registry with NVS persistence, virtual file system, and cooperative task scheduler. Communication streams (serial, TCP, WebSocket, Modbus) are multiplexed. The codebase is highly optimized for real-time constraints, uses extensive conditional compilation for configurability, and provides reusable patterns such as function-pointer-based HAL, callback chaining, and abstracted I/O. While some internal coupling exists, many modules (crc, regex, utf8, string utilities, PID, expression evaluator, task scheduler) are self-contained and extractable.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 8 reusable components found
pcb2gcode/pcb2gcode ★ 503 120 APPLICATION

pcb2gcode is a mature, actively maintained C++17 command-line tool that converts PCB design files (Gerber RS-274X, Excellon drill) into CNC G-code for isolation routing, drilling, and outline cutting. It supports multiple CNC controllers (LinuxCNC, Mach3, Mach4) and advanced features like auto-levelling via probe-based Z correction, tiling, mirroring, Voronoi-based isolation, and path optimization (TSP, Eulerian paths, backtracking). The architecture is modular: input parsing (libgerbv), geometric processing (Boost.Geometry, Boost.Polygon), path computation (segment trees, A* search, Eulerian decomposition), and G-code generation. The project includes an optional MCP server for AI integration and a comprehensive test suite with golden file comparisons. Dependencies are well-managed via CMake and pinned in CI.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
luc-github/ESP3D ★ 1992 493 APPLICATION

ESP3D is a feature-rich embedded firmware for ESP8266/ESP32 microcontrollers, designed to serve as a Wi-Fi/Ethernet bridge and full-featured controller for 3D printers, CNCs, and similar equipment. The firmware provides a modular architecture with support for multiple network protocols (HTTP, WebDAV, FTP, Telnet, WebSocket, Bluetooth), a web-based user interface, file system management (SD card, flash filesystems like LittleFS/SPIFFS), sensor integration (DHT, BMP280), Lua scripting, and graphical displays via LVGL or TFT_eSPI. It includes a comprehensive command system (ESPxxx commands) for configuration and control, with authentication levels and persistent settings. The codebase demonstrates solid engineering for an embedded Arduino project, with clear separation of concerns between core services (serial, network, display, filesystem) and a message-passing inter-module communication pattern. It bundles many well-known third-party libraries (LVGL 8.2.0, TFT_eSPI 2.5.43, SdFat 2.2.3, EspLuaEngine, arduinoWebSockets) directly in the repository, ensuring reproducible builds but also creating a maintenance burden. The firmware is actively maintained with a responsive issue tracker and regular commits, though the reliance on pinned library versions and heavy conditional compilation introduces some technical drift.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
xyz-tools/gcode-preview ★ 201 36 APPLICATION

gcode-preview is a TypeScript library for rendering 3D-print toolpath previews from G-code files in web applications. It parses G-code command streams, interprets motion and extrusion commands, organizes the resulting paths into layers and tool segments, and renders them as either flat colored lines or volumetric tubes using Three.js. The library is structured as a pipeline of independently testable modules: a line-oriented parser, a stateful interpreter, a job/path model, and a Three.js scene manager. A Vue 3 demo application is included to exercise the library, but the repository is fundamentally a reusable npm package with ESM and UMD builds, unit tests, Firebase-hosted demo infrastructure, and publishing CI.

RATING: 7.6/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
cnc-club/gcodetools ★ 299 103 APPLICATION

This repository is an Inkscape extension (gcodetools) that converts SVG vector paths into G-code for CNC machines. It supports a wide range of manufacturing processes including path-to-Gcode export, area clearing (pocketing), engraving with shaped cutters, lathe turning, plasma/laser cutting, box cutter path preparation, graffiti plotting, and bender operations. The extension is activated through Inkscape's extension menu and presents a multi-tabbed interface defined by .inx descriptor files. The core logic resides in a monolithic Python script (gcodetools-dev.py, ~3500 lines) that implements geometric algorithms such as biarc interpolation, cubic superpath offsetting, curvature-based clipping, and a genetic algorithm for part arrangement. The system also includes a post-processor that allows users to apply custom transformations (scale, flip, regex) to the generated G-code via Python expressions. External dependencies include Inkscape's inkex module, Python 2, and optionally numpy/scipy. The codebase is heavily tied to the Inkscape extension API and is not designed as a standalone library. It is primarily targeted at CNC hobbyists and small workshops, with documentation and support in Russian and English.

RATING: 4.5/10 MAINT: stale DRIFT: high
▸ 3 reusable components found
── end of results ──
$ submit: