#StackBounty: #python #pyserial Unable to send/receive data via HC-12/UART in Python

Bounty: 100

I’ve written some code to communicate between two Raspberry Pi’s, using identical HC-12 433Mhz transceivers. I was able to successfully echo between the two Pi’s using a direct serial connection and echo/cat, however am unable to replicate this using HC-12s, which theoretically work by a similar principal. I’m using the port ttyAMA0 on both for this example, but ttyS0 is also available and have tried every combination of these ports.

The following code is common to both the sending and receiving, just writing once for sake of brevity:

import serial
import time

ser = serial.Serial(
    port = "/dev/ttyAMA0",
    baudrate = 9600,
    parity = serial.PARITY_NONE,
    stopbits = serial.STOPBITS_ONE,
    bytesize = serial.EIGHTBITS
)
print("Serial status: " + str(ser.isOpen()))

This is the sending program:

while True:
    print("Sending...")
    ser.write("hellon".encode())
    time.sleep(1)

And the receiving program:

while True:
    print("Receiving...")
    data = ser.readlines()
    print(data.decode())

The sending program simply loops as expected, but the receiver prints "Receiving…", and then nothing.

When I keyboard interrupt the receiving program at that point, it says it is currently up to data = ser.readlines().

Any help would be much appreciated – I’ve spent the better part of the last week trawling and exhausting forums and READMEs to no avail, and this is literally my last option. Am close to insanity on this one!


Get this bounty!!!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.