diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 071df1ef7bd1fac977f09c88b638009cc28b9556..c4c02f44d3440f8693f2357dead11bea50e031d4 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -48,22 +48,19 @@ jobs:
   msrv:
     runs-on: ubuntu-latest
     strategy:
-      matrix: 
-        signing: ["", "--features signing"]
+      matrix:
+        features: ["", "--features serde,tokio-1", "--features signing"]
     steps:
       - uses: actions/checkout@master
+      - name: Get MSRV from Cargo.toml
+        run: |
+          MSRV=$(grep 'rust-version' Cargo.toml | sed 's/.*= *"\(.*\)".*/\1/')
+          echo "MSRV=$MSRV" >> $GITHUB_ENV
       - uses: dtolnay/rust-toolchain@master
         with:
-          toolchain: 1.65.0
-      - uses: actions-rs/cargo@v1
-        with:
-          command: install
-          args: cross --locked
-      - uses: actions-rs/cargo@v1
-        with:
-          use-cross: true
-          command: check
-          args: --all --all-targets ${{ matrix.signing }}
+          toolchain: ${{ env.MSRV }}
+      - uses: taiki-e/install-action@cargo-no-dev-deps
+      - run: cargo no-dev-deps check --all --all-targets ${{ matrix.features }}
 
   build:
     needs: [formatting, linting, internal-tests, mavlink-dump, msrv]
diff --git a/Cargo.toml b/Cargo.toml
index 509312c49c3d5aa585b995b3a9b5597d62733455..71ebeb23ac76ad1496612a3e763bd77536486a62 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,3 +11,4 @@ byteorder = { version = "1.3.4", default-features = false }
 
 [workspace.package]
 edition = "2021"
+rust-version = "1.70.0"
diff --git a/mavlink-bindgen/Cargo.toml b/mavlink-bindgen/Cargo.toml
index d885ef9990d03949ce0a9306b9bc0793f48ec204..2c23aeefaac642164116a901d7ed33451b2d4663 100644
--- a/mavlink-bindgen/Cargo.toml
+++ b/mavlink-bindgen/Cargo.toml
@@ -6,6 +6,7 @@ license = "MIT/Apache-2.0"
 description = "Library used by rust-mavlink."
 readme = "README.md"
 repository = "https://github.com/mavlink/rust-mavlink"
+rust-version.workspace = true
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
diff --git a/mavlink-core/Cargo.toml b/mavlink-core/Cargo.toml
index d276b2c44ef979572994dd1ebc5920f30bcdfe22..64a20c938d735189a8796a5f8f61ceff26340111 100644
--- a/mavlink-core/Cargo.toml
+++ b/mavlink-core/Cargo.toml
@@ -14,7 +14,7 @@ readme = "../README.md"
 license = "MIT/Apache-2.0"
 repository = "https://github.com/mavlink/rust-mavlink"
 edition.workspace = true
-rust-version = "1.65.0"
+rust-version.workspace = true
 
 [dependencies]
 crc-any = { workspace = true, default-features = false }
diff --git a/mavlink/Cargo.toml b/mavlink/Cargo.toml
index 14ffd1919981ceb0fc39e94065a08fcdefab66c1..cafcd6d1d6a592f728ab1892de93adad53938d6a 100644
--- a/mavlink/Cargo.toml
+++ b/mavlink/Cargo.toml
@@ -16,7 +16,7 @@ readme = "../README.md"
 license = "MIT/Apache-2.0"
 repository = "https://github.com/mavlink/rust-mavlink"
 edition.workspace = true
-rust-version = "1.65.0"
+rust-version.workspace = true
 
 [build-dependencies]
 mavlink-bindgen = { path = "../mavlink-bindgen", default-features = false }