diff --git a/firmware/rust1/src/bin/heizung.rs b/firmware/rust1/src/bin/heizung.rs
index e80c23cca5f695e7ee4317feb82467910db96ae4..42f65884a4f24b078bf9ece6864be6353d6c1d0a 100644
--- a/firmware/rust1/src/bin/heizung.rs
+++ b/firmware/rust1/src/bin/heizung.rs
@@ -14,10 +14,21 @@ use embassy_rp::peripherals::UART0;
 use embassy_rp::uart::{self, Async, UartRx, UartTx, Parity};
 use {defmt_rtt as _, panic_probe as _};
 
+#[embassy_executor::task]
+async fn reader(mut rx: UartRx<'static, UART0, Async>) {
+    info!("Reading...");
+    loop {
+        let mut buf = [0; 1];
+        match rx.read(&mut buf).await {
+            Result::Ok(()) => info!("RX {:?}", buf),
+            Result::Err(e) => info!("RX error {:?}", e),
+        }
+    }
+}
 
 
 #[embassy_executor::main]
-async fn main(_spawner: Spawner) {
+async fn main(spawner: Spawner) {
     let p = embassy_rp::init(Default::default());
 
     // pinout:
@@ -71,6 +82,7 @@ async fn main(_spawner: Spawner) {
         p.DMA_CH1,
         uart_config,
     );
+    unwrap!(spawner.spawn(reader(uart_rx)));
 
     loop {
         info!("led on!");
@@ -81,8 +93,4 @@ async fn main(_spawner: Spawner) {
         led_b.set_low();
         Timer::after(Duration::from_secs(1)).await;
     }
-
-    // dummy read to fix Mode paraemter of UartRx
-    let buf = [0; 1];
-    let x = uart_rx.read(&mut buf).await;
 }