From 9b7a0a235fe425aabba5f026668ad514b5fe8652 Mon Sep 17 00:00:00 2001 From: suku Date: Wed, 29 May 2024 15:21:07 +0200 Subject: [PATCH] SUKU ui library compatibility fixed, AB swich middle position defined using pullup --- Firmware/Dockerfile | 46 +++++++++++++++++++++++++++++++++ Firmware/docker_build.sh | 14 ++++++++++ Firmware/docker_start.sh | 14 ++++++++++ Firmware/main/idf_component.yml | 2 +- Firmware/main/midi_host_fw.c | 4 ++- 5 files changed, 78 insertions(+), 2 deletions(-) create mode 100755 Firmware/Dockerfile create mode 100755 Firmware/docker_build.sh create mode 100755 Firmware/docker_start.sh diff --git a/Firmware/Dockerfile b/Firmware/Dockerfile new file mode 100755 index 0000000..fda70d6 --- /dev/null +++ b/Firmware/Dockerfile @@ -0,0 +1,46 @@ +# Use the base image +FROM docker.io/espressif/idf:v5.1.2 + +# Install pico sdk required dependencies +RUN apt update && \ + apt install -y git python3 cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential xxd && \ + mkdir -p pico && \ + cd pico && \ + git clone https://github.com/raspberrypi/pico-sdk.git --branch master && \ + cd pico-sdk/ && \ + git submodule update --init && \ + cd ../.. && \ + \ + git clone https://github.com/emscripten-core/emsdk.git && \ + cd emsdk && \ + git pull && \ + ./emsdk install latest && \ + ./emsdk activate latest && \ + . ./emsdk_env.sh && \ + cd .. + +# Set working directory + +WORKDIR / + +ENV PICO_SDK_PATH=/pico/pico-sdk + +ENV EMSDK=/emsdk EM_CONFIG=/emsdk/.emscripten EMSDK_NODE=/emsdk/node/14.18.2_64bit/bin/node PATH=/emsdk:/emsdk/upstream/emscripten:/emsdk/upstream/bin:/emsdk/node/14.18.2_64bit/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +# Set up environment variables +ENV CODEQL_HOME=/opt/codeql +ENV PATH="${CODEQL_HOME}/codeql:${PATH}" + +# Install CodeQL CLI tools +RUN mkdir -p ${CODEQL_HOME} && \ + curl -L https://github.com/github/codeql-cli-binaries/releases/latest/download/codeql-linux64.zip -o ${CODEQL_HOME}/codeql.zip && \ + unzip ${CODEQL_HOME}/codeql.zip -d ${CODEQL_HOME} && \ + rm ${CODEQL_HOME}/codeql.zip && \ + codeql --version + +RUN cd ${CODEQL_HOME} && git clone --recursive https://github.com/github/codeql.git codeql-repo + +RUN apt update && \ + apt install -y socat + +# Define default command +CMD ["bash"] diff --git a/Firmware/docker_build.sh b/Firmware/docker_build.sh new file mode 100755 index 0000000..823667c --- /dev/null +++ b/Firmware/docker_build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Check if Docker is installed +if command -v docker &> /dev/null; then + CONTAINER_TOOL="docker" +# Check if Podman is installed +elif command -v podman &> /dev/null; then + CONTAINER_TOOL="podman" +else + echo "Neither Docker nor Podman found. Please install one of them to proceed." + exit 1 +fi + +$CONTAINER_TOOL build -t idf-pico-merged . diff --git a/Firmware/docker_start.sh b/Firmware/docker_start.sh new file mode 100755 index 0000000..97562e1 --- /dev/null +++ b/Firmware/docker_start.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# Check if Docker is installed +if command -v docker &> /dev/null; then + CONTAINER_TOOL="docker" +# Check if Podman is installed +elif command -v podman &> /dev/null; then + CONTAINER_TOOL="podman" +else + echo "Neither Docker nor Podman found. Please install one of them to proceed." + exit 1 +fi + +$CONTAINER_TOOL run --privileged --network=host -it -v /dev:/dev -v $PWD:/project -w /project/ idf-pico-merged diff --git a/Firmware/main/idf_component.yml b/Firmware/main/idf_component.yml index 6c09a53..b7701b2 100644 --- a/Firmware/main/idf_component.yml +++ b/Firmware/main/idf_component.yml @@ -1,8 +1,8 @@ ## IDF Component Manager Manifest File dependencies: + sukuwc/grid_common: "^2024.5.211458" sukuwc/grid_esp32_led: "*" sukuwc/grid_esp32_nvm: "*" - sukuwc/grid_common: "*" joltwallet/littlefs: "*" ## Required IDF version idf: diff --git a/Firmware/main/midi_host_fw.c b/Firmware/main/midi_host_fw.c index a655cf1..67ad385 100644 --- a/Firmware/main/midi_host_fw.c +++ b/Firmware/main/midi_host_fw.c @@ -158,6 +158,7 @@ uint8_t grid_platform_get_adc_bit_depth(void) { return 12; } #include "grid_led.h" #include "grid_lua_api.h" #include "grid_ui.h" +#include "grid_ui_system.h" #include "grid_esp32_led.h" #include "grid_esp32_nvm.h" @@ -174,7 +175,7 @@ void knot_module_ui_init(struct grid_ain_model* ain, struct grid_led_model* led, // grid_ui_element_init(ui, j, GRID_UI_ELEMENT_POTENTIOMETER); } - grid_ui_element_init(ui, ui->element_list_length - 1, GRID_UI_ELEMENT_SYSTEM); + grid_ui_element_system_init(&ui->element_list[ui->element_list_length - 1]); // ui->lua_ui_init_callback = grid_lua_ui_init_po16; } @@ -234,6 +235,7 @@ void app_main(void) { // MIDI A/B SWITCH AND THROUGH BUTTON INTERACTIVITY gpio_set_direction(SW_AB_PIN, GPIO_MODE_INPUT); + gpio_pullup_en(SW_AB_PIN); gpio_set_direction(SW_MODE_PIN, GPIO_MODE_INPUT); SemaphoreHandle_t nvm_or_port = xSemaphoreCreateBinary();