Arducap
A CLI tool to convert ArduPilot Dataflash logs (.bin) to Foxglove MCAP files
Install / Use
/learn @swarmis-us/ArducapREADME
Ardupilot Dataflash Log => Foxglove MCAP converter.
What
This is a pure rust command-line utility to convert the Ardupilot binary log ("Dataflash log") to Foxglove's MCAP format.
In addition to /ardupilot topics, it attempts to emit up to three foxglove-specific topics:
- /foxglove/map_origin
- /foxglove/gps
- /foxglove/base_link_transform
With these topics, Foxglove's Map panel and 3D panel can work out of the box.
Usage
cargo install arducap
arducap <bin_file1>...
This will create .mcap files alongside the original .bin files, named similarly.
WARNING: if an .mcap with that name exists, it will be overwritten!
Why
What started as a hands-on study of formats, ended up a utility for our friend to review his ardupilot logs in the awesome Foxglove UI :)
How
reader::ArduReaderreads the ardupilot log using the binrw crate, emittingreader::ArduFrameenums (either a message definition, a message, or an EOF).- implementations of
transformers::Transformertrait convert theseArduFrameinstances intotransformers::TransformedMessage - the
pipeline::process_ardupilot_filefunction orchestrates everything, creates MCAP channels and writes messages to them, usingserde_jsonschemas and messages - despite bloated json format, Zstd compression, enabled by default, makes things ok.
Who
"swarm is us" created this project as a modest contribution to the open-source roboticist community.
We are not affiliated with Foxglove, Ardupilot project, or any of the dependency crates.
Feature requests, bug reports, etc.
We will entertain them! Create requests on github to start a conversation.
Contributions, Modifications, Forks
The project is open-source, publicly hosted here: https://github.com/swarmis-us/arducap We will gladly accept well-written PRs.
Adding new message conversion, e.g. /ardupilot => /foxglove
The message transformation has been specifically designed to add more conversions.
See transformers.rs -- all it takes is implementing Transformer trait and then registering it in the pipeline.rs, alongside other transformers.
Disclaimer
This software is provided AS IS, without any warranties of any kind. Use it at your own risk.
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.8kCommit, push, and open a PR
