Skip to content

Random timeout in xbee sender using crontab on Raspberry pi #263

@zrion

Description

@zrion

Hello,

I am building a system where I have a remote Xbee sending packets continuously, and I'm using Raspberry Pi 4 as the host for the Xbee (connected to Xbee grove dev kit) , powered by a battery pack. I have a script that is loaded at Pi startup using crontab:

from digi.xbee.devices import XBeeDevice
import time


PORT = "/dev/ttyUSB0"
BAUD_RATE = 9600

DATA_TO_SEND = "Hello XBee! Sending packet "


def main():
    device = XBeeDevice(PORT, BAUD_RATE)

    packet_counter = 0

    try:
        device.open()

        print(device.set_sync_ops_timeout(15))
        while True:
            packet_counter += 1
            data = DATA_TO_SEND + str(packet_counter)

            print("Sending broadcast data: %s..." % data)

            device.send_data_broadcast(data)

            print("Success")
            time.sleep(0.03)

    finally:
        if device is not None and device.is_open():
            device.close()


if __name__ == '__main__':
    main()

What I observe is that the operation is experiencing random timeouts that cause the broadcasting interrupted, although sometimes it works smoothly. I tried to increase the timeout duration device.set_sync_ops_timeout(10) but the problem still persists. One thing to note is that manually running the script doesn't have this issue.

Any ideas to solve this problem is appreciated. I also want to ask a broader question: Is there any way to do something similar for the XBee without the Raspberry Pi (Xbee powered directly by a battery pack)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions