diff --git a/brainstem_sdk/.gitignore b/brainstem_sdk/.gitignore new file mode 100644 index 0000000..a7c5dc1 --- /dev/null +++ b/brainstem_sdk/.gitignore @@ -0,0 +1,4 @@ +# Only the upstream `brainstem_sdk_*.tgz` is tracked. Extracted trees stay local. +/* +!/.gitignore +!/*.tgz diff --git a/brainstem_sdk/brainstem_sdk_2.12.2_RHEL_9_x86_64.tgz b/brainstem_sdk/brainstem_sdk_2.12.2_RHEL_9_x86_64.tgz new file mode 100644 index 0000000..196c4ee Binary files /dev/null and b/brainstem_sdk/brainstem_sdk_2.12.2_RHEL_9_x86_64.tgz differ diff --git a/docs/brainstem-sdk.md b/docs/brainstem-sdk.md new file mode 100644 index 0000000..39c7db5 --- /dev/null +++ b/docs/brainstem-sdk.md @@ -0,0 +1,66 @@ +# BrainStem SDK tarball in this repo + +The repository vendors **one file** under `brainstem_sdk/`: the Acroname **Linux** SDK archive, for example: + +`brainstem_sdk/brainstem_sdk_2.12.2_RHEL_9_x86_64.tgz` + +That archive matches **RHEL 9 / compatible distros** on **x86_64**. It is the **driverless** bundle (API, examples, small CLI tools, udev helper). It does **not** replace `pip install brainstem` for Python; it adds headers, examples, and native utilities next to the tree. + +## Extract the archive + +From the repository root: + +```bash +cd brainstem_sdk +tar -xzf brainstem_sdk_2.12.2_RHEL_9_x86_64.tgz +``` + +The tarball unpacks **into the current directory** (top-level entries: `api/`, `cli/`, `docs/`, `linux_brainstem_driverless/`, plus `license.txt`, `readme.txt`, `version.txt`). To avoid unpacking next to the `.tgz`, use a subdirectory: + +```bash +mkdir -p brainstem_sdk/unpacked && cd brainstem_sdk/unpacked +tar -xzf ../brainstem_sdk_2.12.2_RHEL_9_x86_64.tgz +``` + +If you use `unpacked/`, set `BRAINSTEM2_DEV_ROOT` to the directory that contains `api/` after extract (for example `…/brainstem_sdk/unpacked`). FiWi’s default repo-local search only looks at `brainstem_sdk/` and `brainstem_sdk/BrainStem2/`, not `unpacked/`, without that variable. + +## Device access (udev) + +Before talking to hardware over USB, run the script described in `readme.txt` inside the extracted tree: + +```bash +./linux_brainstem_driverless/udev.sh +``` + +That installs udev rules (typically requires `sudo`) and adds the current user to `dialout`. Reboot or re-login as the vendor readme recommends. + +## Build C/C++ examples from source + +Sample projects live under `api/examples/c_cpp/`. Each example includes `How_To_Build.txt` or `How_to_Build.txt` with Acroname’s steps. In general: + +1. Open that file in the example directory you care about. +2. Copy the **`lib`** directory from the SDK into the example tree where the readme says (headers and `BrainStem2` shared library). +3. Run `make` (or follow the makefile targets documented there). + +You need a normal Linux C/C++ toolchain (`gcc`, `g++`, `make`) and any extra packages the example readme mentions. + +## Reflex (`.reflex` → `.map`) and `arc` + +FiWi can invoke Acroname’s **Reflex compiler** `arc` via `python3 fiwi.py reflex compile …`. The **`arc`** binary is **not** shipped in this driverless `.tgz` listing (no `bin/arc` in the archive). Install the **BrainStem Development Kit** build that includes Reflex tooling, or set `FIWI_REFLEX_ARC` to a full path when you have `arc` elsewhere. + +Details and download pointer: + +```bash +python3 fiwi.py reflex help +python3 fiwi.py reflex which +``` + +Useful environment variables (also in `fiwi reflex help`): + +- `BRAINSTEM2_DEV_ROOT` — root of an extracted kit (FiWi looks for `bin/arc`, `api/lib/BrainStem2`, etc.). +- `FIWI_REFLEX_ARC` — explicit path to `arc`. +- `FIWI_REFLEX_INCLUDE` — extra `-I` directories for `*.reflex` API headers if your layout is nonstandard. + +## Qt / HubTool + +`readme.txt` in the bundle notes that **HubTool** needs Qt packages on Linux. Install the distro-specific packages listed there if you use HubTool from Acroname’s full kit.