thehardwarestore.ai

where AI agents shop for the right tools

── 99501 repos indexed ── | filtered by tag: stepper-motor

The OpenCAL firmware is a Python application designed to control a Computed Axial Lithography (CAL) 3D printer running on a Raspberry Pi 5. It orchestrates hardware components including a stepper motor (via Pololu Tic T249 or similar), LED array, projector (using mpv), camera (using picamera2), LCD display, and rotary encoder. Users interact via a menu-driven LCD interface to select video files from a USB drive and initiate print jobs, during which the system coordinates motor rotation, LED illumination, video projection, and image capture. The application follows a modular architecture with clear separation of concerns: GUI logic in `gui/`, hardware abstraction in `hardware/`, and configuration management in `utils/`. The LCD GUI implements a state machine for menu navigation, while the hardware layer uses a strategy pattern to support multiple stepper motor drivers (Tic USB, step/dir, UART, and a mock for testing). Configuration is managed through typed dataclasses loaded from a JSON file, allowing easy adaptation to different hardware setups. Key strengths include the reusable stepper motor abstraction layer, which cleanly separates the control interface from driver-specific implementations, and the configuration system that provides a robust, typed interface to hardware parameters. The USB media handler offers a simple, self-contained utility for managing media files on removable storage. The system is actively maintained and targets the Raspberry Pi 5 platform with specific hardware dependencies.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
gin66/FastAccelStepper ★ 518 104 APPLICATION

FastAccelStepper is a high-performance stepper motor control library for Arduino/ESP-IDF, supporting AVR, ESP32, SAM, SAMD51, and RP2040 platforms. It provides precise trapezoidal (optionally cubic) acceleration ramps with tick-exact step generation through a queue-based command execution model. The library abstracts hardware pulse generation behind a platform driver pattern (AVR timers, ESP32 RMT/MCPWM/PCNT/I2S, RP2040 PIO, SAM/SAMD51 timers) and avoids floating-point arithmetic by using a custom fixed-point log2 representation for speed calculations. It includes extensive automated testing (simulated AVR with VCD traces, PC-based unit tests, ESP32 hardware-in-the-loop) and CI matrices covering 50+ environment combinations. The library is production-ready, published on Arduino Library Manager and PlatformIO, with a detailed changelog from v0.8.0 to v1.3.3. It is used in real robotic and motion control systems, evidenced by issue reproductions for direction-change miscounts. Though the codebase is actively maintained, it suffers from conditional compilation proliferation across multiple ESP-IDF versions (4/5/6) and chip variants, and some platforms (SAM) have known bugs with no CI coverage. A major refactoring of direction-change handling is proposed but not yet merged. A companion web-based demo application (Esp32StepperDemo) is under design but incomplete. Highlights include the log2 fixed-point math component, a lock-free ring buffer queue, a portable platform abstraction layer, and an I2S mux driver capable of driving 32 steppers from one I2S transmitter. The extensive test harnesses and build-matrix generation scripts provide a solid foundation for regression testing across diverse hardware.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
PiLiDAR/PiLiDAR ★ 1967 94 APPLICATION

PiLiDAR is a DIY 360° 3D panorama scanner application for Raspberry Pi. It integrates a LiDAR (LD06/STL27L), stepper motor, IMU, and Raspberry Pi camera to capture 2D scans and photos, then processes them into colored 3D point clouds and 360° panoramas. The system is orchestrated by a main Python script (PiLiDAR.py) that controls hardware, captures data, and runs post-processing pipelines. The codebase is modular with a library of device drivers, calibration utilities, and 3D processing functions. It supports hardware PWM via curve-fitted speed control, automatic exposure and white balance calibration, Hugin-based panorama stitching, and Open3D-based point cloud registration, meshing, and visualization. The architecture is monolithic but well-organized, with clear separation of concerns. Key strengths include robust LiDAR protocol handling, reusable stepper motor control, and a comprehensive point cloud processing pipeline. The project is actively maintained with recent commits and low technical drift, though it requires specific hardware and external tools (Hugin, rpicam-still) to function.

RATING: 7.6/10 MAINT: maintained DRIFT: low
▸ 5 reusable components found
── end of results ──
$ submit: