Beagley-AI

Olof Astrand
4 min readJul 13, 2024

--

beagley-ai image

First impressions with the beagleY-AI. The smaller version of the Beaglebone AI, but with completely different processor. These are the initial steps and experiences of setting up and using the Beagle Y AI on a Windows host. The Beagle Y AI, is a new board from beagleboard.org. Getting started involves a series of steps to ensure proper installation and configuration, but the process is straightforward and well-documented, here. https://docs.beagle.cc/latest/boards/beagley/ai/index.html

When using windows and balena etcher, extract the image first. Decompress the img.xz file to img. Get a micro hdmi converter also if you do not have one.

Update sysconf.txt

user_name and user_password should be updated.

uname -a

Linux BeagleY 6.1.80-ti-arm64-r57 #1bookworm SMP PREEMPT_DYNAMIC Wed Jun 19 00:28:40 UTC 2024 aarch64 GNU/Linux

Update the software

sudo apt-get update
sudo apt-get upgrade

sudo reboot

uname -a
Linux BeagleY 6.1.80-ti-arm64-r57 #1bookworm SMP PREEMPT_DYNAMIC Wed Jun 19 00:28:40 UTC 2024 aarch64 GNU/Linux

Lets upgrade

sudo apt update
sudo apt-get dist-upgrade

Now we can configure wifi,

iwctl station wlan0 get-networks
iwctl station wlan0 show
iwctl --passphrase "<wifi-pass>" station wlan0 connect "<wifi-name>"

List custom texas instruments firmware,

dpkg -l | grep '^ii' | awk '{print $2}' | grep ti

ti-cc33conf
ti-devmem2
ti-k3conf
ti-linux-firmware-sysfw
ti-psdk-firmware-09.02.00.05
ti-rpmsg-char
ti-sgx-23.3-firmware
ti-sgx-23.3-j722s-ddx-um
ti-sgx-23.3-j722s-modules-6.1.80-ti-arm64-r57
ti-sgx-23.3-j722s-modules-6.1.83-ti-arm64-r63
ti-zephyr-firmware

We can see the gpu accelerated libraries, dpkg -L ti-sgx-23.3-j722s-ddx-um but I do not see the Dsp compiler installed. Also lots of header files are missing.

sudo k3conf --cpuinfo
|--------------------------------------------------------------------------------|
| VERSION INFO |
|--------------------------------------------------------------------------------|
| K3CONF | (version 0.3-nogit built Wed Mar 27 21:29:14 UTC 2024) |
| SoC | J722S SR1.0 |
| SYSFW | ABI: 3.1 (firmware version 0x0009 '9.0.6--w2023.01-j722s (Kool Koa)') |
|--------------------------------------------------------------------------------|

|--------------------------------------------------------|
| Processor Name | Processor State | Processor Frequency |
|--------------------------------------------------------|
| A53SS0_CORE_0 | DEVICE_STATE_ON | 1250000000 |
| A53SS0_CORE_1 | DEVICE_STATE_ON | 1250000000 |
| A53SS0_CORE_2 | DEVICE_STATE_ON | 1250000000 |
| A53SS0_CORE_3 | DEVICE_STATE_ON | 1250000000 |
|--------------------------------------------------------|

sudo k3conf dump processor

Online Beagle IDE

Thing to try, as ngnix is installed

https://192.168.7.2:3000/

An ide is setup for use over local network. Be aware of this gaping security hole. Terminal access without password is not nice.

This is the result of the test (code in browser). https://en.wikipedia.org/wiki/Whetstone_(benchmark)

 ./ws 50000

Loops: 50000, Iterations: 1, Duration: 1 sec.
C Converted Double Precision Whetstones: 5000.0 MIPS
olof@BeagleY:~/work/arm_performance$ cat /proc/cpuinfo
processor : 0
BogoMIPS : 400.00
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4

Texas Instruments AM67A, Quad 64-bit Arm® Cortex®-A53 @1.4 GHz

Remote X over ethernet.

ssh -Y olof@192.168.7.2

sudo apt-get install guvcview
sudo usermod -aG video olof

v4l2-ctl -d /dev/video0 --all

It seems that v4l2-ctl is preinstalled or comes with guvcview

Temperature

cat /sys/devices/virtual/thermal/thermal_zone*/temp

74137
74733
75722

This is milli celsius so about 74 degrees on idle. It does get rather hot.

I downloaded and installed this in WSL2 Ubuntu 22.04 that seems to be recomended.

https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-AM67A

Test OpenCV

sudo apt update
sudo apt install libopencv-dev

#include <opencv2/opencv.hpp>
#include <iostream>

int main() {
// Open the video capture device
cv::VideoCapture cap("/dev/video3");

// Check if the device is opened successfully
if (!cap.isOpened()) {
std::cerr << "Error: Could not open video device." << std::endl;
return -1;
}

// Set capture properties
cap.set(cv::CAP_PROP_FRAME_WIDTH, 640);
cap.set(cv::CAP_PROP_FRAME_HEIGHT, 480);
cap.set(cv::CAP_PROP_FPS, 30);

// Create a window to display the video
cv::namedWindow("Black and White Video", cv::WINDOW_NORMAL);

cv::Mat frame, gray_frame;

while (true) {
// Capture a frame
cap >> frame;

// Check if the frame is empty
if (frame.empty()) {
std::cerr << "Error: Captured frame is empty." << std::endl;
break;
}

// Convert the frame to grayscale (black and white)
cv::cvtColor(frame, gray_frame, cv::COLOR_BGR2GRAY);

// Display the black and white frame
cv::imshow("Black and White Video", gray_frame);

// Exit the loop if 'q' is pressed
if (cv::waitKey(1) == 'q') {
break;
}
}

// Release the video capture device and close the window
cap.release();
cv::destroyAllWindows();

return 0;
}

That worked well. But I am not sure this was necesary.

sudo apt install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly

Debian GNU/Linux 12

BeagleBoard.org Debian Bookworm Xfce Image 2024-06-19
Support: https://bbb.io/debian

Online TI Ide

https://dev.ti.com/ide/

You have to create and account and install some bridge software.

Unfortunately, the AM67A is not yet supported. (July 2024)

Also it seems that Edge AI stuff is not yet supported. https://git.beagleboard.org/edge-ai

Read more in the forums.

https://forum.beagleboard.org/tag/beagley-ai

Builing kernel modules

sudo apt install linux-headers-$(uname -r)

https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am67a/09_02_00/exports/docs/linux/Overview.html

In summary, this was a bit disapointing but enough to start experimenting.

--

--

Olof Astrand
Olof Astrand

No responses yet