summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorSaulo VerĂ­ssimo <[email protected]>2026-03-24 23:38:36 -0300
committerSaulo VerĂ­ssimo <[email protected]>2026-05-12 11:07:44 -0300
commitd5c5ac586bfdbf53e18a8cdbb11b978f53b6d059 (patch)
tree2cbcefc824ad76a3aeca6c7b06af1cbee1c68777 /hw
parent290470bda38ce75bbadcce8939435953ca483269 (diff)
example: add MIDI 2.0 Host example with display (midi2_host)
Add Host example that receives UMP from a MIDI 2.0 Device via PIO-USB and displays received messages on a SSD1306 OLED (I2C, 128x64). Features: - Boot checklist on display (PWR, TinyUSB, USB bus, Device, Descriptor, Alt Setting UMP, Mount, Receiving) - Decode and display all MIDI 2.0 Channel Voice messages - PIO-USB Host on rhport 1 (GP12/GP13 for Waveshare RP2350-USB-A) - SSD1306 display via I2C0 (GP4=SDA, GP5=SCL) Also add board definition for Waveshare RP2350-USB-A. Tested: Waveshare RP2350-USB-A (Host) receiving UMP from Raspberry Pi Pico (Device) via USB cable, notes displayed on SSD1306 OLED
Diffstat (limited to 'hw')
-rw-r--r--hw/bsp/rp2040/boards/waveshare_rp2350_usb_a/board.cmake2
-rw-r--r--hw/bsp/rp2040/boards/waveshare_rp2350_usb_a/board.h49
2 files changed, 51 insertions, 0 deletions
diff --git a/hw/bsp/rp2040/boards/waveshare_rp2350_usb_a/board.cmake b/hw/bsp/rp2040/boards/waveshare_rp2350_usb_a/board.cmake
new file mode 100644
index 000000000..e888c7fb3
--- /dev/null
+++ b/hw/bsp/rp2040/boards/waveshare_rp2350_usb_a/board.cmake
@@ -0,0 +1,2 @@
+set(PICO_PLATFORM rp2350-arm-s)
+set(PICO_BOARD waveshare_rp2350_usb_a)
diff --git a/hw/bsp/rp2040/boards/waveshare_rp2350_usb_a/board.h b/hw/bsp/rp2040/boards/waveshare_rp2350_usb_a/board.h
new file mode 100644
index 000000000..0af8a695f
--- /dev/null
+++ b/hw/bsp/rp2040/boards/waveshare_rp2350_usb_a/board.h
@@ -0,0 +1,49 @@
+/*
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2026 Saulo Verissimo
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * This file is part of the TinyUSB stack.
+ */
+
+/* metadata:
+ name: Waveshare RP2350-USB-A
+ url: https://www.waveshare.com/wiki/RP2350-USB-A
+*/
+
+#ifndef TUSB_BOARD_H
+#define TUSB_BOARD_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+//--------------------------------------------------------------------+
+// PIO_USB
+//--------------------------------------------------------------------+
+// Waveshare RP2350-USB-A: PIO-USB on GP12 (D+) / GP13 (D-)
+// PICO_DEFAULT_PIO_USB_DP_PIN already defined in SDK board header
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif