#defmt #rtt #logger #channel #rtt-target

no-std defmt-rtt-target

defmt logger implementation using the rtt-target crate

1 unstable release

0.3.0 Jan 10, 2022

#1175 in Embedded development




defmt logger implementation using rtt-target.

The official defmt-rtt crate has its own RTT implementation that is not externally exposed. This is done so that users can't corrupt the defmt log stream by manually writing to the RTT channel. This library exists as an alternate option for when you do need control over RTT, for example to log extra non-defmt data on other channels, or have a host->target "down channel".

If all you need is logging, you should use defmt-rtt instead of this.


  • Initialize rtt_target in your code
  • Call defmt_rtt_target::init() with the UpChannel you want to use for RTT printing. This should be channel 0, as that's the one all defmt tools use.
  • Now you can log with the standard defmt macros.

Note that all log output before calling defmt_rtt_target::init() is discarded.


Licensed under either of

at your option.


~30K SLoC