diff --git a/Documentation/Development.md b/Documentation/Development.md index 79497af5..b43ae2d1 100644 --- a/Documentation/Development.md +++ b/Documentation/Development.md @@ -104,3 +104,40 @@ If you _need_ an IDE I have used [Nuclei's IDE](https://nucleisys.com/download.p Follow the same idea as the STM Cube IDE notes above. ## Building Pinecil V2 + +To build the Pinecil V2 firmware, you can use a Docker container that provides a consistent development environment across different operating systems, including Windows with WSL2. Here's how to do it: + +### Prerequisites + +Docker Desktop: Install the latest version of Docker Desktop for your operating system from the official website. + +On Windows follow the instructions on the official documentation to install 'Windows Subsystem for Linux' (WSL2). + +### Building Steps + +1. Clone the repository, initialize and update submodules: + + ```sh + git clone --recurse-submodules https://github.com/Ralim/IronOS.git + ``` + +2. Start the Docker container with the development environment: + + ```sh + cd IronOS + ./start_dev.sh + ``` + + This script will build a Docker image and run a container with the necessary tools to build the firmware. + +3. Build the firmware for Pinecil V2: + + ```sh + cd source/source + ./build.sh -l EN -m Pinecilv2 + ``` + + This command will compile the firmware with English language support for Pinecil V2 board. + +4. Find the firmware artifacts: + After the build completes successfully, you can find the firmware artifacts in the `source/Hexfile` directory. diff --git a/source/Core/BSP/Pinecilv2/ble_handlers.cpp b/source/Core/BSP/Pinecilv2/ble_handlers.cpp index ad2c3fe8..2f7f2518 100644 --- a/source/Core/BSP/Pinecilv2/ble_handlers.cpp +++ b/source/Core/BSP/Pinecilv2/ble_handlers.cpp @@ -27,6 +27,7 @@ #include "ble_handlers.h" #include "pd.h" #include "power.hpp" +#include "../../version.h" #if POW_PD #include "USBPD.h" #include "pd.h" @@ -176,9 +177,9 @@ int ble_char_read_bulk_value_callback(struct bt_conn *conn, const struct bt_gatt // TODO: Need to store non-encoded version break; case 3: - // Build - // TODO: Need to store non-encoded version - break; + // FW Version + memcpy(buf, &BUILD_VERSION, sizeof(BUILD_VERSION) - 1); + return sizeof(BUILD_VERSION) - 1; case 4: // Device unique id {