diff --git a/src/shared/radio/SX1278/SX1278.cpp b/src/shared/radio/SX1278/SX1278.cpp
index accd5f31a0b474b5c06d4b4d4a3add72fd79fb2c..bed1ae549d6daf57f3b77e8f6f0787c3efa9b5d9 100644
--- a/src/shared/radio/SX1278/SX1278.cpp
+++ b/src/shared/radio/SX1278/SX1278.cpp
@@ -259,28 +259,15 @@ bool SX1278::send(uint8_t *pkt, size_t len)
bus_mgr.lock(SX1278BusManager::Mode::MODE_TX);
- // Wait for TX ready
- bus_mgr.waitForIrq(RegIrqFlags::TX_READY);
+ // Wait for TX ready
+ bus_mgr.waitForIrq(RegIrqFlags::TX_READY);
- // Segment a packet that is bigger than the MTU (-1 for the length)
- uint8_t pkt_len = std::min(len, FIFO_LEN - 1);
-
- {
- SPITransaction spi(bus_mgr.getBus(),
- SPITransaction::WriteBit::INVERTED);
-
- spi.writeRegister(REG_FIFO, pkt_len);
- spi.writeRegisters(REG_FIFO, pkt, pkt_len);
- }
-
- // Wait for packet sent
- bus_mgr.waitForIrq(RegIrqFlags::PACKET_SENT);
-
- pkt += pkt_len;
- len -= pkt_len;
- bus_mgr.unlock();
+ {
+ SPITransaction spi(bus_mgr.getBus(),
+ SPITransaction::WriteBit::INVERTED);
- last_tx = now();
+ spi.writeRegister(REG_FIFO, static_cast<uint8_t>(len));
+ spi.writeRegisters(REG_FIFO, pkt, len);
}
// Wait for packet sent