Skip to main content

Renode Driver

jumpstarter-driver-renode provides a Jumpstarter driver for the Renode embedded systems emulation framework. It enables microcontroller-class virtual targets (Cortex-M, RISC-V MCUs) running bare-metal firmware or RTOS as Jumpstarter test targets.

Installation

:substitutions:
$ pip3 install --extra-index-url {{index_url}} jumpstarter-driver-renode

Renode must be installed separately and available in PATH. See Renode installation.

Configuration

Users define Renode targets entirely through YAML configuration. No code changes are needed for new targets.

Configuration Parameters

Parameter Type Default Description
platform str (required) Path to .repl file or Renode built-in platform name
uart str sysbus.uart0 Peripheral path for the console UART
machine_name str machine-0 Name of the Renode machine instance
monitor_port int 0 (auto) TCP port for the Renode monitor (0 = auto-assign)
extra_commands list[str] [] Additional monitor commands run after platform load

Examples

STM32F407 Discovery (opensomeip FreeRTOS/ThreadX)

export:
  ecu:
    type: jumpstarter_driver_renode.driver.Renode
    config:
      platform: "platforms/boards/stm32f4_discovery-kit.repl"
      uart: "sysbus.usart2"

NXP S32K388 (opensomeip Zephyr)

export:
  ecu:
    type: jumpstarter_driver_renode.driver.Renode
    config:
      platform: "/path/to/s32k388_renode.repl"
      uart: "sysbus.uart0"
      extra_commands:
        - "sysbus WriteDoubleWord 0x40090030 0x0301"

Nucleo H753ZI (openbsw-zephyr)

export:
  ecu:
    type: jumpstarter_driver_renode.driver.Renode
    config:
      platform: "platforms/cpus/stm32h743.repl"
      uart: "sysbus.usart3"

Usage

Programmatic (pytest)

from jumpstarter_driver_renode.driver import Renode
from jumpstarter.common.utils import serve

with serve(
    Renode(
        platform="platforms/boards/stm32f4_discovery-kit.repl",
        uart="sysbus.usart2",
    )
) as renode:
    renode.flasher.flash("/path/to/firmware.elf")
    renode.power.on()

    with renode.console.pexpect() as p:
        p.expect("Hello from MCU", timeout=30)

    renode.power.off()

Monitor Commands

Send arbitrary Renode monitor commands via the client:

response = renode.monitor_cmd("sysbus GetRegistrationPoints sysbus.usart2")

The monitor CLI subcommand is also available inside a jmp shell session.

Architecture

The driver follows the composite driver pattern:

  • Renode - root composite driver, manages the simulation lifecycle
  • RenodePower - starts/stops the Renode process and controls the simulation via the telnet monitor interface
  • RenodeFlasher - loads firmware (ELF/BIN/HEX) into the simulated MCU
  • console - UART output via PTY terminal, reusing the PySerial driver

Design Decisions

Key decisions:

  • Control interface: Telnet monitor via anyio.connect_tcp (no pyrenode3 / .NET dependency)
  • UART exposure: PTY terminal reusing PySerial (consistent with QEMU)
  • Configuration model: Managed mode with extra_commands for target-specific customization
  • Firmware loading: flash() stores path, on() loads into simulation

API Reference

.. autoclass:: jumpstarter_driver_renode.driver.Renode()

Metadata

Release files for jumpstarter-driver-renode 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jumpstarter-driver-renode 0.9.0
File Size Uploaded
jumpstarter_driver_renode-0.9.0.tar.gz 13.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jumpstarter-driver-renode 0.9.0
File Interpreter ABI Platform
jumpstarter_driver_renode-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.0 kB

Release files / jumpstarter_driver_renode-0.9.0.tar.gz

Download URL jumpstarter_driver_renode-0.9.0.tar.gz
Size 13.2 kB
Tags Source
SHA-256 checksum
How to use checksums
50db34110c1e2efaf9178e0915876b89c06407e7e120fa45baf6ca2f26e95a6a
BLAKE2b-256 checksum
How to use checksums
5c233735830eef2a5d61a4f5d0d468a8155666f99d5b67fc006c84ca660d4b7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / jumpstarter_driver_renode-0.9.0-py3-none-any.whl

Download URL jumpstarter_driver_renode-0.9.0-py3-none-any.whl
Size 14.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c396300aa4ceb9070ba8a48c759a3d6b519301c860ff0d65fbfddd6b8f4857af
BLAKE2b-256 checksum
How to use checksums
4b6ee98d1ed0d04e8890e0b0181ac4db6a8b5e5140d77de7697cbe4d55784e88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page