diff --git a/Cargo.toml b/Cargo.toml
index fc1f404e2b5992c5109ac674d4df6ef91823315e..88691e663c987373b82a2f83e49c8c45cf909baa 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -26,10 +26,10 @@ rev = "7d904f515d15fd5fe7ea34e18820ea83e2651fa2"
 [dependencies.nb]
 git = "https://github.com/japaric/nb"
 
-[dependencies.stm32f413]
+[dependencies.stm32f429x]
 features = ["rt"]
 #version = "0.5.0"
-git = "https://gitlab.henriktjader.com/pln/stm32f413"
+git = "https://gitlab.henriktjader.com/pln/stm32f429x"
 
 [dev-dependencies]
 cortex-m = "0.3.0"
diff --git a/examples/blinky-blocking.rs b/examples/blinky-blocking.rs
index e0085671ddb753ecbec8924bf9bd6277202a0429..c43b5dbe22c4833eb7d6f9217bfb313d6ef3ff1d 100644
--- a/examples/blinky-blocking.rs
+++ b/examples/blinky-blocking.rs
@@ -23,7 +23,7 @@ use rtfm::{app, Threshold};
 const FREQUENCY: Hertz = Hertz(1);
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     idle: {
         resources: [TIM11],
diff --git a/examples/blinky.rs b/examples/blinky.rs
index b21fbd8bccaaf41ed80cc79a55c777796fbf37bb..8fccf9d9ccebca115c4c87ecccfccbb1a3359a4f 100644
--- a/examples/blinky.rs
+++ b/examples/blinky.rs
@@ -17,7 +17,7 @@ const FREQUENCY: u32 = 1; // Hz
 
 // TASKS & RESOURCES
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         static ON: bool = false;
diff --git a/examples/capture4.rs b/examples/capture4.rs
index 48fe94405d892d47d37f1be86453a7c512ae7982..25c62ec8608bde2380ec9d8ae559040931adc93f 100644
--- a/examples/capture4.rs
+++ b/examples/capture4.rs
@@ -19,7 +19,7 @@ const RESOLUTION: Milliseconds = Milliseconds(1);
 const CHANNELS: [Channel; 2] = [Channel::_1, Channel::_2];
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     idle: {
         resources: [ITM, TIM2],
diff --git a/examples/concurrency.rs b/examples/concurrency.rs
index a7db37764a61a1e78add06a703cc41fab735cf26..be94cab8be30e12aeef573d1098f3c4267b2ba74 100644
--- a/examples/concurrency.rs
+++ b/examples/concurrency.rs
@@ -24,7 +24,7 @@ const DIVISOR: u32 = 4;
 
 // TASKS & RESOURCES
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         static ON: bool = false;
diff --git a/examples/hello-world.rs b/examples/hello-world.rs
index 3d469885502786c4e9fc397d230b212e0a29c07c..47f4c348060e7eb9a028c65301e939478742a1d8 100644
--- a/examples/hello-world.rs
+++ b/examples/hello-world.rs
@@ -14,7 +14,7 @@ use rtfm::{app, Threshold};
 use semihosting::hio::{self, HStdout};
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         static HSTDOUT: Option<HStdout> = None;
diff --git a/examples/hello.rs b/examples/hello.rs
index f4c8be51ed88a06289b87465d587694afbd3de70..46cb01b0969bac89d7866dd2adb7c6cf2ca0ed1d 100644
--- a/examples/hello.rs
+++ b/examples/hello.rs
@@ -11,7 +11,7 @@ extern crate f4;
 use rtfm::app;
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 }
 
 fn init(_p: init::Peripherals) {}
diff --git a/examples/imu.rs b/examples/imu.rs
index 46cc0fba17f21f9948303a4f58298be87ca7fc0b..647c3f64046a5379840d47cb5bc75988763ba457 100644
--- a/examples/imu.rs
+++ b/examples/imu.rs
@@ -19,7 +19,7 @@ extern crate cortex_m_rtfm as rtfm;
 #[macro_use]
 extern crate f4;
 extern crate heapless;
-extern crate stm32f413;
+extern crate stm32f429x;
 
 use cortex_m::peripheral::SystClkSource;
 use core::ops::Deref;
@@ -36,7 +36,7 @@ const FREQUENCY: u32 = 10;
 const MAX_TX_LEN: usize = 256;
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         static IMU_SETTINGS: ImuSettings = ImuSettings::new();
diff --git a/examples/itm.rs b/examples/itm.rs
index 8c0a217a87057cac678b00c1cbf03752f7d2d4b2..e0531e8deedf5181ffb4bf242aafd053242f7ea4 100644
--- a/examples/itm.rs
+++ b/examples/itm.rs
@@ -31,7 +31,7 @@ extern crate f4;
 use rtfm::{app, Threshold};
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     idle: {
         resources: [ITM],
diff --git a/examples/led.rs b/examples/led.rs
index 59f81fa28319ec0626eeae2bfe8598e4d5698b33..747611a8dc3509fbaa9645d9550e6d7b829e6dbf 100644
--- a/examples/led.rs
+++ b/examples/led.rs
@@ -12,7 +12,7 @@ use rtfm::app;
 
 // TASKS & RESOURCES
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 }
 
 // INITIALIZATION PHASE
diff --git a/examples/loopback.rs b/examples/loopback.rs
index 2f6e36eae06e39452a4639da3cd27118e3da2d46..c2f49b34e88902de43640986c0cace06978ac9fd 100644
--- a/examples/loopback.rs
+++ b/examples/loopback.rs
@@ -18,7 +18,7 @@ const BAUD_RATE: Hertz = Hertz(115_200);
 
 // TASKS & RESOURCES
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     tasks: {
         USART2: {
diff --git a/examples/mco.rs b/examples/mco.rs
index 779ce0e32205dfe6a2dac7c81c966bca5c35fcb8..de59ad2a2734b74a2c9c2ad4e720e430537eeca7 100644
--- a/examples/mco.rs
+++ b/examples/mco.rs
@@ -1,4 +1,4 @@
-//! Set the clock frequency on the Nucleo-64 stm32f413
+//! Set the clock frequency on the Nucleo-64 stm32f429x
 #![deny(warnings)]
 #![feature(proc_macro)]
 #![no_std]
@@ -16,7 +16,7 @@ const FREQUENCY: u32 = 10; // Hz
 
 // TASKS & RESOURCES
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         static ON: bool = false;
diff --git a/examples/preemption.rs b/examples/preemption.rs
index dcce6c065ad7b69d6dbae85a24f1c8ae9ce9a0fb..7a8a0209817a4086ebe41f2550bff364e7519ff0 100644
--- a/examples/preemption.rs
+++ b/examples/preemption.rs
@@ -34,7 +34,7 @@ const DIVISOR: u32 = 4;
 
 // TASK & RESOURCES
 app!{
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         static BUFFER: Vec<u8, [u8; 16]> = Vec::new([0; 16]);
diff --git a/examples/pwm-control.rs b/examples/pwm-control.rs
index bb38d0bad97b68ad7a07fa27513e587ae550cd50..6c34192d5c30bc35e21cff83d10665a0910fd134 100644
--- a/examples/pwm-control.rs
+++ b/examples/pwm-control.rs
@@ -24,7 +24,7 @@ const BAUD_RATE: Hertz = Hertz(115_200);
 const FREQUENCY: Hertz = Hertz(1_000);
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     tasks: {
         USART2: {
diff --git a/examples/pwm1.rs b/examples/pwm1.rs
index 2c3fa912c51170867ff8d1b33fc74e1b0d4a0528..8f8d0e531a1ccdd998028b1dd2635d96655d07db 100644
--- a/examples/pwm1.rs
+++ b/examples/pwm1.rs
@@ -14,7 +14,7 @@ use rtfm::app;
 const FREQUENCY: Hertz = Hertz(10_000);
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 }
 
 fn init(p: init::Peripherals) {
diff --git a/examples/resource.rs b/examples/resource.rs
index 660f5408e9b6d2311b467a7dbe1e9d47e3cbd573..ce3180b4a114b8558bfec2d9c28b31fbdc8b75e1 100644
--- a/examples/resource.rs
+++ b/examples/resource.rs
@@ -37,7 +37,7 @@ const DIVISOR: u32 = 4;
 
 // TASKS & RESOURCES
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         // 16 byte buffer
diff --git a/examples/roulette.rs b/examples/roulette.rs
index 83da6f942c4285424ae12777699ca838633996ef..e232040742c447b995da60f173a9e49f55543ec9 100644
--- a/examples/roulette.rs
+++ b/examples/roulette.rs
@@ -19,7 +19,7 @@ const DIVISOR: u32 = 4;
 
 // TASKS & RESOURCES
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         static STATE: u8 = 0;
diff --git a/examples/spi1.rs b/examples/spi1.rs
index fc8be0c621d52239784dbf7c5ec1e859ee238e4b..bba0f319b4af6c6d669b4e5923df320bc699cb64 100644
--- a/examples/spi1.rs
+++ b/examples/spi1.rs
@@ -15,15 +15,15 @@
 extern crate cortex_m;
 extern crate cortex_m_rtfm as rtfm;
 extern crate f4;
-extern crate stm32f413;
+extern crate stm32f429x;
 
 use f4::Spi;
 use f4::prelude::*;
 use rtfm::{app, Threshold};
-use stm32f413::GPIOA;
+use stm32f429x::GPIOA;
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     idle: {
         resources: [SPI3, GPIOA],
@@ -79,7 +79,7 @@ fn disable_ag(gpioa: &mut GPIOA) {
     gpioa.odr.modify(|_, w| w.odr8().bit(true));
 }
 
-fn send_receive(spi: &f4::Spi<f4::stm32f413::SPI3>, addr: u8) -> u8 {
+fn send_receive(spi: &f4::Spi<f4::stm32f429x::SPI3>, addr: u8) -> u8 {
     // Send and receive using the hal crate
     while spi.send(addr).is_err() {}
     while spi.read().is_err() {}
diff --git a/examples/usart2-dma.rs b/examples/usart2-dma.rs
index 8c9a81e3221abc906e51160d6936866e53d37269..cee704850d1825517b43d007b242639a3a281933 100644
--- a/examples/usart2-dma.rs
+++ b/examples/usart2-dma.rs
@@ -38,7 +38,7 @@ enum CmdType {
 }
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         static CMD_BUFFER: Vec<u8, [u8; MAX_CMD_LEN]> = Vec::new([0; MAX_CMD_LEN]);
diff --git a/examples/usart2-rx-dma.rs b/examples/usart2-rx-dma.rs
index b741d518bfdfddb2c27b3f4e547a53be9a1b9c03..3cfe7b89b10c0a6b1e4f2586f7bfe83ea99aad2e 100644
--- a/examples/usart2-rx-dma.rs
+++ b/examples/usart2-rx-dma.rs
@@ -16,7 +16,7 @@ use rtfm::{app, Threshold};
 const BAUD_RATE: Hertz = Hertz(115_200);
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         static BUFFER: Buffer<[u8; 8], Dma1Channel5> = Buffer::new([0; 8]);
diff --git a/examples/usart2-tx-dma.rs b/examples/usart2-tx-dma.rs
index 2d553cdcc6d50054cde6308308ba9a60f7f33f77..294d4acb616dfe324b44952dd8f92e6e283da4c8 100644
--- a/examples/usart2-tx-dma.rs
+++ b/examples/usart2-tx-dma.rs
@@ -16,7 +16,7 @@ use rtfm::{app, Threshold};
 const BAUD_RATE: Hertz = Hertz(115_200);
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         static BUFFER: Buffer<[u8; 15], Dma1Channel6> = Buffer::new([0; 15]);
diff --git a/examples/ws2812.rs b/examples/ws2812.rs
index 7e1f89d718c72b35a14a83e37f3b79ca8b0f6929..1aec62b31caf626bd34c1ad7395fffba5c526541 100644
--- a/examples/ws2812.rs
+++ b/examples/ws2812.rs
@@ -24,7 +24,7 @@ const _0: u8 = 3;
 const _1: u8 = 5;
 
 app! {
-    device: f4::stm32f413,
+    device: f4::stm32f429x,
 
     resources: {
         static BUFFER: Buffer<[u8; 577], Dma1Channel2> = Buffer::new([_0; 577]);
diff --git a/src/capture.rs b/src/capture.rs
index 291a4a862c06d039c7d9e60abd25a6ee4ff54348..8e3a3c4705b64f45f74b25862734b50aefbf1a19 100644
--- a/src/capture.rs
+++ b/src/capture.rs
@@ -39,7 +39,7 @@ use core::u32;
 use cast::u32;
 use hal;
 use nb;
-use stm32f413::{TIM1, TIM2, TIM3, TIM4, GPIOA, GPIOB, GPIOC, RCC};
+use stm32f429x::{TIM1, TIM2, TIM3, TIM4, GPIOA, GPIOB, GPIOC, RCC};
 
 use timer::Channel;
 
diff --git a/src/clock.rs b/src/clock.rs
index 907643a6943085b7fba39c0115d0e7e56bf8db1a..9b0d5fe85a5d49d76c1369414a462064fd58e6d0 100644
--- a/src/clock.rs
+++ b/src/clock.rs
@@ -1,6 +1,6 @@
 //! System clocking
 
-use stm32f413::{FLASH, RCC};
+use stm32f429x::{FLASH, RCC};
 
 const HSI_FREQ: u32 = 16_000_000;
 
diff --git a/src/dma.rs b/src/dma.rs
index 71a27885e1848bad201b5c7b2dc5020f4bae531d..c696faef096077b55c89f8d937212bb65a3f5f99 100644
--- a/src/dma.rs
+++ b/src/dma.rs
@@ -5,7 +5,7 @@ use core::marker::PhantomData;
 use core::ops;
 
 use nb;
-use stm32f413::DMA1;
+use stm32f429x::DMA1;
 
 /// DMA error
 #[derive(Debug)]
diff --git a/src/examples/_0_hello.rs b/src/examples/_0_hello.rs
index 9784efe303c8af313a598cbce12e2f62b5623a67..c4c2a800b2d346093a08c9c404f13231bdf4b817 100644
--- a/src/examples/_0_hello.rs
+++ b/src/examples/_0_hello.rs
@@ -17,7 +17,7 @@
 //!
 //! // TASKS & RESOURCES
 //! app! {
-//!     device: f4::stm32f413,
+//!     device: f4::stm32f429x,
 //! }
 //!
 //! // INITIALIZATION PHASE
diff --git a/src/examples/_1_itm.rs b/src/examples/_1_itm.rs
index e99db44764bea4c1039f6ed4413752e303f4dfed..b1f28502683e39f579666c9ae360dba7e66cd122 100644
--- a/src/examples/_1_itm.rs
+++ b/src/examples/_1_itm.rs
@@ -20,7 +20,7 @@
 //!
 //! // TASK & RESOURCES
 //! app! {
-//!     device: f4::stm32f413,
+//!     device: f4::stm32f429x,
 //!
 //!     idle: {
 //!         resources: [ITM],
diff --git a/src/examples/_2_led.rs b/src/examples/_2_led.rs
index 8bc3371a6b5e4f757025607f4ed72e60f1bfadb7..b494768ebeb933c6c04d64c0e136048b75adad03 100644
--- a/src/examples/_2_led.rs
+++ b/src/examples/_2_led.rs
@@ -14,7 +14,7 @@
 //!
 //! // TASKS & RESOURCES
 //! app! {
-//!     device: f4::stm32f413,
+//!     device: f4::stm32f429x,
 //! }
 //!
 //! // INITIALIZATION PHASE
diff --git a/src/examples/_3_blinky.rs b/src/examples/_3_blinky.rs
index 0507c8deb782a8e3d2cd6370f237bb4256cce26d..c970c4f3a27fcb8d223724804d1663d5f93a06da 100644
--- a/src/examples/_3_blinky.rs
+++ b/src/examples/_3_blinky.rs
@@ -19,7 +19,7 @@
 //!
 //! // TASKS & RESOURCES
 //! app! {
-//!     device: f4::stm32f413,
+//!     device: f4::stm32f429x,
 //!
 //!     resources: {
 //!         static ON: bool = false;
diff --git a/src/examples/_4_roulette.rs b/src/examples/_4_roulette.rs
index ffde32aeb8ec5ac0a15c27b27be622c5cfca5578..48998afa775ade41ac2a535d9403f59324a63be0 100644
--- a/src/examples/_4_roulette.rs
+++ b/src/examples/_4_roulette.rs
@@ -21,7 +21,7 @@
 //!
 //! // TASKS & RESOURCES
 //! app! {
-//!     device: f4::stm32f413,
+//!     device: f4::stm32f429x,
 //!
 //!     resources: {
 //!         static STATE: u8 = 0;
diff --git a/src/examples/_5_loopback.rs b/src/examples/_5_loopback.rs
index b30b205eb1a95446a1cf039abcdd378b9931abed..7a8fdb6b9543393e59638718278263ab83cc522a 100644
--- a/src/examples/_5_loopback.rs
+++ b/src/examples/_5_loopback.rs
@@ -20,7 +20,7 @@
 //!
 //! // TASKS & RESOURCES
 //! app! {
-//!     device: f4::stm32f413,
+//!     device: f4::stm32f429x,
 //!
 //!     tasks: {
 //!         USART2: {
diff --git a/src/examples/_6_concurrency.rs b/src/examples/_6_concurrency.rs
index b98956979afa5fcdbec2c9fe642e86cd2c903769..0f4835d9b1e245f8cfd839327f4337f608e10e13 100644
--- a/src/examples/_6_concurrency.rs
+++ b/src/examples/_6_concurrency.rs
@@ -27,7 +27,7 @@
 //!
 //! // TASKS & RESOURCES
 //! app! {
-//!     device: f4::stm32f413,
+//!     device: f4::stm32f429x,
 //!
 //!     resources: {
 //!         static STATE: u8 = 0;
diff --git a/src/examples/_7_resource.rs b/src/examples/_7_resource.rs
index 2afb0df463d8360c3b37021f61e149b6140a53f0..5ff51656fb67f063523d58b2ff39d78c9d5336c2 100644
--- a/src/examples/_7_resource.rs
+++ b/src/examples/_7_resource.rs
@@ -39,7 +39,7 @@
 //!
 //! // TASKS & RESOURCES
 //! app! {
-//!     device: f4::stm32f413,
+//!     device: f4::stm32f429x,
 //!
 //!     resources: {
 //!         // 16 byte buffer
diff --git a/src/examples/_8_preemption.rs b/src/examples/_8_preemption.rs
index 9064cb79a2d94665abc0cdf3ac1cc0aea38afcf3..e08c3ddcd30de9908ac2cdb8db87515affe248c1 100644
--- a/src/examples/_8_preemption.rs
+++ b/src/examples/_8_preemption.rs
@@ -36,7 +36,7 @@
 //!
 //! // TASK & RESOURCES
 //! app!{
-//!     device: f4::stm32f413,
+//!     device: f4::stm32f429x,
 //!
 //!     resources: {
 //!         static BUFFER: Vec<u8, [u8; 16]> = Vec::new([0; 16]);
diff --git a/src/led.rs b/src/led.rs
index 6b039d10e6bdb276db3a040d7bd3c580f51aab3d..57fc971569ce7a1e64517991231ba068abe04d59 100644
--- a/src/led.rs
+++ b/src/led.rs
@@ -1,6 +1,6 @@
 //! User LED PA5
 
-use stm32f413::{GPIOA, RCC};
+use stm32f429x::{GPIOA, RCC};
 
 /// LED connected to pin PA5
 pub const LED: PA5 = PA5;
diff --git a/src/leds.rs b/src/leds.rs
index 65e3f29dd7df0a25d99381cf5fb00d396c8d83c5..1e79efb6ecc52a23769f529401f5e5c0ccd8f410 100644
--- a/src/leds.rs
+++ b/src/leds.rs
@@ -1,6 +1,6 @@
 //! Eight LEDs connected to PORTB
 
-use stm32f413::{GPIOB, RCC};
+use stm32f429x::{GPIOB, RCC};
 
 /// All the LEDs
 pub static LEDS: [Led; 8] = [
diff --git a/src/lib.rs b/src/lib.rs
index 72d1e8b6c43632247c9efa59c643d2470419b307..e1e3b810dcb8142d13d0ea58c092581c7b572402 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -32,7 +32,7 @@ extern crate embedded_hal as hal;
 extern crate nb;
 extern crate static_ref;
 
-pub extern crate stm32f413;
+pub extern crate stm32f429x;
 
 // For documentation only
 pub mod examples;
diff --git a/src/lsm9ds1.rs b/src/lsm9ds1.rs
index 6440ea1759de6c3e4c38b69c571d912ef213b3fd..56c3c75650f87f773611f01fde392f26a3ed69bf 100644
--- a/src/lsm9ds1.rs
+++ b/src/lsm9ds1.rs
@@ -1,8 +1,8 @@
 //! Interfacing the LSM9DS1 3D accelerometer, gyroscope, and magnetometer
 //! using SPI.
 
-extern crate stm32f413;
-use stm32f413::{SPI1, SPI2, SPI3, GPIOA};
+extern crate stm32f429x;
+use stm32f429x::{SPI1, SPI2, SPI3, GPIOA};
 use spi::Spi;
 use prelude::*;
 
diff --git a/src/pwm.rs b/src/pwm.rs
index 11dd9aaab493cd0ea6318286e658430d7ba46852..176d043337a26ab7e5851893c96c45f3d809f8b9 100644
--- a/src/pwm.rs
+++ b/src/pwm.rs
@@ -36,7 +36,7 @@ use core::marker::Unsize;
 use cast::{u16, u32};
 use hal;
 use static_ref::Static;
-use stm32f413::{DMA1, TIM1, TIM2, TIM3, TIM4, GPIOA, GPIOB, GPIOC, RCC};
+use stm32f429x::{DMA1, TIM1, TIM2, TIM3, TIM4, GPIOA, GPIOB, GPIOC, RCC};
 
 use dma::{self, Buffer, Dma1Channel2};
 use timer::Channel;
diff --git a/src/serial.rs b/src/serial.rs
index 61f31408f8d536cc0eb254c70cd91e18e583ff6f..eb42873f9c298d425d5c23ce2ba91a111645c156 100644
--- a/src/serial.rs
+++ b/src/serial.rs
@@ -17,7 +17,7 @@ use cast::u16;
 use hal;
 use nb;
 use static_ref::Static;
-use stm32f413::{gpioa, DMA1, USART2, usart1, GPIOA, RCC};
+use stm32f429x::{gpioa, DMA1, USART2, usart6 as usart1, GPIOA, RCC};
 
 use dma::{self, Buffer, Dma1Channel5, Dma1Channel6};
 
@@ -94,25 +94,14 @@ where
     ///
     /// The serial interface will be configured to use 8 bits of data, 1 stop
     /// bit, no hardware control and to omit parity checking
-    pub fn init<B>(
-        &self,
-        baud_rate: B,
-        dma1: Option<&DMA1>,
-        gpio: &U::GPIO,
-        rcc: &RCC,
-    ) where
+    pub fn init<B>(&self, baud_rate: B, dma1: Option<&DMA1>, gpio: &U::GPIO, rcc: &RCC)
+    where
         B: Into<U::Ticks>,
     {
         self._init(baud_rate.into(), dma1, gpio, rcc)
     }
 
-    fn _init(
-        &self,
-        baud_rate: U::Ticks,
-        dma1: Option<&DMA1>,
-        gpio: &U::GPIO,
-        rcc: &RCC,
-    ) {
+    fn _init(&self, baud_rate: U::Ticks, dma1: Option<&DMA1>, gpio: &U::GPIO, rcc: &RCC) {
         let usart = self.0;
 
         // power up peripherals
@@ -138,9 +127,8 @@ where
             gpio.afrl
                 .modify(|_, w| unsafe { w.afrl2().bits(7).afrl3().bits(7) });
             // Highest output speed
-            gpio.ospeedr.modify(|_, w| unsafe {
-                w.ospeedr2().bits(0b11).ospeedr3().bits(0b11)
-            });
+            gpio.ospeedr
+                .modify(|_, w| unsafe { w.ospeedr2().bits(0b11).ospeedr3().bits(0b11) });
             // RM0368 8.3 Table 23
             gpio.moder
                 .modify(|_, w| unsafe { w.moder2().bits(2).moder3().bits(2) });
@@ -308,9 +296,7 @@ where
         } else if sr.rxne().bit_is_set() {
             // NOTE(read_volatile) the register is 9 bits big but we'll only
             // work with the first 8 bits
-            Ok(unsafe {
-                ptr::read_volatile(&usart2.dr as *const _ as *const u8)
-            })
+            Ok(unsafe { ptr::read_volatile(&usart2.dr as *const _ as *const u8) })
         } else {
             Err(nb::Error::WouldBlock)
         }
@@ -335,9 +321,7 @@ where
             Err(nb::Error::Other(Error::Framing))
         } else if sr.txe().bit_is_set() {
             // NOTE(write_volatile) see NOTE in the `read` method
-            unsafe {
-                ptr::write_volatile(&usart2.dr as *const _ as *mut u8, byte)
-            }
+            unsafe { ptr::write_volatile(&usart2.dr as *const _ as *mut u8, byte) }
             Ok(())
         } else {
             Err(nb::Error::WouldBlock)
diff --git a/src/spi.rs b/src/spi.rs
index af74a3f512b5eb246dee0df78a8780b4c687c50b..5001b73957c56c313d80e251073d6b63ceb4f952 100644
--- a/src/spi.rs
+++ b/src/spi.rs
@@ -28,7 +28,7 @@ use core::ptr;
 
 use hal;
 use nb;
-use stm32f413::{SPI1, SPI2, SPI3, GPIOA, GPIOB, RCC};
+use stm32f429x::{SPI1, SPI2, SPI3, GPIOA, GPIOB, RCC};
 
 /// SPI result
 pub type Result<T> = ::core::result::Result<T, nb::Error<Error>>;
diff --git a/src/timer.rs b/src/timer.rs
index 28561528985df108d137dc6ac7e373f6d916e8c5..48c5cdb6c9750384bdf586e7b034e5fd9bafecf8 100644
--- a/src/timer.rs
+++ b/src/timer.rs
@@ -5,7 +5,7 @@ use core::any::{Any, TypeId};
 use cast::{u16, u32};
 use hal;
 use nb::{self, Error};
-use stm32f413::{TIM1, TIM10, TIM11, TIM2, TIM3, TIM4, TIM5, TIM9, RCC};
+use stm32f429x::{TIM1, TIM10, TIM11, TIM2, TIM3, TIM4, TIM5, TIM9, RCC};
 
 /// Channel associated to a timer
 #[derive(Clone, Copy, Debug)]