Kiwi BBAI-64 software installation instructions [updated 1-Oct-22]
Part 1 of 3
It is very important that you read and understand these instructions before proceeding. If at any time you get an unexpected result STOP and ask for help on the Kiwi forum.
If you subsequently update the Beagle software on your AI via the instructions on https://beagleboard.org/upgrade, or via the
pkug command, and that update installs a new kernel, then you will have to reinstall the kernel-related Kiwi changes manually as follows. First, make sure you are running the latest Kiwi update. Then type:
reboot (not just a server restart, a full Beagle reboot)
1) Export restrictions. Mouser will likely not ship an AI64 outside of the USA due to export controls on the TI TDA4VM CPU chip. However check the distributor okdo.com for deliveries within Europe. Distributors are listed here: beagleboard.org/ai-64
2) The Beagle P9 cape header connector has been changed on the AI64. It has extra power pins you MUST NOT accidentally use. It is now easier than ever to incorrectly install, and thus instantly destroy, the Kiwi board due to incorrect voltages being applied. Carefully check the installation step below (do NOT install the Kiwi board until instructed to below).
3) DO NOT power the Kiwi+AI64 combo through the Kiwi 5V DC barrel connector. Too much current is required and the Kiwi's common-mode choke will likely burn up. Unlike the AI, the AI64 has both a 2.1/5.5 mm DC barrel connector (same as the Kiwi) and a USB-C power input. Use these instead. The AI64 manual recommends 3A minimum and the Kiwi needs about 1.5A peak. So use a 4.5A minimum supply to avoid problems.
4) If you brick your AI64 (e.g. due to an incorrect sequence of software update steps) then recovery is especially difficult. As of this writing users are reporting problems using many brands of micro SD cards which are necessary to hold a bootable recovery image (see: forum.beagleboard.org/t/sdcard-guaranteed-to-work-with-ai-64/32480)
Also, if a failure causes the AI64 to stop in the bootloader (U-boot), before Debian is even loaded, then you can only recover using the BBAI serial port. You must purchase a USB-to-3.3V serial cable (e.g. uk.farnell.com/ftdi/ttl-232r-3v3/cable-usb-to-ttl-level-serial/dp/1329311) and also an adapter cable from the header of the serial cable to the AI64's tiny JST ZH connector (e.g. uk.farnell.com/element14/1103004000156/beaglebone-ai-serials-cable/dp/3291081)
5) On the plus side, the excellent heat sink of the AI64 is a vast improvement over the AI. A modest fan is all that is required. We use a 5V 120 mm fan spinning at a slow 1500 RPM to reduce noise. It can be powered from the AI64 fan connector (Molex 4-pin PicoBlade, see: forum.beagleboard.org/t/ai-64-fan-header-compatible-male-connector/32231/6) or from one of the USB-A connectors.
6) Do not attempt to make SD card backups on the AI64 using the admin page, backup tab. A different procedure is going to have to be developed.
Part 2 of 3
FIRST TIME SETUP:
1) WITHOUT the Kiwi board installed, provide airflow to the heatsink, connect Ethernet, and apply 5V @ >= 4.5A to the AI64 power input.
2) Find the Ethernet ip address assigned by your DHCP. Login using ssh/PuTTY as "debian" password "temppwd".
sudo suusing the "temppwd" again to get a root shell. With this Debian distro you cannot login as "root" [no password] anymore, i.e. it's more secure.
3) Update Debian. Follow the instructions at beagleboard.org/update-ai64 but note these differences:
sudoas you are already root.
apt upgradea couple of times your connection will be placed into a blue-screen dialog panel. The first will mention how a new kernel will be installed and you should consider immediately rebooting. DELAY REBOOTING until specified in the instructions. If you reboot too soon (e.g. immediately after the
apt upgradecommand) your AI64 will become bricked! Just hit the return key to the "OK" prompt to exit the panel.
apt upgradefinishes make sure to perform the
/opt/u-boot/bb-u-boot-beagleboneai64/install-microsd.shcommands BEFORE the
rebootcommand as shown in the instructions.
4) After the reboot login again,
sudo su, and from the root shell do:
git pull -v
This should display a bunch of output as files are updated. You may see a warning saying "hint: Pulling without specifying how to reconcile divergent branches is discouraged." Ignore this warning.
5) Build and install the Kiwi code (at this point the Kiwi board is still NOT YET installed).
cd [changes current directory to /root]
git clone https://github.com/jks-prv/Beagle_SDR_GPS.git
makestep will take a while (up to 40 minutes) as many packages have to be installed prior to building the Kiwi software.
Press the return key when prompted to reboot.
If you are never prompted to reboot or there are any obvious errors in the build process STOP, take some screenshots of the error messages (or cut/paste), and ask for help on the Kiwi forum.
6) Login again after the reboot,
sudo su, and type
haltto power down the AI64.
Continue with Part 3 in the next post.
Part 3 of 3
7) With the AI64 powered off install the Kiwi board. Refer to the image below. Note the square "notch" in the Kiwi board to orient it properly. Align the Kiwi pins flush with the end of the P8 connector as shown by the green rectangle. On the other side, the P9 connector, the first 2 rows of pins MUST be skipped (as shown in the red rectangle) if the board is aligned properly. Triple check this before seating the Kiwi board onto the AI64 headers.
[click image for larger]
8) Apply power to the AI64. After about 60 to 90 seconds the Kiwi server should be running. Try connecting on port 8073. Configure as usual. The
git cloneabove will have downloaded the most recent Kiwi release.
1) The Kiwi software will display correct cpu temperature information. But cpu frequency information is not yet available. The Beagle guys are working on it. "2 GHz" is displayed by default as this should be the maximum supported.
Product information: beagleboard.org/ai-64
System reference manual, schematic, block diagram: git.beagleboard.org/beagleboard/beaglebone-ai-64
[end of instructions]
putting a piece of tape over the "evil" pins on J9 is a good measure. Kapton tape a good choice if you have it
If anyone buys one and tries it please let me know if this procedure works for you or not.
Interestingly, BeagleBoard.org considers the BBAI-64 to be the "Rev B" of the BBAI, despite the fact that it turned out so different from the BBAI. From the BBAI-64 System Reference Manual:
2.2.1. Rev B
We are starting with revision B based on this being an update to the BeagleBone
Black AI. However, because this board ended up being so different, we’ve decided
to name it BeagleBone AI-64, rather than simply a new revision.
How many simultaneous demod channels can the BBAI-64 support? More than the 14 that the BBAI supports, or does the Beagle software still need updating for more channels?
Only 14 because it's limited by the amount of logic that can be crammed into the FPGA. The FPGA cannot hold another rx channel (when there are zero waterfall channels) beyond 14.
It's always a race between FPGA logic space, SPI interface utilization and Beagle cpu cycles (SPI is the data path between the FPGA and Beagle).
I did not give myself particularly good odds performing this operation, but after carefully following the directions ... SUCCESS!
Your mileage may vary, but for any other history majors sitting on the fence about this one, I can at least say that it worked for me.
No issues with the external clock. 5V/5A buck converter off the shack Astron for power.
I placed the BBAI64 heatsink down on top of an elevated 120mm fan that is drawing air downwards. CPU is at 39c at present. Is this a reasonable config?
Presently running all 14 channels on WSPRDaemon, 2200m through 10m, including EU bands and 22m. Thanks, JKS.
W3ENR (listening) / K3WRG (beacon)
Update: After running a few hours with the ambient temperature 20c here now (a bit cooler than usual), the CPU is fluctuating between 33-34c, with the USB fan on 'low'. It doesn't seem as if heat is likely to be a problem.
Thanks for the report. Glad it worked for you.
I've been running some very heavy non-Kiwi stuff on mine. The temps never get above 39 degC. What a difference compared to the BBAI. Others on the AI-64 forum use a fan configuration like yours. So I think it's fine.
The System Reference manual says "A 5V ≥ 3A supply is mandatory" has anyone measured the actual peak and average current or power under Kiwi-like operating conditions? I don't see it described in the documentation.
What I observe with a cheap clamp-type meter is:
1.7A running solo
2.2-2.3A running with the Bodnar and fan attached to USB ports
2.7A maximum registered on startup
Thanks for measuring. That's a lot more power than BBG or even, I think, than the BBAI. Perhaps fine where there is sufficient power budget but not clear to me that it is a good choice for a remote solar power site.
My goal is to be off-grid on the back 40 here. I run the K3WRG beacon, which is essentially untouched for a year now, and is solar powered.
But it is very close to my receive setup, so I'm deaf on the default WSPR transmit cycle, and it causes issues for longer format FST4W on higher bands.
On power, whereas
3x BBG 3 Kiwis will run 24 channels, two BBAI-64 Kiwis will run 28. I run magloops. If my muddled brain has it right, my requirement will realistically be ~9a/5v for two BBAI64s versus ~6a/5v for three BBG, including Bodnar(s).
So a ~30-35% increase in power requirement (with 4 more channels).
I'm okay with that tradeoff, especially since I'm happy to oversize the solar system.
are the older BBAI no longer available?
Mouser has 39 in stock at the moment.
Octopart search: https://octopart.com/search?q=BBONE-AI¤cy=USD&specs=0
(first result catches AI-64, so ignore that)
@perezoso I'll need a buck converter here as well. Mind sharing what model you're using? Seems to be a bit of a minefield on finding a quiet one.
have shown themselves to work pretty well. They switch at just below 1 MHz and have quite small area so don't generate a lot of field. Some of us have been using these for several years with good results. Switching lines are not generally visible, even the fundamental.
@n6gn I know of those (getting some delivered tomorrow for a 5V cooling fan setup for my G90), so I’d love to find out similar proven 5A options might be: MP1584EN are only up to 3A.
Wow, can't help you there while there are higher current versions avaialbe I haven't found one that switches at higher rates and also has small area so as to minimize unwanted coupling. I think with some care you might be able to parallel two of the 3A versions. What happens if you put a small value series resistor in series with each and then connect via the resistor's junction? Pick a value for maybe 100 mV drop at stable conditions?
If average current is 2.7A each R might be 2*.1/1.35. so maybe 100-200 milliohms. I'm not certain that this will work, I've never tried it, but it might.
Operation successfully performed on a second AI-64 (which are back in stock widely, and the brief price spike has subsided).
One small hiccup. The "git pull -v" command resulted in a error, see image below. I exhaled and tried it again, whereupon it worked.
trying it all here now....
Things I found with the KiwiSDR upgrade from BB Green to BB AI-64
Setting a fixed IP address for the ethernet port via admin/Network - fails, always stays DHCP, turns out that IP configuration is strictly managed by the files in /etc/systemd/network
The work around using PuTTY is:-
Ctrl-O <ENTER> to write File
Ctrl-X to exit nano
Host name set in /etc/hostname
DNS's are set in /etc/resolv.conf
So the actual problem here is that Debian 11 (Bullseye) doesn't appear to have the
connmanctlcommand (from the
conmanpackage) installed by default. Back in January (v1.487) we discovered that Debian 10 required connmanctl to be used to configure the Ethernet interface.
So I'll add the installation of the
conmanpackage to the Kiwi Makefile. You can manually install it with the
I tried connman before my original post and came up with a IP4 problem, when using connman, the card ended up with both a static and a DHCP IP4 address, and there was no way to kill of the DHCP address... so I un-installed connman.