Skip to the text

eerie leap / firmware

open-source firmware

The firmware an Eerie Leap unit runs is open source, under the Apache 2.0 license. It is built on Zephyr, so it is not tied to one chip, and all of it runs in a simulator on your computer.

a sensor script, from the firmware docs

function post_process_sensor_value(sensor_id, value)
    if value == nil then
        return nil
    end

    local rpm = get_sensor_value("engine_rpm")
    if rpm == nil then
        return -1 -- the other sensor has no value yet
    end

    return math.min(value, 100.0) * rpm
end

what it does

read

Analog and digital inputs, and the frames and signals of every module on the bus.

compute

Calibration tables, math expressions and Lua scripts, running on the unit.

show

Gauge screens built from a configuration, drawn on the unit's display.

log

To MDF4 files, the format analysis tools already open.

send

Any value back onto the bus, in messages you lay out.

where it runs

on the units

One code base, built as the application of each kind of unit.

on other hardware

It is a Zephyr application, with its hardware described by a device tree. A port is a board file, not a rewrite.

in a simulator

The same firmware builds for your computer and runs there with no hardware attached.

the repositories

All on GitHub, under the Eerie Leap organization.

rt_core

The core every unit shares: sensors, CAN, logging, scripting, configuration and updates.

Apache-2.0

rt_daq

The application of the unit that reads and logs.

Apache-2.0

rt_gauge

The application of the unit with a display.

Apache-2.0

expression_engine

The math expression engine a sensor computes with.

Apache-2.0

zephyr_lua

Lua, as a Zephyr module.

Apache-2.0

the docs

What you need to use a unit is on this site. What you need to change the firmware is beside its code.

how it works, and how to set it up

What a unit does with a value, what each part of a configuration is, and the math expressions and Lua scripts you can write.

Read the docs

the developer reference

rt_core's own documentation: the subsystems, the protocols, the stored formats and the build, kept with the code and written for whoever changes it.

Open it on GitHub

take part

report a problem

Issues are open on each repository.

Open an issue

change something

Pull requests are welcome on every repository.

See the code

ask

Questions about the firmware go to Discussions.

Open Discussions

follow the build

One update a month from the build. Leave any time.