Dredger-IoT: Ruby at the Edge – Open-Source Industrial Telemetry

1 hour ago 1

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

  1. Data Sources — serial, sensor, or file inputs
  2. Transforms — optional Ruby blocks for normalization or unit conversion
  3. 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.

Read Entire Article