diff --git a/src/lib/device.ts b/src/lib/device.ts
index 04469c6b33affae7e6d0e850502290bb6f67aa50..a1fc00ef722df6d3569c37b9c83fe5d24ab9896a 100644
--- a/src/lib/device.ts
+++ b/src/lib/device.ts
@@ -328,16 +328,6 @@ export default abstract class Device extends js.global.EventEmitter {
 		if (this.queue.length > 0) js.setTimeout(this.dequeue, 1000, this);
 	}
 
-	private enqueue(buffer: Uint8Array): void {
-		const now = Date.now();
-		this.queue.push(buffer);
-		if (now - this.lastWrite >= 1000 && this.queue.length < 2) {
-			this.dequeue();
-		} else {
-			js.setTimeout(this.dequeue, Math.max(1, 1000 - (now - this.lastWrite)), this);
-		}
-	}
-
 	/** Write a [ToRadio](https://buf.build/meshtastic/protobufs/docs/main:meshtastic#meshtastic.ToRadio) message to the device */
 	write(packet: protobuf.Mesh.ToRadio): void {
 		if (this.debug) this.log(sbbsdefs.LOG_DEBUG, `ToRadio: ${JSON.stringify(packet)}`);
@@ -345,9 +335,8 @@ export default abstract class Device extends js.global.EventEmitter {
 		if (data.length > MAXLEN) this.error(`write: packet length ${data.length} exceeds maximum length ${MAXLEN}`);
 		const header = [START1, START2, (data.length>>8)&0xFF, data.length&0xFF];
 		const buffer = new Uint8Array([...header, ...data]);
-		// const res = this.sendToDevice(buffer);
-		// if (res) this.lastWrite = Date.now();
-		this.enqueue(buffer);
+		this.queue.push(buffer);
+		js.setTimeout(this.dequeue, Math.max(10, 1000 - (Date.now() - this.lastWrite)), this);
 	}
 
 	/** Assembles a [MeshPacket](https://buf.build/meshtastic/protobufs/docs/main:meshtastic#meshtastic.MeshPacket) based on your parameters and writes it to the device. */