GSoC23: BeaglePlay Greybus Demo

Hello everyone. My project is now at a point where almost everything is working to a respectable level. Thus I wanted to do a demo. Check out my GSoC 2023 Introduction post for more information about my project.

Setup

BeaglePlay Linux Host

The BeaglePlay Linux host will be running beagleplay-linux-driver. The Linux Host serves as AP and communicates with SVC (CC1352) over HDLC UART.

I will also be running the following script on the Linux host. It repeatedly calls iio_info, which displays IIO devices and their attributes. The humidity and optical sensors in BeagleConnect Freedom show up here once the greybus connection is successfully established.

#!/bin/sh
while true
do
    echo "Probe IIO"
    echo
    iio_info
    sleep 1
    echo
done

BeaglePlay CC1352

The BeaglePlay CC1352 will be running cc1352-firmware. This zephyr application performs the SVC and APBridge roles in greybus topology.

BeagleConnect Freedom

The BeagleConnect Freedom will run greybus-for-zephyr sample application. This is the same as the one used in the GBridge setup.

Video

Here is a video of the demo running on my hardware.

Limitations

The current setup has three main limitations:

  1. Updating CC1352 firmware requires restart. This makes the development process slower.
  2. Beagleconnect greybus node disconnects if it is ideal for too long.
  3. BeaglePlay CC1352 does not perform actual service discovery.

Conclusion

I will now work on making a single device “just” work. This will involve optimization and ironing out bugs. Once that is done, I will move on to tackle the limitations.

Consider supporting me if you like my work.

Build Artifacts

Here are the CI build artifacts for anyone wanting to test this out:

  1. cc1352-firmware
  2. beagleplay-greybus-driver

Helpful Links