From 69c5cfc186ed5966bb4d9b5397a098949de7961b Mon Sep 17 00:00:00 2001 From: HipsterBrown Date: Fri, 17 Apr 2026 22:58:52 -0400 Subject: [PATCH 1/3] fix(pico): add missing comma to pico io manifest includes list --- modules/io/manifests/pico/manifest.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/io/manifests/pico/manifest.json b/modules/io/manifests/pico/manifest.json index 19f120abf..76b07763b 100644 --- a/modules/io/manifests/pico/manifest.json +++ b/modules/io/manifests/pico/manifest.json @@ -6,7 +6,7 @@ "$(IO)/analog/manifest.json", "$(IO)/audioout/manifest.json", "$(IO)/digital/manifest.json", - "$(IO)/i2c/manifest.json" + "$(IO)/i2c/manifest.json", "$(IO)/pulsecount/manifest.json", "$(IO)/pwm/manifest.json", "$(IO)/serial/manifest.json", @@ -18,7 +18,6 @@ "$(MODULES)/pins/digital/pico/modGPIO" ], "commodetto/Bitmap": "$(COMMODETTO)/commodettoBitmap", - "system": "$(IO)/system/*" }, "preload": [ From 36a7388d1e12570895f881d21cd0a7a871986d42 Mon Sep 17 00:00:00 2001 From: HipsterBrown Date: Fri, 17 Apr 2026 23:03:16 -0400 Subject: [PATCH 2/3] fix(io): use pico/manifest_net.json only for compatible subplatform targets --- modules/io/manifest.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/io/manifest.json b/modules/io/manifest.json index 3c02532dc..378335206 100644 --- a/modules/io/manifest.json +++ b/modules/io/manifest.json @@ -15,6 +15,12 @@ "include": "./manifests/esp32/manifest.json" }, "pico": { + "include": "./manifests/pico/manifest.json" + }, + "pico/pico_w": { + "include": "./manifests/pico/manifest_net.json" + }, + "pico/pico_2_w": { "include": "./manifests/pico/manifest_net.json" }, "nrf52": { From a237061e63152123a5ac4959e74f539cad981cb8 Mon Sep 17 00:00:00 2001 From: HipsterBrown Date: Fri, 17 Apr 2026 23:05:05 -0400 Subject: [PATCH 3/3] fix(pico/audioout): add conditional guard defines, cast samples type --- modules/io/audioout/pico/audioout-pico.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/io/audioout/pico/audioout-pico.c b/modules/io/audioout/pico/audioout-pico.c index 7ea4cc442..7be5a6e82 100644 --- a/modules/io/audioout/pico/audioout-pico.c +++ b/modules/io/audioout/pico/audioout-pico.c @@ -31,6 +31,19 @@ #include "pico/audio_i2s.h" #include "modTimer.h" +#ifndef MODDEF_AUDIOOUT_I2S_BITSPERSAMPLE + #define MODDEF_AUDIOOUT_I2S_BITSPERSAMPLE 16 +#endif +#ifndef MODDEF_AUDIOOUT_I2S_DATAOUT_PIN + #define MODDEF_AUDIOOUT_I2S_DATAOUT_PIN PICO_AUDIO_I2S_DATA_PIN +#endif +#ifndef MODDEF_AUDIOOUT_I2S_BCK_PIN + #define MODDEF_AUDIOOUT_I2S_BCK_PIN PICO_AUDIO_I2S_CLOCK_PIN_BASE +#endif +#ifndef MODDEF_AUDIOOUT_I2S_LR_PIN + #define MODDEF_AUDIOOUT_I2S_LR_PIN (MODDEF_AUDIOOUT_I2S_BCK_PIN + 1) +#endif + typedef struct AudioOutElementRecord AudioOutElementRecord; typedef struct AudioOutElementRecord *AudioOutElement; @@ -576,7 +589,7 @@ int doWrite(AudioOut audioOut, void *audioData, xsUnsignedValue requested) int16_t volumeFixed = audioOut->volumeFixed; int requestedSamples = amt >> 1; //@@ broken for stereo & 8 bit int16_t *src = (int16_t *)audioData; - int16_t *samples = buffer->buffer->bytes + audioOut->bufferPendingPos; + int16_t *samples = (int16_t *)(buffer->buffer->bytes + audioOut->bufferPendingPos); int i; for (i=0; i> 8;