AAT Software Development Group

Genie & Abby Kiosk Application Downloads




Genie

Change Summary




Abby 2.0

AAT ABBY v22


AAT ABBY v21

Notes

Abby Kiosk Mode

AAT ABBY Kiosk v22.1

AAT ABBY Kiosk v21.1

Notes

AAT ABBY Kiosk v22.1 (RFID)

Notes




Abby v3.0

Abby v3.0




Abby Utilities

Media Uploader

Saturday Sept 27, 2025

ABBY v21 Migation Tool

Wednesday December 4, 2024

Beacon Monitor

Friday March 3, 2023

Phidget Monitor

Friday March 3, 2023




Cross-compiling Abby For ARM64

This document outlines the required libraries, sysroot preparation steps, and build procedures for the ARM64 development environment and Raspberry Pi (RPi) target system.

Last updated: Thursday Febrary 26, 2026 7:15PM

1. Build Machine Required Libraries

Install the following packages on the development machine:


2. Raspberry Pi Required Libraries

Install the following libraries on the Raspberry Pi prior creating a sysroot image or building curl/curlpp for ARM64:
Alternatively, a premade rpi-sysroot image can be downloaded here:
rpi-sysroot.tar.gz (Last updated: Thursday Febrary 26, 2026 7:15PM)

3. Create the RPi Sysroot Image

The folder /opt/rpi-sysroot/ is used as the location to store the image.

rsync -avz --rsync-path="sudo rsync" <hostname>@<ipaddress>:/lib /opt/rpi-sysroot
    rsync -avz --rsync-path="sudo rsync" <hostname>@<ipaddress>:/usr/include /opt/rpi-sysroot/usr
    rsync -avz --rsync-path="sudo rsync" <hostname>@<ipaddress>:/usr/lib /opt/rpi-sysroot/usr

4. Build Curl and Curlpp (On Raspberry Pi)

Note: Prebuilt curlpp headers and libraries for both Linux-x64 and ARM64 can be downloaded here:
curlpp.tar.gz (Last updated: Thursday Febrary 26, 2026 7:15PM)

4.1 Build Curl

mkdir $HOME/source
    cd ~/source
    
    # Download curl source from https://curl.se/download.html
    # Decompress curl-8.14.1.tar.xz
    
    # Create a folder to store the built binaries
    mkdir $HOME/libs/curl
    
    cd curl-8.14.1
    ./configure --with-ssl --prefix=$HOME/libs/curl
    make

4.2 Build Curlpp

cd ~/source
    git clone https://github.com/jpbarrette/curlpp.git
    cd curlpp
    mkdir build
    cd build
    
    cmake ..
      -D CURL_INCLUDE_DIR=$HOME/libs/curl/include
      -D CURL_LIBRARY=$HOME/libs/curl/lib/libcurl.a
      -D CMAKE_INSTALL_PREFIX=$HOME/libs/curlpp
      -D CURL_ROOT=$HOME/source/curl-8.14.1
    
    make

Note: several harmless warnings will be displayed during this build.


5. Third-Party Library Location

The folder /usr/src/ is used as the location for third-party libraries.

Clone nlohmann/json

cd /usr/src
    git clone https://github.com/nlohmann/json.git

Sync curlpp headers and shared objects from the RPi

mkdir /usr/src/curlpp-arm64
    
    sudo rsync -ar <hostname>@<ipaddress>:/home/<hostname>/source/curlpp/include /usr/src/curlpp-arm64/include
    sudo rsync -ar <hostname>@<ipaddress>:/home/<hostname>/source/curlpp/lib /usr/src/curlpp-arm64/lib

6. Build Projects

All projects use the following build pattern:

cmake --preset arm64-release
    cmake --build --preset arm64-release

6.1 CreateDatabase

cd ~/source
    git clone https://aatgegit clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.createdatabase.arm64/aat.abby.createdatabase.arm64
    cd aat.abby.createdatabase.arm64
    
    mkdir third_party
    cd third_party
    git clone https://github.com/SRombauts/SQLiteCpp.git
    
    cd..
    cmake --preset arm64-release
    cmake --build --preset arm64-release

Note: a harmless warning will be displayed as SQLiteCpp gets linked.


6.2 DataAccess (Shared Object)

cd ~/source
    git clone git clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.dataaccess.arm64/aat.abby.dataaccess.arm64
    cd aat.abby.dataaccess.arm64
    
    mkdir third_party
    cd third_party
    git clone https://github.com/SRombauts/SQLiteCpp.git
    
    cd..
    cmake --preset arm64-release
    cmake --build --preset arm64-release

Note: a harmless warning will be displayed as SQLiteCpp gets linked.


6.3 TokenGenerator (Shared Object)

Note: Prebuilt DataAccess.so exists in:
~/aat/data_access/lib/arm64

cd ~/source
    git clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.tokengen.arm64/aat.abby.tokengen.arm64
    cd aat.abby.tokengen.arm64
    
    cmake --preset arm64-release
    cmake --build --preset arm64-release

6.4 Optional (For Production Mode Operation)

Copy shared objects to /usr/lib
    cp ~/source/aat.abby.dataaccess.arm64/build/arm64/Release/DataAccess.so /usr/lib/
    cp ~/source/aat.abby.tokengen.arm64/build/arm64/Release/TokenGenerator.so /usr/lib/

6.5 MediaSync

Note: Prebuilt DataAccess.so and TokenGenerator.so exist in their respective lib/arm64 folders.

cd ~/source
    git clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.mediasync.arm64/aat.abby.mediasync.arm64
    cd aat.abby.mediasync.arm64
    
    cmake --preset arm64-release
    cmake --build --preset arm64-release

6.6 Controller

cd ~/source
    git clone git clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.controller.arm64/aat.abby.controller.arm64
    cd aat.abby.controller.arm64
    
    cmake --preset arm64-release
    cmake --build --preset arm64-release

6.7 Abby

Note: Prebuilt DataAccess.so exists in:
~/abby/aat/data_access/lib/arm64

cd ~/source
    git clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.arm64/aat.abby.arm64
    cd aat.abby.arm64
    
    cmake --preset arm64-release
    cmake --build --preset arm64-release


Unblocking all files in all sub directories under C:\Deployments using Powershell

get-childitem "C:\Deployments" -recurse | unblock-file