From 9266a53f4ef3bdf787d0985a76e7f3969741bac1 Mon Sep 17 00:00:00 2001 From: geeksville Date: Thu, 20 Jun 2024 09:47:07 -0700 Subject: [PATCH] Make serial port on wio-sdk-wm1110 board work By disabling the (inaccessible) adafruit USB --- boards/wio-sdk-wm1110.json | 7 ------- extra_scripts/README.md | 3 +++ extra_scripts/disable_adafruit_usb.py | 17 +++++++++++++++++ variants/wio-sdk-wm1110/platformio.ini | 6 +++++- variants/wio-sdk-wm1110/variant.h | 7 +++++++ 5 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 extra_scripts/README.md create mode 100644 extra_scripts/disable_adafruit_usb.py diff --git a/boards/wio-sdk-wm1110.json b/boards/wio-sdk-wm1110.json index 029c9c085..882f4443e 100644 --- a/boards/wio-sdk-wm1110.json +++ b/boards/wio-sdk-wm1110.json @@ -7,13 +7,6 @@ "cpu": "cortex-m4", "extra_flags": "-DARDUINO_WIO_WM1110 -DNRF52840_XXAA", "f_cpu": "64000000L", - "hwids": [ - ["0x239A", "0x8029"], - ["0x239A", "0x0029"], - ["0x239A", "0x002A"], - ["0x239A", "0x802A"] - ], - "usb_product": "WIO-BOOT", "mcu": "nrf52840", "variant": "Seeed_WIO_WM1110", "bsp": { diff --git a/extra_scripts/README.md b/extra_scripts/README.md new file mode 100644 index 000000000..4c797f49f --- /dev/null +++ b/extra_scripts/README.md @@ -0,0 +1,3 @@ +# extra_scripts + +This directory contains special [scripts](https://docs.platformio.org/en/latest/scripting/index.html) that are used to modify the platformio environment in rare cases. diff --git a/extra_scripts/disable_adafruit_usb.py b/extra_scripts/disable_adafruit_usb.py new file mode 100644 index 000000000..109d1f3d4 --- /dev/null +++ b/extra_scripts/disable_adafruit_usb.py @@ -0,0 +1,17 @@ +Import("env") + +# NOTE: This is not currently used, but can serve as an example on how to write extra_scripts + +print("Current CLI targets", COMMAND_LINE_TARGETS) +print("Current Build targets", BUILD_TARGETS) +print("CPP defs", env.get("CPPDEFINES")) + +# Adafruit.py in the platformio build tree is a bit naive and always enables their USB stack for building. We don't want this. +# So come in after that python script has run and disable it. This hack avoids us having to fork that big project and send in a PR +# which might not be accepted. -@geeksville + +env["CPPDEFINES"].remove("USBCON") +env["CPPDEFINES"].remove("USE_TINYUSB") + +# Custom actions when building program/firmware +# env.AddPreAction("buildprog", callback...) diff --git a/variants/wio-sdk-wm1110/platformio.ini b/variants/wio-sdk-wm1110/platformio.ini index 8b1433dd1..7ca82e4c6 100644 --- a/variants/wio-sdk-wm1110/platformio.ini +++ b/variants/wio-sdk-wm1110/platformio.ini @@ -2,6 +2,10 @@ [env:wio-sdk-wm1110] extends = nrf52840_base board = wio-sdk-wm1110 + +# Remove adafruit USB serial from the build (it is incompatible with using the ch340 serial chip on this board) +build_unflags = ${nrf52840_base:build_unflags} -DUSBCON -DUSE_TINYUSB + board_level = extra ; platform = https://github.com/maxgerhardt/platform-nordicnrf52#cac6fcf943a41accd2aeb4f3659ae297a73f422e build_flags = ${nrf52840_base.build_flags} -Ivariants/wio-sdk-wm1110 -DWIO_WM1110 @@ -12,4 +16,4 @@ lib_deps = ${nrf52840_base.lib_deps} debug_tool = jlink ; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm) -upload_protocol = jlink \ No newline at end of file +upload_protocol = jlink diff --git a/variants/wio-sdk-wm1110/variant.h b/variants/wio-sdk-wm1110/variant.h index f027b469f..8ad8c769a 100644 --- a/variants/wio-sdk-wm1110/variant.h +++ b/variants/wio-sdk-wm1110/variant.h @@ -31,6 +31,13 @@ #include "WVariant.h" +#ifdef USE_TINYUSB +#error TinyUSB must be disabled by platformio before using this variant +#endif + +// We use the hardware serial port for the serial console +#define Serial Serial1 + #ifdef __cplusplus extern "C" { #endif // __cplusplus