diff --git a/.gitmodules b/.gitmodules index 6efbe97a..7998285c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,4 @@ [submodule "rpi-rgb-led-matrix-master"] path = rpi-rgb-led-matrix-master url = https://github.com/hzeller/rpi-rgb-led-matrix.git + branch = master diff --git a/config/config.template.json b/config/config.template.json index 8eb664e1..b55220ef 100644 --- a/config/config.template.json +++ b/config/config.template.json @@ -112,7 +112,8 @@ "limit_refresh_rate_hz": 100 }, "runtime": { - "gpio_slowdown": 3 + "gpio_slowdown": 3, + "rp1_rio": 0 }, "display_durations": {}, "use_short_date_format": true, diff --git a/first_time_install.sh b/first_time_install.sh index 2c46ed7f..f2b777ba 100644 --- a/first_time_install.sh +++ b/first_time_install.sh @@ -795,7 +795,7 @@ else # Try to initialize submodule if .gitmodules exists if [ -f "$PROJECT_ROOT_DIR/.gitmodules" ] && grep -q "rpi-rgb-led-matrix" "$PROJECT_ROOT_DIR/.gitmodules"; then echo "Initializing rpi-rgb-led-matrix submodule..." - if ! git submodule update --init --recursive rpi-rgb-led-matrix-master 2>&1; then + if ! git submodule update --init --remote --recursive rpi-rgb-led-matrix-master 2>&1; then echo "⚠ Submodule init failed, cloning directly from GitHub..." git clone https://github.com/hzeller/rpi-rgb-led-matrix.git rpi-rgb-led-matrix-master fi @@ -814,7 +814,7 @@ else cd "$PROJECT_ROOT_DIR" rm -rf rpi-rgb-led-matrix-master if [ -f "$PROJECT_ROOT_DIR/.gitmodules" ] && grep -q "rpi-rgb-led-matrix" "$PROJECT_ROOT_DIR/.gitmodules"; then - git submodule update --init --recursive rpi-rgb-led-matrix-master + git submodule update --init --remote --recursive rpi-rgb-led-matrix-master else git clone https://github.com/hzeller/rpi-rgb-led-matrix.git rpi-rgb-led-matrix-master fi diff --git a/rpi-rgb-led-matrix-master b/rpi-rgb-led-matrix-master index 2cfff2a4..89072356 160000 --- a/rpi-rgb-led-matrix-master +++ b/rpi-rgb-led-matrix-master @@ -1 +1 @@ -Subproject commit 2cfff2a4b14825795e195d2bf3a9b2ef2ac93446 +Subproject commit 89072356305e272c2b1af32b8377a274df3d6d9f diff --git a/src/display_manager.py b/src/display_manager.py index 43433582..15538866 100644 --- a/src/display_manager.py +++ b/src/display_manager.py @@ -100,6 +100,10 @@ class DisplayManager: options.pwm_dither_bits = hardware_config.get('pwm_dither_bits') if 'inverse_colors' in hardware_config: options.inverse_colors = hardware_config.get('inverse_colors') + # Pi 5 only: 0=PIO/RP1 coprocessor (default, less CPU), + # 1=RIO/Registered IO (faster; gpio_slowdown effect is inverted in this mode) + if 'rp1_rio' in runtime_config: + options.rp1_rio = runtime_config.get('rp1_rio') logger.info(f"Initializing RGB Matrix with settings: rows={options.rows}, cols={options.cols}, chain_length={options.chain_length}, parallel={options.parallel}, hardware_mapping={options.hardware_mapping}")