RoadTest: BeagleBone® AI-64
Author: bslettela
Creation date:
Evaluation Type: Connectors & Cable
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Ultra96-V2 with Xilinx Ultrascale+ MPSoC
What were the biggest problems encountered?: Linux kernel and V4L2 support for the cameras that I have, documentation and source builds having invalid links.
Detailed Review:
To explore the BeagleBoard AI-64 for this Road Test I had planned on creating a prototype driveway/wildlife cam for my driveway. My hopes were that I could get the beagle board to a low power state where it could run off a battery and small solar cell without needing frequent battery swaps or permanent extension cord. My drive is almost about 180 yards long, so a stable wifi connection is possible, but running an extension cord would be problematic throughout the seasons.
Like many single board computers AI-64 comes in small sparse box; for a decent overview and getting started guide look here: https://docs.beagleboard.org/latest/boards/beaglebone/ai-64/
Compared to other SBC’s the AI-64 has a larger PCB and has a larger heat sink than the Ultra96v2 board, which has a comparable AI/ML inference compute capability.
The following picture is the side on view of the AI-64, Ultra96v2(note the dual camera hat/cape), and a Raspberry PI 3:
The next picture is cards flipped over showing the heat sink of the AI-64 and the Ultra96v2, and the traditionally naked Raspberry PI.
After running with light workloads both the AI-64 and Ultra96v2 heatsinks get hot to the touch, which does not bode well for having them in a sealed enclosure for outdoor uses.
The AI-64 comes with an on board eMMC storage device, so like the Ultra96v2 you can get a straight out of the box experience with this SBC, but with all things software there is always a need to do updates. After going through the update instructions found here:
https://docs.beagleboard.org/latest/boards/beaglebone/ai-64/update.html I was all set to try out some of the pre-canned inference examples provided for the board, well that was the hope anyway. After the updates I quickly discovered that the firmware for the additional compute units wasn’t working with the deployed image, and none of the updates in the instructions set those up correctly.
Apparently the beagle board document devs didn’t think inference was going to be the primary use of the AI-64, as the instructions on how to get the board loaded properly were in a following section:
https://docs.beagleboard.org/latest/boards/beaglebone/ai-64/edge_ai_apps/getting_started.html
Skipping over the camera hardware setup to start, I jumped to loading a new image, but quickly stumbled upon a broken link, but I was able to dig through the testing directory tree on that site and find this image:
https://rcn-ee.net/rootfs/bb.org/testing/2022-11-01/bullseye-xfce-edgeai-arm64/bbai64-debian-11.5-xfce-edgeai-arm64-2022-11-01-10gb.img.xz
I loaded that onto a micro SDCard and after going through the software update and install instructions again, I was able to finally run the pre-canned demos and examples. I found that all the demos functioned as expected with prerecorded pictures and videos, so I could continue to test things with my own inputs. To accomplish this, I plugged in a Logitech B525 webcam and after switching the configurations in /opt/edge_ai_apps/configs to use the webcam instead of the file defaults, I was ready to hit the ground running again. Though I quickly fell on my face as the demo apps would only grab a single frame from the webcam and promptly lock up. With no other USB cameras in house to try I decided to order the RPI Cam V2 as suggested in the hardware setup guide.
With new RPI Cam V2 delivered I thought I was ready to start testing again but was quickly dismayed to realize that the RPI Cam V2 comes stock with a cable that is physically wider than the connector on the AI-64. I found this cable set to adapt back to the AI-64 boards connectors:
https://www.amazon.com/dp/B076Q595HJ?psc=1&ref=ppx_yo2ov_dt_b_product_details
Now that the camera was physically connected I attempted to go through the steps of setting up the device tree overlays, but found that the instructions were out of date for the directory structures in boot, these instructions from RobertCNelson were more useful:
https://forum.beagleboard.org/t/rpi-cam-v2-sony-imx219-w-edge-ai-demos/33184/6
The bad part of this thread is that it hints that the IMX219 sensor on the RPI Cam V2 isn’t working completely, though the beagleboard.org documentation specifically calls it out as working with the AI-64 SBC. As noted in the thread I was able to get the edge-ai setup scripts to recognize the camera, but when the configuration files to pick this new source were used with the test application, I couldn’t get any of the edge ai test scenarios to work.
With the passage of time I noticed there were new builds pushed to the rcn-ee.net, so I downloaded and installed:
https://rcn-ee.net/rootfs/bb.org/testing/2022-12-01/bullseye-xfce-edgeai-arm64/bbai64-debian-11.5-xfce-edgeai-arm64-2022-12-01-10gb.img.xz
With this build I haven’t seen any improvements or changes in how the example applications work with either camera source. At this point have raised the white flag.
Some links to resources for the SoC on this SBC:
AI SDK - https://www.ti.com/tool/PROCESSOR-SDK-J721E
https://www.ti.com/product/TDA4VM#tech-docs
None of the following are the end of the world, but they can cause extra cycles that just get in the way when trying to get something done.
While doing apt installs this system is constantly spitting out these warning when the kernel is updated:
update-initramfs: Generating /boot/initrd.img-5.10.145-ti-arm64-r75
W: Possible missing firmware /lib/firmware/xc3028L-v36.fw for built-in driver tuner_xc2028
W: Possible missing firmware /lib/firmware/xc3028-v27.fw for built-in driver tuner_xc2028
W: Possible missing firmware /lib/firmware/dvb-fe-xc4000-1.4.fw for built-in driver xc4000
Or this any time a package is installed or upgrade:
Failed to check for processor microcode upgrades.
Though my hopes of a successful prototype were quickly dashed, I think the beagle board and its many low power cores could eventually be turned into a self-standing trail/driveway camera with object detection/recognition capabilities for optimal storage and automated alerts. Like my experience with the Ultra96v2 SBC. The out of the box demos and examples ML inference seem to mostly work “out of the box” but trying to meld that into a working project is more than can really be done in a 60 day review by one person. As a hobby project this board has a great opportunity for learning the multitude of compute units and figuring out how to make them work in harmony. I think projects like these would be greatly enhanced if the BeagleBoard community increased to the size of RPI community and provided more manpower for updating documentation and software packages.