The rig is a model-scale autonomous drilling system — a vertical aluminum tower built to drill into an unknown rock block, then steer the bit through three target points with no human intervention.
The frame is a modular tower of 6061-T6 aluminum 2-by-2-inch T-slot extrusion, joined with aluminum corner brackets and thread-locked fasteners. The modular T-slot profile allows for customizable sensor mounting and reconfiguration. Three platforms carry the subsystems — a top actuation deck, a mid-frame elevator carrying the drillstring and top-drive assembly, and a bottom platform for fluid and cutting collection.
Vertical motion comes from two NEMA-32 stepper motors driving lead screws; sharing the load gives a lift capacity near 700 lb and sets weight-on-bit through the elevator platform. (tbd)
Steering uses a hydraulically actuated push-the-bit rotary steerable system — three independently controlled wings, each driven by a dedicated piston near 2000 psi, biasing the bit toward the commanded direction. Safety is built into the structure: a polycarbonate enclosure contains debris, door interlocks gate operation, a hardware-and-software E-stop cuts power, and the hydraulic seals are sized to fail before any structural component does.


Steering. Once the bit enters the rock, a rotary steerable system bends the well toward three target points — no tripping the string, no human intervention.
The RSS is a push-the-bit design: three steering wings spaced evenly around the bottom-hole assembly, each driven by its own hydraulic piston. A wedge mechanism converts piston extension into radial wing deployment, forcing the wing against the wellbore wall — and the reaction force biases the bit toward the commanded direction.
Each wing is controlled independently through a hydraulic block that monitors flow and pressure. Those readings estimate actuation force and wing extension, which in turn resolve the bit's toolface and orientation relative to the formation. Fully retracted, the wing tips sit slightly proud of the BHA to double as drilling stabilizers.
High-pressure hydraulics demand a deliberate failure mode. Yor-Lok fittings and stainless tubing carry margin to roughly 9000 psi against a ~2000 psi working pressure, while the U-Cup piston seals are sized as a mechanical fuse — the weakest pressure boundary, designed to fail before any machined steel component does.

Seven sensor channels turn the rig's physical behavior into a measured state — orientation, depth, torque, speed, weight-on-bit, temperature, and vibration — feeding the drives that steer and advance the bit.
(tbd) The sensor stack centers on a 9-axis ICM-20948 IMU in the bottom-hole assembly, an LPPS-36B linear sensor for true vertical depth, a FUTEK TFF400 inline torque sensor and US Digital E6 encoder at the drill motor, and a FUTEK LSB200 load cell reading weight-on-bit between the hoist and the string. A DS18B20 tracks temperature and an ADXL356 MEMS accelerometer catches high-g shock and vibration.
(tbd) Actuation electronics close the loop around each motor. A Maxon EPOS4 Compact drive runs the rotary BLDC over EtherCAT, while Leadshine iCS-RS closed-loop drives handle the hoist steppers. Hydraulic steering valves are positioned by a 16-bit ADC/DAC stage for proportional solenoid current, with every solenoid channel opto-isolated from the logic side.
(tbd) A Raspberry Pi 4 handles supervisory logging, UI, and diagnostics alongside a GPU-equipped main computer, with a custom PCB carrying the IMU/ADC front-end and a CAN-FD transceiver. Everything runs off a 24 V DC bus through isolated DC-DC modules, resettable fuses, and transient suppression. An optional Semtech SX1276 LoRa link is under evaluation to thin the wiring down the drillstring.
| ID | Measurement | Component | Detail |
|---|---|---|---|
| IMU-01 | Orientation | TDK ICM-20948 | 9-axis, in BHA |
| DEP-01 | Depth (TVD) | LPPS-36B | Linear position |
| TRQ-01 | Torque | FUTEK TFF400 | Inline rotary |
| RPM-01 | Rotary Speed | US Digital E6 | Optical encoder |
| WOB-01 | Weight-on-Bit | FUTEK LSB200 | Load cell |
| TMP-01 | Temperature | DS18B20 | Thermal monitor |
| VIB-01 | Vibration | ADXL356 | MEMS, high-g |
| ID | Subsystem | Component | Detail |
|---|---|---|---|
| ROT-01 | Bit Rotation | Maxon EC-i 40 BLDC | High torque density, closed-loop |
| HST-01 | Hoist · Z-Axis | 2× NEMA-23 + Ball Screw | Dual-motor synchronized lift |
| HYD-01 | Hydraulic Control | Danfoss PVG32 Monoblock | Proportional flow control |
| HYD-02 | Wing Actuation | 3× Double-Acting Pistons | 6 controllable ports |
| CLT-01 | Coolant Loop | Seaflo 12 V DC Pump | Continuous-duty centrifugal |
A real-time control loop closes around every revolution of the bit — embedded C on an STM32 microcontroller, deterministic to the microsecond.
The firmware layer runs priority-pinned tasks for sensor acquisition, control compute, and CAN dispatch. PID controllers regulate the coupled drilling axes — RPM, feed rate, and weight-on-bit — and drive the steering response that holds the bit on its commanded trajectory.
An ML interfacing layer pipes a downsampled sensor frame over high-speed serial to a co-processor running inference, then receives gain-trim and setpoint deltas back. The model never has direct authority — control authority always sits with the deterministic PID core, with the ML layer recommending, not commanding.
Telemetry is broadcast over CAN to a Raspberry Pi 4 that handles logging, the operator UI, and diagnostics — capturing every run at 1 kHz for offline analysis and model training.
A Kalman-style estimator combines pressure, torque, RPM, depth, and IMU streams into a single bit-state vector — denoised, time-aligned, and physically-constrained. The fused estimate, not raw sensors, is what the controller and ML layer see.
Recorded drill runs form a versioned dataset; models are trained in PyTorch with deterministic seeds and checkpointed to a registry. Each release ships with a model card, hyperparameter manifest, and evaluation harness.
Quantized models run on a dedicated CUDA-accelerated edge module beside the controller. The inference pipeline is hard-budgeted: drop a frame, miss a deadline, fall through to PID-only — never block the loop.