Project Resources
Contents
- 1. Download and install Trice
- 2. Alternative projects and related approaches
- 3. Community and contributions
- 4. Support and sponsoring
1. Download and install Trice
Choose a release or a source checkout, then use its matching target sources, host tools, and documentation. An older release binary may not contain features documented by a newer checkout. See firmware and host-tool compatibility.
- GitHub Releases provides published host-tool archives and source archives. Choose the operating system and architecture of your host computer; extract both
triceandtlogand add their directory toPATH. -
For a checkout build, run the existing script from the repository root with Go and Bash installed:
./scripts/buildTriceTool.sh trice --version tlog --versionThe script builds
triceandtlogand prints the installation paths. Use the Go version required by go.mod; see building the host tools for details. - For v2, use a release archive or build a checkout of its tag. Remote
go install github.com/rokath/trice/cmd/trice@v2.0.0is not supported while the module path has no/v2suffix. A local checkout build does not require that suffix. - The macOS Homebrew tap provides stable releases:
brew install rokath/tap/trice. For a beta, use its tagged release archive or build from its source checkout. Confirm the installed version rather than assuming it includes the current development checkout.
For the first hardware-free experiment, follow the User Manual. Its PC examples additionally require a native C compiler. Shell examples use Bash; Windows users can run them in Git Bash with a Windows host compiler. For target integration, choose a firmware quickstart.
2. Alternative projects and related approaches
Trice combines printf-like source calls, ID-based host decoding, and configurable binary transport. Other projects emphasize different languages, runtime environments, tracing models, or integrations. These links are starting points for comparison, not a claim that all projects provide the same features or interchangeable formats.
2.1. Logging and deferred formatting
- defmt: deferred formatting for embedded Rust.
- Zephyr dictionary-based logging.
- Memfault Compact Logs.
- Postform.
- Embedded Logger (elog).
- McuLog.
- uLog.
- NanoLog.
- Diagnostic Log and Trace (DLT).
2.2. Tracing and visualization
- Baical UP7.
- Pigweed tokenized tracing.
- SEGGER SystemView.
- Percepio Tracealyzer.
- QP/Spy.
- MCUViewer.
- RTEdbg.
- Tonbandgerät.
- Traces.
2.3. Other techniques and background reading
- Plain
printfover UART, or a project-specific binary logger. - Hardware trace through Arm ITM/SWO, and Arm Keil Event Recorder.
- SEGGER RTT as a transport; Trice can also use RTT.
- Logging with symbols in the Embedonomicon.
- Call-stack logging through function instrumentation.
- Dynamic printf breakpoints.
- Minimal Structured Logging for Autonomous Vehicles, a talk about another approach.
3. Community and contributions
Use GitHub Discussions for questions, ideas, and integration experience. Search open and closed issues for known problems and previous resolutions. For a reproducible bug, include the tool version, relevant configuration, command, expected result, and actual output.
Examples, documentation improvements, platform recipes, fixes, and reproducible performance measurements are welcome. CONTRIBUTING describes the development workflow, CHANGELOG records release changes, and the MIT License governs the project. AUTHORS lists contributors.
4. Support and sponsoring
If Trice helps your work, you can support it by sharing an example, improving the documentation, reporting a reproducible problem, contributing a fix, or starring the repository. Financial support for continued maintenance is also welcome:
These are the support routes configured by the project in FUNDING.yml. Sponsoring is optional; using Trice does not require a donation.