Bad air
Diesel exhaust (CO, NO₂), blasting gases, dust, and falling oxygen. Often you can't smell the danger until it's serious.
OreAcle watches a mine's sensors, detects danger before a human would, explains it in plain English, recommends the action, and drives the ventilation fan itself, all running locally on a laptop at $0 AI cost.
Two kilometres underground, three things quietly cause harm: bad air, failing equipment, and mismatched ventilation. None announce themselves clearly. Today a human is expected to watch dozens of live numbers across many zones and connect the dots, every time, all shift. That's exactly the job a machine should help with.
Diesel exhaust (CO, NO₂), blasting gases, dust, and falling oxygen. Often you can't smell the danger until it's serious.
Pumps, fans, and drills vibrate differently for days before they fail. Miss it, and a $500K breakdown, or worse, follows.
Fans can be 40%+ of a mine's energy bill. Too much wastes money; too little is a safety risk. Matching airflow to people is hard by hand.
Maestro Digital Mine has air-quality stations running in Vale's Sudbury mines (including Creighton, 2.4 km deep) since 2015. Sandvik's Newtrax platform monitors Glencore's people and equipment underground. Vale runs a remote operations centre in Sudbury watching all five Ontario mines, with ventilation-on-demand saving millions.
So the data is there. What's missing is the AI interpretation layer that turns raw numbers into a prioritised, plain-English decision, and a practical operator interface built for the person on shift, not just an engineer. OreAcle is that missing layer, built with free open-source AI.
The whole story is one round trip: feel the world, decide, explain it to a human, and turn the fan, closing the loop.
Two kinds of people use OreAcle at different locations. Here's exactly what each person sees on their screen, and where every piece of hardware, software, and AI runs.
Location: active stope, equipment bay, or shaft entrance
Carries a tablet or ruggedized iPad on the job. Their key question: is my zone safe right now, and what should I do?
Location: surface operations centre or any networked laptop
Sits at a desktop or laptop. Needs to watch all zones at once, catch problems before they escalate, run training scenarios, and control ventilation across the mine.
The Pico W is the nervous system: it feels the world and reports back over a USB cable. Your MacBook is the brain: it thinks, decides, explains, and shows everything on screen, then sends a command back to spin the fan. Everything below runs locally and free.
{ "ts": 1750550400, "zone": "Z3", "vib_rms": 0.07, "temp_c": 24.1,
"humidity": 58, "occupancy": 2, "distance_cm": 180,
"co_ppm": 12, "no2_ppm": 0.4, "airflow": 0.42, "fan_pct": 40 }
SIM co_ppm, no2_ppm, and airflow are software-simulated in the POC; swapping in a ~$10 gas sensor is a one-wire change.
Everything comes from one SunFounder Raspberry Pi Pico W Ultimate Starter Kit. No soldering. Hardware is ~10% of the effort; the idea, the AI, and the interface are the stars.
The edge "nervous system"
Myth-buster: Amazon lists "Tegra / FreeRTOS", that's an auto-fill error. It's an RP2040 microcontroller. It's too small to run the AI, which is exactly why the brain lives on the MacBook.
| Role in OreAcle | Component | Interface |
|---|---|---|
| Equipment vibration / ground movement | MPU6050 | I²C 0x68 |
| Air temperature + humidity (heat-stress) | DHT11 | 1-wire |
| Worker occupancy in zone | PIR motion | digital |
| Distance / presence backup | Ultrasonic HC-SR04 | trig/echo |
| Local danger alarm (sound) | Active buzzer | PWM |
| Status light (green/amber/red) | RGB LED | PWM |
| Local readout ("VENT ↑") | I²C LCD1602 | I²C 0x27 |
| The "ventilation fan" (the wow) | DC motor + driver | PWM |
Extra spend on AI & hardware to make this run: $0: it all runs on a laptop and gear mines already own.
Everything runs on the laptop with no API keys and nothing leaving the machine, which matters underground, where connectivity is poor and data is sensitive.
scikit-learn
A lightweight, explainable machine-learning model that learns what "normal" looks like and flags abnormal combinations of readings, even when no single number crossed a hard limit.
via Ollama · runs locally
A small open-source large language model turns each anomaly into a one-sentence alert with a recommended action, and powers a chat copilot you can ask in plain English.
gemma2:2b fast fallbackspeech-to-text
A stretch goal that lets a supervisor speak a question hands-free ("is Zone 3 safe?"). Runs on CPU, fully local.
No API bills, ever. The model files are downloaded once and run forever for free.
No internet needed at demo time. Critical underground and for data privacy.
Small models keep alerts snappy; outputs are kept to ≤ 2 sentences and pre-warmed.
OreAcle is the open-source AI interpretation and operator-interface layer that complements these proven deployments. The sensors, the data, and the infrastructure already exist underground.
Vigilante AQS in Vale's Sudbury Mines
Hundreds of Vigilante AQS air-quality stations have been running in Vale's underground operations since 2015, covering airflow, gas, temperature, and dust. Deployed at Creighton Mine (2,400 m deep), one of the deepest in Canada.
Newtrax Collision-Avoidance Expansion (July 2025)
Sandvik and Glencore expanded their partnership in July 2025 to deploy Newtrax collision-avoidance and the Mining Data Platform across Glencore's mixed underground fleet at Raglan (Canada) and Kamoto (DRC).
Sudbury, Ontario
Vale's Integrated Remote Operations Centre (IROC) in Sudbury oversees all five Ontario underground mines from surface. Ventilation-on-Demand systems save millions of dollars annually by matching airflow to activity.
MAQS Mine Air Quality Station
The MAQS station monitors gas concentrations, airflow, and environmental conditions in Northern Ontario mines. A well-established Sudbury-region instrument measuring the same parameters OreAcle interprets.
Sudbury, Ontario: software wrapped around mining hardware
Key Logic builds embedded systems, AR/VR (VirtualMine), and custom sensor-data algorithms for mining clients including Minewise ShafTrack, GeoSight NX-150, and TesMan remote loading.
The Live Console below runs the entire experience on sample data. Trigger a gas build-up or a bearing failure and watch the AI alert, the fan response, and the copilot react in real time.
Backend offline — copilot is answering from the built-in simulation.
A transparent, judge-friendly view of implementation progress. All features listed here are working in the live demo right now unless otherwise noted.
GET /health, WS /ws, POST /scenario/{name}, POST /fan, POST /copilotts, zone, vib_rms, temp_c, humidity, occupancy, distance_cm, co_ppm, no2_ppm, airflow, fan_pct, status, reasons, alert_textdata/oreacle.db with index on zone and timestampmake install, make backend, make sim, make webnormal, gas_buildup, bearing_failure, blast_clearance, resetllama3.2:3b) with deterministic template fallback when Ollama is offline/copilot when backend is live; template fallback when offline/fanThe SunFounder Raspberry Pi Pico W Starter Kit is being used to build a working edge sensor node. The goal is to replace the software simulator with real sensor readings streamed over USB JSON to the MacBook backend. All backend ingest code is already written and ready to receive live serial data from the Pico.
pyserialEverything below works today on a laptop with no hardware and no internet connection. Run make backend in one terminal and open the Live Console.
make backend — FastAPI starts on :8000, simulator begins streaming immediately.Pico W potentiometer edge node is live. Turn the knob to drive a calibrated airflow signal into the dashboard in real time.
⚡ Open Hardware POC →Add faster-whisper for speech-to-text so judges can ask the AI copilot hands-free: "Is Zone B safe right now?" Runs locally, no API key needed.
Individual VOD fan setpoints per zone. The API already accepts a zone parameter on POST /fan; the UI slider only sets globally today.
Download the full readings log as CSV from the Live Console. SQLite at data/oreacle.db is already logging every reading; the export endpoint just needs to be wired up.
Raspberry Pi Pico W edge node streaming calibrated airflow telemetry over USB. Plug in the Pico, click Connect, and turn the knob.
The physical potentiometer is a calibrated stand-in signal for a real airflow sensor. It is not measuring actual airflow — it demonstrates the full data pipeline: ADC reading → USB JSON → Web Serial → live dashboard update.
Signal processing: 50-sample ADC average → exponential smoothing (α = 0.08) → deadband filter (±0.10 m/s) → clamped 0–5 m/s range. Status thresholds: ≥ 1.7 m/s → OK · ≥ 0.8 m/s → WATCH · below → ALERT. Fan % rises as airflow falls.
Firmware: hardware/firmware/main_potentiometer.py — upload to Pico as main.py via Thonny.