Hello fellow developers!
Recently, my friends and I began to make a telegram bot for sending messages from the air to telegrams and operational control of the meshtastic network.
I make the hardware based on a meshtastic-device and Orange-Pi-Zero. I’m making a LoRa-Hat. With the classic experimental product, the meshtastic-device works well and there are no problems. The problems started when trying to optimize the hardware. The CLI-meshtastic application (Command line interface) refuses to see the ESP32 module without the USB-UART microcircuit.
Prototype :
LoRaRF → ESP32 → USB-UART → OrangePi
Everything works here.
meshtastic --port = / dev / ttyUSB0 --info
shows normal connection and test recall.
In second version of the hardware assembly:
I get rid of the USB to UART converter into the meshtastick-device and connect the ESP32 directly to the Orange-Pi-Zero through the activated UART-1.
The “setserial” command does a good job with the orange-pi hardware:
orangepizero: ~: # setserial -g / dev / ttyS *
/ dev / ttyS0, UART: 16550A, Port: 0x0000, IRQ: 49
/ dev / ttyS1, UART: 16550A, Port: 0x0000, IRQ: 50
/ dev / ttyS2, UART: unknown, Port: 0x0000, IRQ: 0
/ dev / ttyS3, UART: unknown, Port: 0x0000, IRQ: 0
/ dev / ttyS4, UART: unknown, Port: 0x0000, IRQ: 0
/ dev / ttyS5, UART: unknown, Port: 0x0000, IRQ: 0
/ dev / ttyS6, UART: unknown, Port: 0x0000, IRQ: 0
/ dev / ttyS7, UART: unknown, Port: 0x0000, IRQ: 0
Note: /dev/ttyS0 is the UART hardware console for accessing the Orange-Pi interface, I don’t touch it. I am working from /dev/ttyS1.
An error occurs at this point, because python cannot detect activated UART1:
orangepizero: ~: # meshtastic --port = /dev/ttyS1 --info
Traceback (most recent call last):
File “/ usr / local / bin / meshtastic”, line 8, in
sys.exit (main ())
File “/usr/local/lib/python3.8/dist-packages/meshtastic/main.py”, line 777, in main
common ()
File “/usr/local/lib/python3.8/dist-packages/meshtastic/main.py”, line 583, in common
client = meshtastic.serial_interface.SerialInterface (
File “/usr/local/lib/python3.8/dist-packages/meshtastic/serial_interface.py”, line 52, in init
StreamInterface .__ init __ (
File “/usr/local/lib/python3.8/dist-packages/meshtastic/stream_interface.py”, line 50, in init
self.connect ()
File “/usr/local/lib/python3.8/dist-packages/meshtastic/stream_interface.py”, line 74, in connect
self._waitConnected ()
File “/usr/local/lib/python3.8/dist-packages/meshtastic/mesh_interface.py”, line 362, in _waitConnected
raise Exception (“Timed out waiting for connection completion”)
Exception: Timed out waiting for connection completion
I tried to dig deeper into the problem and the only thing that I could find with my knowledge:
With the USB-UART converter, a call to the port check procedure shows:
orangepizero: meshtastic: # python3 -m serial.tools.list_ports
/dev/ttyUSB0
1 ports found
If we remove the USB-UART port, then:
orangepizero: meshtastic: # python3 -m serial.tools.list_ports
no ports found
I don’t know if it’s an operating system problem or a CLI-meshtastic problem or something else I don’t know.
Help Wanted!
Any ideas how to run СLI-meshtastic directly from UART to ESP32?
I want somewhere in the CLI-meshastic code to be able to hardcode the connection, let’s say on /dev/ttyS1.