Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0a7527c
feat(arduino): add ArduinoModule with virtual (QEMU) support
jeff-hykin Apr 13, 2026
ebb7442
cleanup
jeff-hykin Apr 14, 2026
e3ba84d
fixup ardino on macos
jeff-hykin Apr 14, 2026
f3dc42c
cleanup
jeff-hykin Apr 14, 2026
5e395ce
fix(arduino): resolve toolchain via nix flake so the module runs from…
jeff-hykin Apr 15, 2026
cf8ed9f
test(arduino): quiet three pre-existing mypy errors in test_arduino_m…
jeff-hykin Apr 15, 2026
4a2b99a
add arduino example (tested on hardware!)
jeff-hykin Apr 16, 2026
041a49d
Add transport-agnostic LCM pubsub for Arduino with subscribe/callback…
jeff-hykin Apr 18, 2026
f895f77
fix(arduino): use unwrapped arduino-cli and add multi-type hardware e…
jeff-hykin Apr 18, 2026
b7df092
fix(arduino): use pureGoPkg fallback for cross-platform flake compati…
jeff-hykin Apr 18, 2026
c86fccb
refactor(arduino): pull message headers from dimos-lcm instead of ven…
jeff-hykin Apr 19, 2026
f586e6e
fix: wire compat test on macOS + replace _auto_emit_topic_cli_args wi…
jeff-hykin Apr 19, 2026
c1c3d30
fix: payload size validation, MAX_TOPICS constant, and generated file…
jeff-hykin Apr 19, 2026
304b7c4
refactor: trim verbose docstrings and comments in arduino_module
jeff-hykin Apr 19, 2026
fe1d88d
feat(arduino): configurable compile-time tuning + user-defined #defines
jeff-hykin Apr 19, 2026
ef631cd
fix: defer fcntl import and use line-aware core_id check in arduino_m…
jeff-hykin Apr 22, 2026
8805b1c
fix: correct stale API listing in dsp_protocol.h header comment
jeff-hykin Apr 22, 2026
d89f0d1
fix: rename twist-echo to arduino-twist-echo in all_blueprints registry
jeff-hykin Apr 22, 2026
69fb151
fix: add pr_responses.yaml for PR #1879 review comments
jeff-hykin Apr 22, 2026
061808d
fix: add pr_responses.yaml entry for leshy's architectural feedback o…
jeff-hykin Apr 22, 2026
71c5411
fix: add pr_responses.yaml for PR #1879 comments
jeff-hykin Apr 23, 2026
f3d76b9
fix: regenerate all_blueprints.py with updated module names
jeff-hykin Apr 23, 2026
87fd90f
fix: exclude .ignore.enhance and remove section-separator comments
jeff-hykin Apr 23, 2026
5c7acf2
fix: resolve merge conflict with dev in test_no_sections.py
jeff-hykin Apr 28, 2026
dd0e388
fix: resolve merge conflict with dev in test_no_sections.py
jeff-hykin Apr 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,036 changes: 1,036 additions & 0 deletions dimos/core/arduino_module.py

Large diffs are not rendered by default.

17 changes: 13 additions & 4 deletions dimos/core/native_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,11 +160,8 @@ def start(self) -> None:

self._maybe_build()

topics = self._collect_topics()

cmd = [self.config.executable]
for name, topic_str in topics.items():
cmd.extend([f"--{name}", topic_str])
cmd.extend(self._build_topic_args())
cmd.extend(self.config.to_cli_args())
cmd.extend(self.config.extra_args)

Expand Down Expand Up @@ -334,6 +331,18 @@ def _maybe_build(self) -> None:
f"Check that build_command produces the executable at the expected location."
)

def _build_topic_args(self) -> list[str]:
"""Build CLI args that map stream names to LCM topics.

Subclasses that construct their own topic arguments (e.g.
``ArduinoModule`` with numeric topic IDs) can override this
to return ``[]``.
"""
args: list[str] = []
for name, topic_str in self._collect_topics().items():
args.extend([f"--{name}", topic_str])
return args

def _collect_topics(self) -> dict[str, str]:
"""Extract LCM topic strings from blueprint-assigned stream transports."""
topics: dict[str, str] = {}
Expand Down
Loading