diff --git a/meshtastic/__init__.py b/meshtastic/__init__.py index 633bd12..0c11790 100644 --- a/meshtastic/__init__.py +++ b/meshtastic/__init__.py @@ -52,6 +52,7 @@ import google.protobuf.json_format import serial import threading import logging +import time import sys import traceback from . import mesh_pb2 @@ -347,9 +348,17 @@ class StreamInterface(MeshInterface): self.stream = serial.Serial( devPath, 921600, exclusive=True, timeout=0.5) self._rxThread = threading.Thread(target=self.__reader, args=()) - self._rxThread.start() + + # Send some bogus UART characters to force a sleeping device to wake + self.stream.write(bytes([START1, START1, START1, START1])) + self.stream.flush() + time.sleep(0.1) # wait 100ms to give device time to start running + MeshInterface.__init__(self, debugOut=debugOut, noProto=noProto) + # Start the reader thread after superclass constructor completes init + self._rxThread.start() + def _sendToRadio(self, toRadio): """Send a ToRadio protobuf to the device""" logging.debug(f"Sending: {toRadio}")