
Today we’re open-sourcing Dredger-IoT — a lightweight, Ruby-based framework for reading, logging, and transmitting industrial or environmental data from embedded Linux systems like the Raspberry Pi, BeagleBone, or any SBC that can run Ruby 3.x; a little caveat to that – I’ve only tested this on BeagleBone’s and Pis, since that’s primarily what we use at The Mad Botter Inc. You might also be wondering: “why Ruby?” Well, it’s simple! I love Ruby!
⚙️ Built for the Edge, in Ruby
Dredger-IoT started as part of our internal aquaponics and factory telemetry projects. Most IoT stacks lean on Python, but we found Ruby offered something unique: fast iteration, clean concurrency, and a mature ecosystem of libraries for HTTP, CSV, and process orchestration — perfect for constrained devices that still need to talk to the cloud.
- Serial & GPIO abstraction via a simple OO interface (e.g., SerialDevice and Sensor classes).
- Modular connectors for publishing readings — local CSV logging, REST endpoints, MQTT (or roll your own).
- Configurable runtime (env vars or YAML) so the same script runs on a Pi or a VM with no code changes.
- Resilient edge behavior — retries, lightweight logging, graceful shutdown on failures.
It’s intentionally small and dependency-light, built to run without Rails — though it plays nicely with Rails or Sinatra if you want a local dashboard.
🧱 Architecture
- Data Sources — serial, sensor, or file inputs
- Transforms — optional Ruby blocks for normalization or unit conversion
- Connectors — output writers (CSV, HTTP POST, MQTT, or custom)
The goal is transparency: you can read exactly what’s being collected, processed, and sent — no hidden firmware or opaque SDKs. Everything is plain Ruby.
🧪 Minimal Example
<code class="language-ruby">device = SerialDevice.new('/dev/ttyUSB0', 9600)loop do
reading = device.read(32)
puts "[#{Time.now}] Temperature: #{reading.strip}"
File.open("data/log.csv", "a") { |f| f.puts "#{Time.now},#{reading}" }
sleep 5
end
</code>
That’s all it takes for a simple industrial logger. Add an HTTP or MQTT connector and it becomes a streaming telemetry node.
💡 Why Open Source It Now
We’ve been using Dredger-IoT internally for aquaponics sensors, CNC runtime capture, and environmental monitoring. Increasingly, our clients in manufacturing and MRO want the same operational visibility — without vendor lock-in. So we’re sharing it under a permissive license. Fork it, run it on a Pi, extend it. Make machines talk to your dashboards.
🧠 Where Alice Comes In
Dredger-IoT is the edge. Alice is the brain.
Alice turns field-level CSVs, JSON payloads, and sensor readings into Snowflake-ready pipelines — mapping, transforming, and validating your data automatically. To get started, book a 15 minute chat.
.png)
