diff --git a/src/main.rs b/src/main.rs
index c305445eeaad80a8800f1325fa164b2689a8b61f..0ee0776052249acc347b469845972a8d457d2f6f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -14,6 +14,7 @@ mod app {
         gpio::{Output, PinState, PB15},
         pac,
         prelude::*,
+        serial::{self, Serial},
     };
 
     #[shared]
@@ -32,7 +33,11 @@ mod app {
         // Configure sysclk at 72MhZ, from HSI
         let rcc = dp.RCC.constrain();
         let mut flash = dp.FLASH.constrain();
-        let clocks = rcc.cfgr.sysclk(72.MHz()).freeze(&mut flash.acr);
+        let clocks = rcc
+            .cfgr
+            .use_hse(8.MHz())
+            .sysclk(72.MHz())
+            .freeze(&mut flash.acr);
 
         let systick_token = rtic_monotonics::create_systick_token!();
         Systick::start(cp.SYST, 72_000_000, systick_token);
@@ -65,6 +70,17 @@ mod app {
         );
         calibrate_motors::spawn(motors).ok().unwrap();
 
+        let tx = gpioa.pa2.into_alternate_push_pull(&mut gpioa.crl);
+        let rx = gpioa.pa3;
+        let mut serial = Serial::new(
+            dp.USART2,
+            (tx, rx),
+            &mut afio.mapr,
+            serial::Config::default().baudrate(115200.bps()),
+            &clocks,
+        );
+        serial.tx.bwrite_all(b"Hello, world\r\n").unwrap();
+
         (Shared {}, Local {})
     }
 
@@ -86,16 +102,26 @@ mod app {
         Systick::delay(1.secs()).await;
         motors.move_both(Movement::Stop, Movement::Stop);
         motors.standby_leave();
-        let speed = (max / 10) as i32;
+        let speed = (max / 2) as i32;
         let (forward, backward) = (Movement::Advance(speed), Movement::Advance(-speed));
         defmt::info!("Left motor, forward 10%");
         motors.move_both(forward, Movement::Stop);
+        Systick::delay(1.secs()).await;
         defmt::info!("Left motor, backward 10%");
         motors.move_both(backward, Movement::Stop);
+        Systick::delay(1.secs()).await;
         defmt::info!("Right motor, forward 10%");
         motors.move_both(Movement::Stop, forward);
+        Systick::delay(1.secs()).await;
         defmt::info!("Right motor, backward 10%");
         motors.move_both(Movement::Stop, backward);
+        Systick::delay(1.secs()).await;
+        for i in 0..100 {
+            let val = max as i32 * i as i32 / 100;
+            motors.move_both(Movement::Advance(val), Movement::Advance(val));
+            Systick::delay(30.millis()).await;
+        }
+        motors.move_both(Movement::Brake, Movement::Brake);
         defmt::info!("Returning to standby mode");
         motors.standby_enter();
     }