BeagleConnect Freedom QuickStart - sensortest-rx.py

I have the BeaglePlay stock MMC boot with apt upgrade (Linux 5.10.153-ti-arm64-r86) with beagleconnect 1.20230405.0-0~bullseye+20230405. Following the quickstart guide BeagleConnect Technology — BeagleBoard Documentation

I have the output from beagleconnect-startr-gateway

# /usr/sbin/beagleconnect-start-gateway 
setting up wpanusb gateway for IEEE 802154 CHANNEL 1(906 Mhz)
RTNETLINK answers: File exists
RTNETLINK answers: Device or resource busy
PING 2001:db8::1(2001:db8::1) from fe80::212:4b00:29b9:9884%lowpan0 lowpan0: 56 data bytes
From fe80::212:4b00:29b9:9884%lowpan0 icmp_seq=1 Destination unreachable: Address unreachable
From 2001:db8::2 icmp_seq=2 Destination unreachable: Address unreachable
From 2001:db8::2 icmp_seq=3 Destination unreachable: Address unreachable
From 2001:db8::2 icmp_seq=5 Destination unreachable: Address unreachable

--- 2001:db8::1 ping statistics ---
5 packets transmitted, 0 received, +4 errors, 100% packet loss, time 4051ms

The lowpan address is

lowpan0@wpan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1280 qdisc noqueue state UNKNOWN group default qlen 1000
    link/6lowpan 00:12:4b:00:29:b9:98:84 brd ff:ff:ff:ff:ff:ff:ff:ff
    inet6 2001:db8::2/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::212:4b00:29b9:9884/64 scope link 
       valid_lft forever preferred_lft forever

A ping6 shows

ping6 -I lowpan0 ff02::1
ping6: Warning: source address might be selected on device other than: lowpan0
PING ff02::1(ff02::1) from :: lowpan0: 56 data bytes
64 bytes from fe80::212:4b00:29b9:9884%lowpan0: icmp_seq=1 ttl=64 time=0.215 ms
64 bytes from fe80::212:4b00:29b9:9884%lowpan0: icmp_seq=2 ttl=64 time=0.422 ms
^C
--- ff02::1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1014ms
rtt min/avg/max/mdev = 0.215/0.318/0.422/0.103 ms

and the sensortest-rx.py just hangs.

The Freedom lights up MB1, PWR, USB when connected to the USB of the BeaglePlay.

I do have the ACM0 device

ls -l /dev/ttyACM0 
crw-rw---- 1 root dialout 166, 0 Apr  8 07:51 /dev/ttyACM0

After failing, I tried changing the IP address in sensortest-rx.py from “ff02::1” to “2001:db8::2” and “fe80::200”, but no change.

I also tried to flash the Freedom with

Opening port /dev/ttyACM0, baud 50000
Reading data from /usr/share/beagleconnect/cc1352/sensortest_beagleconnect.bin
Cannot auto-detect firmware filetype: Assuming .bin
Connecting to target...
ERROR: local variable 'chip' referenced before assignment

But is seems it cannot find the proper chip.

Wondering if anyone has had success running sensortest-rx.py?

Thanks,
– Don

I basically have the same results as you.

@jkridner is there any more pending documentation coming? How does one determine the address to ping from play to connect?

Me three… exactly the same, after flashing my BeaglePlay with latest release on 5/3. I love this hardware, but there is a major gap in the documentation. Some of this simply isn’t obvious unless you created it and even a good background in how Beagleboards have worked in the past isn’t all that helpful.

Even the cloud9 examples seem to be for the BBB instead of the play and as expected throw errors…

I’m fine with things being a work in progress, but please tell us what’s in and working and what is in the works, and also what we could help with. :cowboy_hat_face:

The SensorTest works really well with 0.2.2 cc1352 firmware, @jkridner and I just did a webinar with home-assistant late last week. We cleaned up a few things since the 2023-05-03 monthly snapshot, let me generate a new set of snapshots so the cc1352 is pre-setup with the correct firmware. for your 2023-05-03

just

wget https://files.beagle.cc/file/beagleboard-public-2021/images/zephyr-beagle-cc1352-0.2.2.zip
unzip zephyr-beagle-cc1352-0.2.2.zip

Plug in the BeagleConnect and run this command to flash it.

./build/freedom/cc2538-bsl.py build/freedom/sensortest

The video in demo1 and demo2: BeaglePlay Home Assistant webinar demo image - BeagleBoard shows a few things. But a few of the things @jkridner had to do are default in the image now…

Regards,

Sorry, all the cloud9 examples really took a back-seat to get BeagleBoard Documentation — BeagleBoard Documentation in shape, I believe @yoder is going to start looking at this during his summer break. (if a college professor ever takes a break!)

Regards,

Yup, a Beagleboard Play cookbook is my summer project. Next week is finals week, and then I can start work on it.

1 Like

Thank you! This update worked perfectly.

No worries. My goal is to understand the hardware and develop some basic C++ examples communicating with microSDK sensors on the play and on the two connects that I have. The ID part of working with microSDK click boards is still a little confusing to me, but I haven’t played enough with it yet to ask intelligent questions.

Then I’ll move on to bringing up a Yocto based firmware on the play. I was happy to see a few others already working on Yocto, which is great. I can’t tell you how excited I am about the play and the connect. Very cool devices! A big thank you to all of you Beagle Board.

Hi All.

Following @RobertCNelson’s examples, I’ve been able to get the sensortest-rx.py script to work – I can see periodic updates from BeagleFreedom streaming in…

This leads me to a few questions:

  1. How can I ‘ping’ the Freedom itself? How does one go about finding its address?

  2. What does the /usr/sbin/beagleconnect-start-gateway actually do? Is it necessary to start that? I seem to be able to run the sensor test without starting the ‘gateway’, so I’m not sure how the 2 are related…

  3. I assume that the provided firmware for Freedom is only periodically streaming the sensor values back to some preset IP address / port? In the future, if one wanted to modify that firmware so that it could be queried from Play itself (ie. pull vs push model), how would that best be done? Modifying Zephyr image / using Micropython? Basically I’m trying to understand what will the final development approach be?

Answering some of my own questions to help others.

  1. How can I ‘ping’ the Freedom itself? How does one go about finding its address?

After you flash Freedom with micropython firmware, you can find using the avahi-browse -r -t _zephyr._tcp command as outlined here: Using Micropython — BeagleBoard Documentation

  1. What does the /usr/sbin/beagleconnect-start-gateway

? Still don’t fully understand…

  1. …In the future, if one wanted to modify that firmware so that it could be queried from Play itself (ie. pull vs push model)…

Obviously Micropython would be easiest approach. However, this begs another question: "How do I store *.py files on Freedom so that they run automatically on boot? The Micropython documentation says that to store files named boot.py or main.py to autorun on boot…but how do you do that on Freedom?