From 9920da0915cf75e3f3690f7c2d775adf3f55881c Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Jul 2021 01:00:43 +0200 Subject: [PATCH 001/146] Add pacakge definitions, skeletons for builder script --- builder/frameworks/arduino/arduino.py | 1 + platform.json | 8 +++++++- platform.py | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 builder/frameworks/arduino/arduino.py diff --git a/builder/frameworks/arduino/arduino.py b/builder/frameworks/arduino/arduino.py new file mode 100644 index 0000000..065e58e --- /dev/null +++ b/builder/frameworks/arduino/arduino.py @@ -0,0 +1 @@ +# ToDo: readout core and call correct builder script (e.g., mbed-core/arduino-core-mbed.py) \ No newline at end of file diff --git a/platform.json b/platform.json index d50178c..11d90ee 100644 --- a/platform.json +++ b/platform.json @@ -22,7 +22,7 @@ "frameworks": { "arduino": { "package": "framework-arduino-mbed", - "script": "builder/frameworks/arduino/mbed-core/arduino-core-mbed.py" + "script": "builder/frameworks/arduino/arduino.py" } }, "packages": { @@ -37,6 +37,12 @@ "owner": "platformio", "version": "~2.1.0" }, + "framework-arduino-pico-earlephilhower": { + "type": "framework", + "optional": true, + "owner": "maxgerhardt", + "version": "~1.10902.0" + }, "tool-rp2040tools": { "type": "uploader", "owner": "platformio", diff --git a/platform.py b/platform.py index c4e29da..03ca245 100644 --- a/platform.py +++ b/platform.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import sys import copy import platform @@ -24,6 +25,24 @@ def is_embedded(self): return True def configure_default_packages(self, variables, targets): + # configure arduino core package. + # select the right one based on the build.core, disable other one. + board = variables.get("board") + board_config = self.board_config(board) + build_core = variables.get( + "board_build.core", board_config.get("build.core", "arduino")) + + frameworks = variables.get("pioframework", []) + if "arduino" in frameworks: + if build_core == "arduino": + self.frameworks["arduino"]["package"] = "framework-arduino-mbed" + self.packages["framework-arduino-pico-earlephilhower"]["optional"] = True + elif build_core == "earlephilhower": + self.frameworks["arduino"]["package"] = "framework-arduino-pico-earlephilhower" + self.packages["framework-arduino-mbed"]["optional"] = True + else: + sys.stderr.write("Error! Unknown build.core value '%s'. Don't know which Arduino core package to use." % build_core) + # configure J-LINK tool jlink_conds = [ "jlink" in variables.get(option, "") From ef26f67e95b9c4b3b91c620927c77e9e8f5c1a7a Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Jul 2021 01:05:15 +0200 Subject: [PATCH 002/146] Rename package --- platform.json | 2 +- platform.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/platform.json b/platform.json index 11d90ee..1bf5587 100644 --- a/platform.json +++ b/platform.json @@ -37,7 +37,7 @@ "owner": "platformio", "version": "~2.1.0" }, - "framework-arduino-pico-earlephilhower": { + "framework-arduinopico": { "type": "framework", "optional": true, "owner": "maxgerhardt", diff --git a/platform.py b/platform.py index 03ca245..dea47e8 100644 --- a/platform.py +++ b/platform.py @@ -36,9 +36,9 @@ def configure_default_packages(self, variables, targets): if "arduino" in frameworks: if build_core == "arduino": self.frameworks["arduino"]["package"] = "framework-arduino-mbed" - self.packages["framework-arduino-pico-earlephilhower"]["optional"] = True + self.packages["framework-arduinopico"]["optional"] = True elif build_core == "earlephilhower": - self.frameworks["arduino"]["package"] = "framework-arduino-pico-earlephilhower" + self.frameworks["arduino"]["package"] = "framework-arduinopico" self.packages["framework-arduino-mbed"]["optional"] = True else: sys.stderr.write("Error! Unknown build.core value '%s'. Don't know which Arduino core package to use." % build_core) From 580b352086164bc2c82f4eab93965089bbaa97c2 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Jul 2021 01:28:14 +0200 Subject: [PATCH 003/146] Add build script selector --- builder/frameworks/arduino/arduino.py | 40 ++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/builder/frameworks/arduino/arduino.py b/builder/frameworks/arduino/arduino.py index 065e58e..75d45e4 100644 --- a/builder/frameworks/arduino/arduino.py +++ b/builder/frameworks/arduino/arduino.py @@ -1 +1,39 @@ -# ToDo: readout core and call correct builder script (e.g., mbed-core/arduino-core-mbed.py) \ No newline at end of file +# Copyright 2021-present Maximilian Gerhardt +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +from os.path import join, isfile + +from SCons.Script import DefaultEnvironment, SConscript + +env = DefaultEnvironment() +mcu = env.BoardConfig().get("build.mcu") +core = env.BoardConfig().get("build.core", "arduino") +build_script = "" + +# select build script as either from the Earle Philhower core or +# from the builder script contained in this platform. + +if core == "earlephilhower": + build_script = join( + env.PioPlatform().get_package_dir("framework-arduinopico"), "tools", "platformio-build.py") +else: + build_script = join(env.PioPlatform().get_dir(), "builder", "frameworks", "arduino", "mbed-core", "arduino-core-mbed.py") + +if not isfile(build_script): + sys.stderr.write( + "Error: Missing PlatformIO build script %s!\n" % build_script) + env.Exit(1) + +SConscript(build_script) From a94fd6258aa09e0c7d2c99ef891258525e023ec6 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Jul 2021 01:29:23 +0200 Subject: [PATCH 004/146] Clean build selector script --- builder/frameworks/arduino/arduino.py | 1 - 1 file changed, 1 deletion(-) diff --git a/builder/frameworks/arduino/arduino.py b/builder/frameworks/arduino/arduino.py index 75d45e4..6a3240e 100644 --- a/builder/frameworks/arduino/arduino.py +++ b/builder/frameworks/arduino/arduino.py @@ -18,7 +18,6 @@ from SCons.Script import DefaultEnvironment, SConscript env = DefaultEnvironment() -mcu = env.BoardConfig().get("build.mcu") core = env.BoardConfig().get("build.core", "arduino") build_script = "" From 4cdb352484813fcf4da3ca14f055e4579ae63c71 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Jul 2021 01:30:23 +0200 Subject: [PATCH 005/146] Formatting --- builder/frameworks/arduino/arduino.py | 3 ++- platform.py | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/builder/frameworks/arduino/arduino.py b/builder/frameworks/arduino/arduino.py index 6a3240e..eaa57f9 100644 --- a/builder/frameworks/arduino/arduino.py +++ b/builder/frameworks/arduino/arduino.py @@ -28,7 +28,8 @@ build_script = join( env.PioPlatform().get_package_dir("framework-arduinopico"), "tools", "platformio-build.py") else: - build_script = join(env.PioPlatform().get_dir(), "builder", "frameworks", "arduino", "mbed-core", "arduino-core-mbed.py") + build_script = join(env.PioPlatform().get_dir(), "builder", + "frameworks", "arduino", "mbed-core", "arduino-core-mbed.py") if not isfile(build_script): sys.stderr.write( diff --git a/platform.py b/platform.py index dea47e8..e813269 100644 --- a/platform.py +++ b/platform.py @@ -25,7 +25,7 @@ def is_embedded(self): return True def configure_default_packages(self, variables, targets): - # configure arduino core package. + # configure arduino core package. # select the right one based on the build.core, disable other one. board = variables.get("board") board_config = self.board_config(board) @@ -40,8 +40,9 @@ def configure_default_packages(self, variables, targets): elif build_core == "earlephilhower": self.frameworks["arduino"]["package"] = "framework-arduinopico" self.packages["framework-arduino-mbed"]["optional"] = True - else: - sys.stderr.write("Error! Unknown build.core value '%s'. Don't know which Arduino core package to use." % build_core) + else: + sys.stderr.write( + "Error! Unknown build.core value '%s'. Don't know which Arduino core package to use." % build_core) # configure J-LINK tool jlink_conds = [ @@ -103,7 +104,8 @@ def _add_default_debug_tools(self, board): } else: openocd_target = debug.get("openocd_target") - assert openocd_target, ("Missing target configuration for %s" % board.id) + assert openocd_target, ("Missing target configuration for %s" % + board.id) debug["tools"][link] = { "server": { "executable": "bin/openocd", From e3828b361dc87a885011bdba1fa8ca7a99b23e76 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Jul 2021 04:29:18 +0200 Subject: [PATCH 006/146] Use toolchain-pico --- platform.json | 6 ++++++ platform.py | 2 ++ 2 files changed, 8 insertions(+) diff --git a/platform.json b/platform.json index 1bf5587..1148c3c 100644 --- a/platform.json +++ b/platform.json @@ -31,6 +31,12 @@ "owner": "platformio", "version": "~1.90201.0" }, + "toolchain-pico": { + "type": "toolchain", + "optional": true, + "owner": "maxgerhardt", + "version": "~5.100300.0" + }, "framework-arduino-mbed": { "type": "framework", "optional": true, diff --git a/platform.py b/platform.py index e813269..e63ad5d 100644 --- a/platform.py +++ b/platform.py @@ -40,6 +40,8 @@ def configure_default_packages(self, variables, targets): elif build_core == "earlephilhower": self.frameworks["arduino"]["package"] = "framework-arduinopico" self.packages["framework-arduino-mbed"]["optional"] = True + self.packages.pop("toolchain-gccarmnoneeabi", None) + self.packages["toolchain-pico"]["optional"] = False else: sys.stderr.write( "Error! Unknown build.core value '%s'. Don't know which Arduino core package to use." % build_core) From 3560177601f6cce397dbb221be232af2c16fee47 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Jul 2021 19:41:40 +0200 Subject: [PATCH 007/146] Update board info --- boards/nanorp2040connect.json | 12 +++++++++++- boards/pico.json | 14 ++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/boards/nanorp2040connect.json b/boards/nanorp2040connect.json index 45fc6b3..95d684b 100644 --- a/boards/nanorp2040connect.json +++ b/boards/nanorp2040connect.json @@ -15,7 +15,17 @@ ] ], "mcu": "rp2040", - "variant": "NANO_RP2040_CONNECT" + "variant": "NANO_RP2040_CONNECT", + "arduino": { + "earlephilhower": { + "variant": "arduino_nano_connect", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_pid": "0x0058", + "usb_vid": "0x2341", + "usb_manufacturer": "Arduino", + "usb_product" : "Arduino Nano RP2040 Connect" + } + } }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/pico.json b/boards/pico.json index 4a2dc67..2587285 100644 --- a/boards/pico.json +++ b/boards/pico.json @@ -11,7 +11,17 @@ ] ], "mcu": "rp2040", - "variant": "RASPBERRY_PI_PICO" + "variant": "RASPBERRY_PI_PICO", + "arduino": { + "earlephilhower": { + "variant": "rpipico", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x000a", + "usb_manufacturer": "Raspberry Pi", + "usb_product": "Pico" + } + } }, "debug": { "jlink_device": "RP2040_M0_0", @@ -39,4 +49,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Raspberry Pi" -} +} \ No newline at end of file From 630c935d5ded4a0a86374b1a8f08fce27dbfd933 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Jul 2021 22:51:58 +0200 Subject: [PATCH 008/146] Add LittleFS build support, move filesystem size parser code here --- builder/main.py | 127 ++++++++++++++++++++++++++++++++++++++++++++++-- platform.json | 6 +++ platform.py | 4 ++ 3 files changed, 133 insertions(+), 4 deletions(-) diff --git a/builder/main.py b/builder/main.py index 4576448..1c2b228 100644 --- a/builder/main.py +++ b/builder/main.py @@ -16,6 +16,7 @@ from platform import system from os import makedirs from os.path import isdir, join +import re from platformio.util import get_serial_ports @@ -67,6 +68,9 @@ def generate_uf2(target, source, env): ARFLAGS=["rc"], + MKFSTOOL="mklittlefs", + PICO_FS_IMAGE_NAME=env.get("PICO_FS_IMAGE_NAME", "littlefs"), + SIZEPROGREGEXP=r"^(?:\.text|\.data|\.rodata|\.text.align|\.ARM.exidx)\s+(\d+).*", SIZEDATAREGEXP=r"^(?:\.data|\.bss|\.noinit)\s+(\d+).*", SIZECHECKCMD="$SIZETOOL -A -d $SOURCES", @@ -109,6 +113,100 @@ def generate_uf2(target, source, env): if not env.get("PIOFRAMEWORK"): env.SConscript("frameworks/_bare.py") + +def convert_size_expression_to_int(expression): + conversion_factors = { + "M": 1024*1024, + "MB": 1024*1024, + "K": 1024, + "KB": 1024, + "B": 1, + "": 1 # giving no conversion factor is factor 1. + } + # match . + extract_regex = r'^((?:[0-9]*[.])?[0-9]+)([mkbMKB]*)$' + res = re.findall(extract_regex, expression) + # unparsable expression? Warning. + if len(res) == 0: + sys.stderr.write( + "Error: Could not parse filesystem size expression '%s'." + " Will treat as size = 0.\n" % str(expression)) + return 0 + # access first result + number, factor = res[0] + number = float(number) + number *= conversion_factors[factor.upper()] + return int(number) + +def fetch_fs_size(env): + # follow generation formulas from makeboards.py for Earle Philhower core + # given the total flash size, a user can specify + # the amount for the filesystem (0MB, 2MB, 4MB, 8MB, 16MB) + # via board_build.filesystem_size, + # and we will calculate the flash size and eeprom size from that. + flash_size = board.get("upload.maximum_size") + filesystem_size = board.get("build.filesystem_size", "0MB") + filesystem_size_int = convert_size_expression_to_int(filesystem_size) + + maximum_size = flash_size - 4096 - filesystem_size_int + + print("Flash size: %.2fMB" % (flash_size / 1024.0 / 1024.0)) + print("Sketch size: %.2fMB" % (maximum_size / 1024.0 / 1024.0)) + print("Filesystem size: %.2fMB" % (filesystem_size_int / 1024.0 / 1024.0)) + + flash_length = maximum_size + eeprom_start = 0x10000000 + flash_size - 4096 + fs_start = 0x10000000 + flash_size - 4096 - filesystem_size_int + fs_end = 0x10000000 + flash_size - 4096 + + if maximum_size <= 0: + sys.stderr.write( + "Error: Filesystem too large for given flash. " + "Can at max be flash size - 4096 bytes. " + "Available sketch size with current " + "config would be %d bytes.\n" % maximum_size) + sys.stderr.flush() + env.Exit(-1) + + env["PICO_FLASH_LENGTH"] = flash_length + env["PICO_EEPROM_START"] = eeprom_start + env["FS_START"] = fs_start + env["FS_END"] = fs_end + # LittleFS configuration paramters taken from + # https://github.com/earlephilhower/arduino-pico-littlefs-plugin/blob/master/src/PicoLittleFS.java + env["FS_PAGE"] = 256 + env["FS_BLOCK"] = 4096 + + print("Maximium size: %d Flash Length: %d " + "EEPROM Start: %d Filesystem start %d " + "Filesystem end %s" % + (maximum_size,flash_length, eeprom_start, fs_start, fs_end)) + + +def __fetch_fs_size(target, source, env): + fetch_fs_size(env) + return (target, source) + +env.Append( + BUILDERS=dict( + DataToBin=Builder( + action=env.VerboseAction(" ".join([ + '"$MKFSTOOL"', + "-c", "$SOURCES", + "-p", "$FS_PAGE", + "-b", "$FS_BLOCK", + "-s", "${FS_END - FS_START}", + "$TARGET" + ]), "Building file system image from '$SOURCES' directory to $TARGET"), + emitter=__fetch_fs_size, + source_factory=env.Dir, + suffix=".bin" + ) + ) +) + +env["fetch_fs_size"] = fetch_fs_size + # # Target: Build executable and linkable firmware # @@ -119,9 +217,15 @@ def generate_uf2(target, source, env): target_firm = join("$BUILD_DIR", "${PROGNAME}.bin") else: target_elf = env.BuildProgram() - target_firm = env.ElfToBin(join("$BUILD_DIR", "${PROGNAME}"), target_elf) - env.Depends(target_firm, "checkprogsize") - + if set(["buildfs", "uploadfs"]) & set(COMMAND_LINE_TARGETS): + target_firm = env.DataToBin( + join("$BUILD_DIR", "${PICO_FS_IMAGE_NAME}"), "$PROJECTDATA_DIR") + AlwaysBuild(target_firm) + else: + target_firm = env.ElfToBin(join("$BUILD_DIR", "${PROGNAME}"), target_elf) + env.Depends(target_firm, "checkprogsize") + +env.AddPlatformTarget("buildfs", target_firm, target_firm, "Build Filesystem Image") AlwaysBuild(env.Alias("nobuild", target_firm)) target_buildprog = env.Alias("buildprog", target_firm, target_firm) @@ -129,6 +233,21 @@ def generate_uf2(target, source, env): target_elf, env.VerboseAction(generate_uf2, "Generating UF2 image") ) +def _update_max_upload_size(env): + fetch_fs_size(env) + env.BoardConfig().update("upload.maximum_size", env["PICO_FLASH_LENGTH"]) + +# update max upload size based on CSV file +if env.get("PIOMAINPROG"): + env.AddPreAction( + "checkprogsize", + env.VerboseAction( + lambda source, target, env: _update_max_upload_size(env), + "Retrieving maximum program size $SOURCE")) +# remove after PIO Core 3.6 release +elif set(["checkprogsize", "upload"]) & set(COMMAND_LINE_TARGETS): + _update_max_upload_size(env) + # # Target: Print binary size # @@ -232,7 +351,7 @@ def _jlink_cmd_script(env, source): sys.stderr.write("Warning! Unknown upload protocol %s\n" % upload_protocol) AlwaysBuild(env.Alias("upload", upload_source, upload_actions)) - +env.AddPlatformTarget("uploadfs", target_firm, upload_actions, "Upload Filesystem Image") # # Default targets # diff --git a/platform.json b/platform.json index 1148c3c..3f4397d 100644 --- a/platform.json +++ b/platform.json @@ -65,6 +65,12 @@ "optional": true, "owner": "platformio", "version": "~1.72000.0" + }, + "tool-mklittlefs": { + "type": "uploader", + "optional": true, + "owner": "platformio", + "version": "~1.203.0" } } } diff --git a/platform.py b/platform.py index e63ad5d..7234899 100644 --- a/platform.py +++ b/platform.py @@ -46,6 +46,10 @@ def configure_default_packages(self, variables, targets): sys.stderr.write( "Error! Unknown build.core value '%s'. Don't know which Arduino core package to use." % build_core) + # if we want to build a filesystem, we need the tools. + if "buildfs" in targets: + self.packages['tool-mklittlefs']['optional'] = False + # configure J-LINK tool jlink_conds = [ "jlink" in variables.get(option, "") From 87f647de6321084b12f2a2ae33aa4aa4f71596f4 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Jul 2021 22:55:11 +0200 Subject: [PATCH 009/146] Minor cleanup --- builder/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/main.py b/builder/main.py index 1c2b228..8a15a49 100644 --- a/builder/main.py +++ b/builder/main.py @@ -205,6 +205,7 @@ def __fetch_fs_size(target, source, env): ) ) +# store function to get infno about filesystems for builder scripts. env["fetch_fs_size"] = fetch_fs_size # From 77e0d3a29d1dbf00fd3ec3271104e3bf4820869c Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 14 Jul 2021 23:25:38 +0200 Subject: [PATCH 010/146] Upload filesystem via Picotool working --- builder/main.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/builder/main.py b/builder/main.py index 8a15a49..34b5595 100644 --- a/builder/main.py +++ b/builder/main.py @@ -17,6 +17,7 @@ from os import makedirs from os.path import isdir, join import re +import time from platformio.util import get_serial_ports @@ -258,6 +259,15 @@ def _update_max_upload_size(env): env.VerboseAction("$SIZEPRINTCMD", "Calculating size $SOURCE")) AlwaysBuild(target_size) +def DelayBeforeUpload(target, source, env): # pylint: disable=W0613,W0621 + time.sleep(0.5) + +def RebootPico(target, source, env): + time.sleep(0.5) + env.Execute( + '"%s" reboot' % + join(platform.get_package_dir("tool-rp2040tools") or "", "picotool") + ) # # Target: Upload by default .bin file # @@ -279,11 +289,28 @@ def _update_max_upload_size(env): UPLOADCMD="$UPLOADER $UPLOADERFLAGS $SOURCES" ) + if "uploadfs" in COMMAND_LINE_TARGETS: + env.Replace( + UPLOADER=join(platform.get_package_dir("tool-rp2040tools") or "", "picotool"), + UPLOADERFLAGS=[ + "load", + "--verify" + ], + UPLOADCMD="$UPLOADER $UPLOADERFLAGS $SOURCES --offset ${hex(FS_START)}", + ) + upload_actions = [ env.VerboseAction(BeforeUpload, "Looking for upload port..."), env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE"), ] + # picotool seems to need just a tiny bit of delay, but rp2040 load not.. + if "uploadfs" in COMMAND_LINE_TARGETS: + upload_actions.insert(1, env.VerboseAction(DelayBeforeUpload, "Delaying a tiny bit...")) + # reboot after filesystem upload + upload_actions.append(env.VerboseAction(RebootPico, "Rebooting device...")) + + upload_source = target_elf elif upload_protocol.startswith("jlink"): From c0653a3d761266b291c5567634df4933484b23bc Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 8 Aug 2021 13:38:31 +0200 Subject: [PATCH 011/146] Start adding picoprobe as debug tool --- boards/nanorp2040connect.json | 3 +- boards/pico.json | 3 +- builder/main.py | 18 +- misc/svd/rp2040.svd | 5672 ++++++++++++++++++++++++++++++++- platform.py | 2 +- 5 files changed, 5630 insertions(+), 68 deletions(-) diff --git a/boards/nanorp2040connect.json b/boards/nanorp2040connect.json index 95d684b..4e9c594 100644 --- a/boards/nanorp2040connect.json +++ b/boards/nanorp2040connect.json @@ -48,7 +48,8 @@ "cmsis-dap", "jlink", "raspberrypi-swd", - "picotool" + "picotool", + "picoprobe" ] }, "url": "https://blog.arduino.cc/2021/01/20/welcome-raspberry-pi-to-the-world-of-microcontrollers/", diff --git a/boards/pico.json b/boards/pico.json index 2587285..6176e7e 100644 --- a/boards/pico.json +++ b/boards/pico.json @@ -44,7 +44,8 @@ "cmsis-dap", "jlink", "raspberrypi-swd", - "picotool" + "picotool", + "picoprobe" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/builder/main.py b/builder/main.py index 34b5595..178c622 100644 --- a/builder/main.py +++ b/builder/main.py @@ -356,15 +356,25 @@ def _jlink_cmd_script(env, source): openocd_args.extend( ["-c", "adapter speed %s" % env.GetProjectOption("debug_speed")] ) - openocd_args.extend([ - "-c", "program {$SOURCE} %s verify reset; shutdown;" % - board.get("upload.offset_address", "") - ]) + if "uploadfs" in COMMAND_LINE_TARGETS: + # filesystem upload. use FS_START. + openocd_args.extend([ + "-c", "program {$SOURCE} ${hex(FS_START)} verify reset; shutdown;" + ]) + else: + # normal firmware upload. flash starts at 0x10000000 + openocd_args.extend([ + "-c", "program {$SOURCE} %s verify reset; shutdown;" % + board.get("upload.offset_address", "0x10000000") + ]) openocd_args = [ f.replace("$PACKAGE_DIR", platform.get_package_dir( "tool-openocd-raspberrypi") or "") for f in openocd_args ] + # use ELF file for upload, not bin (target_firm). otherwise needs + # offset 0x10000000 + #upload_source = target_elf env.Replace( UPLOADER="openocd", UPLOADERFLAGS=openocd_args, diff --git a/misc/svd/rp2040.svd b/misc/svd/rp2040.svd index 9d44dd1..f600d47 100644 --- a/misc/svd/rp2040.svd +++ b/misc/svd/rp2040.svd @@ -24673,25 +24673,6 @@ I2C Interrupt Status Register\n\n Each bit in this register has a corresponding mask bit in the IC_INTR_MASK register. These bits are cleared by reading the matching interrupt clear register. The unmasked raw versions of these bits are available in the IC_RAW_INTR_STAT register. - - read-only - [13:13] - See IC_RAW_INTR_STAT for a detailed description of R_MASTER_ON_HOLD bit.\n\n - Reset value: 0x0 - - - R_MASTER_ON_HOLD interrupt is inactive - INACTIVE - 0 - - - R_MASTER_ON_HOLD interrupt is active - ACTIVE - 1 - - - R_MASTER_ON_HOLD - read-only [12:12] @@ -24948,25 +24929,6 @@ I2C Interrupt Mask Register.\n\n These bits mask their corresponding interrupt status bits. This register is active low; a value of 0 masks the interrupt, whereas a value of 1 unmasks the interrupt. - - read-only - [13:13] - This M_MASTER_ON_HOLD_read_only bit masks the R_MASTER_ON_HOLD interrupt in IC_INTR_STAT register.\n\n - Reset value: 0x0 - - - MASTER_ON_HOLD interrupt is masked - ENABLED - 0 - - - MASTER_ON_HOLD interrupt is unmasked - DISABLED - 1 - - - M_MASTER_ON_HOLD_READ_ONLY - read-write [12:12] @@ -25223,25 +25185,6 @@ I2C Raw Interrupt Status Register\n\n Unlike the IC_INTR_STAT register, these bits are not masked so they always show the true status of the DW_apb_i2c. - - read-only - [13:13] - Indicates whether master is holding the bus and TX FIFO is empty. Enabled only when I2C_DYNAMIC_TAR_UPDATE=1 and IC_EMPTYFIFO_HOLD_MASTER_EN=1.\n\n - Reset value: 0x0 - - - MASTER_ON_HOLD interrupt is inactive - INACTIVE - 0 - - - MASTER_ON_HOLD interrupt is active - ACTIVE - 1 - - - MASTER_ON_HOLD - read-only [12:12] @@ -25931,7 +25874,7 @@ The bits [15:0] of this register are used to control the hold time of SDA during transmit in both slave and master mode (after SCL goes from HIGH to LOW).\n\n The bits [23:16] of this register are used to extend the SDA transition (if any) whenever SCL is HIGH in the receiver in either master or slave mode.\n\n Writes to this register succeed only when IC_ENABLE[0]=0.\n\n - The values in this register are in units of ic_clk period. The value programmed in IC_SDA_TX_HOLD must be greater than the minimum hold time in each mode one cycle in master mode, seven cycles in slave mode for the value to be implemented.\n\n + The values in this register are in units of ic_clk period. The value programmed in IC_SDA_TX_HOLD must be greater than the minimum hold time in each mode (one cycle in master mode, seven cycles in slave mode) for the value to be implemented.\n\n The programmed SDA hold time during transmit (IC_SDA_TX_HOLD) cannot exceed at any time the duration of the low part of scl. Therefore the programmed value cannot be larger than N_SCL_LOW-2, where N_SCL_LOW is the duration of the low part of the scl period measured in ic_clk cycles. @@ -29321,7 +29264,7 @@ set to 0xaa0 + div where\n div = 0 divides by 32\n div = 1-31 divides by div\n - any other value sets div=0 and therefore divides by 32\n + any other value sets div=31\n this register resets to div=16 @@ -29342,7 +29285,7 @@ read-write [11:4] - set to 0xaa0\n + set to 0xaa\n any other value enables the output with shift=0 PASSWD @@ -29385,7 +29328,7 @@ read-write [24:24] - An invalid value has been written to CTRL_ENABLE or CTRL_FREQ_RANGE or FRFEQA or FREQB or DORMANT + An invalid value has been written to CTRL_ENABLE or CTRL_FREQ_RANGE or FREQA or FREQB or DIV or PHASE or DORMANT oneToClear BADWRITE @@ -33630,6 +33573,5613 @@ 32 1 + + + 0 + 0x0100 + registers + + 0x50100000 + DPRAM layout for USB device. + USBCTRL_DPRAM + + + 0x0000 + Bytes 0-3 of the SETUP packet from the host. + + + read-write + [31:16] + WVALUE + + + read-write + [15:8] + BREQUEST + + + read-write + [7:0] + BMREQUESTTYPE + + + SETUP_PACKET_LOW + 0x00000000 + + + 0x0004 + Bytes 4-7 of the setup packet from the host. + + + read-write + [31:16] + WLENGTH + + + read-write + [15:0] + WINDEX + + + SETUP_PACKET_HIGH + 0x00000000 + + + 0x0008 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP1_IN_CONTROL + 0x00000000 + + + 0x000c + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP1_OUT_CONTROL + 0x00000000 + + + 0x0010 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP2_IN_CONTROL + 0x00000000 + + + 0x0014 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP2_OUT_CONTROL + 0x00000000 + + + 0x0018 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP3_IN_CONTROL + 0x00000000 + + + 0x001c + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP3_OUT_CONTROL + 0x00000000 + + + 0x0020 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP4_IN_CONTROL + 0x00000000 + + + 0x0024 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP4_OUT_CONTROL + 0x00000000 + + + 0x0028 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP5_IN_CONTROL + 0x00000000 + + + 0x002c + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP5_OUT_CONTROL + 0x00000000 + + + 0x0030 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP6_IN_CONTROL + 0x00000000 + + + 0x0034 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP6_OUT_CONTROL + 0x00000000 + + + 0x0038 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP7_IN_CONTROL + 0x00000000 + + + 0x003c + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP7_OUT_CONTROL + 0x00000000 + + + 0x0040 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP8_IN_CONTROL + 0x00000000 + + + 0x0044 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP8_OUT_CONTROL + 0x00000000 + + + 0x0048 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP9_IN_CONTROL + 0x00000000 + + + 0x004c + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP9_OUT_CONTROL + 0x00000000 + + + 0x0050 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP10_IN_CONTROL + 0x00000000 + + + 0x0054 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP10_OUT_CONTROL + 0x00000000 + + + 0x0058 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP11_IN_CONTROL + 0x00000000 + + + 0x005c + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP11_OUT_CONTROL + 0x00000000 + + + 0x0060 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP12_IN_CONTROL + 0x00000000 + + + 0x0064 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP12_OUT_CONTROL + 0x00000000 + + + 0x0068 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP13_IN_CONTROL + 0x00000000 + + + 0x006c + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP13_OUT_CONTROL + 0x00000000 + + + 0x0070 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP14_IN_CONTROL + 0x00000000 + + + 0x0074 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP14_OUT_CONTROL + 0x00000000 + + + 0x0078 + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP15_IN_CONTROL + 0x00000000 + + + 0x007c + + + read-write + [31:31] + Enable this endpoint. The device will not reply to any packets for this endpoint if this bit is not set. + ENABLE + + + read-write + [30:30] + This endpoint is double buffered. + DOUBLE_BUFFERED + + + read-write + [29:29] + Trigger an interrupt each time a buffer is done. + INTERRUPT_PER_BUFF + + + read-write + [28:28] + Trigger an interrupt each time both buffers are done. Only valid in double buffered mode. + INTERRUPT_PER_DOUBLE_BUFF + + + read-write + [27:26] + + + Control + 0 + + + Isochronous + 1 + + + Bulk + 2 + + + Interrupt + 3 + + + ENDPOINT_TYPE + + + read-write + [17:17] + Trigger an interrupt if a STALL is sent. Intended for debug only. + INTERRUPT_ON_STALL + + + read-write + [16:16] + Trigger an interrupt if a NAK is sent. Intended for debug only. + INTERRUPT_ON_NAK + + + read-write + [15:0] + 64 byte aligned buffer address for this EP (bits 0-5 are ignored). Relative to the start of the DPRAM. + BUFFER_ADDRESS + + + EP15_OUT_CONTROL + 0x00000000 + + + 0x0080 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP0_IN_BUFFER_CONTROL + 0x00000000 + + + 0x0084 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP0_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x0088 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP1_IN_BUFFER_CONTROL + 0x00000000 + + + 0x008c + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP1_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x0090 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP2_IN_BUFFER_CONTROL + 0x00000000 + + + 0x0094 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP2_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x0098 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP3_IN_BUFFER_CONTROL + 0x00000000 + + + 0x009c + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP3_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00a0 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP4_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00a4 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP4_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00a8 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP5_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00ac + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP5_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00b0 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP6_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00b4 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP6_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00b8 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP7_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00bc + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP7_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00c0 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP8_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00c4 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP8_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00c8 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP9_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00cc + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP9_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00d0 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP10_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00d4 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP10_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00d8 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP11_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00dc + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP11_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00e0 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP12_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00e4 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP12_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00e8 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP13_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00ec + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP13_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00f0 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP14_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00f4 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP14_OUT_BUFFER_CONTROL + 0x00000000 + + + 0x00f8 + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP15_IN_BUFFER_CONTROL + 0x00000000 + + + 0x00fc + Buffer control for both buffers of an endpoint. Fields ending in a _1 are for buffer 1.\n + Fields ending in a _0 are for buffer 0. Buffer 1 controls are only valid if the endpoint is in double buffered mode. + + + read-write + [31:31] + Buffer 1 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_1 + + + read-write + [30:30] + Buffer 1 is the last buffer of the transfer. + LAST_1 + + + read-write + [29:29] + The data pid of buffer 1. + PID_1 + + + read-write + [28:27] + The number of bytes buffer 1 is offset from buffer 0 in Isochronous mode. Only valid in double buffered mode for an Isochronous endpoint.\n + For a non Isochronous endpoint the offset is always 64 bytes. + + + 128 + 0 + + + 256 + 1 + + + 512 + 2 + + + 1024 + 3 + + + DOUBLE_BUFFER_ISO_OFFSET + + + read-write + [26:26] + Buffer 1 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_1 + + + read-write + [25:16] + The length of the data in buffer 1. + LENGTH_1 + + + read-write + [15:15] + Buffer 0 is full. For an IN transfer (TX to the host) the bit is set to indicate the data is valid. For an OUT transfer (RX from the host) this bit should be left as a 0. The host will set it when it has filled the buffer with data. + FULL_0 + + + read-write + [14:14] + Buffer 0 is the last buffer of the transfer. + LAST_0 + + + read-write + [13:13] + The data pid of buffer 0. + PID_0 + + + read-write + [12:12] + Reset the buffer selector to buffer 0. + RESET + + + read-write + [11:11] + Reply with a stall (valid for both buffers). + STALL + + + read-write + [10:10] + Buffer 0 is available. This bit is set to indicate the buffer can be used by the controller. The controller clears the available bit when writing the status back. + AVAILABLE_0 + + + read-write + [9:0] + The length of the data in buffer 1. + LENGTH_0 + + + EP15_OUT_BUFFER_CONTROL + 0x00000000 + + + 32 + 1 + 0 diff --git a/platform.py b/platform.py index 7234899..9da4df1 100644 --- a/platform.py +++ b/platform.py @@ -85,7 +85,7 @@ def _add_default_debug_tools(self, board): if "tools" not in debug: debug["tools"] = {} - for link in ("cmsis-dap", "jlink", "raspberrypi-swd"): + for link in ("cmsis-dap", "jlink", "raspberrypi-swd", "picoprobe"): if link not in upload_protocols or link in debug["tools"]: continue From 620fe89831da9488fc4b7540f1409bfe8c599bd6 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 8 Aug 2021 14:55:24 +0200 Subject: [PATCH 012/146] Make sure toolchain-pico is removed from build for normal core --- platform.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform.py b/platform.py index 9da4df1..fa8dd81 100644 --- a/platform.py +++ b/platform.py @@ -37,6 +37,8 @@ def configure_default_packages(self, variables, targets): if build_core == "arduino": self.frameworks["arduino"]["package"] = "framework-arduino-mbed" self.packages["framework-arduinopico"]["optional"] = True + self.packages["toolchain-pico"]["optional"] = True + self.packages.pop("toolchain-pico", None) elif build_core == "earlephilhower": self.frameworks["arduino"]["package"] = "framework-arduinopico" self.packages["framework-arduino-mbed"]["optional"] = True From 673d327f62dfbf26a599d49078366d8b5d930ed5 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 18 Aug 2021 19:46:24 +0200 Subject: [PATCH 013/146] Hotfix uploading --- builder/main.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/builder/main.py b/builder/main.py index 2580fa8..7cf8a7f 100644 --- a/builder/main.py +++ b/builder/main.py @@ -284,7 +284,7 @@ def RebootPico(target, source, env): ] elif upload_protocol == "picotool": env.Replace( - UPLOADER="rp2040load", + UPLOADER='"%s"' % join(platform.get_package_dir("tool-rp2040tools") or "", "rp2040load"), UPLOADERFLAGS=["-v", "-D"], UPLOADCMD="$UPLOADER $UPLOADERFLAGS $SOURCES" ) @@ -310,7 +310,6 @@ def RebootPico(target, source, env): # reboot after filesystem upload upload_actions.append(env.VerboseAction(RebootPico, "Rebooting device...")) - upload_source = target_elf elif upload_protocol.startswith("jlink"): From 9811f13f6620d02977ca2bad9694dbf66aa77fa9 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 29 Dec 2021 16:02:30 +0100 Subject: [PATCH 014/146] Merge upstream --- .github/workflows/examples.yml | 2 +- builder/frameworks/arduino/mbed-core | 2 +- builder/main.py | 4 +-- examples/arduino-blink/README.md | 21 +++++++++++++ examples/arduino-blink/README.rst | 32 ------------------- examples/arduino-external-libs/README.md | 27 ++++++++++++++++ examples/arduino-external-libs/README.rst | 38 ----------------------- platform.json | 4 +-- 8 files changed, 54 insertions(+), 76 deletions(-) create mode 100644 examples/arduino-blink/README.md delete mode 100644 examples/arduino-blink/README.rst create mode 100644 examples/arduino-external-libs/README.md delete mode 100644 examples/arduino-external-libs/README.rst diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 94e8130..9d03bd2 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -7,7 +7,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-16.04, windows-latest, macos-latest] + os: [ubuntu-18.04, windows-latest, macos-latest] python-version: [3.7] example: - "examples/arduino-blink" diff --git a/builder/frameworks/arduino/mbed-core b/builder/frameworks/arduino/mbed-core index ceb4f60..36ee4ff 160000 --- a/builder/frameworks/arduino/mbed-core +++ b/builder/frameworks/arduino/mbed-core @@ -1 +1 @@ -Subproject commit ceb4f608f9b4834ac4fa5472e1db2a2c2f9d216e +Subproject commit 36ee4ff8adb0d80d6ff15e03b34e7b10a147b4d0 diff --git a/builder/main.py b/builder/main.py index 7cf8a7f..c3550af 100644 --- a/builder/main.py +++ b/builder/main.py @@ -284,9 +284,9 @@ def RebootPico(target, source, env): ] elif upload_protocol == "picotool": env.Replace( - UPLOADER='"%s"' % join(platform.get_package_dir("tool-rp2040tools") or "", "rp2040load"), + UPLOADER=join(platform.get_package_dir("tool-rp2040tools") or "", "rp2040load"), UPLOADERFLAGS=["-v", "-D"], - UPLOADCMD="$UPLOADER $UPLOADERFLAGS $SOURCES" + UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES' ) if "uploadfs" in COMMAND_LINE_TARGETS: diff --git a/examples/arduino-blink/README.md b/examples/arduino-blink/README.md new file mode 100644 index 0000000..1e354e0 --- /dev/null +++ b/examples/arduino-blink/README.md @@ -0,0 +1,21 @@ +How to build PlatformIO based project +===================================== + +1. [Install PlatformIO Core](http://docs.platformio.org/page/core.html) +2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip) +3. Extract ZIP archive +4. Run these commands: + +```shell +# Change directory to example +$ cd platform-raspberrypi/examples/arduino-blink + +# Build project +$ pio run + +# Upload firmware +$ pio run --target upload + +# Clean build files +$ pio run --target clean +``` diff --git a/examples/arduino-blink/README.rst b/examples/arduino-blink/README.rst deleted file mode 100644 index e84aaaf..0000000 --- a/examples/arduino-blink/README.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. Copyright 2014-present PlatformIO - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -How to build PlatformIO based project -===================================== - -1. `Install PlatformIO Core `_ -2. Download `development platform with examples `_ -3. Extract ZIP archive -4. Run these commands: - -.. code-block:: bash - - # Change directory to example - > cd platform-raspberrypi/examples/arduino-blink - - # Build project - > platformio run - - # Upload firmware - > platformio run --target upload - - # Clean build files - > platformio run --target clean diff --git a/examples/arduino-external-libs/README.md b/examples/arduino-external-libs/README.md new file mode 100644 index 0000000..8aa6a5f --- /dev/null +++ b/examples/arduino-external-libs/README.md @@ -0,0 +1,27 @@ +How to build PlatformIO based project +===================================== + +1. [Install PlatformIO Core](http://docs.platformio.org/page/core.html) +2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip) +3. Extract ZIP archive +4. Run these commands: + +```shell +# Change directory to example +$ cd platform-raspberrypi/examples/arduino-external-libs + +# Build project +$ pio run + +# Upload firmware +$ pio run --target upload + +# Build specific environment +$ pio run -e pico + +# Upload firmware for the specific environment +$ pio run -e pico --target upload + +# Clean build files +$ pio run --target clean +``` diff --git a/examples/arduino-external-libs/README.rst b/examples/arduino-external-libs/README.rst deleted file mode 100644 index 0207a56..0000000 --- a/examples/arduino-external-libs/README.rst +++ /dev/null @@ -1,38 +0,0 @@ -.. Copyright 2014-present PlatformIO - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - -How to build PlatformIO based project -===================================== - -1. `Install PlatformIO Core `_ -2. Download `development platform with examples `_ -3. Extract ZIP archive -4. Run these commands: - -.. code-block:: bash - - # Change directory to example - > cd platform-raspberrypi/examples/arduino-external-libs - - # Build project - > platformio run - - # Upload firmware - > platformio run --target upload - - # Build specific environment - > platformio run -e pico - - # Upload firmware for the specific environment - > platformio run -e pico --target upload - - # Clean build files - > platformio run --target clean diff --git a/platform.json b/platform.json index 3085d95..baf9865 100644 --- a/platform.json +++ b/platform.json @@ -18,7 +18,7 @@ "type": "git", "url": "https://github.com/platformio/platform-raspberrypi.git" }, - "version": "1.2.0", + "version": "1.5.0", "frameworks": { "arduino": { "package": "framework-arduino-mbed", @@ -41,7 +41,7 @@ "type": "framework", "optional": true, "owner": "platformio", - "version": "~2.4.0" + "version": "~2.6.0" }, "framework-arduinopico": { "type": "framework", From e920ef32c3b262d7615086debbec7c233485e3c8 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 28 Jan 2022 09:12:01 +0100 Subject: [PATCH 015/146] Add all Arduino-Pico board definitions --- boards/adafruit_feather.json | 52 ++++++++++++++++++++++++++++ boards/adafruit_itsybitsy.json | 52 ++++++++++++++++++++++++++++ boards/adafruit_kb2040.json | 52 ++++++++++++++++++++++++++++ boards/adafruit_macropad2040.json | 52 ++++++++++++++++++++++++++++ boards/adafruit_qtpy.json | 52 ++++++++++++++++++++++++++++ boards/adafruit_stemmafriend.json | 52 ++++++++++++++++++++++++++++ boards/adafruit_trinkeyrp2040qt.json | 52 ++++++++++++++++++++++++++++ boards/arduino_nano_connect.json | 52 ++++++++++++++++++++++++++++ boards/challenger_2040_lte.json | 52 ++++++++++++++++++++++++++++ boards/challenger_2040_wifi.json | 52 ++++++++++++++++++++++++++++ boards/challenger_nb_2040_wifi.json | 52 ++++++++++++++++++++++++++++ boards/cytron_maker_nano_rp2040.json | 52 ++++++++++++++++++++++++++++ boards/cytron_maker_pi_rp2040.json | 52 ++++++++++++++++++++++++++++ boards/generic.json | 52 ++++++++++++++++++++++++++++ boards/ilabs_rpico32.json | 52 ++++++++++++++++++++++++++++ boards/melopero_shake_rp2040.json | 52 ++++++++++++++++++++++++++++ boards/pico.json | 2 +- boards/rpipico.json | 52 ++++++++++++++++++++++++++++ boards/solderparty_rp2040_stamp.json | 52 ++++++++++++++++++++++++++++ boards/sparkfun_promicrorp2040.json | 52 ++++++++++++++++++++++++++++ boards/upesy_rp2040_devkit.json | 52 ++++++++++++++++++++++++++++ boards/wiznet_5100s_evb_pico.json | 52 ++++++++++++++++++++++++++++ 22 files changed, 1093 insertions(+), 1 deletion(-) create mode 100644 boards/adafruit_feather.json create mode 100644 boards/adafruit_itsybitsy.json create mode 100644 boards/adafruit_kb2040.json create mode 100644 boards/adafruit_macropad2040.json create mode 100644 boards/adafruit_qtpy.json create mode 100644 boards/adafruit_stemmafriend.json create mode 100644 boards/adafruit_trinkeyrp2040qt.json create mode 100644 boards/arduino_nano_connect.json create mode 100644 boards/challenger_2040_lte.json create mode 100644 boards/challenger_2040_wifi.json create mode 100644 boards/challenger_nb_2040_wifi.json create mode 100644 boards/cytron_maker_nano_rp2040.json create mode 100644 boards/cytron_maker_pi_rp2040.json create mode 100644 boards/generic.json create mode 100644 boards/ilabs_rpico32.json create mode 100644 boards/melopero_shake_rp2040.json create mode 100644 boards/rpipico.json create mode 100644 boards/solderparty_rp2040_stamp.json create mode 100644 boards/sparkfun_promicrorp2040.json create mode 100644 boards/upesy_rp2040_devkit.json create mode 100644 boards/wiznet_5100s_evb_pico.json diff --git a/boards/adafruit_feather.json b/boards/adafruit_feather.json new file mode 100644 index 0000000..dec96a6 --- /dev/null +++ b/boards/adafruit_feather.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "adafruit_feather", + "boot2_source": "boot2_w25x10cl_4_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x80f1", + "usb_manufacturer": "Adafruit", + "usb_product": "Feather RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Feather RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} \ No newline at end of file diff --git a/boards/adafruit_itsybitsy.json b/boards/adafruit_itsybitsy.json new file mode 100644 index 0000000..14622dd --- /dev/null +++ b/boards/adafruit_itsybitsy.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_ITSYBITSY_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "adafruit_itsybitsy", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x80fd", + "usb_manufacturer": "Adafruit", + "usb_product": "ItsyBitsy RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "ItsyBitsy RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} \ No newline at end of file diff --git a/boards/adafruit_kb2040.json b/boards/adafruit_kb2040.json new file mode 100644 index 0000000..4be755f --- /dev/null +++ b/boards/adafruit_kb2040.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_KB2040_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "adafruit_kb2040", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x8105", + "usb_manufacturer": "Adafruit", + "usb_product": "KB2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "KB2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} \ No newline at end of file diff --git a/boards/adafruit_macropad2040.json b/boards/adafruit_macropad2040.json new file mode 100644 index 0000000..c066254 --- /dev/null +++ b/boards/adafruit_macropad2040.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_MACROPAD_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "adafruit_macropad2040", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x8107", + "usb_manufacturer": "Adafruit", + "usb_product": "MacroPad RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "MacroPad RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} \ No newline at end of file diff --git a/boards/adafruit_qtpy.json b/boards/adafruit_qtpy.json new file mode 100644 index 0000000..21f09fa --- /dev/null +++ b/boards/adafruit_qtpy.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_QTPY_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "adafruit_qtpy", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x80f7", + "usb_manufacturer": "Adafruit", + "usb_product": "QT Py RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "QT Py RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} \ No newline at end of file diff --git a/boards/adafruit_stemmafriend.json b/boards/adafruit_stemmafriend.json new file mode 100644 index 0000000..89a8f0c --- /dev/null +++ b/boards/adafruit_stemmafriend.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_STEMMAFRIEND_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "adafruit_stemmafriend", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x80e3", + "usb_manufacturer": "Adafruit", + "usb_product": "STEMMA Friend RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "STEMMA Friend RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} \ No newline at end of file diff --git a/boards/adafruit_trinkeyrp2040qt.json b/boards/adafruit_trinkeyrp2040qt.json new file mode 100644 index 0000000..6c873c9 --- /dev/null +++ b/boards/adafruit_trinkeyrp2040qt.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_TRINKEYQT_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "adafruit_trinkeyrp2040qt", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x8109", + "usb_manufacturer": "Adafruit", + "usb_product": "Trinkey RP2040 QT" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Trinkey RP2040 QT", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} \ No newline at end of file diff --git a/boards/arduino_nano_connect.json b/boards/arduino_nano_connect.json new file mode 100644 index 0000000..a294f93 --- /dev/null +++ b/boards/arduino_nano_connect.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_NANO_RP2040_CONNECT -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "arduino_nano_connect", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2341", + "usb_pid": "0x0058", + "usb_manufacturer": "Arduino", + "usb_product": "Nano RP2040 Connect" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Nano RP2040 Connect", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Arduino" +} \ No newline at end of file diff --git a/boards/challenger_2040_lte.json b/boards/challenger_2040_lte.json new file mode 100644 index 0000000..7b5991b --- /dev/null +++ b/boards/challenger_2040_lte.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CHALLENGER_2040_LTE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "challenger_2040_lte", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x100b", + "usb_manufacturer": "iLabs", + "usb_product": "Challenger 2040 LTE" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Challenger 2040 LTE", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "iLabs" +} \ No newline at end of file diff --git a/boards/challenger_2040_wifi.json b/boards/challenger_2040_wifi.json new file mode 100644 index 0000000..5111111 --- /dev/null +++ b/boards/challenger_2040_wifi.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "challenger_2040_wifi", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1006", + "usb_manufacturer": "iLabs", + "usb_product": "Challenger 2040 WiFi" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Challenger 2040 WiFi", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "iLabs" +} \ No newline at end of file diff --git a/boards/challenger_nb_2040_wifi.json b/boards/challenger_nb_2040_wifi.json new file mode 100644 index 0000000..b1ee114 --- /dev/null +++ b/boards/challenger_nb_2040_wifi.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CHALLENGER_NB_2040_WIFI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "challenger_nb_2040_wifi", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x100b", + "usb_manufacturer": "iLabs", + "usb_product": "Challenger NB 2040 WiFi" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Challenger NB 2040 WiFi", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "iLabs" +} \ No newline at end of file diff --git a/boards/cytron_maker_nano_rp2040.json b/boards/cytron_maker_nano_rp2040.json new file mode 100644 index 0000000..cb7314c --- /dev/null +++ b/boards/cytron_maker_nano_rp2040.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CYTRON_MAKER_NANO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "cytron_maker_nano_rp2040", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x100f", + "usb_manufacturer": "Cytron", + "usb_product": "Maker Nano RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Maker Nano RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Cytron" +} \ No newline at end of file diff --git a/boards/cytron_maker_pi_rp2040.json b/boards/cytron_maker_pi_rp2040.json new file mode 100644 index 0000000..d5ed15c --- /dev/null +++ b/boards/cytron_maker_pi_rp2040.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CYTRON_MAKER_PI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "cytron_maker_pi_rp2040", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1000", + "usb_manufacturer": "Cytron", + "usb_product": "Maker Pi RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Maker Pi RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Cytron" +} \ No newline at end of file diff --git a/boards/generic.json b/boards/generic.json new file mode 100644 index 0000000..fa89b11 --- /dev/null +++ b/boards/generic.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_GENERIC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "generic", + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0xf00a", + "usb_manufacturer": "Generic", + "usb_product": "RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Generic" +} \ No newline at end of file diff --git a/boards/ilabs_rpico32.json b/boards/ilabs_rpico32.json new file mode 100644 index 0000000..058e458 --- /dev/null +++ b/boards/ilabs_rpico32.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ILABS_2040_RPICO32_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "ilabs_rpico32", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1010", + "usb_manufacturer": "iLabs", + "usb_product": "RPICO32" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RPICO32", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "iLabs" +} \ No newline at end of file diff --git a/boards/melopero_shake_rp2040.json b/boards/melopero_shake_rp2040.json new file mode 100644 index 0000000..9813457 --- /dev/null +++ b/boards/melopero_shake_rp2040.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_MELOPERO_SHAKE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "melopero_shake_rp2040", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1005", + "usb_manufacturer": "Melopero", + "usb_product": "Shake RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Shake RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Melopero" +} \ No newline at end of file diff --git a/boards/pico.json b/boards/pico.json index 6176e7e..cb6350d 100644 --- a/boards/pico.json +++ b/boards/pico.json @@ -2,7 +2,7 @@ "build": { "core": "arduino", "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040", + "extra_flags": "-D ARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", "f_cpu": "133000000L", "hwids": [ [ diff --git a/boards/rpipico.json b/boards/rpipico.json new file mode 100644 index 0000000..4d688ab --- /dev/null +++ b/boards/rpipico.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "rpipico", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x000a", + "usb_manufacturer": "Raspberry Pi", + "usb_product": "Pico" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Pico", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Raspberry Pi" +} \ No newline at end of file diff --git a/boards/solderparty_rp2040_stamp.json b/boards/solderparty_rp2040_stamp.json new file mode 100644 index 0000000..6f3ac69 --- /dev/null +++ b/boards/solderparty_rp2040_stamp.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_SOLDERPARTY_RP2040_STAMP -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "solderparty_rp2040_stamp", + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x1209", + "usb_pid": "0xa182", + "usb_manufacturer": "Solder Party", + "usb_product": "RP2040 Stamp" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040 Stamp", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Solder Party" +} \ No newline at end of file diff --git a/boards/sparkfun_promicrorp2040.json b/boards/sparkfun_promicrorp2040.json new file mode 100644 index 0000000..630630e --- /dev/null +++ b/boards/sparkfun_promicrorp2040.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_SPARKFUN_PROMICRO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "sparkfun_promicrorp2040", + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x1b4f", + "usb_pid": "0x0026", + "usb_manufacturer": "SparkFun", + "usb_product": "ProMicro RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "ProMicro RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "SparkFun" +} \ No newline at end of file diff --git a/boards/upesy_rp2040_devkit.json b/boards/upesy_rp2040_devkit.json new file mode 100644 index 0000000..3452f7e --- /dev/null +++ b/boards/upesy_rp2040_devkit.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_UPESY_RP2040_DEVKIT -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "upesy_rp2040_devkit", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1007", + "usb_manufacturer": "uPesy", + "usb_product": "RP2040 DevKit" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040 DevKit", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "uPesy" +} \ No newline at end of file diff --git a/boards/wiznet_5100s_evb_pico.json b/boards/wiznet_5100s_evb_pico.json new file mode 100644 index 0000000..4131568 --- /dev/null +++ b/boards/wiznet_5100s_evb_pico.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_WIZNET_5100S_EVB_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "wiznet_5100s_evb_pico", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1008", + "usb_manufacturer": "WIZnet", + "usb_product": "W5100S-EVB-Pico" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "W5100S-EVB-Pico", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "WIZnet" +} \ No newline at end of file From 2b0c07119853d66581079f674bb993251c4afc46 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 12 Apr 2022 19:44:46 +0200 Subject: [PATCH 016/146] Add Arduino-Pico example --- .../arduino-blink-earlephilhower/.gitignore | 1 + .../arduino-blink-earlephilhower/README.md | 25 ++++++++++ .../include/README | 39 ++++++++++++++++ .../arduino-blink-earlephilhower/lib/README | 46 +++++++++++++++++++ .../platformio.ini | 21 +++++++++ .../arduino-blink-earlephilhower/src/main.cpp | 15 ++++++ .../arduino-blink-earlephilhower/test/README | 11 +++++ 7 files changed, 158 insertions(+) create mode 100644 examples/arduino-blink-earlephilhower/.gitignore create mode 100644 examples/arduino-blink-earlephilhower/README.md create mode 100644 examples/arduino-blink-earlephilhower/include/README create mode 100644 examples/arduino-blink-earlephilhower/lib/README create mode 100644 examples/arduino-blink-earlephilhower/platformio.ini create mode 100644 examples/arduino-blink-earlephilhower/src/main.cpp create mode 100644 examples/arduino-blink-earlephilhower/test/README diff --git a/examples/arduino-blink-earlephilhower/.gitignore b/examples/arduino-blink-earlephilhower/.gitignore new file mode 100644 index 0000000..03f4a3c --- /dev/null +++ b/examples/arduino-blink-earlephilhower/.gitignore @@ -0,0 +1 @@ +.pio diff --git a/examples/arduino-blink-earlephilhower/README.md b/examples/arduino-blink-earlephilhower/README.md new file mode 100644 index 0000000..1d46eff --- /dev/null +++ b/examples/arduino-blink-earlephilhower/README.md @@ -0,0 +1,25 @@ +How to build PlatformIO based project +===================================== + +<<<<<<< HEAD +1. [Install PlatformIO Core](http://docs.platformio.org/page/core.html) +======= +1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html) +>>>>>>> e08da697f0a750d5ebdd17d299d262b729e67c42 +2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip) +3. Extract ZIP archive +4. Run these commands: + +```shell +# Change directory to example +$ cd platform-raspberrypi/examples/arduino-blink + +# Build project +$ pio run + +# Upload firmware +$ pio run --target upload + +# Clean build files +$ pio run --target clean +``` diff --git a/examples/arduino-blink-earlephilhower/include/README b/examples/arduino-blink-earlephilhower/include/README new file mode 100644 index 0000000..194dcd4 --- /dev/null +++ b/examples/arduino-blink-earlephilhower/include/README @@ -0,0 +1,39 @@ + +This directory is intended for project header files. + +A header file is a file containing C declarations and macro definitions +to be shared between several project source files. You request the use of a +header file in your project source file (C, C++, etc) located in `src` folder +by including it, with the C preprocessing directive `#include'. + +```src/main.c + +#include "header.h" + +int main (void) +{ + ... +} +``` + +Including a header file produces the same results as copying the header file +into each source file that needs it. Such copying would be time-consuming +and error-prone. With a header file, the related declarations appear +in only one place. If they need to be changed, they can be changed in one +place, and programs that include the header file will automatically use the +new version when next recompiled. The header file eliminates the labor of +finding and changing all the copies as well as the risk that a failure to +find one copy will result in inconsistencies within a program. + +In C, the usual convention is to give header files names that end with `.h'. +It is most portable to use only letters, digits, dashes, and underscores in +header file names, and at most one dot. + +Read more about using header files in official GCC documentation: + +* Include Syntax +* Include Operation +* Once-Only Headers +* Computed Includes + +https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/examples/arduino-blink-earlephilhower/lib/README b/examples/arduino-blink-earlephilhower/lib/README new file mode 100644 index 0000000..6debab1 --- /dev/null +++ b/examples/arduino-blink-earlephilhower/lib/README @@ -0,0 +1,46 @@ + +This directory is intended for project specific (private) libraries. +PlatformIO will compile them to static libraries and link into executable file. + +The source code of each library should be placed in a an own separate directory +("lib/your_library_name/[here are source files]"). + +For example, see a structure of the following two libraries `Foo` and `Bar`: + +|--lib +| | +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html +| | +| |--Foo +| | |- Foo.c +| | |- Foo.h +| | +| |- README --> THIS FILE +| +|- platformio.ini +|--src + |- main.c + +and a contents of `src/main.c`: +``` +#include +#include + +int main (void) +{ + ... +} + +``` + +PlatformIO Library Dependency Finder will find automatically dependent +libraries scanning project source files. + +More information about PlatformIO Library Dependency Finder +- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/examples/arduino-blink-earlephilhower/platformio.ini b/examples/arduino-blink-earlephilhower/platformio.ini new file mode 100644 index 0000000..86a3b50 --- /dev/null +++ b/examples/arduino-blink-earlephilhower/platformio.ini @@ -0,0 +1,21 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter, extra scripting +; Upload options: custom port, speed and extra flags +; Library options: dependencies, extra library storages +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + +[env] +platform = raspberrypi +framework = arduino +platform_packages = + maxgerhardt/framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git + maxgerhardt/toolchain-pico@https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.3.3-a/x86_64-linux-gnu.arm-none-eabi-ed6d983.220212.tar.gz + +[env:pico] +board = pico + +[env:nanorp2040connect] +board = nanorp2040connect diff --git a/examples/arduino-blink-earlephilhower/src/main.cpp b/examples/arduino-blink-earlephilhower/src/main.cpp new file mode 100644 index 0000000..8c4e60f --- /dev/null +++ b/examples/arduino-blink-earlephilhower/src/main.cpp @@ -0,0 +1,15 @@ +#include + +// the setup routine runs once when you press reset: +void setup() { + // initialize the digital pin as an output. + pinMode(LED_BUILTIN, OUTPUT); +} + +// the loop routine runs over and over again forever: +void loop() { + digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) + delay(1000); // wait for a second + digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW + delay(1000); // wait for a second +} diff --git a/examples/arduino-blink-earlephilhower/test/README b/examples/arduino-blink-earlephilhower/test/README new file mode 100644 index 0000000..df5066e --- /dev/null +++ b/examples/arduino-blink-earlephilhower/test/README @@ -0,0 +1,11 @@ + +This directory is intended for PIO Unit Testing and project tests. + +Unit Testing is a software testing method by which individual units of +source code, sets of one or more MCU program modules together with associated +control data, usage procedures, and operating procedures, are tested to +determine whether they are fit for use. Unit testing finds problems early +in the development cycle. + +More information about PIO Unit Testing: +- https://docs.platformio.org/page/plus/unit-testing.html From b5359ff956457d718231d2239d8198da487f5536 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 12 Apr 2022 19:45:04 +0200 Subject: [PATCH 017/146] Only CI on Linux --- .github/workflows/examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index ccda6ef..fd1ae47 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -7,7 +7,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest] python-version: [3.7] example: - "examples/arduino-blink" From 27cbf996200cb79842d845a899ba8c52127ad269 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 12 Apr 2022 19:48:58 +0200 Subject: [PATCH 018/146] Fix UF2 + mbed upload --- builder/main.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/builder/main.py b/builder/main.py index 56203ed..dd77a18 100644 --- a/builder/main.py +++ b/builder/main.py @@ -15,7 +15,8 @@ import sys from platform import system from os import makedirs -from os.path import isdir, join +from os.path import isdir, join, isfile +from shutil import copyfile import re import time @@ -277,10 +278,26 @@ def RebootPico(target, source, env): upload_actions = [] upload_source = target_firm +def UploadUF2ToDisk(_, target, source, env): + assert "UPLOAD_PORT" in env + progname = env.subst("$PROGNAME") + ext = ".uf2" + fpath = join(env.subst("$BUILD_DIR"), "%s.%s" % (progname, ext)) + if not isfile(fpath): + print( + "Firmware file %s not found.\n" % fpath + ) + return + copyfile(fpath, join(env.subst("$UPLOAD_PORT"), "%s.%s" % (progname, ext))) + print( + "Firmware has been successfully uploaded.\n" + "(Some boards may require manual hard reset)" + ) + if upload_protocol == "mbed": upload_actions = [ env.VerboseAction(env.AutodetectUploadPort, "Looking for upload disk..."), - env.VerboseAction(env.UploadToDisk, "Uploading $SOURCE") + env.VerboseAction(env.UploadUF2ToDisk, "Uploading $SOURCE") ] elif upload_protocol == "picotool": env.Replace( From a65832bc6b66d47c73efac595c08c6a028329d3b Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 12 Apr 2022 19:49:59 +0200 Subject: [PATCH 019/146] Actually add earlephilhower example to CI --- .github/workflows/examples.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index fd1ae47..d70487e 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -11,6 +11,7 @@ jobs: python-version: [3.7] example: - "examples/arduino-blink" + - "examples/arduino-blink-earlephilhower" - "examples/arduino-external-libs" runs-on: ${{ matrix.os }} steps: From f48a9b921f576ddd93240e2337e1b0c2b228216b Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 12 Apr 2022 19:54:37 +0200 Subject: [PATCH 020/146] Actually use right core in earlephilhower example --- examples/arduino-blink-earlephilhower/platformio.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/arduino-blink-earlephilhower/platformio.ini b/examples/arduino-blink-earlephilhower/platformio.ini index 86a3b50..e0dd4da 100644 --- a/examples/arduino-blink-earlephilhower/platformio.ini +++ b/examples/arduino-blink-earlephilhower/platformio.ini @@ -10,6 +10,7 @@ [env] platform = raspberrypi framework = arduino +board_build.core = earlephilhower platform_packages = maxgerhardt/framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git maxgerhardt/toolchain-pico@https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.3.3-a/x86_64-linux-gnu.arm-none-eabi-ed6d983.220212.tar.gz @@ -19,3 +20,6 @@ board = pico [env:nanorp2040connect] board = nanorp2040connect + +[env:adafruit_feather] +board = adafruit_feather \ No newline at end of file From 8bff1812d80bcb54d565777e13ed20c7c058f526 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Wed, 13 Apr 2022 15:07:48 +0200 Subject: [PATCH 021/146] Update README.md --- examples/arduino-blink-earlephilhower/README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/examples/arduino-blink-earlephilhower/README.md b/examples/arduino-blink-earlephilhower/README.md index 1d46eff..443298d 100644 --- a/examples/arduino-blink-earlephilhower/README.md +++ b/examples/arduino-blink-earlephilhower/README.md @@ -1,18 +1,14 @@ How to build PlatformIO based project ===================================== -<<<<<<< HEAD -1. [Install PlatformIO Core](http://docs.platformio.org/page/core.html) -======= 1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html) ->>>>>>> e08da697f0a750d5ebdd17d299d262b729e67c42 2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip) 3. Extract ZIP archive 4. Run these commands: ```shell # Change directory to example -$ cd platform-raspberrypi/examples/arduino-blink +$ cd platform-raspberrypi/examples/arduino-blink-earlephilhower # Build project $ pio run From 75dffaabf88cf637f4e0a38cd042bca672bc71cd Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Wed, 13 Apr 2022 15:08:12 +0200 Subject: [PATCH 022/146] Update README.md --- examples/arduino-blink/README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/examples/arduino-blink/README.md b/examples/arduino-blink/README.md index 1d46eff..6eb4be3 100644 --- a/examples/arduino-blink/README.md +++ b/examples/arduino-blink/README.md @@ -1,11 +1,7 @@ How to build PlatformIO based project ===================================== -<<<<<<< HEAD -1. [Install PlatformIO Core](http://docs.platformio.org/page/core.html) -======= 1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html) ->>>>>>> e08da697f0a750d5ebdd17d299d262b729e67c42 2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip) 3. Extract ZIP archive 4. Run these commands: From d20e2ed967542523c72abc36d1f5760ea3cf52f0 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Wed, 13 Apr 2022 15:08:30 +0200 Subject: [PATCH 023/146] Update README.md --- examples/arduino-external-libs/README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/examples/arduino-external-libs/README.md b/examples/arduino-external-libs/README.md index e04de76..e03a9e4 100644 --- a/examples/arduino-external-libs/README.md +++ b/examples/arduino-external-libs/README.md @@ -1,11 +1,7 @@ How to build PlatformIO based project ===================================== -<<<<<<< HEAD -1. [Install PlatformIO Core](http://docs.platformio.org/page/core.html) -======= 1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html) ->>>>>>> e08da697f0a750d5ebdd17d299d262b729e67c42 2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip) 3. Extract ZIP archive 4. Run these commands: From 9870c4cec4bba3d35a523fcc6018ac18525068be Mon Sep 17 00:00:00 2001 From: dlbogdan Date: Fri, 22 Apr 2022 09:13:03 +0300 Subject: [PATCH 024/146] Update main.py because of the logic selecting elf or firm (bin), we need to default to no offset on normal firmware upload because we already defaulted to elf a few lines below if upload.offset_address is not user set so when no offset is needed. programming fails otherwise Unfortunately, my way of modifying the code probably sucks because I've never written anything in python but I assumed the second arg is the default n case the first is missing. Haven't had time to dig too much into it. --- builder/main.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/builder/main.py b/builder/main.py index dd77a18..e78dcd8 100644 --- a/builder/main.py +++ b/builder/main.py @@ -381,7 +381,10 @@ def _jlink_cmd_script(env, source): # normal firmware upload. flash starts at 0x10000000 openocd_args.extend([ "-c", "program {$SOURCE} %s verify reset; shutdown;" % - board.get("upload.offset_address", "0x10000000") + # board.get("upload.offset_address", "0x10000000") + board.get("upload.offset_address", "") + #because of the logic selecting elf or firm (bin), we need to default to no offset because we already defaulted to elf a few lines below when no offset is needed + # programming fails otherwise ]) openocd_args = [ f.replace("$PACKAGE_DIR", platform.get_package_dir( From 3ddcc3aa9ad19f0ef2dfacfc25631bc5315a07ba Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sun, 15 May 2022 16:46:23 +0200 Subject: [PATCH 025/146] Save function in environment --- builder/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/builder/main.py b/builder/main.py index e78dcd8..cda212f 100644 --- a/builder/main.py +++ b/builder/main.py @@ -293,6 +293,7 @@ def UploadUF2ToDisk(_, target, source, env): "Firmware has been successfully uploaded.\n" "(Some boards may require manual hard reset)" ) +env.UploadUF2ToDisk = UploadUF2ToDisk if upload_protocol == "mbed": upload_actions = [ From ddcb4a395d803685cfe298cf232c3ed4c62ac912 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sun, 15 May 2022 18:34:31 +0200 Subject: [PATCH 026/146] Remove argument --- builder/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/main.py b/builder/main.py index cda212f..60139be 100644 --- a/builder/main.py +++ b/builder/main.py @@ -278,7 +278,7 @@ def RebootPico(target, source, env): upload_actions = [] upload_source = target_firm -def UploadUF2ToDisk(_, target, source, env): +def UploadUF2ToDisk(target, source, env): assert "UPLOAD_PORT" in env progname = env.subst("$PROGNAME") ext = ".uf2" From e1204e62e0bf842946f0418c94536a2ff2ea0805 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 16 May 2022 14:23:30 +0200 Subject: [PATCH 027/146] Fix double dot --- builder/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/main.py b/builder/main.py index 60139be..4f70e4e 100644 --- a/builder/main.py +++ b/builder/main.py @@ -281,7 +281,7 @@ def RebootPico(target, source, env): def UploadUF2ToDisk(target, source, env): assert "UPLOAD_PORT" in env progname = env.subst("$PROGNAME") - ext = ".uf2" + ext = "uf2" fpath = join(env.subst("$BUILD_DIR"), "%s.%s" % (progname, ext)) if not isfile(fpath): print( From 096f514e832518c4dd3bead2de48635ac59c1882 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Jun 2022 19:53:54 +0200 Subject: [PATCH 028/146] Adapt to work with registry packages --- builder/main.py | 2 +- .../platformio.ini | 3 --- platform.json | 20 +++++++++---------- platform.py | 8 ++++---- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/builder/main.py b/builder/main.py index 4f70e4e..ece37d9 100644 --- a/builder/main.py +++ b/builder/main.py @@ -168,7 +168,7 @@ def fetch_fs_size(env): "Available sketch size with current " "config would be %d bytes.\n" % maximum_size) sys.stderr.flush() - env.Exit(-1) + env.Exit(1) env["PICO_FLASH_LENGTH"] = flash_length env["PICO_EEPROM_START"] = eeprom_start diff --git a/examples/arduino-blink-earlephilhower/platformio.ini b/examples/arduino-blink-earlephilhower/platformio.ini index e0dd4da..bfdfbef 100644 --- a/examples/arduino-blink-earlephilhower/platformio.ini +++ b/examples/arduino-blink-earlephilhower/platformio.ini @@ -11,9 +11,6 @@ platform = raspberrypi framework = arduino board_build.core = earlephilhower -platform_packages = - maxgerhardt/framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git - maxgerhardt/toolchain-pico@https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.3.3-a/x86_64-linux-gnu.arm-none-eabi-ed6d983.220212.tar.gz [env:pico] board = pico diff --git a/platform.json b/platform.json index 6284ca3..d75fb40 100644 --- a/platform.json +++ b/platform.json @@ -31,10 +31,10 @@ "owner": "platformio", "version": "~1.90201.0" }, - "toolchain-pico": { + "toolchain-rp2040-earlephilhower": { "type": "toolchain", "optional": true, - "owner": "maxgerhardt", + "owner": "earlephilhower", "version": "~5.100300.0" }, "framework-arduino-mbed": { @@ -46,19 +46,19 @@ "framework-arduinopico": { "type": "framework", "optional": true, - "owner": "maxgerhardt", - "version": "~1.10902.0" + "owner": "earlephilhower", + "version": "https://github.com/earlephilhower/arduino-pico.git" }, "tool-rp2040tools": { "type": "uploader", "owner": "platformio", "version": "~1.0.2" }, - "tool-openocd-raspberrypi": { + "tool-openocd-rp2040-earlephilhower": { "type": "uploader", "optional": true, - "owner": "platformio", - "version": "~2.1100.0" + "owner": "earlephilhower", + "version": "~5.100300.0" }, "tool-jlink": { "type": "uploader", @@ -66,11 +66,11 @@ "owner": "platformio", "version": "~1.72000.0" }, - "tool-mklittlefs": { + "tool-mklittlefs-rp2040-earlephilhower": { "type": "uploader", "optional": true, - "owner": "platformio", - "version": "~1.203.0" + "owner": "earlephilhower", + "version": "~5.100300.0" } } } diff --git a/platform.py b/platform.py index 2fe8087..c419ab2 100644 --- a/platform.py +++ b/platform.py @@ -37,13 +37,13 @@ def configure_default_packages(self, variables, targets): if build_core == "arduino": self.frameworks["arduino"]["package"] = "framework-arduino-mbed" self.packages["framework-arduinopico"]["optional"] = True - self.packages["toolchain-pico"]["optional"] = True - self.packages.pop("toolchain-pico", None) + self.packages["toolchain-rp2040-earlephilhower"]["optional"] = True + self.packages.pop("toolchain-rp2040-earlephilhower", None) elif build_core == "earlephilhower": self.frameworks["arduino"]["package"] = "framework-arduinopico" self.packages["framework-arduino-mbed"]["optional"] = True self.packages.pop("toolchain-gccarmnoneeabi", None) - self.packages["toolchain-pico"]["optional"] = False + self.packages["toolchain-rp2040-earlephilhower"]["optional"] = False else: sys.stderr.write( "Error! Unknown build.core value '%s'. Don't know which Arduino core package to use." % build_core) @@ -117,7 +117,7 @@ def _add_default_debug_tools(self, board): debug["tools"][link] = { "server": { "executable": "bin/openocd", - "package": "tool-openocd-raspberrypi", + "package": "tool-openocd-rp2040-earlephilhower", "arguments": [ "-s", "$PACKAGE_DIR/share/openocd/scripts", "-f", "interface/%s.cfg" % link, From 5ab36c45d82b96f97f18c18081241e038f7f06d8 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Jun 2022 20:02:33 +0200 Subject: [PATCH 029/146] Filesystem code cleanup --- builder/main.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/builder/main.py b/builder/main.py index ece37d9..433bba9 100644 --- a/builder/main.py +++ b/builder/main.py @@ -150,27 +150,26 @@ def fetch_fs_size(env): filesystem_size = board.get("build.filesystem_size", "0MB") filesystem_size_int = convert_size_expression_to_int(filesystem_size) - maximum_size = flash_size - 4096 - filesystem_size_int + maximum_sketch_size = flash_size - 4096 - filesystem_size_int print("Flash size: %.2fMB" % (flash_size / 1024.0 / 1024.0)) - print("Sketch size: %.2fMB" % (maximum_size / 1024.0 / 1024.0)) + print("Sketch size: %.2fMB" % (maximum_sketch_size / 1024.0 / 1024.0)) print("Filesystem size: %.2fMB" % (filesystem_size_int / 1024.0 / 1024.0)) - flash_length = maximum_size eeprom_start = 0x10000000 + flash_size - 4096 fs_start = 0x10000000 + flash_size - 4096 - filesystem_size_int fs_end = 0x10000000 + flash_size - 4096 - if maximum_size <= 0: + if maximum_sketch_size <= 0: sys.stderr.write( "Error: Filesystem too large for given flash. " "Can at max be flash size - 4096 bytes. " "Available sketch size with current " - "config would be %d bytes.\n" % maximum_size) + "config would be %d bytes.\n" % maximum_sketch_size) sys.stderr.flush() env.Exit(1) - env["PICO_FLASH_LENGTH"] = flash_length + env["PICO_FLASH_LENGTH"] = maximum_sketch_size env["PICO_EEPROM_START"] = eeprom_start env["FS_START"] = fs_start env["FS_END"] = fs_end @@ -179,10 +178,10 @@ def fetch_fs_size(env): env["FS_PAGE"] = 256 env["FS_BLOCK"] = 4096 - print("Maximium size: %d Flash Length: %d " - "EEPROM Start: %d Filesystem start %d " - "Filesystem end %s" % - (maximum_size,flash_length, eeprom_start, fs_start, fs_end)) + print("Maximium Sketch size: %d " + "EEPROM start: %s Filesystem start: %s " + "Filesystem end: %s" % + (maximum_sketch_size, hex(eeprom_start), hex(fs_start), hex(fs_end))) def __fetch_fs_size(target, source, env): From 936b8d35df194adac3edc28951c30e04020c7e34 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Jun 2022 20:03:13 +0200 Subject: [PATCH 030/146] Sync all Arduino-Pico boards --- boards/challenger_2040_lora.json | 52 ++++++++++++++++++++++++++++ boards/challenger_2040_wifi_ble.json | 52 ++++++++++++++++++++++++++++ boards/dfrobot_beetle_rp2040.json | 52 ++++++++++++++++++++++++++++ boards/flyboard2040_core.json | 52 ++++++++++++++++++++++++++++ boards/seeed_xiao_rp2040.json | 52 ++++++++++++++++++++++++++++ boards/sparkfun_thingplusrp2040.json | 52 ++++++++++++++++++++++++++++ boards/wiznet_5100s_evb_pico.json | 2 +- boards/wiznet_5500_evb_pico.json | 52 ++++++++++++++++++++++++++++ boards/wiznet_wizfi360_evb_pico.json | 52 ++++++++++++++++++++++++++++ 9 files changed, 417 insertions(+), 1 deletion(-) create mode 100644 boards/challenger_2040_lora.json create mode 100644 boards/challenger_2040_wifi_ble.json create mode 100644 boards/dfrobot_beetle_rp2040.json create mode 100644 boards/flyboard2040_core.json create mode 100644 boards/seeed_xiao_rp2040.json create mode 100644 boards/sparkfun_thingplusrp2040.json create mode 100644 boards/wiznet_5500_evb_pico.json create mode 100644 boards/wiznet_wizfi360_evb_pico.json diff --git a/boards/challenger_2040_lora.json b/boards/challenger_2040_lora.json new file mode 100644 index 0000000..e47abf4 --- /dev/null +++ b/boards/challenger_2040_lora.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CHALLENGER_2040_LORA_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "challenger_2040_lora", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1023", + "usb_manufacturer": "iLabs", + "usb_product": "Challenger 2040 LoRa" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Challenger 2040 LoRa", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "iLabs" +} \ No newline at end of file diff --git a/boards/challenger_2040_wifi_ble.json b/boards/challenger_2040_wifi_ble.json new file mode 100644 index 0000000..b7f1783 --- /dev/null +++ b/boards/challenger_2040_wifi_ble.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI_BLE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "challenger_2040_wifi_ble", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x102C", + "usb_manufacturer": "iLabs", + "usb_product": "Challenger 2040 WiFi/BLE" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Challenger 2040 WiFi/BLE", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "iLabs" +} \ No newline at end of file diff --git a/boards/dfrobot_beetle_rp2040.json b/boards/dfrobot_beetle_rp2040.json new file mode 100644 index 0000000..95df8f8 --- /dev/null +++ b/boards/dfrobot_beetle_rp2040.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_DFROBOT_BEETLE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "dfrobot_beetle_rp2040", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x3343", + "usb_pid": "0x4253", + "usb_manufacturer": "DFRobot", + "usb_product": "Beetle RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Beetle RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "DFRobot" +} \ No newline at end of file diff --git a/boards/flyboard2040_core.json b/boards/flyboard2040_core.json new file mode 100644 index 0000000..b60e0ba --- /dev/null +++ b/boards/flyboard2040_core.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_FLYBOARD2040_CORE -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "flyboard2040_core", + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x008a", + "usb_manufacturer": "DeRuiLab", + "usb_product": "FlyBoard2040Core" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "FlyBoard2040Core", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 4194304, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "DeRuiLab" +} \ No newline at end of file diff --git a/boards/seeed_xiao_rp2040.json b/boards/seeed_xiao_rp2040.json new file mode 100644 index 0000000..d70f696 --- /dev/null +++ b/boards/seeed_xiao_rp2040.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_SEEED_XAIO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "seeed_xiao_rp2040", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x000a", + "usb_manufacturer": "Seeed", + "usb_product": "XAIO RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "XAIO RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Seeed" +} \ No newline at end of file diff --git a/boards/sparkfun_thingplusrp2040.json b/boards/sparkfun_thingplusrp2040.json new file mode 100644 index 0000000..982b55a --- /dev/null +++ b/boards/sparkfun_thingplusrp2040.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_SPARKFUN_THINGPLUS_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "sparkfun_thingplusrp2040", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x1b4f", + "usb_pid": "0x0026", + "usb_manufacturer": "SparkFun", + "usb_product": "Thing Plus RP2040" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Thing Plus RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "SparkFun" +} \ No newline at end of file diff --git a/boards/wiznet_5100s_evb_pico.json b/boards/wiznet_5100s_evb_pico.json index 4131568..2e66dba 100644 --- a/boards/wiznet_5100s_evb_pico.json +++ b/boards/wiznet_5100s_evb_pico.json @@ -16,7 +16,7 @@ "variant": "wiznet_5100s_evb_pico", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x1008", + "usb_pid": "0x1027", "usb_manufacturer": "WIZnet", "usb_product": "W5100S-EVB-Pico" } diff --git a/boards/wiznet_5500_evb_pico.json b/boards/wiznet_5500_evb_pico.json new file mode 100644 index 0000000..27bfe0d --- /dev/null +++ b/boards/wiznet_5500_evb_pico.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_WIZNET_5500_EVB_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "wiznet_5500_evb_pico", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1029", + "usb_manufacturer": "WIZnet", + "usb_product": "W5500-EVB-Pico" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "W5500-EVB-Pico", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "WIZnet" +} \ No newline at end of file diff --git a/boards/wiznet_wizfi360_evb_pico.json b/boards/wiznet_wizfi360_evb_pico.json new file mode 100644 index 0000000..e696ca2 --- /dev/null +++ b/boards/wiznet_wizfi360_evb_pico.json @@ -0,0 +1,52 @@ +{ + "build": { + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_WIZNET_WIZFI360_EVB_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "arduino": { + "earlephilhower": { + "variant": "wiznet_wizfi360_evb_pico", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1028", + "usb_manufacturer": "WIZnet", + "usb_product": "WizFi360-EVB-Pico" + } + } + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "WizFi360-EVB-Pico", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "WIZnet" +} \ No newline at end of file From 41e26ccd447eff345125eb64649efbbe258ae0bb Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Jun 2022 20:04:04 +0200 Subject: [PATCH 031/146] Add a new board to CI --- examples/arduino-blink-earlephilhower/platformio.ini | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/arduino-blink-earlephilhower/platformio.ini b/examples/arduino-blink-earlephilhower/platformio.ini index bfdfbef..5a41859 100644 --- a/examples/arduino-blink-earlephilhower/platformio.ini +++ b/examples/arduino-blink-earlephilhower/platformio.ini @@ -19,4 +19,7 @@ board = pico board = nanorp2040connect [env:adafruit_feather] -board = adafruit_feather \ No newline at end of file +board = adafruit_feather + +[env:seeed_xiao_rp2040] +board = seeed_xiao_rp2040 \ No newline at end of file From c2441e42108b6e02b99f20b943b25f8de9674d01 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Jun 2022 20:36:24 +0200 Subject: [PATCH 032/146] Slight example platformioini refactor --- examples/arduino-blink-earlephilhower/platformio.ini | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/examples/arduino-blink-earlephilhower/platformio.ini b/examples/arduino-blink-earlephilhower/platformio.ini index 5a41859..e205688 100644 --- a/examples/arduino-blink-earlephilhower/platformio.ini +++ b/examples/arduino-blink-earlephilhower/platformio.ini @@ -10,10 +10,15 @@ [env] platform = raspberrypi framework = arduino -board_build.core = earlephilhower [env:pico] board = pico +; "pico" board can use both mbed and earlephilhower core, must select here +board_build.core = earlephilhower + +; earlephilhower-only boards +[env:rpipico] +board = pico [env:nanorp2040connect] board = nanorp2040connect @@ -22,4 +27,7 @@ board = nanorp2040connect board = adafruit_feather [env:seeed_xiao_rp2040] -board = seeed_xiao_rp2040 \ No newline at end of file +board = seeed_xiao_rp2040 + +[env:sparkfun_thingplusrp2040] +board = sparkfun_thingplusrp2040 \ No newline at end of file From 4d1e3817d7c63966b40cc6bfb75195f95cde9c3f Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Jun 2022 21:04:40 +0200 Subject: [PATCH 033/146] Fix UF2 mbed uploading again --- builder/main.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/builder/main.py b/builder/main.py index 1cb67f1..6ae6ce7 100644 --- a/builder/main.py +++ b/builder/main.py @@ -15,9 +15,10 @@ import sys from platform import system from os import makedirs -from os.path import isdir, join +from os.path import isdir, join, isfile import re import time +from shutil import copyfile from platformio.public import list_serial_ports From bbb2b17614086184bc73d3677d5c1b434ad82620 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Jun 2022 21:17:59 +0200 Subject: [PATCH 034/146] ACtually use referenced board --- examples/arduino-blink-earlephilhower/platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/arduino-blink-earlephilhower/platformio.ini b/examples/arduino-blink-earlephilhower/platformio.ini index e205688..f3d2265 100644 --- a/examples/arduino-blink-earlephilhower/platformio.ini +++ b/examples/arduino-blink-earlephilhower/platformio.ini @@ -18,7 +18,7 @@ board_build.core = earlephilhower ; earlephilhower-only boards [env:rpipico] -board = pico +board = rpipico [env:nanorp2040connect] board = nanorp2040connect From ab26ecbf3b1a6ca35d9d8e2aacc9b20ee22ae8fe Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Jun 2022 21:25:37 +0200 Subject: [PATCH 035/146] ACTUALLY use only earlephilhower core in examples --- examples/arduino-blink-earlephilhower/platformio.ini | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/examples/arduino-blink-earlephilhower/platformio.ini b/examples/arduino-blink-earlephilhower/platformio.ini index f3d2265..ae696fb 100644 --- a/examples/arduino-blink-earlephilhower/platformio.ini +++ b/examples/arduino-blink-earlephilhower/platformio.ini @@ -16,13 +16,15 @@ board = pico ; "pico" board can use both mbed and earlephilhower core, must select here board_build.core = earlephilhower +[env:nanorp2040connect] +board = nanorp2040connect +; "nanorp2040connect" board can use both mbed and earlephilhower core, must select here +board_build.core = earlephilhower + ; earlephilhower-only boards [env:rpipico] board = rpipico -[env:nanorp2040connect] -board = nanorp2040connect - [env:adafruit_feather] board = adafruit_feather From 4eedf9eac01dcddad8014d7e153a3fa453ff1b50 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Jun 2022 21:37:28 +0200 Subject: [PATCH 036/146] Use correct openocd package --- builder/main.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/builder/main.py b/builder/main.py index 6ae6ce7..84cfa35 100644 --- a/builder/main.py +++ b/builder/main.py @@ -381,14 +381,11 @@ def _jlink_cmd_script(env, source): # normal firmware upload. flash starts at 0x10000000 openocd_args.extend([ "-c", "program {$SOURCE} %s verify reset; shutdown;" % - # board.get("upload.offset_address", "0x10000000") board.get("upload.offset_address", "") - #because of the logic selecting elf or firm (bin), we need to default to no offset because we already defaulted to elf a few lines below when no offset is needed - # programming fails otherwise ]) openocd_args = [ f.replace("$PACKAGE_DIR", platform.get_package_dir( - "tool-openocd-raspberrypi") or "") + "tool-openocd-rp2040-earlephilhower") or "") for f in openocd_args ] env.Replace( From e568d578ab07015b5b0e2dbdf1393c0248093232 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Jun 2022 22:05:42 +0200 Subject: [PATCH 037/146] Make OpenOCD uploading more robust, respect speed for picoprobe config --- builder/main.py | 10 ++++++---- platform.py | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/builder/main.py b/builder/main.py index 84cfa35..8e1110a 100644 --- a/builder/main.py +++ b/builder/main.py @@ -368,10 +368,12 @@ def _jlink_cmd_script(env, source): ] openocd_args.extend( debug_tools.get(upload_protocol).get("server").get("arguments", [])) - if env.GetProjectOption("debug_speed"): - openocd_args.extend( - ["-c", "adapter speed %s" % env.GetProjectOption("debug_speed")] - ) + # always use a default speed directive of 1000khz or an otherwise configured speed + # otherwise, flash failures were observed + speed = env.GetProjectOption("debug_speed") or "1000" + openocd_args.extend( + ["-c", "adapter speed %s" % speed] + ) if "uploadfs" in COMMAND_LINE_TARGETS: # filesystem upload. use FS_START. openocd_args.extend([ diff --git a/platform.py b/platform.py index 106a8f4..97d4072 100644 --- a/platform.py +++ b/platform.py @@ -128,10 +128,10 @@ def _add_default_debug_tools(self, board): return board def configure_debug_session(self, debug_config): - adapter_speed = debug_config.speed or "5000" + adapter_speed = debug_config.speed or "1000" server_options = debug_config.server or {} server_arguments = server_options.get("arguments", []) - if "interface/cmsis-dap.cfg" in server_arguments: + if "interface/cmsis-dap.cfg" in server_arguments or "interface/picoprobe.cfg": server_arguments.extend( ["-c", "adapter speed %s" % adapter_speed] ) From 1b8624b35a74978dad63624f0ef063ef89ecdf53 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Jun 2022 22:28:38 +0200 Subject: [PATCH 038/146] Revert back to currently user mbed-builder --- builder/frameworks/arduino/mbed-core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/frameworks/arduino/mbed-core b/builder/frameworks/arduino/mbed-core index 36ee4ff..ed9a345 160000 --- a/builder/frameworks/arduino/mbed-core +++ b/builder/frameworks/arduino/mbed-core @@ -1 +1 @@ -Subproject commit 36ee4ff8adb0d80d6ff15e03b34e7b10a147b4d0 +Subproject commit ed9a3458e336660fdf2b1d4a4c828a2ddfd214ad From 8d7a063c99f866333bc82cbe498f660f8e21273a Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 12 Jun 2022 18:29:42 +0200 Subject: [PATCH 039/146] Correct debug logic, exit on unknown core --- platform.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/platform.py b/platform.py index 97d4072..3b0ef55 100644 --- a/platform.py +++ b/platform.py @@ -45,6 +45,7 @@ def configure_default_packages(self, variables, targets): else: sys.stderr.write( "Error! Unknown build.core value '%s'. Don't know which Arduino core package to use." % build_core) + env.Exit(1) # if we want to build a filesystem, we need the tools. if "buildfs" in targets: @@ -131,7 +132,7 @@ def configure_debug_session(self, debug_config): adapter_speed = debug_config.speed or "1000" server_options = debug_config.server or {} server_arguments = server_options.get("arguments", []) - if "interface/cmsis-dap.cfg" in server_arguments or "interface/picoprobe.cfg": + if "interface/cmsis-dap.cfg" in server_arguments or "interface/picoprobe.cfg" in server_arguments: server_arguments.extend( ["-c", "adapter speed %s" % adapter_speed] ) From 4d9eca0c71e2a3f9793679942de777eb7b4167fd Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 00:54:31 +0200 Subject: [PATCH 040/146] Unify examples, add notes --- .github/workflows/examples.yml | 3 +- .../arduino-blink-earlephilhower/.gitignore | 1 - .../arduino-blink-earlephilhower/README.md | 21 --------- .../include/README | 39 ---------------- .../arduino-blink-earlephilhower/lib/README | 46 ------------------- .../platformio.ini | 35 -------------- .../arduino-blink-earlephilhower/src/main.cpp | 15 ------ .../arduino-blink-earlephilhower/test/README | 11 ----- examples/arduino-blink/README.md | 8 ++++ examples/arduino-blink/platformio.ini | 23 ++++++++++ 10 files changed, 32 insertions(+), 170 deletions(-) delete mode 100644 examples/arduino-blink-earlephilhower/.gitignore delete mode 100644 examples/arduino-blink-earlephilhower/README.md delete mode 100644 examples/arduino-blink-earlephilhower/include/README delete mode 100644 examples/arduino-blink-earlephilhower/lib/README delete mode 100644 examples/arduino-blink-earlephilhower/platformio.ini delete mode 100644 examples/arduino-blink-earlephilhower/src/main.cpp delete mode 100644 examples/arduino-blink-earlephilhower/test/README diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index e2e38cf..b24ad69 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -10,8 +10,7 @@ jobs: os: [ubuntu-latest, windows-latest, macos-latest] example: - "examples/arduino-blink" - - "examples/arduino-blink" - - "examples/arduino-blink-earlephilhower" + - "examples/arduino-external-libs" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 diff --git a/examples/arduino-blink-earlephilhower/.gitignore b/examples/arduino-blink-earlephilhower/.gitignore deleted file mode 100644 index 03f4a3c..0000000 --- a/examples/arduino-blink-earlephilhower/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.pio diff --git a/examples/arduino-blink-earlephilhower/README.md b/examples/arduino-blink-earlephilhower/README.md deleted file mode 100644 index 443298d..0000000 --- a/examples/arduino-blink-earlephilhower/README.md +++ /dev/null @@ -1,21 +0,0 @@ -How to build PlatformIO based project -===================================== - -1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html) -2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip) -3. Extract ZIP archive -4. Run these commands: - -```shell -# Change directory to example -$ cd platform-raspberrypi/examples/arduino-blink-earlephilhower - -# Build project -$ pio run - -# Upload firmware -$ pio run --target upload - -# Clean build files -$ pio run --target clean -``` diff --git a/examples/arduino-blink-earlephilhower/include/README b/examples/arduino-blink-earlephilhower/include/README deleted file mode 100644 index 194dcd4..0000000 --- a/examples/arduino-blink-earlephilhower/include/README +++ /dev/null @@ -1,39 +0,0 @@ - -This directory is intended for project header files. - -A header file is a file containing C declarations and macro definitions -to be shared between several project source files. You request the use of a -header file in your project source file (C, C++, etc) located in `src` folder -by including it, with the C preprocessing directive `#include'. - -```src/main.c - -#include "header.h" - -int main (void) -{ - ... -} -``` - -Including a header file produces the same results as copying the header file -into each source file that needs it. Such copying would be time-consuming -and error-prone. With a header file, the related declarations appear -in only one place. If they need to be changed, they can be changed in one -place, and programs that include the header file will automatically use the -new version when next recompiled. The header file eliminates the labor of -finding and changing all the copies as well as the risk that a failure to -find one copy will result in inconsistencies within a program. - -In C, the usual convention is to give header files names that end with `.h'. -It is most portable to use only letters, digits, dashes, and underscores in -header file names, and at most one dot. - -Read more about using header files in official GCC documentation: - -* Include Syntax -* Include Operation -* Once-Only Headers -* Computed Includes - -https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/examples/arduino-blink-earlephilhower/lib/README b/examples/arduino-blink-earlephilhower/lib/README deleted file mode 100644 index 6debab1..0000000 --- a/examples/arduino-blink-earlephilhower/lib/README +++ /dev/null @@ -1,46 +0,0 @@ - -This directory is intended for project specific (private) libraries. -PlatformIO will compile them to static libraries and link into executable file. - -The source code of each library should be placed in a an own separate directory -("lib/your_library_name/[here are source files]"). - -For example, see a structure of the following two libraries `Foo` and `Bar`: - -|--lib -| | -| |--Bar -| | |--docs -| | |--examples -| | |--src -| | |- Bar.c -| | |- Bar.h -| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html -| | -| |--Foo -| | |- Foo.c -| | |- Foo.h -| | -| |- README --> THIS FILE -| -|- platformio.ini -|--src - |- main.c - -and a contents of `src/main.c`: -``` -#include -#include - -int main (void) -{ - ... -} - -``` - -PlatformIO Library Dependency Finder will find automatically dependent -libraries scanning project source files. - -More information about PlatformIO Library Dependency Finder -- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/examples/arduino-blink-earlephilhower/platformio.ini b/examples/arduino-blink-earlephilhower/platformio.ini deleted file mode 100644 index ae696fb..0000000 --- a/examples/arduino-blink-earlephilhower/platformio.ini +++ /dev/null @@ -1,35 +0,0 @@ -; PlatformIO Project Configuration File -; -; Build options: build flags, source filter, extra scripting -; Upload options: custom port, speed and extra flags -; Library options: dependencies, extra library storages -; -; Please visit documentation for the other options and examples -; https://docs.platformio.org/page/projectconf.html - -[env] -platform = raspberrypi -framework = arduino - -[env:pico] -board = pico -; "pico" board can use both mbed and earlephilhower core, must select here -board_build.core = earlephilhower - -[env:nanorp2040connect] -board = nanorp2040connect -; "nanorp2040connect" board can use both mbed and earlephilhower core, must select here -board_build.core = earlephilhower - -; earlephilhower-only boards -[env:rpipico] -board = rpipico - -[env:adafruit_feather] -board = adafruit_feather - -[env:seeed_xiao_rp2040] -board = seeed_xiao_rp2040 - -[env:sparkfun_thingplusrp2040] -board = sparkfun_thingplusrp2040 \ No newline at end of file diff --git a/examples/arduino-blink-earlephilhower/src/main.cpp b/examples/arduino-blink-earlephilhower/src/main.cpp deleted file mode 100644 index 8c4e60f..0000000 --- a/examples/arduino-blink-earlephilhower/src/main.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include - -// the setup routine runs once when you press reset: -void setup() { - // initialize the digital pin as an output. - pinMode(LED_BUILTIN, OUTPUT); -} - -// the loop routine runs over and over again forever: -void loop() { - digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) - delay(1000); // wait for a second - digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW - delay(1000); // wait for a second -} diff --git a/examples/arduino-blink-earlephilhower/test/README b/examples/arduino-blink-earlephilhower/test/README deleted file mode 100644 index df5066e..0000000 --- a/examples/arduino-blink-earlephilhower/test/README +++ /dev/null @@ -1,11 +0,0 @@ - -This directory is intended for PIO Unit Testing and project tests. - -Unit Testing is a software testing method by which individual units of -source code, sets of one or more MCU program modules together with associated -control data, usage procedures, and operating procedures, are tested to -determine whether they are fit for use. Unit testing finds problems early -in the development cycle. - -More information about PIO Unit Testing: -- https://docs.platformio.org/page/plus/unit-testing.html diff --git a/examples/arduino-blink/README.md b/examples/arduino-blink/README.md index 6eb4be3..938e48b 100644 --- a/examples/arduino-blink/README.md +++ b/examples/arduino-blink/README.md @@ -19,3 +19,11 @@ $ pio run --target upload # Clean build files $ pio run --target clean ``` + +## Notes + +For Raspberry Pi Pico devices, two Arduino cores exist: +* https://github.com/arduino/ArduinoCore-mbed +* https://github.com/earlephilhower/arduino-pico + +This examples showcases how to use both of these cores in the `platformio.ini`. \ No newline at end of file diff --git a/examples/arduino-blink/platformio.ini b/examples/arduino-blink/platformio.ini index 9a51012..840a800 100644 --- a/examples/arduino-blink/platformio.ini +++ b/examples/arduino-blink/platformio.ini @@ -16,3 +16,26 @@ board = pico [env:nanorp2040connect] board = nanorp2040connect + +[env:pico_earle] +board = pico +; "pico" board can use both mbed and earlephilhower core, must select here +board_build.core = earlephilhower + +[env:nanorp2040connect_earle] +board = nanorp2040connect +; "nanorp2040connect" board can use both mbed and earlephilhower core, must select here +board_build.core = earlephilhower + +; earlephilhower-only boards +[env:rpipico] +board = rpipico + +[env:adafruit_feather] +board = adafruit_feather + +[env:seeed_xiao_rp2040] +board = seeed_xiao_rp2040 + +[env:sparkfun_thingplusrp2040] +board = sparkfun_thingplusrp2040 \ No newline at end of file From 47ad4e909097229ddc336e6920b57c2f72ef17fa Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 00:59:59 +0200 Subject: [PATCH 041/146] Reformat and restructure board files --- boards/adafruit_feather.json | 8 +++----- boards/adafruit_itsybitsy.json | 8 +++----- boards/adafruit_kb2040.json | 8 +++----- boards/adafruit_macropad2040.json | 8 +++----- boards/adafruit_qtpy.json | 8 +++----- boards/adafruit_stemmafriend.json | 8 +++----- boards/adafruit_trinkeyrp2040qt.json | 8 +++----- boards/arduino_nano_connect.json | 8 +++----- boards/challenger_2040_lora.json | 8 +++----- boards/challenger_2040_lte.json | 8 +++----- boards/challenger_2040_wifi.json | 8 +++----- boards/challenger_2040_wifi_ble.json | 8 +++----- boards/challenger_nb_2040_wifi.json | 8 +++----- boards/cytron_maker_nano_rp2040.json | 8 +++----- boards/cytron_maker_pi_rp2040.json | 8 +++----- boards/dfrobot_beetle_rp2040.json | 8 +++----- boards/flyboard2040_core.json | 8 +++----- boards/generic.json | 8 +++----- boards/ilabs_rpico32.json | 8 +++----- boards/melopero_shake_rp2040.json | 8 +++----- boards/rpipico.json | 8 +++----- boards/seeed_xiao_rp2040.json | 8 +++----- boards/solderparty_rp2040_stamp.json | 8 +++----- boards/sparkfun_promicrorp2040.json | 8 +++----- boards/sparkfun_thingplusrp2040.json | 8 +++----- boards/upesy_rp2040_devkit.json | 8 +++----- boards/wiznet_5100s_evb_pico.json | 8 +++----- boards/wiznet_5500_evb_pico.json | 8 +++----- boards/wiznet_wizfi360_evb_pico.json | 8 +++----- 29 files changed, 87 insertions(+), 145 deletions(-) diff --git a/boards/adafruit_feather.json b/boards/adafruit_feather.json index dec96a6..46c114d 100644 --- a/boards/adafruit_feather.json +++ b/boards/adafruit_feather.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "adafruit_feather", "arduino": { "earlephilhower": { - "variant": "adafruit_feather", "boot2_source": "boot2_w25x10cl_4_padded_checksum.S", "usb_vid": "0x239a", - "usb_pid": "0x80f1", - "usb_manufacturer": "Adafruit", - "usb_product": "Feather RP2040" + "usb_pid": "0x80f1" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Adafruit" -} \ No newline at end of file +} diff --git a/boards/adafruit_itsybitsy.json b/boards/adafruit_itsybitsy.json index 14622dd..3119dac 100644 --- a/boards/adafruit_itsybitsy.json +++ b/boards/adafruit_itsybitsy.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "adafruit_itsybitsy", "arduino": { "earlephilhower": { - "variant": "adafruit_itsybitsy", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x239a", - "usb_pid": "0x80fd", - "usb_manufacturer": "Adafruit", - "usb_product": "ItsyBitsy RP2040" + "usb_pid": "0x80fd" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Adafruit" -} \ No newline at end of file +} diff --git a/boards/adafruit_kb2040.json b/boards/adafruit_kb2040.json index 4be755f..d77f37a 100644 --- a/boards/adafruit_kb2040.json +++ b/boards/adafruit_kb2040.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "adafruit_kb2040", "arduino": { "earlephilhower": { - "variant": "adafruit_kb2040", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x239a", - "usb_pid": "0x8105", - "usb_manufacturer": "Adafruit", - "usb_product": "KB2040" + "usb_pid": "0x8105" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Adafruit" -} \ No newline at end of file +} diff --git a/boards/adafruit_macropad2040.json b/boards/adafruit_macropad2040.json index c066254..34c7a12 100644 --- a/boards/adafruit_macropad2040.json +++ b/boards/adafruit_macropad2040.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "adafruit_macropad2040", "arduino": { "earlephilhower": { - "variant": "adafruit_macropad2040", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x239a", - "usb_pid": "0x8107", - "usb_manufacturer": "Adafruit", - "usb_product": "MacroPad RP2040" + "usb_pid": "0x8107" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Adafruit" -} \ No newline at end of file +} diff --git a/boards/adafruit_qtpy.json b/boards/adafruit_qtpy.json index 21f09fa..f372308 100644 --- a/boards/adafruit_qtpy.json +++ b/boards/adafruit_qtpy.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "adafruit_qtpy", "arduino": { "earlephilhower": { - "variant": "adafruit_qtpy", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x239a", - "usb_pid": "0x80f7", - "usb_manufacturer": "Adafruit", - "usb_product": "QT Py RP2040" + "usb_pid": "0x80f7" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Adafruit" -} \ No newline at end of file +} diff --git a/boards/adafruit_stemmafriend.json b/boards/adafruit_stemmafriend.json index 89a8f0c..d9c1667 100644 --- a/boards/adafruit_stemmafriend.json +++ b/boards/adafruit_stemmafriend.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "adafruit_stemmafriend", "arduino": { "earlephilhower": { - "variant": "adafruit_stemmafriend", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x239a", - "usb_pid": "0x80e3", - "usb_manufacturer": "Adafruit", - "usb_product": "STEMMA Friend RP2040" + "usb_pid": "0x80e3" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Adafruit" -} \ No newline at end of file +} diff --git a/boards/adafruit_trinkeyrp2040qt.json b/boards/adafruit_trinkeyrp2040qt.json index 6c873c9..3472ccc 100644 --- a/boards/adafruit_trinkeyrp2040qt.json +++ b/boards/adafruit_trinkeyrp2040qt.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "adafruit_trinkeyrp2040qt", "arduino": { "earlephilhower": { - "variant": "adafruit_trinkeyrp2040qt", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x239a", - "usb_pid": "0x8109", - "usb_manufacturer": "Adafruit", - "usb_product": "Trinkey RP2040 QT" + "usb_pid": "0x8109" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Adafruit" -} \ No newline at end of file +} diff --git a/boards/arduino_nano_connect.json b/boards/arduino_nano_connect.json index a294f93..a8235e0 100644 --- a/boards/arduino_nano_connect.json +++ b/boards/arduino_nano_connect.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "arduino_nano_connect", "arduino": { "earlephilhower": { - "variant": "arduino_nano_connect", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2341", - "usb_pid": "0x0058", - "usb_manufacturer": "Arduino", - "usb_product": "Nano RP2040 Connect" + "usb_pid": "0x0058" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Arduino" -} \ No newline at end of file +} diff --git a/boards/challenger_2040_lora.json b/boards/challenger_2040_lora.json index e47abf4..7e75c39 100644 --- a/boards/challenger_2040_lora.json +++ b/boards/challenger_2040_lora.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "challenger_2040_lora", "arduino": { "earlephilhower": { - "variant": "challenger_2040_lora", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x1023", - "usb_manufacturer": "iLabs", - "usb_product": "Challenger 2040 LoRa" + "usb_pid": "0x1023" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "iLabs" -} \ No newline at end of file +} diff --git a/boards/challenger_2040_lte.json b/boards/challenger_2040_lte.json index 7b5991b..5e59e2d 100644 --- a/boards/challenger_2040_lte.json +++ b/boards/challenger_2040_lte.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "challenger_2040_lte", "arduino": { "earlephilhower": { - "variant": "challenger_2040_lte", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x100b", - "usb_manufacturer": "iLabs", - "usb_product": "Challenger 2040 LTE" + "usb_pid": "0x100b" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "iLabs" -} \ No newline at end of file +} diff --git a/boards/challenger_2040_wifi.json b/boards/challenger_2040_wifi.json index 5111111..e286c81 100644 --- a/boards/challenger_2040_wifi.json +++ b/boards/challenger_2040_wifi.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "challenger_2040_wifi", "arduino": { "earlephilhower": { - "variant": "challenger_2040_wifi", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x1006", - "usb_manufacturer": "iLabs", - "usb_product": "Challenger 2040 WiFi" + "usb_pid": "0x1006" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "iLabs" -} \ No newline at end of file +} diff --git a/boards/challenger_2040_wifi_ble.json b/boards/challenger_2040_wifi_ble.json index b7f1783..78cfefa 100644 --- a/boards/challenger_2040_wifi_ble.json +++ b/boards/challenger_2040_wifi_ble.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "challenger_2040_wifi_ble", "arduino": { "earlephilhower": { - "variant": "challenger_2040_wifi_ble", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x102C", - "usb_manufacturer": "iLabs", - "usb_product": "Challenger 2040 WiFi/BLE" + "usb_pid": "0x102C" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "iLabs" -} \ No newline at end of file +} diff --git a/boards/challenger_nb_2040_wifi.json b/boards/challenger_nb_2040_wifi.json index b1ee114..8adff86 100644 --- a/boards/challenger_nb_2040_wifi.json +++ b/boards/challenger_nb_2040_wifi.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "challenger_nb_2040_wifi", "arduino": { "earlephilhower": { - "variant": "challenger_nb_2040_wifi", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x100b", - "usb_manufacturer": "iLabs", - "usb_product": "Challenger NB 2040 WiFi" + "usb_pid": "0x100b" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "iLabs" -} \ No newline at end of file +} diff --git a/boards/cytron_maker_nano_rp2040.json b/boards/cytron_maker_nano_rp2040.json index cb7314c..2b78995 100644 --- a/boards/cytron_maker_nano_rp2040.json +++ b/boards/cytron_maker_nano_rp2040.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "cytron_maker_nano_rp2040", "arduino": { "earlephilhower": { - "variant": "cytron_maker_nano_rp2040", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x100f", - "usb_manufacturer": "Cytron", - "usb_product": "Maker Nano RP2040" + "usb_pid": "0x100f" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Cytron" -} \ No newline at end of file +} diff --git a/boards/cytron_maker_pi_rp2040.json b/boards/cytron_maker_pi_rp2040.json index d5ed15c..a3985ac 100644 --- a/boards/cytron_maker_pi_rp2040.json +++ b/boards/cytron_maker_pi_rp2040.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "cytron_maker_pi_rp2040", "arduino": { "earlephilhower": { - "variant": "cytron_maker_pi_rp2040", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x1000", - "usb_manufacturer": "Cytron", - "usb_product": "Maker Pi RP2040" + "usb_pid": "0x1000" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Cytron" -} \ No newline at end of file +} diff --git a/boards/dfrobot_beetle_rp2040.json b/boards/dfrobot_beetle_rp2040.json index 95df8f8..f0c1f55 100644 --- a/boards/dfrobot_beetle_rp2040.json +++ b/boards/dfrobot_beetle_rp2040.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "dfrobot_beetle_rp2040", "arduino": { "earlephilhower": { - "variant": "dfrobot_beetle_rp2040", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x3343", - "usb_pid": "0x4253", - "usb_manufacturer": "DFRobot", - "usb_product": "Beetle RP2040" + "usb_pid": "0x4253" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "DFRobot" -} \ No newline at end of file +} diff --git a/boards/flyboard2040_core.json b/boards/flyboard2040_core.json index b60e0ba..b7f0b83 100644 --- a/boards/flyboard2040_core.json +++ b/boards/flyboard2040_core.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "flyboard2040_core", "arduino": { "earlephilhower": { - "variant": "flyboard2040_core", "boot2_source": "boot2_generic_03h_4_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x008a", - "usb_manufacturer": "DeRuiLab", - "usb_product": "FlyBoard2040Core" + "usb_pid": "0x008a" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "DeRuiLab" -} \ No newline at end of file +} diff --git a/boards/generic.json b/boards/generic.json index fa89b11..4785e67 100644 --- a/boards/generic.json +++ b/boards/generic.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "generic", "arduino": { "earlephilhower": { - "variant": "generic", "boot2_source": "boot2_generic_03h_4_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0xf00a", - "usb_manufacturer": "Generic", - "usb_product": "RP2040" + "usb_pid": "0xf00a" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Generic" -} \ No newline at end of file +} diff --git a/boards/ilabs_rpico32.json b/boards/ilabs_rpico32.json index 058e458..ee1dedf 100644 --- a/boards/ilabs_rpico32.json +++ b/boards/ilabs_rpico32.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "ilabs_rpico32", "arduino": { "earlephilhower": { - "variant": "ilabs_rpico32", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x1010", - "usb_manufacturer": "iLabs", - "usb_product": "RPICO32" + "usb_pid": "0x1010" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "iLabs" -} \ No newline at end of file +} diff --git a/boards/melopero_shake_rp2040.json b/boards/melopero_shake_rp2040.json index 9813457..761f215 100644 --- a/boards/melopero_shake_rp2040.json +++ b/boards/melopero_shake_rp2040.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "melopero_shake_rp2040", "arduino": { "earlephilhower": { - "variant": "melopero_shake_rp2040", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x1005", - "usb_manufacturer": "Melopero", - "usb_product": "Shake RP2040" + "usb_pid": "0x1005" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Melopero" -} \ No newline at end of file +} diff --git a/boards/rpipico.json b/boards/rpipico.json index 4d688ab..b5020bc 100644 --- a/boards/rpipico.json +++ b/boards/rpipico.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "rpipico", "arduino": { "earlephilhower": { - "variant": "rpipico", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x000a", - "usb_manufacturer": "Raspberry Pi", - "usb_product": "Pico" + "usb_pid": "0x000a" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Raspberry Pi" -} \ No newline at end of file +} diff --git a/boards/seeed_xiao_rp2040.json b/boards/seeed_xiao_rp2040.json index d70f696..8609f62 100644 --- a/boards/seeed_xiao_rp2040.json +++ b/boards/seeed_xiao_rp2040.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "seeed_xiao_rp2040", "arduino": { "earlephilhower": { - "variant": "seeed_xiao_rp2040", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x000a", - "usb_manufacturer": "Seeed", - "usb_product": "XAIO RP2040" + "usb_pid": "0x000a" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Seeed" -} \ No newline at end of file +} diff --git a/boards/solderparty_rp2040_stamp.json b/boards/solderparty_rp2040_stamp.json index 6f3ac69..57280be 100644 --- a/boards/solderparty_rp2040_stamp.json +++ b/boards/solderparty_rp2040_stamp.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "solderparty_rp2040_stamp", "arduino": { "earlephilhower": { - "variant": "solderparty_rp2040_stamp", "boot2_source": "boot2_generic_03h_4_padded_checksum.S", "usb_vid": "0x1209", - "usb_pid": "0xa182", - "usb_manufacturer": "Solder Party", - "usb_product": "RP2040 Stamp" + "usb_pid": "0xa182" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "Solder Party" -} \ No newline at end of file +} diff --git a/boards/sparkfun_promicrorp2040.json b/boards/sparkfun_promicrorp2040.json index 630630e..efd2fee 100644 --- a/boards/sparkfun_promicrorp2040.json +++ b/boards/sparkfun_promicrorp2040.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "sparkfun_promicrorp2040", "arduino": { "earlephilhower": { - "variant": "sparkfun_promicrorp2040", "boot2_source": "boot2_generic_03h_4_padded_checksum.S", "usb_vid": "0x1b4f", - "usb_pid": "0x0026", - "usb_manufacturer": "SparkFun", - "usb_product": "ProMicro RP2040" + "usb_pid": "0x0026" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "SparkFun" -} \ No newline at end of file +} diff --git a/boards/sparkfun_thingplusrp2040.json b/boards/sparkfun_thingplusrp2040.json index 982b55a..9c4a14c 100644 --- a/boards/sparkfun_thingplusrp2040.json +++ b/boards/sparkfun_thingplusrp2040.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "sparkfun_thingplusrp2040", "arduino": { "earlephilhower": { - "variant": "sparkfun_thingplusrp2040", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x1b4f", - "usb_pid": "0x0026", - "usb_manufacturer": "SparkFun", - "usb_product": "Thing Plus RP2040" + "usb_pid": "0x0026" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "SparkFun" -} \ No newline at end of file +} diff --git a/boards/upesy_rp2040_devkit.json b/boards/upesy_rp2040_devkit.json index 3452f7e..dcf85d4 100644 --- a/boards/upesy_rp2040_devkit.json +++ b/boards/upesy_rp2040_devkit.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "upesy_rp2040_devkit", "arduino": { "earlephilhower": { - "variant": "upesy_rp2040_devkit", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x1007", - "usb_manufacturer": "uPesy", - "usb_product": "RP2040 DevKit" + "usb_pid": "0x1007" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "uPesy" -} \ No newline at end of file +} diff --git a/boards/wiznet_5100s_evb_pico.json b/boards/wiznet_5100s_evb_pico.json index 2e66dba..1f82358 100644 --- a/boards/wiznet_5100s_evb_pico.json +++ b/boards/wiznet_5100s_evb_pico.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "wiznet_5100s_evb_pico", "arduino": { "earlephilhower": { - "variant": "wiznet_5100s_evb_pico", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x1027", - "usb_manufacturer": "WIZnet", - "usb_product": "W5100S-EVB-Pico" + "usb_pid": "0x1027" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "WIZnet" -} \ No newline at end of file +} diff --git a/boards/wiznet_5500_evb_pico.json b/boards/wiznet_5500_evb_pico.json index 27bfe0d..a39122f 100644 --- a/boards/wiznet_5500_evb_pico.json +++ b/boards/wiznet_5500_evb_pico.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "wiznet_5500_evb_pico", "arduino": { "earlephilhower": { - "variant": "wiznet_5500_evb_pico", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x1029", - "usb_manufacturer": "WIZnet", - "usb_product": "W5500-EVB-Pico" + "usb_pid": "0x1029" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "WIZnet" -} \ No newline at end of file +} diff --git a/boards/wiznet_wizfi360_evb_pico.json b/boards/wiznet_wizfi360_evb_pico.json index e696ca2..43f00bc 100644 --- a/boards/wiznet_wizfi360_evb_pico.json +++ b/boards/wiznet_wizfi360_evb_pico.json @@ -11,14 +11,12 @@ ] ], "mcu": "rp2040", + "variant": "wiznet_wizfi360_evb_pico", "arduino": { "earlephilhower": { - "variant": "wiznet_wizfi360_evb_pico", "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2e8a", - "usb_pid": "0x1028", - "usb_manufacturer": "WIZnet", - "usb_product": "WizFi360-EVB-Pico" + "usb_pid": "0x1028" } } }, @@ -49,4 +47,4 @@ }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", "vendor": "WIZnet" -} \ No newline at end of file +} From ab1e380b6477adc1dd1f9e95a6bdc403fe4fbdec Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 01:02:36 +0200 Subject: [PATCH 042/146] Use variable name for EEPROM length --- builder/main.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/builder/main.py b/builder/main.py index 8e1110a..5efb5d4 100644 --- a/builder/main.py +++ b/builder/main.py @@ -149,16 +149,19 @@ def fetch_fs_size(env): flash_size = board.get("upload.maximum_size") filesystem_size = board.get("build.filesystem_size", "0MB") filesystem_size_int = convert_size_expression_to_int(filesystem_size) + # last 4K are allocated for EEPROM emulation in flash. + # see https://github.com/earlephilhower/arduino-pico/blob/3414b73172d307e9dc901f7fee83b41112f73457/libraries/EEPROM/EEPROM.cpp#L43-L46 + eeprom_size = 4096 - maximum_sketch_size = flash_size - 4096 - filesystem_size_int + maximum_sketch_size = flash_size - eeprom_size - filesystem_size_int print("Flash size: %.2fMB" % (flash_size / 1024.0 / 1024.0)) print("Sketch size: %.2fMB" % (maximum_sketch_size / 1024.0 / 1024.0)) print("Filesystem size: %.2fMB" % (filesystem_size_int / 1024.0 / 1024.0)) - eeprom_start = 0x10000000 + flash_size - 4096 - fs_start = 0x10000000 + flash_size - 4096 - filesystem_size_int - fs_end = 0x10000000 + flash_size - 4096 + eeprom_start = 0x10000000 + flash_size - eeprom_size + fs_start = 0x10000000 + flash_size - eeprom_size - filesystem_size_int + fs_end = 0x10000000 + flash_size - eeprom_size if maximum_sketch_size <= 0: sys.stderr.write( @@ -173,7 +176,7 @@ def fetch_fs_size(env): env["PICO_EEPROM_START"] = eeprom_start env["FS_START"] = fs_start env["FS_END"] = fs_end - # LittleFS configuration paramters taken from + # LittleFS configuration parameters taken from # https://github.com/earlephilhower/arduino-pico-littlefs-plugin/blob/master/src/PicoLittleFS.java env["FS_PAGE"] = 256 env["FS_BLOCK"] = 4096 From 52bb6e5d7f84c57e2254e8b2acdad918ff3fa9c6 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 01:10:42 +0200 Subject: [PATCH 043/146] Rename fetch_fs_size in env, simplify mbed upload, remove PIO 3.6 legacy code --- builder/main.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/builder/main.py b/builder/main.py index 5efb5d4..d215606 100644 --- a/builder/main.py +++ b/builder/main.py @@ -210,7 +210,7 @@ def __fetch_fs_size(target, source, env): ) # store function to get infno about filesystems for builder scripts. -env["fetch_fs_size"] = fetch_fs_size +env["__fetch_fs_size"] = fetch_fs_size # # Target: Build executable and linkable firmware @@ -249,9 +249,6 @@ def _update_max_upload_size(env): env.VerboseAction( lambda source, target, env: _update_max_upload_size(env), "Retrieving maximum program size $SOURCE")) -# remove after PIO Core 3.6 release -elif set(["checkprogsize", "upload"]) & set(COMMAND_LINE_TARGETS): - _update_max_upload_size(env) # # Target: Print binary size @@ -295,12 +292,11 @@ def UploadUF2ToDisk(target, source, env): "Firmware has been successfully uploaded.\n" "(Some boards may require manual hard reset)" ) -env.UploadUF2ToDisk = UploadUF2ToDisk if upload_protocol == "mbed": upload_actions = [ env.VerboseAction(env.AutodetectUploadPort, "Looking for upload disk..."), - env.VerboseAction(env.UploadUF2ToDisk, "Uploading $SOURCE") + env.VerboseAction(UploadUF2ToDisk, "Uploading $SOURCE") ] elif upload_protocol == "picotool": env.Replace( From 41da472b8106ecfb017bd2fdbde3a0f305984bef Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 01:17:29 +0200 Subject: [PATCH 044/146] Quote uploader executable --- builder/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/main.py b/builder/main.py index d215606..47b5df8 100644 --- a/builder/main.py +++ b/builder/main.py @@ -312,7 +312,7 @@ def UploadUF2ToDisk(target, source, env): "load", "--verify" ], - UPLOADCMD="$UPLOADER $UPLOADERFLAGS $SOURCES --offset ${hex(FS_START)}", + UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES --offset ${hex(FS_START)}', ) upload_actions = [ From 6f7bbd86c8a7af1255c7e93359166b10b16fdad7 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 01:22:41 +0200 Subject: [PATCH 045/146] Revert to using ^ in tool-jlink version --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index c1c2b49..43bb64e 100644 --- a/platform.json +++ b/platform.json @@ -64,7 +64,7 @@ "type": "uploader", "optional": true, "owner": "platformio", - "version": "~1.72000.0" + "version": "^1.72000.0" }, "tool-mklittlefs-rp2040-earlephilhower": { "type": "uploader", From 40aea9c914253acd10318537234052c145ed609e Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 01:23:51 +0200 Subject: [PATCH 046/146] Make usage of double quotes consistent --- platform.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.py b/platform.py index 3b0ef55..f66db00 100644 --- a/platform.py +++ b/platform.py @@ -49,7 +49,7 @@ def configure_default_packages(self, variables, targets): # if we want to build a filesystem, we need the tools. if "buildfs" in targets: - self.packages['tool-mklittlefs-rp2040-earlephilhower']['optional'] = False + self.packages["tool-mklittlefs-rp2040-earlephilhower"]["optional"] = False # configure J-LINK tool jlink_conds = [ From 15497ac5401932d02b4e81529fee624955f343c4 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 03:03:11 +0200 Subject: [PATCH 047/146] Temporarily change package to test CI --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 43bb64e..eefde2c 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git" + "version": "https://github.com/maxgerhardt/arduino-pico.git" }, "tool-rp2040tools": { "type": "uploader", From baf2bf2f92bd304ff4e94cc4beb5ea4863eb26e7 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 04:05:01 +0200 Subject: [PATCH 048/146] Switch back to original core --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index eefde2c..43bb64e 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/maxgerhardt/arduino-pico.git" + "version": "https://github.com/earlephilhower/arduino-pico.git" }, "tool-rp2040tools": { "type": "uploader", From 1b43288ac0511d79da9898af2fe140ca59046a39 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 16:08:12 +0200 Subject: [PATCH 049/146] Shift arduino attribute higher in JSON files --- boards/adafruit_feather.json | 16 ++++++++-------- boards/adafruit_itsybitsy.json | 16 ++++++++-------- boards/adafruit_kb2040.json | 16 ++++++++-------- boards/adafruit_macropad2040.json | 16 ++++++++-------- boards/adafruit_qtpy.json | 16 ++++++++-------- boards/adafruit_stemmafriend.json | 16 ++++++++-------- boards/adafruit_trinkeyrp2040qt.json | 16 ++++++++-------- boards/arduino_nano_connect.json | 16 ++++++++-------- boards/challenger_2040_lora.json | 16 ++++++++-------- boards/challenger_2040_lte.json | 16 ++++++++-------- boards/challenger_2040_wifi.json | 16 ++++++++-------- boards/challenger_2040_wifi_ble.json | 16 ++++++++-------- boards/challenger_nb_2040_wifi.json | 16 ++++++++-------- boards/cytron_maker_nano_rp2040.json | 16 ++++++++-------- boards/cytron_maker_pi_rp2040.json | 16 ++++++++-------- boards/dfrobot_beetle_rp2040.json | 16 ++++++++-------- boards/flyboard2040_core.json | 16 ++++++++-------- boards/generic.json | 16 ++++++++-------- boards/ilabs_rpico32.json | 16 ++++++++-------- boards/melopero_shake_rp2040.json | 16 ++++++++-------- boards/rpipico.json | 16 ++++++++-------- boards/seeed_xiao_rp2040.json | 16 ++++++++-------- boards/solderparty_rp2040_stamp.json | 16 ++++++++-------- boards/sparkfun_promicrorp2040.json | 16 ++++++++-------- boards/sparkfun_thingplusrp2040.json | 16 ++++++++-------- boards/upesy_rp2040_devkit.json | 16 ++++++++-------- boards/wiznet_5100s_evb_pico.json | 16 ++++++++-------- boards/wiznet_5500_evb_pico.json | 16 ++++++++-------- boards/wiznet_wizfi360_evb_pico.json | 16 ++++++++-------- 29 files changed, 232 insertions(+), 232 deletions(-) diff --git a/boards/adafruit_feather.json b/boards/adafruit_feather.json index 46c114d..9629c2b 100644 --- a/boards/adafruit_feather.json +++ b/boards/adafruit_feather.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25x10cl_4_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x80f1" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "adafruit_feather", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25x10cl_4_padded_checksum.S", - "usb_vid": "0x239a", - "usb_pid": "0x80f1" - } - } + "variant": "adafruit_feather" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/adafruit_itsybitsy.json b/boards/adafruit_itsybitsy.json index 3119dac..abf457a 100644 --- a/boards/adafruit_itsybitsy.json +++ b/boards/adafruit_itsybitsy.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x80fd" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_ADAFRUIT_ITSYBITSY_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "adafruit_itsybitsy", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", - "usb_pid": "0x80fd" - } - } + "variant": "adafruit_itsybitsy" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/adafruit_kb2040.json b/boards/adafruit_kb2040.json index d77f37a..51c2806 100644 --- a/boards/adafruit_kb2040.json +++ b/boards/adafruit_kb2040.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x8105" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_ADAFRUIT_KB2040_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "adafruit_kb2040", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", - "usb_pid": "0x8105" - } - } + "variant": "adafruit_kb2040" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/adafruit_macropad2040.json b/boards/adafruit_macropad2040.json index 34c7a12..3aa705d 100644 --- a/boards/adafruit_macropad2040.json +++ b/boards/adafruit_macropad2040.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x8107" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_ADAFRUIT_MACROPAD_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "adafruit_macropad2040", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", - "usb_pid": "0x8107" - } - } + "variant": "adafruit_macropad2040" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/adafruit_qtpy.json b/boards/adafruit_qtpy.json index f372308..3ce3131 100644 --- a/boards/adafruit_qtpy.json +++ b/boards/adafruit_qtpy.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x80f7" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_ADAFRUIT_QTPY_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "adafruit_qtpy", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", - "usb_pid": "0x80f7" - } - } + "variant": "adafruit_qtpy" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/adafruit_stemmafriend.json b/boards/adafruit_stemmafriend.json index d9c1667..092cf3b 100644 --- a/boards/adafruit_stemmafriend.json +++ b/boards/adafruit_stemmafriend.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x80e3" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_ADAFRUIT_STEMMAFRIEND_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "adafruit_stemmafriend", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", - "usb_pid": "0x80e3" - } - } + "variant": "adafruit_stemmafriend" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/adafruit_trinkeyrp2040qt.json b/boards/adafruit_trinkeyrp2040qt.json index 3472ccc..0e3e5fa 100644 --- a/boards/adafruit_trinkeyrp2040qt.json +++ b/boards/adafruit_trinkeyrp2040qt.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239a", + "usb_pid": "0x8109" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_ADAFRUIT_TRINKEYQT_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "adafruit_trinkeyrp2040qt", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", - "usb_pid": "0x8109" - } - } + "variant": "adafruit_trinkeyrp2040qt" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/arduino_nano_connect.json b/boards/arduino_nano_connect.json index a8235e0..0f384ac 100644 --- a/boards/arduino_nano_connect.json +++ b/boards/arduino_nano_connect.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2341", + "usb_pid": "0x0058" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_NANO_RP2040_CONNECT -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "arduino_nano_connect", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2341", - "usb_pid": "0x0058" - } - } + "variant": "arduino_nano_connect" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/challenger_2040_lora.json b/boards/challenger_2040_lora.json index 7e75c39..0314757 100644 --- a/boards/challenger_2040_lora.json +++ b/boards/challenger_2040_lora.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1023" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_CHALLENGER_2040_LORA_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "challenger_2040_lora", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x1023" - } - } + "variant": "challenger_2040_lora" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/challenger_2040_lte.json b/boards/challenger_2040_lte.json index 5e59e2d..5a35c31 100644 --- a/boards/challenger_2040_lte.json +++ b/boards/challenger_2040_lte.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x100b" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_CHALLENGER_2040_LTE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "challenger_2040_lte", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x100b" - } - } + "variant": "challenger_2040_lte" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/challenger_2040_wifi.json b/boards/challenger_2040_wifi.json index e286c81..a9740b1 100644 --- a/boards/challenger_2040_wifi.json +++ b/boards/challenger_2040_wifi.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1006" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "challenger_2040_wifi", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x1006" - } - } + "variant": "challenger_2040_wifi" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/challenger_2040_wifi_ble.json b/boards/challenger_2040_wifi_ble.json index 78cfefa..51338a9 100644 --- a/boards/challenger_2040_wifi_ble.json +++ b/boards/challenger_2040_wifi_ble.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x102C" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI_BLE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "challenger_2040_wifi_ble", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x102C" - } - } + "variant": "challenger_2040_wifi_ble" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/challenger_nb_2040_wifi.json b/boards/challenger_nb_2040_wifi.json index 8adff86..bed8db3 100644 --- a/boards/challenger_nb_2040_wifi.json +++ b/boards/challenger_nb_2040_wifi.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x100b" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_CHALLENGER_NB_2040_WIFI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "challenger_nb_2040_wifi", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x100b" - } - } + "variant": "challenger_nb_2040_wifi" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/cytron_maker_nano_rp2040.json b/boards/cytron_maker_nano_rp2040.json index 2b78995..434542b 100644 --- a/boards/cytron_maker_nano_rp2040.json +++ b/boards/cytron_maker_nano_rp2040.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x100f" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_CYTRON_MAKER_NANO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "cytron_maker_nano_rp2040", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x100f" - } - } + "variant": "cytron_maker_nano_rp2040" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/cytron_maker_pi_rp2040.json b/boards/cytron_maker_pi_rp2040.json index a3985ac..9ae6820 100644 --- a/boards/cytron_maker_pi_rp2040.json +++ b/boards/cytron_maker_pi_rp2040.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1000" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_CYTRON_MAKER_PI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "cytron_maker_pi_rp2040", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x1000" - } - } + "variant": "cytron_maker_pi_rp2040" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/dfrobot_beetle_rp2040.json b/boards/dfrobot_beetle_rp2040.json index f0c1f55..5cf0502 100644 --- a/boards/dfrobot_beetle_rp2040.json +++ b/boards/dfrobot_beetle_rp2040.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x3343", + "usb_pid": "0x4253" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_DFROBOT_BEETLE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "dfrobot_beetle_rp2040", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x3343", - "usb_pid": "0x4253" - } - } + "variant": "dfrobot_beetle_rp2040" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/flyboard2040_core.json b/boards/flyboard2040_core.json index b7f0b83..966656d 100644 --- a/boards/flyboard2040_core.json +++ b/boards/flyboard2040_core.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x008a" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_FLYBOARD2040_CORE -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "flyboard2040_core", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_generic_03h_4_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x008a" - } - } + "variant": "flyboard2040_core" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/generic.json b/boards/generic.json index 4785e67..c8746d9 100644 --- a/boards/generic.json +++ b/boards/generic.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0xf00a" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_GENERIC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "generic", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_generic_03h_4_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0xf00a" - } - } + "variant": "generic" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/ilabs_rpico32.json b/boards/ilabs_rpico32.json index ee1dedf..b484417 100644 --- a/boards/ilabs_rpico32.json +++ b/boards/ilabs_rpico32.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1010" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_ILABS_2040_RPICO32_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "ilabs_rpico32", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x1010" - } - } + "variant": "ilabs_rpico32" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/melopero_shake_rp2040.json b/boards/melopero_shake_rp2040.json index 761f215..20243ae 100644 --- a/boards/melopero_shake_rp2040.json +++ b/boards/melopero_shake_rp2040.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1005" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_MELOPERO_SHAKE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "melopero_shake_rp2040", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x1005" - } - } + "variant": "melopero_shake_rp2040" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/rpipico.json b/boards/rpipico.json index b5020bc..4c8cd3a 100644 --- a/boards/rpipico.json +++ b/boards/rpipico.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x000a" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "rpipico", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x000a" - } - } + "variant": "rpipico" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/seeed_xiao_rp2040.json b/boards/seeed_xiao_rp2040.json index 8609f62..d5a4073 100644 --- a/boards/seeed_xiao_rp2040.json +++ b/boards/seeed_xiao_rp2040.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x000a" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_SEEED_XAIO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "seeed_xiao_rp2040", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x000a" - } - } + "variant": "seeed_xiao_rp2040" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/solderparty_rp2040_stamp.json b/boards/solderparty_rp2040_stamp.json index 57280be..cd0acc3 100644 --- a/boards/solderparty_rp2040_stamp.json +++ b/boards/solderparty_rp2040_stamp.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x1209", + "usb_pid": "0xa182" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_SOLDERPARTY_RP2040_STAMP -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "solderparty_rp2040_stamp", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_generic_03h_4_padded_checksum.S", - "usb_vid": "0x1209", - "usb_pid": "0xa182" - } - } + "variant": "solderparty_rp2040_stamp" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/sparkfun_promicrorp2040.json b/boards/sparkfun_promicrorp2040.json index efd2fee..50629ab 100644 --- a/boards/sparkfun_promicrorp2040.json +++ b/boards/sparkfun_promicrorp2040.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x1b4f", + "usb_pid": "0x0026" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_SPARKFUN_PROMICRO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "sparkfun_promicrorp2040", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_generic_03h_4_padded_checksum.S", - "usb_vid": "0x1b4f", - "usb_pid": "0x0026" - } - } + "variant": "sparkfun_promicrorp2040" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/sparkfun_thingplusrp2040.json b/boards/sparkfun_thingplusrp2040.json index 9c4a14c..84eeae9 100644 --- a/boards/sparkfun_thingplusrp2040.json +++ b/boards/sparkfun_thingplusrp2040.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x1b4f", + "usb_pid": "0x0026" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_SPARKFUN_THINGPLUS_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "sparkfun_thingplusrp2040", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x1b4f", - "usb_pid": "0x0026" - } - } + "variant": "sparkfun_thingplusrp2040" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/upesy_rp2040_devkit.json b/boards/upesy_rp2040_devkit.json index dcf85d4..e8567f8 100644 --- a/boards/upesy_rp2040_devkit.json +++ b/boards/upesy_rp2040_devkit.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1007" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_UPESY_RP2040_DEVKIT -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "upesy_rp2040_devkit", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x1007" - } - } + "variant": "upesy_rp2040_devkit" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/wiznet_5100s_evb_pico.json b/boards/wiznet_5100s_evb_pico.json index 1f82358..af186be 100644 --- a/boards/wiznet_5100s_evb_pico.json +++ b/boards/wiznet_5100s_evb_pico.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1027" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_WIZNET_5100S_EVB_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "wiznet_5100s_evb_pico", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x1027" - } - } + "variant": "wiznet_5100s_evb_pico" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/wiznet_5500_evb_pico.json b/boards/wiznet_5500_evb_pico.json index a39122f..74b391a 100644 --- a/boards/wiznet_5500_evb_pico.json +++ b/boards/wiznet_5500_evb_pico.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1029" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_WIZNET_5500_EVB_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "wiznet_5500_evb_pico", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x1029" - } - } + "variant": "wiznet_5500_evb_pico" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/wiznet_wizfi360_evb_pico.json b/boards/wiznet_wizfi360_evb_pico.json index 43f00bc..009c598 100644 --- a/boards/wiznet_wizfi360_evb_pico.json +++ b/boards/wiznet_wizfi360_evb_pico.json @@ -1,5 +1,12 @@ { "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1028" + } + }, "core": "earlephilhower", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_WIZNET_WIZFI360_EVB_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", @@ -11,14 +18,7 @@ ] ], "mcu": "rp2040", - "variant": "wiznet_wizfi360_evb_pico", - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x1028" - } - } + "variant": "wiznet_wizfi360_evb_pico" }, "debug": { "jlink_device": "RP2040_M0_0", From 1e709a2f4524d664463690811a337f318542f73f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 16:12:59 +0200 Subject: [PATCH 050/146] Push arduino attribute higher --- boards/nanorp2040connect.json | 22 +++++++++++----------- boards/pico.json | 22 +++++++++++----------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/boards/nanorp2040connect.json b/boards/nanorp2040connect.json index 4e9c594..3122960 100644 --- a/boards/nanorp2040connect.json +++ b/boards/nanorp2040connect.json @@ -1,5 +1,15 @@ { "build": { + "arduino": { + "earlephilhower": { + "variant": "arduino_nano_connect", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_pid": "0x0058", + "usb_vid": "0x2341", + "usb_manufacturer": "Arduino", + "usb_product" : "Arduino Nano RP2040 Connect" + } + }, "core": "arduino", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_NANO_RP2040_CONNECT -DARDUINO_ARCH_RP2040", @@ -15,17 +25,7 @@ ] ], "mcu": "rp2040", - "variant": "NANO_RP2040_CONNECT", - "arduino": { - "earlephilhower": { - "variant": "arduino_nano_connect", - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_pid": "0x0058", - "usb_vid": "0x2341", - "usb_manufacturer": "Arduino", - "usb_product" : "Arduino Nano RP2040 Connect" - } - } + "variant": "NANO_RP2040_CONNECT" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/pico.json b/boards/pico.json index eaec305..55fdfa4 100644 --- a/boards/pico.json +++ b/boards/pico.json @@ -1,5 +1,15 @@ { "build": { + "arduino": { + "earlephilhower": { + "variant": "rpipico", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x000a", + "usb_manufacturer": "Raspberry Pi", + "usb_product": "Pico" + } + }, "core": "arduino", "cpu": "cortex-m0plus", "extra_flags": "-D ARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", @@ -11,17 +21,7 @@ ] ], "mcu": "rp2040", - "variant": "RASPBERRY_PI_PICO", - "arduino": { - "earlephilhower": { - "variant": "rpipico", - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x000a", - "usb_manufacturer": "Raspberry Pi", - "usb_product": "Pico" - } - } + "variant": "RASPBERRY_PI_PICO" }, "debug": { "jlink_device": "RP2040_M0_0", From dc38120b89786c0681b4517406333fe67ed9ab8f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 16:13:38 +0200 Subject: [PATCH 051/146] Move filesystem funcs higher, use env.Replace --- builder/main.py | 155 ++++++++++++++++++++++++------------------------ 1 file changed, 76 insertions(+), 79 deletions(-) diff --git a/builder/main.py b/builder/main.py index 47b5df8..e6a832e 100644 --- a/builder/main.py +++ b/builder/main.py @@ -25,6 +25,80 @@ from SCons.Script import (ARGUMENTS, COMMAND_LINE_TARGETS, AlwaysBuild, Builder, Default, DefaultEnvironment) +def convert_size_expression_to_int(expression): + conversion_factors = { + "M": 1024*1024, + "MB": 1024*1024, + "K": 1024, + "KB": 1024, + "B": 1, + "": 1 # giving no conversion factor is factor 1. + } + # match . + extract_regex = r'^((?:[0-9]*[.])?[0-9]+)([mkbMKB]*)$' + res = re.findall(extract_regex, expression) + # unparsable expression? Warning. + if len(res) == 0: + sys.stderr.write( + "Error: Could not parse filesystem size expression '%s'." + " Will treat as size = 0.\n" % str(expression)) + return 0 + # access first result + number, factor = res[0] + number = float(number) + number *= conversion_factors[factor.upper()] + return int(number) + +def fetch_fs_size(env): + # follow generation formulas from makeboards.py for Earle Philhower core + # given the total flash size, a user can specify + # the amount for the filesystem (0MB, 2MB, 4MB, 8MB, 16MB) + # via board_build.filesystem_size, + # and we will calculate the flash size and eeprom size from that. + flash_size = board.get("upload.maximum_size") + filesystem_size = board.get("build.filesystem_size", "0MB") + filesystem_size_int = convert_size_expression_to_int(filesystem_size) + # last 4K are allocated for EEPROM emulation in flash. + # see https://github.com/earlephilhower/arduino-pico/blob/3414b73172d307e9dc901f7fee83b41112f73457/libraries/EEPROM/EEPROM.cpp#L43-L46 + eeprom_size = 4096 + + maximum_sketch_size = flash_size - eeprom_size - filesystem_size_int + + print("Flash size: %.2fMB" % (flash_size / 1024.0 / 1024.0)) + print("Sketch size: %.2fMB" % (maximum_sketch_size / 1024.0 / 1024.0)) + print("Filesystem size: %.2fMB" % (filesystem_size_int / 1024.0 / 1024.0)) + + eeprom_start = 0x10000000 + flash_size - eeprom_size + fs_start = 0x10000000 + flash_size - eeprom_size - filesystem_size_int + fs_end = 0x10000000 + flash_size - eeprom_size + + if maximum_sketch_size <= 0: + sys.stderr.write( + "Error: Filesystem too large for given flash. " + "Can at max be flash size - 4096 bytes. " + "Available sketch size with current " + "config would be %d bytes.\n" % maximum_sketch_size) + sys.stderr.flush() + env.Exit(1) + + env["PICO_FLASH_LENGTH"] = maximum_sketch_size + env["PICO_EEPROM_START"] = eeprom_start + env["FS_START"] = fs_start + env["FS_END"] = fs_end + # LittleFS configuration parameters taken from + # https://github.com/earlephilhower/arduino-pico-littlefs-plugin/blob/master/src/PicoLittleFS.java + env["FS_PAGE"] = 256 + env["FS_BLOCK"] = 4096 + + print("Maximium Sketch size: %d " + "EEPROM start: %s Filesystem start: %s " + "Filesystem end: %s" % + (maximum_sketch_size, hex(eeprom_start), hex(fs_start), hex(fs_end))) + + +def __fetch_fs_size(target, source, env): + fetch_fs_size(env) + return (target, source) def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 upload_options = {} @@ -59,6 +133,8 @@ def generate_uf2(target, source, env): board = env.BoardConfig() env.Replace( + __fetch_fs_size=fetch_fs_size, + AR="arm-none-eabi-ar", AS="arm-none-eabi-as", CC="arm-none-eabi-gcc", @@ -115,82 +191,6 @@ def generate_uf2(target, source, env): if not env.get("PIOFRAMEWORK"): env.SConscript("frameworks/_bare.py") - -def convert_size_expression_to_int(expression): - conversion_factors = { - "M": 1024*1024, - "MB": 1024*1024, - "K": 1024, - "KB": 1024, - "B": 1, - "": 1 # giving no conversion factor is factor 1. - } - # match . - extract_regex = r'^((?:[0-9]*[.])?[0-9]+)([mkbMKB]*)$' - res = re.findall(extract_regex, expression) - # unparsable expression? Warning. - if len(res) == 0: - sys.stderr.write( - "Error: Could not parse filesystem size expression '%s'." - " Will treat as size = 0.\n" % str(expression)) - return 0 - # access first result - number, factor = res[0] - number = float(number) - number *= conversion_factors[factor.upper()] - return int(number) - -def fetch_fs_size(env): - # follow generation formulas from makeboards.py for Earle Philhower core - # given the total flash size, a user can specify - # the amount for the filesystem (0MB, 2MB, 4MB, 8MB, 16MB) - # via board_build.filesystem_size, - # and we will calculate the flash size and eeprom size from that. - flash_size = board.get("upload.maximum_size") - filesystem_size = board.get("build.filesystem_size", "0MB") - filesystem_size_int = convert_size_expression_to_int(filesystem_size) - # last 4K are allocated for EEPROM emulation in flash. - # see https://github.com/earlephilhower/arduino-pico/blob/3414b73172d307e9dc901f7fee83b41112f73457/libraries/EEPROM/EEPROM.cpp#L43-L46 - eeprom_size = 4096 - - maximum_sketch_size = flash_size - eeprom_size - filesystem_size_int - - print("Flash size: %.2fMB" % (flash_size / 1024.0 / 1024.0)) - print("Sketch size: %.2fMB" % (maximum_sketch_size / 1024.0 / 1024.0)) - print("Filesystem size: %.2fMB" % (filesystem_size_int / 1024.0 / 1024.0)) - - eeprom_start = 0x10000000 + flash_size - eeprom_size - fs_start = 0x10000000 + flash_size - eeprom_size - filesystem_size_int - fs_end = 0x10000000 + flash_size - eeprom_size - - if maximum_sketch_size <= 0: - sys.stderr.write( - "Error: Filesystem too large for given flash. " - "Can at max be flash size - 4096 bytes. " - "Available sketch size with current " - "config would be %d bytes.\n" % maximum_sketch_size) - sys.stderr.flush() - env.Exit(1) - - env["PICO_FLASH_LENGTH"] = maximum_sketch_size - env["PICO_EEPROM_START"] = eeprom_start - env["FS_START"] = fs_start - env["FS_END"] = fs_end - # LittleFS configuration parameters taken from - # https://github.com/earlephilhower/arduino-pico-littlefs-plugin/blob/master/src/PicoLittleFS.java - env["FS_PAGE"] = 256 - env["FS_BLOCK"] = 4096 - - print("Maximium Sketch size: %d " - "EEPROM start: %s Filesystem start: %s " - "Filesystem end: %s" % - (maximum_sketch_size, hex(eeprom_start), hex(fs_start), hex(fs_end))) - - -def __fetch_fs_size(target, source, env): - fetch_fs_size(env) - return (target, source) - env.Append( BUILDERS=dict( DataToBin=Builder( @@ -209,9 +209,6 @@ def __fetch_fs_size(target, source, env): ) ) -# store function to get infno about filesystems for builder scripts. -env["__fetch_fs_size"] = fetch_fs_size - # # Target: Build executable and linkable firmware # From 97b862c887c3a43e61c2ba7b9c20825608a157fd Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 16:14:16 +0200 Subject: [PATCH 052/146] Add newline at end of platformio.ini --- examples/arduino-blink/platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/arduino-blink/platformio.ini b/examples/arduino-blink/platformio.ini index 840a800..2d88d91 100644 --- a/examples/arduino-blink/platformio.ini +++ b/examples/arduino-blink/platformio.ini @@ -38,4 +38,4 @@ board = adafruit_feather board = seeed_xiao_rp2040 [env:sparkfun_thingplusrp2040] -board = sparkfun_thingplusrp2040 \ No newline at end of file +board = sparkfun_thingplusrp2040 From 9177e55c7c21f985e52e8972e8b6548b059ce252 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 16:16:33 +0200 Subject: [PATCH 053/146] Inline delay function --- builder/main.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/builder/main.py b/builder/main.py index e6a832e..21cc542 100644 --- a/builder/main.py +++ b/builder/main.py @@ -256,9 +256,6 @@ def _update_max_upload_size(env): env.VerboseAction("$SIZEPRINTCMD", "Calculating size $SOURCE")) AlwaysBuild(target_size) -def DelayBeforeUpload(target, source, env): # pylint: disable=W0613,W0621 - time.sleep(0.5) - def RebootPico(target, source, env): time.sleep(0.5) env.Execute( @@ -319,7 +316,8 @@ def UploadUF2ToDisk(target, source, env): # picotool seems to need just a tiny bit of delay, but rp2040 load not.. if "uploadfs" in COMMAND_LINE_TARGETS: - upload_actions.insert(1, env.VerboseAction(DelayBeforeUpload, "Delaying a tiny bit...")) + upload_actions.insert(1, env.VerboseAction( + lambda source, target, env: time.sleep(0.5), "Delaying a tiny bit...")) # reboot after filesystem upload upload_actions.append(env.VerboseAction(RebootPico, "Rebooting device...")) From d24609b89e26da75a5a7fe01df2b98818716611f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 17:59:34 +0200 Subject: [PATCH 054/146] Add support for filesystem flashing with JLink --- builder/main.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/builder/main.py b/builder/main.py index 21cc542..9825d56 100644 --- a/builder/main.py +++ b/builder/main.py @@ -330,10 +330,11 @@ def _jlink_cmd_script(env, source): if not isdir(build_dir): makedirs(build_dir) script_path = join(build_dir, "upload.jlink") + upload_addr = hex(env["FS_START"]) if "uploadfs" in COMMAND_LINE_TARGETS else board.get( + "upload.offset_address", "0x0") commands = [ "h", - "loadbin %s, %s" % (source, board.get( - "upload.offset_address", "0x0")), + "loadbin %s, %s" % (source, upload_addr), "r", "q" ] From bc18ccc8acaab79c617acee990f7d28c57dde374 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Jun 2022 18:15:06 +0200 Subject: [PATCH 055/146] Minor identiation fix --- builder/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/main.py b/builder/main.py index 9825d56..409d9e7 100644 --- a/builder/main.py +++ b/builder/main.py @@ -331,7 +331,7 @@ def _jlink_cmd_script(env, source): makedirs(build_dir) script_path = join(build_dir, "upload.jlink") upload_addr = hex(env["FS_START"]) if "uploadfs" in COMMAND_LINE_TARGETS else board.get( - "upload.offset_address", "0x0") + "upload.offset_address", "0x0") commands = [ "h", "loadbin %s, %s" % (source, upload_addr), From 5f45696ec1ee010a08423efec7fe3e448ce07755 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 29 Jun 2022 23:40:48 +0200 Subject: [PATCH 056/146] Reference stable toolchain + framework version for 2.0.2 --- platform.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform.json b/platform.json index 43bb64e..81ecc4e 100644 --- a/platform.json +++ b/platform.json @@ -35,7 +35,7 @@ "type": "toolchain", "optional": true, "owner": "earlephilhower", - "version": "~5.100300.0" + "version": "5.100300.220629" }, "framework-arduino-mbed": { "type": "framework", @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git" + "version": "~1.20202.0" }, "tool-rp2040tools": { "type": "uploader", From 28e5339cdce2026646ad6d2e4c9e67a3f6e5d09d Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 5 Jul 2022 18:46:11 +0200 Subject: [PATCH 057/146] Allow GCC 9.3.2 versions for ARM Linux instead of only 9.2.1 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 81ecc4e..a390601 100644 --- a/platform.json +++ b/platform.json @@ -29,7 +29,7 @@ "toolchain-gccarmnoneeabi": { "type": "toolchain", "owner": "platformio", - "version": "~1.90201.0" + "version": ">=1.90201.0,<1.90302.0" }, "toolchain-rp2040-earlephilhower": { "type": "toolchain", From 17cb99f3fbe6df9895a0a51ded5324e288a28cb7 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Fri, 15 Jul 2022 18:24:59 +0200 Subject: [PATCH 058/146] Update platform.json --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index a390601..1e9514d 100644 --- a/platform.json +++ b/platform.json @@ -35,7 +35,7 @@ "type": "toolchain", "optional": true, "owner": "earlephilhower", - "version": "5.100300.220629" + "version": "5.100300.220714" }, "framework-arduino-mbed": { "type": "framework", From 488689c592f8e20512c0f31f00b051e7cd13af8f Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 19 Jul 2022 11:23:03 +0200 Subject: [PATCH 059/146] Update to Arduino-Pico 2.3.1 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 1e9514d..40b337f 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "~1.20202.0" + "version": "~1.20301.0" }, "tool-rp2040tools": { "type": "uploader", From 47b206f084d1a4ebe8bdf3f9855ab5e1aba25fe7 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 19 Jul 2022 11:25:38 +0200 Subject: [PATCH 060/146] Update Arduino-Pico board files --- boards/challenger_2040_sdrtc.json | 50 ++++++++++++++++++++++++++++++ boards/challenger_2040_subghz.json | 50 ++++++++++++++++++++++++++++++ boards/rpipicow.json | 50 ++++++++++++++++++++++++++++++ 3 files changed, 150 insertions(+) create mode 100644 boards/challenger_2040_sdrtc.json create mode 100644 boards/challenger_2040_subghz.json create mode 100644 boards/rpipicow.json diff --git a/boards/challenger_2040_sdrtc.json b/boards/challenger_2040_sdrtc.json new file mode 100644 index 0000000..4f49771 --- /dev/null +++ b/boards/challenger_2040_sdrtc.json @@ -0,0 +1,50 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x102d" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CHALLENGER_NB_2040_SDRTC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "variant": "challenger_2040_sdrtc" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Challenger 2040 SD/RTC", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "iLabs" +} diff --git a/boards/challenger_2040_subghz.json b/boards/challenger_2040_subghz.json new file mode 100644 index 0000000..827dd1b --- /dev/null +++ b/boards/challenger_2040_subghz.json @@ -0,0 +1,50 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0x1032" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CHALLENGER_2040_SUBGHZ_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "variant": "challenger_2040_subghz" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Challenger 2040 SubGHz", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "iLabs" +} diff --git a/boards/rpipicow.json b/boards/rpipicow.json new file mode 100644 index 0000000..ed3e67f --- /dev/null +++ b/boards/rpipicow.json @@ -0,0 +1,50 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2e8a", + "usb_pid": "0xf00a" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_RASPBERRY_PI_PICO_W -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "variant": "rpipicow" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Pico W", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Raspberry Pi" +} From 165ade2beb163086e800931d3a9837b425bcec95 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 19 Jul 2022 11:26:38 +0200 Subject: [PATCH 061/146] Add RPI Pico W (WiFi) to CI --- examples/arduino-blink/platformio.ini | 3 +++ 1 file changed, 3 insertions(+) diff --git a/examples/arduino-blink/platformio.ini b/examples/arduino-blink/platformio.ini index 2d88d91..34a2285 100644 --- a/examples/arduino-blink/platformio.ini +++ b/examples/arduino-blink/platformio.ini @@ -39,3 +39,6 @@ board = seeed_xiao_rp2040 [env:sparkfun_thingplusrp2040] board = sparkfun_thingplusrp2040 + +[env:rpipicow] +board = rpipicow From eb8f864d8781eb70bdaa685215122440e13f5b65 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 19 Jul 2022 11:30:51 +0200 Subject: [PATCH 062/146] Add Pico W WiFi Scan example --- examples/arduino-wifi-scan/README.md | 25 ++++++++++++ examples/arduino-wifi-scan/include/README | 39 +++++++++++++++++++ examples/arduino-wifi-scan/lib/README | 46 +++++++++++++++++++++++ examples/arduino-wifi-scan/platformio.ini | 15 ++++++++ examples/arduino-wifi-scan/src/main.cpp | 43 +++++++++++++++++++++ examples/arduino-wifi-scan/test/README | 11 ++++++ 6 files changed, 179 insertions(+) create mode 100644 examples/arduino-wifi-scan/README.md create mode 100644 examples/arduino-wifi-scan/include/README create mode 100644 examples/arduino-wifi-scan/lib/README create mode 100644 examples/arduino-wifi-scan/platformio.ini create mode 100644 examples/arduino-wifi-scan/src/main.cpp create mode 100644 examples/arduino-wifi-scan/test/README diff --git a/examples/arduino-wifi-scan/README.md b/examples/arduino-wifi-scan/README.md new file mode 100644 index 0000000..6037265 --- /dev/null +++ b/examples/arduino-wifi-scan/README.md @@ -0,0 +1,25 @@ +How to build PlatformIO based project +===================================== + +1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html) +2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip) +3. Extract ZIP archive +4. Run these commands: + +```shell +# Change directory to example +$ cd platform-raspberrypi/examples/arduino-wifi-scan + +# Build project +$ pio run + +# Upload firmware +$ pio run --target upload + +# Clean build files +$ pio run --target clean +``` + +## Notes + +This example is only intended for the Raspberry Pi Pico W with the [Earle Philhower](https://github.com/earlephilhower/arduino-pico) core. diff --git a/examples/arduino-wifi-scan/include/README b/examples/arduino-wifi-scan/include/README new file mode 100644 index 0000000..194dcd4 --- /dev/null +++ b/examples/arduino-wifi-scan/include/README @@ -0,0 +1,39 @@ + +This directory is intended for project header files. + +A header file is a file containing C declarations and macro definitions +to be shared between several project source files. You request the use of a +header file in your project source file (C, C++, etc) located in `src` folder +by including it, with the C preprocessing directive `#include'. + +```src/main.c + +#include "header.h" + +int main (void) +{ + ... +} +``` + +Including a header file produces the same results as copying the header file +into each source file that needs it. Such copying would be time-consuming +and error-prone. With a header file, the related declarations appear +in only one place. If they need to be changed, they can be changed in one +place, and programs that include the header file will automatically use the +new version when next recompiled. The header file eliminates the labor of +finding and changing all the copies as well as the risk that a failure to +find one copy will result in inconsistencies within a program. + +In C, the usual convention is to give header files names that end with `.h'. +It is most portable to use only letters, digits, dashes, and underscores in +header file names, and at most one dot. + +Read more about using header files in official GCC documentation: + +* Include Syntax +* Include Operation +* Once-Only Headers +* Computed Includes + +https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/examples/arduino-wifi-scan/lib/README b/examples/arduino-wifi-scan/lib/README new file mode 100644 index 0000000..6debab1 --- /dev/null +++ b/examples/arduino-wifi-scan/lib/README @@ -0,0 +1,46 @@ + +This directory is intended for project specific (private) libraries. +PlatformIO will compile them to static libraries and link into executable file. + +The source code of each library should be placed in a an own separate directory +("lib/your_library_name/[here are source files]"). + +For example, see a structure of the following two libraries `Foo` and `Bar`: + +|--lib +| | +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html +| | +| |--Foo +| | |- Foo.c +| | |- Foo.h +| | +| |- README --> THIS FILE +| +|- platformio.ini +|--src + |- main.c + +and a contents of `src/main.c`: +``` +#include +#include + +int main (void) +{ + ... +} + +``` + +PlatformIO Library Dependency Finder will find automatically dependent +libraries scanning project source files. + +More information about PlatformIO Library Dependency Finder +- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/examples/arduino-wifi-scan/platformio.ini b/examples/arduino-wifi-scan/platformio.ini new file mode 100644 index 0000000..edd3aa0 --- /dev/null +++ b/examples/arduino-wifi-scan/platformio.ini @@ -0,0 +1,15 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter, extra scripting +; Upload options: custom port, speed and extra flags +; Library options: dependencies, extra library storages +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + +[env] +platform = raspberrypi +framework = arduino + +[env:rpipicow] +board = rpipicow diff --git a/examples/arduino-wifi-scan/src/main.cpp b/examples/arduino-wifi-scan/src/main.cpp new file mode 100644 index 0000000..d93c5ca --- /dev/null +++ b/examples/arduino-wifi-scan/src/main.cpp @@ -0,0 +1,43 @@ +// Simple WiFi network scanner application +// Released to the public domain in 2022 by Earle F. Philhower, III +#include +#include + +void setup() { + Serial.begin(115200); +} + +const char *macToString(uint8_t mac[6]) { + static char s[20]; + sprintf(s, "%02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); + return s; +} + +const char *encToString(uint8_t enc) { + switch (enc) { + case ENC_TYPE_NONE: return "NONE"; + case ENC_TYPE_TKIP: return "WPA"; + case ENC_TYPE_CCMP: return "WPA2"; + case ENC_TYPE_AUTO: return "AUTO"; + } + return "UNKN"; +} + +void loop() { + delay(5000); + Serial.printf("Beginning scan at %d\n", millis()); + auto cnt = WiFi.scanNetworks(); + if (!cnt) { + Serial.printf("No networks found\n"); + } else { + Serial.printf("Found %d networks\n\n", cnt); + Serial.printf("%32s %5s %17s %2s %4s\n", "SSID", "ENC", "BSSID ", "CH", "RSSI"); + for (auto i = 0; i < cnt; i++) { + uint8_t bssid[6]; + WiFi.BSSID(i, bssid); + Serial.printf("%32s %5s %17s %2d %4d\n", WiFi.SSID(i), encToString(WiFi.encryptionType(i)), macToString(bssid), WiFi.channel(i), WiFi.RSSI(i)); + } + } + Serial.printf("\n--- Sleeping ---\n\n\n"); + delay(5000); +} diff --git a/examples/arduino-wifi-scan/test/README b/examples/arduino-wifi-scan/test/README new file mode 100644 index 0000000..df5066e --- /dev/null +++ b/examples/arduino-wifi-scan/test/README @@ -0,0 +1,11 @@ + +This directory is intended for PIO Unit Testing and project tests. + +Unit Testing is a software testing method by which individual units of +source code, sets of one or more MCU program modules together with associated +control data, usage procedures, and operating procedures, are tested to +determine whether they are fit for use. Unit testing finds problems early +in the development cycle. + +More information about PIO Unit Testing: +- https://docs.platformio.org/page/plus/unit-testing.html From 606fe2d19377be636559b3db19f1c2e3446957e9 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 19 Jul 2022 11:31:05 +0200 Subject: [PATCH 063/146] Add WiFi example to CI --- .github/workflows/examples.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index b24ad69..78c7ee3 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -10,6 +10,7 @@ jobs: os: [ubuntu-latest, windows-latest, macos-latest] example: - "examples/arduino-blink" + - "examples/arduino-wifi-scan" - "examples/arduino-external-libs" runs-on: ${{ matrix.os }} steps: From dc472b145576b1a0fe1ce54663d182bf26baabe1 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 19 Jul 2022 11:35:53 +0200 Subject: [PATCH 064/146] Temporarily use git link for 2.3.2 core Until the package appears in https://registry.platformio.org/tools/earlephilhower/framework-arduinopico/versions (currently only 2.3.1, needs manual approval) --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 40b337f..1ba2997 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "~1.20301.0" + "version": "https://github.com/earlephilhower/arduino-pico.git#2.3.2" }, "tool-rp2040tools": { "type": "uploader", From 81e537a86e55f4f591e9062f914d9be5c7c7200d Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 19 Jul 2022 12:02:51 +0200 Subject: [PATCH 065/146] ULTRA-TEMPORARILY point to fixed Arduino-Pico for WiFi build Until https://github.com/earlephilhower/arduino-pico/pull/686 is merged --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 1ba2997..53059ab 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#2.3.2" + "version": "https://github.com/maxgerhardt/arduino-pico.git#546a2a6669afb2c7c5d04e3950fa67a4ec30ec06" }, "tool-rp2040tools": { "type": "uploader", From 227b99ad369fc674c888f987d80af0df35926d35 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 19 Jul 2022 18:48:36 +0200 Subject: [PATCH 066/146] Switch to fixed Arduino-Pico commit --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 53059ab..b32ba37 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/maxgerhardt/arduino-pico.git#546a2a6669afb2c7c5d04e3950fa67a4ec30ec06" + "version": "https://github.com/earlephilhower/arduino-pico.git#be9e25785cbff48c6a599b4226bfa5ee970618ae" }, "tool-rp2040tools": { "type": "uploader", From bd2f3e756ba7340150f2bebc2d46110988243018 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Thu, 21 Jul 2022 13:50:14 +0200 Subject: [PATCH 067/146] Use Arduino-Pico with fixed linker logic --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index b32ba37..3a92d62 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#be9e25785cbff48c6a599b4226bfa5ee970618ae" + "version": "https://github.com/earlephilhower/arduino-pico.git#40f4fdf246f270f7126fb3abb62bb31161ae8ab0" }, "tool-rp2040tools": { "type": "uploader", From 0f1e560f0bfc450639b2a9089df6178aec36c75b Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 21 Jul 2022 22:18:03 +0200 Subject: [PATCH 068/146] Add HWIDs, update Arduino-Pico core --- boards/adafruit_feather.json | 8 ++++++-- boards/adafruit_itsybitsy.json | 8 ++++++-- boards/adafruit_kb2040.json | 6 +++++- boards/adafruit_macropad2040.json | 6 +++++- boards/adafruit_qtpy.json | 8 ++++++-- boards/adafruit_stemmafriend.json | 8 ++++++-- boards/adafruit_trinkeyrp2040qt.json | 6 +++++- boards/arduino_nano_connect.json | 4 ++++ boards/challenger_2040_lora.json | 6 +++++- boards/challenger_2040_lte.json | 8 ++++++-- boards/challenger_2040_sdrtc.json | 8 ++++++-- boards/challenger_2040_subghz.json | 6 +++++- boards/challenger_2040_wifi.json | 6 +++++- boards/challenger_2040_wifi_ble.json | 6 +++++- boards/challenger_nb_2040_wifi.json | 8 ++++++-- boards/cytron_maker_nano_rp2040.json | 8 ++++++-- boards/cytron_maker_pi_rp2040.json | 6 +++++- boards/dfrobot_beetle_rp2040.json | 4 ++++ boards/flyboard2040_core.json | 8 ++++++-- boards/generic.json | 8 ++++++-- boards/ilabs_rpico32.json | 6 +++++- boards/melopero_shake_rp2040.json | 6 +++++- boards/rpipico.json | 8 ++++++-- boards/rpipicow.json | 8 ++++++-- boards/seeed_xiao_rp2040.json | 8 ++++++-- boards/solderparty_rp2040_stamp.json | 6 +++++- boards/sparkfun_promicrorp2040.json | 6 +++++- boards/sparkfun_thingplusrp2040.json | 6 +++++- boards/upesy_rp2040_devkit.json | 6 +++++- boards/wiznet_5100s_evb_pico.json | 6 +++++- boards/wiznet_5500_evb_pico.json | 6 +++++- boards/wiznet_wizfi360_evb_pico.json | 6 +++++- platform.json | 2 +- 33 files changed, 172 insertions(+), 44 deletions(-) diff --git a/boards/adafruit_feather.json b/boards/adafruit_feather.json index 9629c2b..9fa4cce 100644 --- a/boards/adafruit_feather.json +++ b/boards/adafruit_feather.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25x10cl_4_padded_checksum.S", - "usb_vid": "0x239a", - "usb_pid": "0x80f1" + "usb_vid": "0x239A", + "usb_pid": "0x80F1" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x239A", + "0x80F1" ] ], "mcu": "rp2040", diff --git a/boards/adafruit_itsybitsy.json b/boards/adafruit_itsybitsy.json index abf457a..bb3e1c0 100644 --- a/boards/adafruit_itsybitsy.json +++ b/boards/adafruit_itsybitsy.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", - "usb_pid": "0x80fd" + "usb_vid": "0x239A", + "usb_pid": "0x80FD" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x239A", + "0x80FD" ] ], "mcu": "rp2040", diff --git a/boards/adafruit_kb2040.json b/boards/adafruit_kb2040.json index 51c2806..9b9e27c 100644 --- a/boards/adafruit_kb2040.json +++ b/boards/adafruit_kb2040.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", + "usb_vid": "0x239A", "usb_pid": "0x8105" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x239A", + "0x8105" ] ], "mcu": "rp2040", diff --git a/boards/adafruit_macropad2040.json b/boards/adafruit_macropad2040.json index 3aa705d..fd21d5a 100644 --- a/boards/adafruit_macropad2040.json +++ b/boards/adafruit_macropad2040.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", + "usb_vid": "0x239A", "usb_pid": "0x8107" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x239A", + "0x8107" ] ], "mcu": "rp2040", diff --git a/boards/adafruit_qtpy.json b/boards/adafruit_qtpy.json index 3ce3131..74bf84f 100644 --- a/boards/adafruit_qtpy.json +++ b/boards/adafruit_qtpy.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", - "usb_pid": "0x80f7" + "usb_vid": "0x239A", + "usb_pid": "0x80F7" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x239A", + "0x80F7" ] ], "mcu": "rp2040", diff --git a/boards/adafruit_stemmafriend.json b/boards/adafruit_stemmafriend.json index 092cf3b..5d3b432 100644 --- a/boards/adafruit_stemmafriend.json +++ b/boards/adafruit_stemmafriend.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", - "usb_pid": "0x80e3" + "usb_vid": "0x239A", + "usb_pid": "0x80E3" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x239A", + "0x80E3" ] ], "mcu": "rp2040", diff --git a/boards/adafruit_trinkeyrp2040qt.json b/boards/adafruit_trinkeyrp2040qt.json index 0e3e5fa..3765368 100644 --- a/boards/adafruit_trinkeyrp2040qt.json +++ b/boards/adafruit_trinkeyrp2040qt.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x239a", + "usb_vid": "0x239A", "usb_pid": "0x8109" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x239A", + "0x8109" ] ], "mcu": "rp2040", diff --git a/boards/arduino_nano_connect.json b/boards/arduino_nano_connect.json index 0f384ac..340bf0f 100644 --- a/boards/arduino_nano_connect.json +++ b/boards/arduino_nano_connect.json @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2341", + "0x0058" ] ], "mcu": "rp2040", diff --git a/boards/challenger_2040_lora.json b/boards/challenger_2040_lora.json index 0314757..4636c1d 100644 --- a/boards/challenger_2040_lora.json +++ b/boards/challenger_2040_lora.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", + "usb_vid": "0x2E8A", "usb_pid": "0x1023" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x1023" ] ], "mcu": "rp2040", diff --git a/boards/challenger_2040_lte.json b/boards/challenger_2040_lte.json index 5a35c31..e2ce6a4 100644 --- a/boards/challenger_2040_lte.json +++ b/boards/challenger_2040_lte.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x100b" + "usb_vid": "0x2E8A", + "usb_pid": "0x100B" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x100B" ] ], "mcu": "rp2040", diff --git a/boards/challenger_2040_sdrtc.json b/boards/challenger_2040_sdrtc.json index 4f49771..6c9cb97 100644 --- a/boards/challenger_2040_sdrtc.json +++ b/boards/challenger_2040_sdrtc.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x102d" + "usb_vid": "0x2E8A", + "usb_pid": "0x102D" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x102D" ] ], "mcu": "rp2040", diff --git a/boards/challenger_2040_subghz.json b/boards/challenger_2040_subghz.json index 827dd1b..43d8e8b 100644 --- a/boards/challenger_2040_subghz.json +++ b/boards/challenger_2040_subghz.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", + "usb_vid": "0x2E8A", "usb_pid": "0x1032" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x1032" ] ], "mcu": "rp2040", diff --git a/boards/challenger_2040_wifi.json b/boards/challenger_2040_wifi.json index a9740b1..0c9e75e 100644 --- a/boards/challenger_2040_wifi.json +++ b/boards/challenger_2040_wifi.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", + "usb_vid": "0x2E8A", "usb_pid": "0x1006" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x1006" ] ], "mcu": "rp2040", diff --git a/boards/challenger_2040_wifi_ble.json b/boards/challenger_2040_wifi_ble.json index 51338a9..b671b69 100644 --- a/boards/challenger_2040_wifi_ble.json +++ b/boards/challenger_2040_wifi_ble.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", + "usb_vid": "0x2E8A", "usb_pid": "0x102C" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x102C" ] ], "mcu": "rp2040", diff --git a/boards/challenger_nb_2040_wifi.json b/boards/challenger_nb_2040_wifi.json index bed8db3..f4ae65c 100644 --- a/boards/challenger_nb_2040_wifi.json +++ b/boards/challenger_nb_2040_wifi.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x100b" + "usb_vid": "0x2E8A", + "usb_pid": "0x100B" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x100B" ] ], "mcu": "rp2040", diff --git a/boards/cytron_maker_nano_rp2040.json b/boards/cytron_maker_nano_rp2040.json index 434542b..2ec7fdf 100644 --- a/boards/cytron_maker_nano_rp2040.json +++ b/boards/cytron_maker_nano_rp2040.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x100f" + "usb_vid": "0x2E8A", + "usb_pid": "0x100F" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x100F" ] ], "mcu": "rp2040", diff --git a/boards/cytron_maker_pi_rp2040.json b/boards/cytron_maker_pi_rp2040.json index 9ae6820..ccc793d 100644 --- a/boards/cytron_maker_pi_rp2040.json +++ b/boards/cytron_maker_pi_rp2040.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", + "usb_vid": "0x2E8A", "usb_pid": "0x1000" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x1000" ] ], "mcu": "rp2040", diff --git a/boards/dfrobot_beetle_rp2040.json b/boards/dfrobot_beetle_rp2040.json index 5cf0502..44bcd65 100644 --- a/boards/dfrobot_beetle_rp2040.json +++ b/boards/dfrobot_beetle_rp2040.json @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x3343", + "0x4253" ] ], "mcu": "rp2040", diff --git a/boards/flyboard2040_core.json b/boards/flyboard2040_core.json index 966656d..fab7a0b 100644 --- a/boards/flyboard2040_core.json +++ b/boards/flyboard2040_core.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_generic_03h_4_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x008a" + "usb_vid": "0x2E8A", + "usb_pid": "0x008A" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x008A" ] ], "mcu": "rp2040", diff --git a/boards/generic.json b/boards/generic.json index c8746d9..3c95641 100644 --- a/boards/generic.json +++ b/boards/generic.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_generic_03h_4_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0xf00a" + "usb_vid": "0x2E8A", + "usb_pid": "0xF00A" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0xF00A" ] ], "mcu": "rp2040", diff --git a/boards/ilabs_rpico32.json b/boards/ilabs_rpico32.json index b484417..97bffc0 100644 --- a/boards/ilabs_rpico32.json +++ b/boards/ilabs_rpico32.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", + "usb_vid": "0x2E8A", "usb_pid": "0x1010" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x1010" ] ], "mcu": "rp2040", diff --git a/boards/melopero_shake_rp2040.json b/boards/melopero_shake_rp2040.json index 20243ae..c36111b 100644 --- a/boards/melopero_shake_rp2040.json +++ b/boards/melopero_shake_rp2040.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", + "usb_vid": "0x2E8A", "usb_pid": "0x1005" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x1005" ] ], "mcu": "rp2040", diff --git a/boards/rpipico.json b/boards/rpipico.json index 4c8cd3a..72d6beb 100644 --- a/boards/rpipico.json +++ b/boards/rpipico.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x000a" + "usb_vid": "0x2E8A", + "usb_pid": "0x000A" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x000A" ] ], "mcu": "rp2040", diff --git a/boards/rpipicow.json b/boards/rpipicow.json index ed3e67f..33b4cc8 100644 --- a/boards/rpipicow.json +++ b/boards/rpipicow.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0xf00a" + "usb_vid": "0x2E8A", + "usb_pid": "0xF00A" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0xF00A" ] ], "mcu": "rp2040", diff --git a/boards/seeed_xiao_rp2040.json b/boards/seeed_xiao_rp2040.json index d5a4073..7521909 100644 --- a/boards/seeed_xiao_rp2040.json +++ b/boards/seeed_xiao_rp2040.json @@ -3,8 +3,8 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", - "usb_pid": "0x000a" + "usb_vid": "0x2E8A", + "usb_pid": "0x000A" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x000A" ] ], "mcu": "rp2040", diff --git a/boards/solderparty_rp2040_stamp.json b/boards/solderparty_rp2040_stamp.json index cd0acc3..a459449 100644 --- a/boards/solderparty_rp2040_stamp.json +++ b/boards/solderparty_rp2040_stamp.json @@ -4,7 +4,7 @@ "earlephilhower": { "boot2_source": "boot2_generic_03h_4_padded_checksum.S", "usb_vid": "0x1209", - "usb_pid": "0xa182" + "usb_pid": "0xA182" } }, "core": "earlephilhower", @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x1209", + "0xA182" ] ], "mcu": "rp2040", diff --git a/boards/sparkfun_promicrorp2040.json b/boards/sparkfun_promicrorp2040.json index 50629ab..2052a8b 100644 --- a/boards/sparkfun_promicrorp2040.json +++ b/boards/sparkfun_promicrorp2040.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_generic_03h_4_padded_checksum.S", - "usb_vid": "0x1b4f", + "usb_vid": "0x1B4F", "usb_pid": "0x0026" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x1B4F", + "0x0026" ] ], "mcu": "rp2040", diff --git a/boards/sparkfun_thingplusrp2040.json b/boards/sparkfun_thingplusrp2040.json index 84eeae9..a14c9d6 100644 --- a/boards/sparkfun_thingplusrp2040.json +++ b/boards/sparkfun_thingplusrp2040.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x1b4f", + "usb_vid": "0x1B4F", "usb_pid": "0x0026" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x1B4F", + "0x0026" ] ], "mcu": "rp2040", diff --git a/boards/upesy_rp2040_devkit.json b/boards/upesy_rp2040_devkit.json index e8567f8..de0d5ce 100644 --- a/boards/upesy_rp2040_devkit.json +++ b/boards/upesy_rp2040_devkit.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", + "usb_vid": "0x2E8A", "usb_pid": "0x1007" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x1007" ] ], "mcu": "rp2040", diff --git a/boards/wiznet_5100s_evb_pico.json b/boards/wiznet_5100s_evb_pico.json index af186be..f86924a 100644 --- a/boards/wiznet_5100s_evb_pico.json +++ b/boards/wiznet_5100s_evb_pico.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", + "usb_vid": "0x2E8A", "usb_pid": "0x1027" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x1027" ] ], "mcu": "rp2040", diff --git a/boards/wiznet_5500_evb_pico.json b/boards/wiznet_5500_evb_pico.json index 74b391a..b633f6d 100644 --- a/boards/wiznet_5500_evb_pico.json +++ b/boards/wiznet_5500_evb_pico.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", + "usb_vid": "0x2E8A", "usb_pid": "0x1029" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x1029" ] ], "mcu": "rp2040", diff --git a/boards/wiznet_wizfi360_evb_pico.json b/boards/wiznet_wizfi360_evb_pico.json index 009c598..a911556 100644 --- a/boards/wiznet_wizfi360_evb_pico.json +++ b/boards/wiznet_wizfi360_evb_pico.json @@ -3,7 +3,7 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2e8a", + "usb_vid": "0x2E8A", "usb_pid": "0x1028" } }, @@ -15,6 +15,10 @@ [ "0x2E8A", "0x00C0" + ], + [ + "0x2E8A", + "0x1028" ] ], "mcu": "rp2040", diff --git a/platform.json b/platform.json index 3a92d62..4532795 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#40f4fdf246f270f7126fb3abb62bb31161ae8ab0" + "version": "https://github.com/earlephilhower/arduino-pico.git#a97dc38e8778f531ec4d7eddfe66f464d8be434a" }, "tool-rp2040tools": { "type": "uploader", From 5a389a61ac1cc68619923d56cea2ff4844734c27 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sun, 24 Jul 2022 20:28:53 +0200 Subject: [PATCH 069/146] Update Arduino-Pico core --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 4532795..3b22e51 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#a97dc38e8778f531ec4d7eddfe66f464d8be434a" + "version": "https://github.com/earlephilhower/arduino-pico.git#2397d034e313281fa7fc02aae2aba0bb4fa10b6e" }, "tool-rp2040tools": { "type": "uploader", From 5677d9bfdda7e86cad5f4a837f1dc6fa37630632 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 25 Jul 2022 18:21:19 +0200 Subject: [PATCH 070/146] Use stable Arduino-Pico 2.3.3 core --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 3b22e51..a72ca8d 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#2397d034e313281fa7fc02aae2aba0bb4fa10b6e" + "version": "~1.20303.0" }, "tool-rp2040tools": { "type": "uploader", From 5397a3854dd28010227480cef0ca4e4ca122ae09 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 9 Aug 2022 18:59:18 +0200 Subject: [PATCH 071/146] Fix XIAO typo --- boards/seeed_xiao_rp2040.json | 108 +++++++++++++++++----------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/boards/seeed_xiao_rp2040.json b/boards/seeed_xiao_rp2040.json index 7521909..24eb648 100644 --- a/boards/seeed_xiao_rp2040.json +++ b/boards/seeed_xiao_rp2040.json @@ -1,54 +1,54 @@ -{ - "build": { - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2E8A", - "usb_pid": "0x000A" - } - }, - "core": "earlephilhower", - "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_SEEED_XAIO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", - "f_cpu": "133000000L", - "hwids": [ - [ - "0x2E8A", - "0x00C0" - ], - [ - "0x2E8A", - "0x000A" - ] - ], - "mcu": "rp2040", - "variant": "seeed_xiao_rp2040" - }, - "debug": { - "jlink_device": "RP2040_M0_0", - "openocd_target": "rp2040.cfg", - "svd_path": "rp2040.svd" - }, - "frameworks": [ - "arduino" - ], - "name": "XAIO RP2040", - "upload": { - "maximum_ram_size": 270336, - "maximum_size": 2097152, - "require_upload_port": true, - "native_usb": true, - "use_1200bps_touch": true, - "wait_for_upload_port": false, - "protocol": "picotool", - "protocols": [ - "cmsis-dap", - "jlink", - "raspberrypi-swd", - "picotool", - "picoprobe" - ] - }, - "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", - "vendor": "Seeed" -} +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x000A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_SEEED_XIAO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x000A" + ] + ], + "mcu": "rp2040", + "variant": "seeed_xiao_rp2040" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "XIAO RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Seeed" +} From de1a5ef4fab1c82eaaf3bcb93f34e194a08410c5 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Thu, 11 Aug 2022 00:35:02 +0200 Subject: [PATCH 072/146] Use bleeding-edge Arduino-Pico --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index a72ca8d..2328c31 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "~1.20303.0" + "version": "https://github.com/earlephilhower/arduino-pico.git#be18c76c993f5c5c89a253348b246e2416042741" }, "tool-rp2040tools": { "type": "uploader", From 5bb8311544ccc83638f0f181a1e104cce8cd20bc Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sat, 20 Aug 2022 13:02:09 +0200 Subject: [PATCH 073/146] Update Arduino-Pico bleeding-edge version --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 2328c31..5fce087 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#be18c76c993f5c5c89a253348b246e2416042741" + "version": "https://github.com/earlephilhower/arduino-pico.git#d019f31ef1c98b9e7a0535d6fb873b99fd64c9cb" }, "tool-rp2040tools": { "type": "uploader", From a3c7bc94729eb6a7bc1971ddff03e0ffdf3cca2e Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 21 Aug 2022 15:35:33 +0200 Subject: [PATCH 074/146] Experiment with OTA support, better mbed upload --- builder/main.py | 129 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 124 insertions(+), 5 deletions(-) diff --git a/builder/main.py b/builder/main.py index 409d9e7..821254b 100644 --- a/builder/main.py +++ b/builder/main.py @@ -14,7 +14,7 @@ import sys from platform import system -from os import makedirs +from os import makedirs, remove from os.path import isdir, join, isfile import re import time @@ -184,6 +184,22 @@ def generate_uf2(target, source, env): "$TARGET" ]), "Building $TARGET"), suffix=".hex" + ), + BinToSignedBin=Builder( + action=env.VerboseAction(" ".join([ + '"$PYTHONEXE" "%s"' % join( + platform.get_package_dir("framework-arduinopico") or "", + "tools", "signing.py"), + "--mode", + "sign", + "--privatekey", + '"%s"' % join("$PROJECT_SRC_DIR", "private.key"), + "--bin", + "$SOURCES", + "--out", + "$TARGET" + ]), "Building $TARGET"), + suffix=".bin.signed" ) ) ) @@ -209,14 +225,35 @@ def generate_uf2(target, source, env): ) ) +is_arduino_pico_build = env.BoardConfig().get("build.core", "arduino") == "earlephilhower" and "arduino" in env.get("PIOFRAMEWORK") +target_gen_header = None +if is_arduino_pico_build: + header_file = join(env.subst("$BUILD_DIR"), "core", "Updater_Signing.h") + env.Prepend(CFLAGS=['-I"%s"' % join("$BUILD_DIR", "core")]) + signing_header_cmd = env.Command( + join("$BUILD_DIR", "core", "Updater_Signing.h"), # $TARGET + join("$PROJECT_SRC_DIR", "public.key"), # $SOURCE + env.VerboseAction(" ".join([ + '"$PYTHONEXE" "%s"' % join( + platform.get_package_dir("framework-arduinopico"), "tools", "signing.py"), + "--mode", "header", + "--publickey", '"$SOURCE"', + "--out", "$TARGET" + ]), "Generating $TARGET") + ) + target_gen_header = env.Alias("gen_header", signing_header_cmd) + AlwaysBuild(target_gen_header) + # # Target: Build executable and linkable firmware # target_elf = None +target_signed_bin = None if "nobuild" in COMMAND_LINE_TARGETS: target_elf = join("$BUILD_DIR", "${PROGNAME}.elf") target_firm = join("$BUILD_DIR", "${PROGNAME}.bin") + target_firm = join("$BUILD_DIR", "${PROGNAME}.bin.signed") else: target_elf = env.BuildProgram() if set(["buildfs", "uploadfs"]) & set(COMMAND_LINE_TARGETS): @@ -225,11 +262,14 @@ def generate_uf2(target, source, env): AlwaysBuild(target_firm) else: target_firm = env.ElfToBin(join("$BUILD_DIR", "${PROGNAME}"), target_elf) + if is_arduino_pico_build: + target_signed_bin = env.BinToSignedBin(join("$BUILD_DIR", "${PROGNAME}"), target_firm) + env.Depends(target_signed_bin, "checkprogsize") env.Depends(target_firm, "checkprogsize") env.AddPlatformTarget("buildfs", target_firm, target_firm, "Build Filesystem Image") AlwaysBuild(env.Alias("nobuild", target_firm)) -target_buildprog = env.Alias("buildprog", target_firm, target_firm) +target_buildprog = env.Alias("buildprog", [target_firm, target_signed_bin], target_firm) env.AddPostAction( target_elf, env.VerboseAction(generate_uf2, "Generating UF2 image") @@ -284,14 +324,93 @@ def UploadUF2ToDisk(target, source, env): copyfile(fpath, join(env.subst("$UPLOAD_PORT"), "%s.%s" % (progname, ext))) print( "Firmware has been successfully uploaded.\n" - "(Some boards may require manual hard reset)" ) +def TryResetPico(target, source, env): + upload_options = {} + if "BOARD" in env: + upload_options = env.BoardConfig().get("upload", {}) + ports = list_serial_ports() + if len(ports) != 0: + last_port = ports[-1]["port"] + if upload_options.get("use_1200bps_touch", False): + env.TouchSerialPort(last_port, 1200) + time.sleep(2.0) + +from platformio.device.list.util import list_logical_devices +from platformio.device.finder import is_pattern_port +from fnmatch import fnmatch + +def find_rpi_disk(initial_port): + msdlabels = ("RPI-RP2") + item:str + for item in list_logical_devices(): + if item["path"].startswith("/net"): + continue + if ( + initial_port + and is_pattern_port(initial_port) + and not fnmatch(item["path"], initial_port) + ): + continue + mbed_pages = [join(item["path"], n) for n in ("INDEX.HTM", "INFO_UF2.TXT")] + if any(isfile(p) for p in mbed_pages): + return item["path"] + if item["name"] and any(l in item["name"].lower() for l in msdlabels): + return item["path"] + return None + +def AutodetectPicoDisk(target, source, env): + initial_port = env.subst("$UPLOAD_PORT") + if initial_port and not is_pattern_port(initial_port): + print(env.subst("Using manually specified: $UPLOAD_PORT")) + return + + if upload_protocol == "mbed": + env.Replace(UPLOAD_PORT=find_rpi_disk(initial_port)) + + if env.subst("$UPLOAD_PORT"): + print(env.subst("Auto-detected: $UPLOAD_PORT")) + else: + sys.stderr.write( + "Error: Please specify `upload_port` for environment or use " + "global `--upload-port` option.\n" + "For some development platforms it can be a USB flash " + "drive (i.e. /media//)\n" + ) + env.Exit(1) + if upload_protocol == "mbed": upload_actions = [ - env.VerboseAction(env.AutodetectUploadPort, "Looking for upload disk..."), + env.VerboseAction(TryResetPico, "Trying to reset Pico into bootloader mode..."), + env.VerboseAction(AutodetectPicoDisk, "Looking for upload disk..."), env.VerboseAction(UploadUF2ToDisk, "Uploading $SOURCE") ] +elif upload_protocol == "espota": + if not env.subst("$UPLOAD_PORT"): + sys.stderr.write( + "Error: Please specify IP address or host name of ESP device " + "using `upload_port` for build environment or use " + "global `--upload-port` option.\n" + "See https://docs.platformio.org/page/platforms/" + "espressif8266.html#over-the-air-ota-update\n") + env.Replace( + UPLOADER=join( + platform.get_package_dir("framework-arduinopico") or "", + "tools", "espota.py"), + UPLOADERFLAGS=["--debug", "--progress", "-i", "$UPLOAD_PORT", "-p", "2040"], + UPLOADCMD='"$PYTHONEXE" "$UPLOADER" $UPLOADERFLAGS -f $SOURCE' + ) + if "uploadfs" in COMMAND_LINE_TARGETS: + env.Append(UPLOADERFLAGS=["-s"]) + else: + # check if we have a .bin.signed file available. + # since the file may not be build yet, we try to predict that we will + # have that file if they private signing key exists. + if isfile(join(env.subst("$PROJECT_SRC_DIR"), "private.key")): + sys.stdout.write("Using signed OTA update file.") + upload_source = target_signed_bin + upload_actions = [env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE")] elif upload_protocol == "picotool": env.Replace( UPLOADER=join(platform.get_package_dir("tool-rp2040tools") or "", "rp2040load"), @@ -406,4 +525,4 @@ def _jlink_cmd_script(env, source): # Default targets # -Default([target_buildprog, target_size]) +Default([target_gen_header, target_buildprog, target_size]) From f4a6a4586fbc9adbbe0984451c4c0f4d5b93f7d8 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 21 Aug 2022 15:41:43 +0200 Subject: [PATCH 075/146] Only update signing header if pubkey present --- builder/main.py | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/builder/main.py b/builder/main.py index 821254b..92a67a6 100644 --- a/builder/main.py +++ b/builder/main.py @@ -228,21 +228,23 @@ def generate_uf2(target, source, env): is_arduino_pico_build = env.BoardConfig().get("build.core", "arduino") == "earlephilhower" and "arduino" in env.get("PIOFRAMEWORK") target_gen_header = None if is_arduino_pico_build: - header_file = join(env.subst("$BUILD_DIR"), "core", "Updater_Signing.h") - env.Prepend(CFLAGS=['-I"%s"' % join("$BUILD_DIR", "core")]) - signing_header_cmd = env.Command( - join("$BUILD_DIR", "core", "Updater_Signing.h"), # $TARGET - join("$PROJECT_SRC_DIR", "public.key"), # $SOURCE - env.VerboseAction(" ".join([ - '"$PYTHONEXE" "%s"' % join( - platform.get_package_dir("framework-arduinopico"), "tools", "signing.py"), - "--mode", "header", - "--publickey", '"$SOURCE"', - "--out", "$TARGET" - ]), "Generating $TARGET") - ) - target_gen_header = env.Alias("gen_header", signing_header_cmd) - AlwaysBuild(target_gen_header) + pubkey = join(env.subst("$PROJECT_SRC_DIR"), "public.key") + if isfile(pubkey): + header_file = join(env.subst("$BUILD_DIR"), "core", "Updater_Signing.h") + env.Prepend(CFLAGS=['-I"%s"' % join("$BUILD_DIR", "core")]) + signing_header_cmd = env.Command( + join("$BUILD_DIR", "core", "Updater_Signing.h"), # $TARGET + join("$PROJECT_SRC_DIR", "public.key"), # $SOURCE + env.VerboseAction(" ".join([ + '"$PYTHONEXE" "%s"' % join( + platform.get_package_dir("framework-arduinopico"), "tools", "signing.py"), + "--mode", "header", + "--publickey", '"$SOURCE"', + "--out", "$TARGET" + ]), "Generating $TARGET") + ) + target_gen_header = env.Alias("gen_header", signing_header_cmd) + AlwaysBuild(target_gen_header) # # Target: Build executable and linkable firmware From 28b575e364ab583f3214e153817815fe9062f86d Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 21 Aug 2022 15:44:54 +0200 Subject: [PATCH 076/146] Dont require gen_header if not expected to be generated --- builder/main.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/builder/main.py b/builder/main.py index 92a67a6..c80b00d 100644 --- a/builder/main.py +++ b/builder/main.py @@ -526,5 +526,7 @@ def _jlink_cmd_script(env, source): # # Default targets # - -Default([target_gen_header, target_buildprog, target_size]) +if target_gen_header is not None: + Default([target_gen_header, target_buildprog, target_size]) +else: + Default([target_buildprog, target_size]) From 28ffe073703c7b426014b9e43bbfe086dc5b8dbb Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Aug 2022 00:13:09 +0200 Subject: [PATCH 077/146] Try different build strategy --- builder/main.py | 22 ++---- examples/arduino-ota/.gitignore | 1 + examples/arduino-ota/README.md | 29 ++++++++ examples/arduino-ota/include/README | 39 +++++++++++ examples/arduino-ota/lib/README | 46 ++++++++++++ examples/arduino-ota/platformio.ini | 23 ++++++ examples/arduino-ota/src/main.cpp | 78 +++++++++++++++++++++ examples/arduino-ota/test/README | 11 +++ examples/arduino-signed-ota/.gitignore | 1 + examples/arduino-signed-ota/README.md | 29 ++++++++ examples/arduino-signed-ota/include/README | 39 +++++++++++ examples/arduino-signed-ota/lib/README | 46 ++++++++++++ examples/arduino-signed-ota/platformio.ini | 23 ++++++ examples/arduino-signed-ota/src/main.cpp | 78 +++++++++++++++++++++ examples/arduino-signed-ota/src/private.key | 27 +++++++ examples/arduino-signed-ota/src/public.key | 9 +++ examples/arduino-signed-ota/test/README | 11 +++ 17 files changed, 496 insertions(+), 16 deletions(-) create mode 100644 examples/arduino-ota/.gitignore create mode 100644 examples/arduino-ota/README.md create mode 100644 examples/arduino-ota/include/README create mode 100644 examples/arduino-ota/lib/README create mode 100644 examples/arduino-ota/platformio.ini create mode 100644 examples/arduino-ota/src/main.cpp create mode 100644 examples/arduino-ota/test/README create mode 100644 examples/arduino-signed-ota/.gitignore create mode 100644 examples/arduino-signed-ota/README.md create mode 100644 examples/arduino-signed-ota/include/README create mode 100644 examples/arduino-signed-ota/lib/README create mode 100644 examples/arduino-signed-ota/platformio.ini create mode 100644 examples/arduino-signed-ota/src/main.cpp create mode 100644 examples/arduino-signed-ota/src/private.key create mode 100644 examples/arduino-signed-ota/src/public.key create mode 100644 examples/arduino-signed-ota/test/README diff --git a/builder/main.py b/builder/main.py index c80b00d..cd26eda 100644 --- a/builder/main.py +++ b/builder/main.py @@ -226,25 +226,18 @@ def generate_uf2(target, source, env): ) is_arduino_pico_build = env.BoardConfig().get("build.core", "arduino") == "earlephilhower" and "arduino" in env.get("PIOFRAMEWORK") -target_gen_header = None if is_arduino_pico_build: pubkey = join(env.subst("$PROJECT_SRC_DIR"), "public.key") if isfile(pubkey): header_file = join(env.subst("$BUILD_DIR"), "core", "Updater_Signing.h") - env.Prepend(CFLAGS=['-I"%s"' % join("$BUILD_DIR", "core")]) - signing_header_cmd = env.Command( - join("$BUILD_DIR", "core", "Updater_Signing.h"), # $TARGET - join("$PROJECT_SRC_DIR", "public.key"), # $SOURCE - env.VerboseAction(" ".join([ + env.Prepend(CCFLAGS=['-I"%s"' % join("$BUILD_DIR", "core")]) + env.Execute(" ".join([ '"$PYTHONEXE" "%s"' % join( platform.get_package_dir("framework-arduinopico"), "tools", "signing.py"), "--mode", "header", - "--publickey", '"$SOURCE"', - "--out", "$TARGET" - ]), "Generating $TARGET") - ) - target_gen_header = env.Alias("gen_header", signing_header_cmd) - AlwaysBuild(target_gen_header) + "--publickey", '"%s"' % join("$PROJECT_SRC_DIR", "public.key"), + "--out", '"%s"' % join("$BUILD_DIR", "core", "Updater_Signing.h") + ])) # # Target: Build executable and linkable firmware @@ -526,7 +519,4 @@ def _jlink_cmd_script(env, source): # # Default targets # -if target_gen_header is not None: - Default([target_gen_header, target_buildprog, target_size]) -else: - Default([target_buildprog, target_size]) +Default([target_buildprog, target_size]) diff --git a/examples/arduino-ota/.gitignore b/examples/arduino-ota/.gitignore new file mode 100644 index 0000000..03f4a3c --- /dev/null +++ b/examples/arduino-ota/.gitignore @@ -0,0 +1 @@ +.pio diff --git a/examples/arduino-ota/README.md b/examples/arduino-ota/README.md new file mode 100644 index 0000000..938e48b --- /dev/null +++ b/examples/arduino-ota/README.md @@ -0,0 +1,29 @@ +How to build PlatformIO based project +===================================== + +1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html) +2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip) +3. Extract ZIP archive +4. Run these commands: + +```shell +# Change directory to example +$ cd platform-raspberrypi/examples/arduino-blink + +# Build project +$ pio run + +# Upload firmware +$ pio run --target upload + +# Clean build files +$ pio run --target clean +``` + +## Notes + +For Raspberry Pi Pico devices, two Arduino cores exist: +* https://github.com/arduino/ArduinoCore-mbed +* https://github.com/earlephilhower/arduino-pico + +This examples showcases how to use both of these cores in the `platformio.ini`. \ No newline at end of file diff --git a/examples/arduino-ota/include/README b/examples/arduino-ota/include/README new file mode 100644 index 0000000..194dcd4 --- /dev/null +++ b/examples/arduino-ota/include/README @@ -0,0 +1,39 @@ + +This directory is intended for project header files. + +A header file is a file containing C declarations and macro definitions +to be shared between several project source files. You request the use of a +header file in your project source file (C, C++, etc) located in `src` folder +by including it, with the C preprocessing directive `#include'. + +```src/main.c + +#include "header.h" + +int main (void) +{ + ... +} +``` + +Including a header file produces the same results as copying the header file +into each source file that needs it. Such copying would be time-consuming +and error-prone. With a header file, the related declarations appear +in only one place. If they need to be changed, they can be changed in one +place, and programs that include the header file will automatically use the +new version when next recompiled. The header file eliminates the labor of +finding and changing all the copies as well as the risk that a failure to +find one copy will result in inconsistencies within a program. + +In C, the usual convention is to give header files names that end with `.h'. +It is most portable to use only letters, digits, dashes, and underscores in +header file names, and at most one dot. + +Read more about using header files in official GCC documentation: + +* Include Syntax +* Include Operation +* Once-Only Headers +* Computed Includes + +https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/examples/arduino-ota/lib/README b/examples/arduino-ota/lib/README new file mode 100644 index 0000000..6debab1 --- /dev/null +++ b/examples/arduino-ota/lib/README @@ -0,0 +1,46 @@ + +This directory is intended for project specific (private) libraries. +PlatformIO will compile them to static libraries and link into executable file. + +The source code of each library should be placed in a an own separate directory +("lib/your_library_name/[here are source files]"). + +For example, see a structure of the following two libraries `Foo` and `Bar`: + +|--lib +| | +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html +| | +| |--Foo +| | |- Foo.c +| | |- Foo.h +| | +| |- README --> THIS FILE +| +|- platformio.ini +|--src + |- main.c + +and a contents of `src/main.c`: +``` +#include +#include + +int main (void) +{ + ... +} + +``` + +PlatformIO Library Dependency Finder will find automatically dependent +libraries scanning project source files. + +More information about PlatformIO Library Dependency Finder +- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/examples/arduino-ota/platformio.ini b/examples/arduino-ota/platformio.ini new file mode 100644 index 0000000..31c6775 --- /dev/null +++ b/examples/arduino-ota/platformio.ini @@ -0,0 +1,23 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter, extra scripting +; Upload options: custom port, speed and extra flags +; Library options: dependencies, extra library storages +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + +[env] +platform = raspberrypi +framework = arduino + +; upload via USB +[env:rpipicow_via_usb] +board = rpipicow +upload_protocol = mbed + +; upload via OTA (change IP) +[env:rpipicow_via_ota] +board = rpipicow +upload_protocol = espota +upload_port = 192.168.0.206 diff --git a/examples/arduino-ota/src/main.cpp b/examples/arduino-ota/src/main.cpp new file mode 100644 index 0000000..2d102c7 --- /dev/null +++ b/examples/arduino-ota/src/main.cpp @@ -0,0 +1,78 @@ +#include +#include +#include +#include +#include "Updater_Signing.h" + +#ifndef STASSID +#define STASSID "YourSSID" +#define STAPSK "YourPassword" +#endif + +const char* ssid = STASSID; +const char* password = STAPSK; + +void setup() { + Serial.begin(115200); + Serial.println("Booting"); + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, password); + while (WiFi.waitForConnectResult() != WL_CONNECTED) { + Serial.println("Connection Failed! Rebooting..."); + delay(5000); + rp2040.restart(); + } + + // Port defaults to 8266 + // ArduinoOTA.setPort(8266); + + // Hostname defaults to esp8266-[ChipID] + // ArduinoOTA.setHostname("myesp8266"); + + // No authentication by default + // ArduinoOTA.setPassword("admin"); + + // Password can be set with it's md5 value as well + // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3 + // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3"); + + ArduinoOTA.onStart([]() { + String type; + if (ArduinoOTA.getCommand() == U_FLASH) { + type = "sketch"; + } else { // U_FS + type = "filesystem"; + } + + // NOTE: if updating FS this would be the place to unmount FS using FS.end() + Serial.println("Start updating " + type); + }); + ArduinoOTA.onEnd([]() { + Serial.println("\nEnd"); + }); + ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { + Serial.printf("Progress: %u%%\r", (progress / (total / 100))); + }); + ArduinoOTA.onError([](ota_error_t error) { + Serial.printf("Error[%u]: ", error); + if (error == OTA_AUTH_ERROR) { + Serial.println("Auth Failed"); + } else if (error == OTA_BEGIN_ERROR) { + Serial.println("Begin Failed"); + } else if (error == OTA_CONNECT_ERROR) { + Serial.println("Connect Failed"); + } else if (error == OTA_RECEIVE_ERROR) { + Serial.println("Receive Failed"); + } else if (error == OTA_END_ERROR) { + Serial.println("End Failed"); + } + }); + ArduinoOTA.begin(); + Serial.println("Ready"); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); +} + +void loop() { + ArduinoOTA.handle(); +} diff --git a/examples/arduino-ota/test/README b/examples/arduino-ota/test/README new file mode 100644 index 0000000..df5066e --- /dev/null +++ b/examples/arduino-ota/test/README @@ -0,0 +1,11 @@ + +This directory is intended for PIO Unit Testing and project tests. + +Unit Testing is a software testing method by which individual units of +source code, sets of one or more MCU program modules together with associated +control data, usage procedures, and operating procedures, are tested to +determine whether they are fit for use. Unit testing finds problems early +in the development cycle. + +More information about PIO Unit Testing: +- https://docs.platformio.org/page/plus/unit-testing.html diff --git a/examples/arduino-signed-ota/.gitignore b/examples/arduino-signed-ota/.gitignore new file mode 100644 index 0000000..03f4a3c --- /dev/null +++ b/examples/arduino-signed-ota/.gitignore @@ -0,0 +1 @@ +.pio diff --git a/examples/arduino-signed-ota/README.md b/examples/arduino-signed-ota/README.md new file mode 100644 index 0000000..938e48b --- /dev/null +++ b/examples/arduino-signed-ota/README.md @@ -0,0 +1,29 @@ +How to build PlatformIO based project +===================================== + +1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html) +2. Download [development platform with examples](https://github.com/platformio/platform-raspberrypi/archive/develop.zip) +3. Extract ZIP archive +4. Run these commands: + +```shell +# Change directory to example +$ cd platform-raspberrypi/examples/arduino-blink + +# Build project +$ pio run + +# Upload firmware +$ pio run --target upload + +# Clean build files +$ pio run --target clean +``` + +## Notes + +For Raspberry Pi Pico devices, two Arduino cores exist: +* https://github.com/arduino/ArduinoCore-mbed +* https://github.com/earlephilhower/arduino-pico + +This examples showcases how to use both of these cores in the `platformio.ini`. \ No newline at end of file diff --git a/examples/arduino-signed-ota/include/README b/examples/arduino-signed-ota/include/README new file mode 100644 index 0000000..194dcd4 --- /dev/null +++ b/examples/arduino-signed-ota/include/README @@ -0,0 +1,39 @@ + +This directory is intended for project header files. + +A header file is a file containing C declarations and macro definitions +to be shared between several project source files. You request the use of a +header file in your project source file (C, C++, etc) located in `src` folder +by including it, with the C preprocessing directive `#include'. + +```src/main.c + +#include "header.h" + +int main (void) +{ + ... +} +``` + +Including a header file produces the same results as copying the header file +into each source file that needs it. Such copying would be time-consuming +and error-prone. With a header file, the related declarations appear +in only one place. If they need to be changed, they can be changed in one +place, and programs that include the header file will automatically use the +new version when next recompiled. The header file eliminates the labor of +finding and changing all the copies as well as the risk that a failure to +find one copy will result in inconsistencies within a program. + +In C, the usual convention is to give header files names that end with `.h'. +It is most portable to use only letters, digits, dashes, and underscores in +header file names, and at most one dot. + +Read more about using header files in official GCC documentation: + +* Include Syntax +* Include Operation +* Once-Only Headers +* Computed Includes + +https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/examples/arduino-signed-ota/lib/README b/examples/arduino-signed-ota/lib/README new file mode 100644 index 0000000..6debab1 --- /dev/null +++ b/examples/arduino-signed-ota/lib/README @@ -0,0 +1,46 @@ + +This directory is intended for project specific (private) libraries. +PlatformIO will compile them to static libraries and link into executable file. + +The source code of each library should be placed in a an own separate directory +("lib/your_library_name/[here are source files]"). + +For example, see a structure of the following two libraries `Foo` and `Bar`: + +|--lib +| | +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html +| | +| |--Foo +| | |- Foo.c +| | |- Foo.h +| | +| |- README --> THIS FILE +| +|- platformio.ini +|--src + |- main.c + +and a contents of `src/main.c`: +``` +#include +#include + +int main (void) +{ + ... +} + +``` + +PlatformIO Library Dependency Finder will find automatically dependent +libraries scanning project source files. + +More information about PlatformIO Library Dependency Finder +- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/examples/arduino-signed-ota/platformio.ini b/examples/arduino-signed-ota/platformio.ini new file mode 100644 index 0000000..31c6775 --- /dev/null +++ b/examples/arduino-signed-ota/platformio.ini @@ -0,0 +1,23 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter, extra scripting +; Upload options: custom port, speed and extra flags +; Library options: dependencies, extra library storages +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + +[env] +platform = raspberrypi +framework = arduino + +; upload via USB +[env:rpipicow_via_usb] +board = rpipicow +upload_protocol = mbed + +; upload via OTA (change IP) +[env:rpipicow_via_ota] +board = rpipicow +upload_protocol = espota +upload_port = 192.168.0.206 diff --git a/examples/arduino-signed-ota/src/main.cpp b/examples/arduino-signed-ota/src/main.cpp new file mode 100644 index 0000000..2d102c7 --- /dev/null +++ b/examples/arduino-signed-ota/src/main.cpp @@ -0,0 +1,78 @@ +#include +#include +#include +#include +#include "Updater_Signing.h" + +#ifndef STASSID +#define STASSID "YourSSID" +#define STAPSK "YourPassword" +#endif + +const char* ssid = STASSID; +const char* password = STAPSK; + +void setup() { + Serial.begin(115200); + Serial.println("Booting"); + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, password); + while (WiFi.waitForConnectResult() != WL_CONNECTED) { + Serial.println("Connection Failed! Rebooting..."); + delay(5000); + rp2040.restart(); + } + + // Port defaults to 8266 + // ArduinoOTA.setPort(8266); + + // Hostname defaults to esp8266-[ChipID] + // ArduinoOTA.setHostname("myesp8266"); + + // No authentication by default + // ArduinoOTA.setPassword("admin"); + + // Password can be set with it's md5 value as well + // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3 + // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3"); + + ArduinoOTA.onStart([]() { + String type; + if (ArduinoOTA.getCommand() == U_FLASH) { + type = "sketch"; + } else { // U_FS + type = "filesystem"; + } + + // NOTE: if updating FS this would be the place to unmount FS using FS.end() + Serial.println("Start updating " + type); + }); + ArduinoOTA.onEnd([]() { + Serial.println("\nEnd"); + }); + ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { + Serial.printf("Progress: %u%%\r", (progress / (total / 100))); + }); + ArduinoOTA.onError([](ota_error_t error) { + Serial.printf("Error[%u]: ", error); + if (error == OTA_AUTH_ERROR) { + Serial.println("Auth Failed"); + } else if (error == OTA_BEGIN_ERROR) { + Serial.println("Begin Failed"); + } else if (error == OTA_CONNECT_ERROR) { + Serial.println("Connect Failed"); + } else if (error == OTA_RECEIVE_ERROR) { + Serial.println("Receive Failed"); + } else if (error == OTA_END_ERROR) { + Serial.println("End Failed"); + } + }); + ArduinoOTA.begin(); + Serial.println("Ready"); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); +} + +void loop() { + ArduinoOTA.handle(); +} diff --git a/examples/arduino-signed-ota/src/private.key b/examples/arduino-signed-ota/src/private.key new file mode 100644 index 0000000..09e3bc1 --- /dev/null +++ b/examples/arduino-signed-ota/src/private.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEogIBAAKCAQEAu1Pt7yEk/xI+6cozLj5Bu4xV8gXDXcHS0rSJFfl4wBTk4UXp +aJRaLfR1k0juEEa5LBRZaoA0iLj2e6kfCibONx0VVoWmeqN2HBc3zkA1eqCksI0Q +Uudzto4KhKHp0odiZ2zo6c/2Tn1zqD/m3OLoSjVTbsJmGuwx8RGMBXozpg/uL0hH +flihX+HND4Xfw92QXv7SaPBhgvM9xyRxn0/w3J2nNjtuPuVN5vcQkd8ncMexVfy9 +AWp+HSA5AT5N8CJ/EeIsdDMY1US28bUePzj1WIo75bZHKZNFw/iXe2xoPpm74qri +MNSlW2craFP2K3KYnI28vJeUU6t9I6LS9zt2zQIDAQABAoIBAE5GpuDKb8Qp4qIc +fMBxAVSWMn+cSuONj0O+bp4BDaTt1ioP5ZVukDQtt0ehLOEePFgf9LEc+1a6Ozy3 +EaJTTs4W2Ai8djE+xqa8SPRlPjOMluSzPUP3NRHuTpTXd3YiXksrZjP1U02+/Cos +8ZIROtFvcPqSPso3MjMyitjrFFPqEtf1P+UiamjDrMSM72YX4W55kOkiCWCnAOmw +mGTlXOIqDSTBb1lloKWJfpB3RdnNo2izkU1HMBn7hVi433NUBA22o+RZhDFSZdD4 +3kbkUqXd4p+vc/sh6muJtWS/COSIPFkLzdEYpBdt3XQ4FhlsRtILJaPWXa4OPjR6 +ZoOwMB0CgYEA6OHfIofQiu4+HlTDN5YdyTmtYEYcrtbaQUxuQSEa2mshBphHP8uT +mYRVl2BzuprFmXZPz+FcjnPnfxqEehljvA3wMjA/PE+nQo9yyOC0N4ulXpkkqHdR +f+4KZVR7D+hesGe+57OQmvTqYZSHEt/ubjC9wZ90UFonLjsa4zibbrsCgYEAzexn +XDnThb3ffyBgvprP0IJjgMAEY0pXD++PKPQqPu9JMz68t7roYzkKFCFVOsaWpKxC +vX9mvYjTBjLpWh+ltIAN+EFz6seIbeSJ0RNybsAXYwT/mFWGHx2tMtlW6DgBu3UD +J2Yf76n0JaddBkfNMQI00Dl41+MU+AwwTB9fTBcCgYB2+f6Pm6d1cyYVROS/X1g0 +V9011FwPDwFOXwftCka31Ad5YQ71jsIHqk44GjTF3xCYyJMZ917cAGcCzr9jydjk +WJKgcXm9DEy9ep//9Jzdy+BepgrObrcajriM8E424FaP9VDY+yojoICl/cXMZM9h +SFGJvDcmXgiqW9PuxhrSxQKBgAMN2oqXoPd+1W3BQS4ShbqF9IvYTThbxebKmsj0 +thuw2NkVuR7Qetnd4rRhui3g/CL9GxBMb22oNdkFsEhR59dBfvOLpPh6dR+MIC8l +prDV0IL7c/8CZbbYbdUvPAa9rejl12IiNZ8MWj6kuNB7CCQN8FKWR6CMEaeMJrs6 +S+OJAoGAbehNOUwEzmUKkfxf+279kBkgabcQ3NTaeSx0QOnI9KWHFGLYLQk9cMSu +maQJ1TYpbIoP1njzJ4bI2tynhwEuSMEhh4afP6U5H10NJX4PqSd0Rqc1vSJYcszr +5mUWil8FfbCBZ8jod2NQ55KYMVY5CphCqaK/s2bw2pvIR3uqJGg= +-----END RSA PRIVATE KEY----- diff --git a/examples/arduino-signed-ota/src/public.key b/examples/arduino-signed-ota/src/public.key new file mode 100644 index 0000000..054e88b --- /dev/null +++ b/examples/arduino-signed-ota/src/public.key @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1Pt7yEk/xI+6cozLj5B +u4xV8gXDXcHS0rSJFfl4wBTk4UXpaJRaLfR1k0juEEa5LBRZaoA0iLj2e6kfCibO +Nx0VVoWmeqN2HBc3zkA1eqCksI0QUudzto4KhKHp0odiZ2zo6c/2Tn1zqD/m3OLo +SjVTbsJmGuwx8RGMBXozpg/uL0hHflihX+HND4Xfw92QXv7SaPBhgvM9xyRxn0/w +3J2nNjtuPuVN5vcQkd8ncMexVfy9AWp+HSA5AT5N8CJ/EeIsdDMY1US28bUePzj1 +WIo75bZHKZNFw/iXe2xoPpm74qriMNSlW2craFP2K3KYnI28vJeUU6t9I6LS9zt2 +zQIDAQAB +-----END PUBLIC KEY----- diff --git a/examples/arduino-signed-ota/test/README b/examples/arduino-signed-ota/test/README new file mode 100644 index 0000000..df5066e --- /dev/null +++ b/examples/arduino-signed-ota/test/README @@ -0,0 +1,11 @@ + +This directory is intended for PIO Unit Testing and project tests. + +Unit Testing is a software testing method by which individual units of +source code, sets of one or more MCU program modules together with associated +control data, usage procedures, and operating procedures, are tested to +determine whether they are fit for use. Unit testing finds problems early +in the development cycle. + +More information about PIO Unit Testing: +- https://docs.platformio.org/page/plus/unit-testing.html From f1d426ef457f89307e11173182f197327ac2a9bf Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Aug 2022 00:17:12 +0200 Subject: [PATCH 078/146] Try and install openssl dependency --- .github/workflows/examples.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 78c7ee3..58605d4 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -11,6 +11,8 @@ jobs: example: - "examples/arduino-blink" - "examples/arduino-wifi-scan" + - "examples/arduino-ota" + - "examples/arduino-signed-ota" - "examples/arduino-external-libs" runs-on: ${{ matrix.os }} steps: @@ -25,6 +27,17 @@ jobs: run: | pip install -U https://github.com/platformio/platformio/archive/develop.zip pio pkg install --global --platform symlink://. + if [ "$RUNNER_OS" == "Linux" ]; then + apt install openssl + elif [ "$RUNNER_OS" == "Windows" ]; then + choco install openssl + elif [ "$RUNNER_OS" == "Mac" ]; then + brew install openssl + else + echo "$RUNNER_OS not supported" + exit 1 + fi + shell: bash - name: Build examples run: | pio run -d ${{ matrix.example }} From f982df23e5f26cf4a19c54d51661c5ba242e2f7e Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Aug 2022 00:19:44 +0200 Subject: [PATCH 079/146] Try fix dependencies --- .github/workflows/examples.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 58605d4..16c843c 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -28,10 +28,10 @@ jobs: pip install -U https://github.com/platformio/platformio/archive/develop.zip pio pkg install --global --platform symlink://. if [ "$RUNNER_OS" == "Linux" ]; then - apt install openssl + sudo apt-get install -y openssl elif [ "$RUNNER_OS" == "Windows" ]; then choco install openssl - elif [ "$RUNNER_OS" == "Mac" ]; then + elif [ "$RUNNER_OS" == "macOS " ]; then brew install openssl else echo "$RUNNER_OS not supported" From 42e7c851caf31899a332b2736c443421828eda48 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Aug 2022 00:22:07 +0200 Subject: [PATCH 080/146] Updated used arduino-pico --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 5fce087..9df2fd2 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#d019f31ef1c98b9e7a0535d6fb873b99fd64c9cb" + "version": "https://github.com/earlephilhower/arduino-pico.git#2044d2e51c481ba83a783134a12b0fe9feaf2026" }, "tool-rp2040tools": { "type": "uploader", From 838e9ed8d3f6d52662d00210ce1f1fab88e21075 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Aug 2022 00:25:08 +0200 Subject: [PATCH 081/146] Fix macos runner --- .github/workflows/examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 16c843c..9d0cb5b 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -31,7 +31,7 @@ jobs: sudo apt-get install -y openssl elif [ "$RUNNER_OS" == "Windows" ]; then choco install openssl - elif [ "$RUNNER_OS" == "macOS " ]; then + elif [ "$RUNNER_OS" == "macOS" ]; then brew install openssl else echo "$RUNNER_OS not supported" From 4c0d7ea35c290dbd62e2b04a7a40f4c5297c05a2 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Aug 2022 00:33:05 +0200 Subject: [PATCH 082/146] Make examples.yml steps more clear --- .github/workflows/examples.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 9d0cb5b..31e3318 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -27,6 +27,9 @@ jobs: run: | pip install -U https://github.com/platformio/platformio/archive/develop.zip pio pkg install --global --platform symlink://. + # OpenSSL needed for signed OTA update example + - name: Install OpenSSL + run: | if [ "$RUNNER_OS" == "Linux" ]; then sudo apt-get install -y openssl elif [ "$RUNNER_OS" == "Windows" ]; then From 47726da601eb7c123a5c088828606023d646ddb0 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Aug 2022 01:05:09 +0200 Subject: [PATCH 083/146] Update readmes --- examples/arduino-ota/README.md | 14 +++++++++----- examples/arduino-signed-ota/README.md | 18 +++++++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/examples/arduino-ota/README.md b/examples/arduino-ota/README.md index 938e48b..c54cab0 100644 --- a/examples/arduino-ota/README.md +++ b/examples/arduino-ota/README.md @@ -8,7 +8,7 @@ How to build PlatformIO based project ```shell # Change directory to example -$ cd platform-raspberrypi/examples/arduino-blink +$ cd platform-raspberrypi/examples/arduino-ota # Build project $ pio run @@ -22,8 +22,12 @@ $ pio run --target clean ## Notes -For Raspberry Pi Pico devices, two Arduino cores exist: -* https://github.com/arduino/ArduinoCore-mbed -* https://github.com/earlephilhower/arduino-pico +This examples showcases the usage of Over-The-Air (OTA) updates with the Raspberry Pi Pico W. -This examples showcases how to use both of these cores in the `platformio.ini`. \ No newline at end of file +For more details, see the [documentation](https://arduino-pico.readthedocs.io/en/latest/ota.html). + +For the initial firmware update, use the `rpipicow_via_usb` environment. + +Then, open the serial monitor and note down the IP of the Pico that it outputs. + +Use this IP as the `upload_port` in the `rpipicow_via_ota` environment and use the "Upload" project task there. \ No newline at end of file diff --git a/examples/arduino-signed-ota/README.md b/examples/arduino-signed-ota/README.md index 938e48b..9d83acf 100644 --- a/examples/arduino-signed-ota/README.md +++ b/examples/arduino-signed-ota/README.md @@ -8,7 +8,7 @@ How to build PlatformIO based project ```shell # Change directory to example -$ cd platform-raspberrypi/examples/arduino-blink +$ cd platform-raspberrypi/examples/arduino-signed-ota # Build project $ pio run @@ -22,8 +22,16 @@ $ pio run --target clean ## Notes -For Raspberry Pi Pico devices, two Arduino cores exist: -* https://github.com/arduino/ArduinoCore-mbed -* https://github.com/earlephilhower/arduino-pico +This examples showcases the usage of **signed** Over-The-Air (OTA) updates with the Raspberry Pi Pico W. -This examples showcases how to use both of these cores in the `platformio.ini`. \ No newline at end of file +The difference to regular OTA updates is that update binaries are signed using the `private.key` to produce a `firmware.bin.signed` file. + +The firmware then uses the `public.key` file to verify the signature on the binary it receives in an OTA update. It will reject OTA update binaries that were not properly signed. + +For more details, see the [documentation](https://arduino-pico.readthedocs.io/en/latest/ota.html). + +For the initial firmware update, use the `rpipicow_via_usb` environment. + +Then, open the serial monitor and note down the IP of the Pico that it outputs. + +Use this IP as the `upload_port` in the `rpipicow_via_ota` environment and use the "Upload" project task there. \ No newline at end of file From ff7a675659c2478d9fbe3f3b5d397871907efe4d Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 22 Aug 2022 15:46:47 +0200 Subject: [PATCH 084/146] Update to 2.4.1 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 9df2fd2..bbea49e 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#2044d2e51c481ba83a783134a12b0fe9feaf2026" + "version": "https://github.com/earlephilhower/arduino-pico.git#8aad2ca3d2fb6463239c62b83b95c731c54219cf" }, "tool-rp2040tools": { "type": "uploader", From ef9fd764131e2ac556734f5a74b6f2dd3be732b2 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sun, 4 Sep 2022 19:59:36 +0200 Subject: [PATCH 085/146] Update to 2.5.2 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index bbea49e..37521cf 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#8aad2ca3d2fb6463239c62b83b95c731c54219cf" + "version": "https://github.com/earlephilhower/arduino-pico.git#1812b829dcbb89b3dffa3864dc552c23d4c03bc9" }, "tool-rp2040tools": { "type": "uploader", From aa79bc55cb3df8d642b05abc414fd9212a25c7fe Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 12 Sep 2022 11:22:43 +0200 Subject: [PATCH 086/146] Update board files + core commit --- boards/challenger_2040_nfc.json | 54 ++++++++++++++++++++++++++++ boards/challenger_2040_wifi.json | 2 +- boards/challenger_2040_wifi_ble.json | 2 +- boards/challenger_nb_2040_wifi.json | 6 ++-- boards/electroniccats_bombercat.json | 54 ++++++++++++++++++++++++++++ boards/extelec_rc2040.json | 54 ++++++++++++++++++++++++++++ platform.json | 2 +- 7 files changed, 168 insertions(+), 6 deletions(-) create mode 100644 boards/challenger_2040_nfc.json create mode 100644 boards/electroniccats_bombercat.json create mode 100644 boards/extelec_rc2040.json diff --git a/boards/challenger_2040_nfc.json b/boards/challenger_2040_nfc.json new file mode 100644 index 0000000..308f473 --- /dev/null +++ b/boards/challenger_2040_nfc.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x1036" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CHALLENGER_NB_2040_NFC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x1036" + ] + ], + "mcu": "rp2040", + "variant": "challenger_2040_nfc" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Challenger 2040 NFC", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "iLabs" +} diff --git a/boards/challenger_2040_wifi.json b/boards/challenger_2040_wifi.json index 0c9e75e..6b2bcff 100644 --- a/boards/challenger_2040_wifi.json +++ b/boards/challenger_2040_wifi.json @@ -9,7 +9,7 @@ }, "core": "earlephilhower", "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250 -DWIFIESPAT2", "f_cpu": "133000000L", "hwids": [ [ diff --git a/boards/challenger_2040_wifi_ble.json b/boards/challenger_2040_wifi_ble.json index b671b69..5d4b829 100644 --- a/boards/challenger_2040_wifi_ble.json +++ b/boards/challenger_2040_wifi_ble.json @@ -9,7 +9,7 @@ }, "core": "earlephilhower", "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI_BLE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI_BLE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500 -DWIFIESPAT2", "f_cpu": "133000000L", "hwids": [ [ diff --git a/boards/challenger_nb_2040_wifi.json b/boards/challenger_nb_2040_wifi.json index f4ae65c..3d34647 100644 --- a/boards/challenger_nb_2040_wifi.json +++ b/boards/challenger_nb_2040_wifi.json @@ -4,12 +4,12 @@ "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2E8A", - "usb_pid": "0x100B" + "usb_pid": "0x100D" } }, "core": "earlephilhower", "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_CHALLENGER_NB_2040_WIFI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "extra_flags": "-D ARDUINO_CHALLENGER_NB_2040_WIFI_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500 -DWIFIESPAT2", "f_cpu": "133000000L", "hwids": [ [ @@ -18,7 +18,7 @@ ], [ "0x2E8A", - "0x100B" + "0x100D" ] ], "mcu": "rp2040", diff --git a/boards/electroniccats_bombercat.json b/boards/electroniccats_bombercat.json new file mode 100644 index 0000000..a8cbd12 --- /dev/null +++ b/boards/electroniccats_bombercat.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x1209", + "usb_pid": "0x1209" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ELECTRONICCATS_BOMBERCAT -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x1209", + "0x1209" + ] + ], + "mcu": "rp2040", + "variant": "electroniccats_bombercat" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "HunterCat NFC RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "ElectronicCats" +} diff --git a/boards/extelec_rc2040.json b/boards/extelec_rc2040.json new file mode 100644 index 0000000..ca2f3c8 --- /dev/null +++ b/boards/extelec_rc2040.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0xEE20" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_EXTREMEELEXTRONICS_RC2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0xEE20" + ] + ], + "mcu": "rp2040", + "variant": "extelec_rc2040" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RC2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "ExtremeElectronics" +} diff --git a/platform.json b/platform.json index 37521cf..4133aa2 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#1812b829dcbb89b3dffa3864dc552c23d4c03bc9" + "version": "https://github.com/earlephilhower/arduino-pico.git#91b4bdb58f5f1ed7bdcd6b27a1eebc2d6f5a4056" }, "tool-rp2040tools": { "type": "uploader", From 5ce1a228e7cae453f366deb8962252b9b7356bbc Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sat, 1 Oct 2022 02:22:40 +0200 Subject: [PATCH 087/146] Update Arduino-Pico core commit --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 4133aa2..aecc92e 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#91b4bdb58f5f1ed7bdcd6b27a1eebc2d6f5a4056" + "version": "https://github.com/earlephilhower/arduino-pico.git#029471ecca7eafc1c52f25ac583ad41fa869c832" }, "tool-rp2040tools": { "type": "uploader", From 4e39c77ce392aee593410201e109fdb8ef5ad730 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 18 Oct 2022 20:07:11 +0200 Subject: [PATCH 088/146] Update core, add latest boards --- boards/bridgetek_idm2040-7a.json | 54 ++++++++++++++++++++++++ boards/degz_mizu.json | 54 ++++++++++++++++++++++++ boards/electroniccats_huntercat_nfc.json | 54 ++++++++++++++++++++++++ boards/melopero_cookie_rp2040.json | 54 ++++++++++++++++++++++++ platform.json | 2 +- 5 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 boards/bridgetek_idm2040-7a.json create mode 100644 boards/degz_mizu.json create mode 100644 boards/electroniccats_huntercat_nfc.json create mode 100644 boards/melopero_cookie_rp2040.json diff --git a/boards/bridgetek_idm2040-7a.json b/boards/bridgetek_idm2040-7a.json new file mode 100644 index 0000000..4c04fc4 --- /dev/null +++ b/boards/bridgetek_idm2040-7a.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x1041" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_BRIDGETEK_IDM2040-7A -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250 -DFT8XX_TYPE=BT817 -DDISPLAY_RES=WVGA -DPLATFORM_RP2040", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x1041" + ] + ], + "mcu": "rp2040", + "variant": "bridgetek_idm2040-7a" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "IDM2040-7A", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "BridgeTek" +} diff --git a/boards/degz_mizu.json b/boards/degz_mizu.json new file mode 100644 index 0000000..a9cb0e2 --- /dev/null +++ b/boards/degz_mizu.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x000A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_DEGZ_MIZU -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x000A" + ] + ], + "mcu": "rp2040", + "variant": "degz_mizu" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Mizu", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Degz" +} diff --git a/boards/electroniccats_huntercat_nfc.json b/boards/electroniccats_huntercat_nfc.json new file mode 100644 index 0000000..35ca902 --- /dev/null +++ b/boards/electroniccats_huntercat_nfc.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x1037" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ELECTRONICCATS_HUNTERCAT_NFC -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x1037" + ] + ], + "mcu": "rp2040", + "variant": "electroniccats_huntercat_nfc" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "HunterCat NFC RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "ElectronicCats" +} diff --git a/boards/melopero_cookie_rp2040.json b/boards/melopero_cookie_rp2040.json new file mode 100644 index 0000000..5c8701c --- /dev/null +++ b/boards/melopero_cookie_rp2040.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x1011" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_MELOPERO_COOKIE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x1011" + ] + ], + "mcu": "rp2040", + "variant": "melopero_cookie_rp2040" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Cookie RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Melopero" +} diff --git a/platform.json b/platform.json index aecc92e..c8b8945 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#029471ecca7eafc1c52f25ac583ad41fa869c832" + "version": "https://github.com/earlephilhower/arduino-pico.git#075958883ff4b5c319e49b1646d2aac50fc149ef" }, "tool-rp2040tools": { "type": "uploader", From 4c4ed637561320279104842f0ba67740b7394a2a Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 18 Oct 2022 21:07:26 +0200 Subject: [PATCH 089/146] Prepare pimoroni pga2040 support --- boards/pimoroni_pga2040.json | 54 ++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 boards/pimoroni_pga2040.json diff --git a/boards/pimoroni_pga2040.json b/boards/pimoroni_pga2040.json new file mode 100644 index 0000000..46b980d --- /dev/null +++ b/boards/pimoroni_pga2040.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q64j_padded_checksummed.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x1008" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_GENERIC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x1008" + ] + ], + "mcu": "rp2040", + "variant": "generic" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "PGA2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Pimoroni" +} From 19cc4d75023e843b4741a844d07601b1e8108ae8 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 21 Oct 2022 14:42:33 +0200 Subject: [PATCH 090/146] Update core, pimoroni pga2040 support --- boards/pimoroni_pga2040.json | 2 +- examples/arduino-blink/platformio.ini | 3 +++ platform.json | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/boards/pimoroni_pga2040.json b/boards/pimoroni_pga2040.json index 46b980d..7fa17d9 100644 --- a/boards/pimoroni_pga2040.json +++ b/boards/pimoroni_pga2040.json @@ -2,7 +2,7 @@ "build": { "arduino": { "earlephilhower": { - "boot2_source": "boot2_w25q64j_padded_checksummed.S", + "boot2_source": "boot2_w25q64jv_4_padded_checksum.S", "usb_vid": "0x2E8A", "usb_pid": "0x1008" } diff --git a/examples/arduino-blink/platformio.ini b/examples/arduino-blink/platformio.ini index 34a2285..ad6e155 100644 --- a/examples/arduino-blink/platformio.ini +++ b/examples/arduino-blink/platformio.ini @@ -40,5 +40,8 @@ board = seeed_xiao_rp2040 [env:sparkfun_thingplusrp2040] board = sparkfun_thingplusrp2040 +[env:pimoroni_pga2040] +board = pimoroni_pga2040 + [env:rpipicow] board = rpipicow diff --git a/platform.json b/platform.json index c8b8945..7062ffc 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#075958883ff4b5c319e49b1646d2aac50fc149ef" + "version": "https://github.com/earlephilhower/arduino-pico.git#4fdcc6e5ac4c3f7d84769f7c31dc4efe18ab14ee" }, "tool-rp2040tools": { "type": "uploader", From 9a4ef9ff75269277cca563b1854c20cf8a17d861 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 25 Oct 2022 18:15:17 +0200 Subject: [PATCH 091/146] Update pimoroni_pga2040.json --- boards/pimoroni_pga2040.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/boards/pimoroni_pga2040.json b/boards/pimoroni_pga2040.json index 7fa17d9..fadcb61 100644 --- a/boards/pimoroni_pga2040.json +++ b/boards/pimoroni_pga2040.json @@ -9,7 +9,7 @@ }, "core": "earlephilhower", "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_GENERIC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "extra_flags": "-D ARDUINO_PIMORONI_PGA2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", "f_cpu": "133000000L", "hwids": [ [ @@ -22,7 +22,7 @@ ] ], "mcu": "rp2040", - "variant": "generic" + "variant": "pimoroni_pga2040" }, "debug": { "jlink_device": "RP2040_M0_0", From 702b36f009efe7c07c44b1e21ea6c5dc241d5014 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 25 Oct 2022 18:15:39 +0200 Subject: [PATCH 092/146] Update to latest release --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 7062ffc..556e222 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#4fdcc6e5ac4c3f7d84769f7c31dc4efe18ab14ee" + "version": "https://github.com/earlephilhower/arduino-pico.git#9d0b9bef67271222b594fdead25f21d69b22dd4c" }, "tool-rp2040tools": { "type": "uploader", From fec7ed80ecfb4e3171a1c3c3748396763e54adc9 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 31 Oct 2022 11:02:22 +0100 Subject: [PATCH 093/146] Update Arduino-Pico to bleeding edge E.g. fixes WiFi RSSI, BSSID and channel reporting --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 556e222..196953c 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#9d0b9bef67271222b594fdead25f21d69b22dd4c" + "version": "https://github.com/earlephilhower/arduino-pico.git#ec7631096b667b8d40663c6da4667e3e0aea5a97" }, "tool-rp2040tools": { "type": "uploader", From bd485fe9b97c6d41e758775f4647e8c5e3be4fdb Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 14 Nov 2022 19:55:35 +0100 Subject: [PATCH 094/146] Update to latest board defs and core commit --- boards/arduino_nano_connect.json | 4 +-- boards/datanoisetv_picoadk.json | 54 ++++++++++++++++++++++++++++++++ boards/flyboard2040_core.json | 2 +- platform.json | 2 +- 4 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 boards/datanoisetv_picoadk.json diff --git a/boards/arduino_nano_connect.json b/boards/arduino_nano_connect.json index 340bf0f..68e9abb 100644 --- a/boards/arduino_nano_connect.json +++ b/boards/arduino_nano_connect.json @@ -4,7 +4,7 @@ "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2341", - "usb_pid": "0x0058" + "usb_pid": "0x005E" } }, "core": "earlephilhower", @@ -18,7 +18,7 @@ ], [ "0x2341", - "0x0058" + "0x005E" ] ], "mcu": "rp2040", diff --git a/boards/datanoisetv_picoadk.json b/boards/datanoisetv_picoadk.json new file mode 100644 index 0000000..503763c --- /dev/null +++ b/boards/datanoisetv_picoadk.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x000A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_DATANOISETV_PICOADK -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x000A" + ] + ], + "mcu": "rp2040", + "variant": "datanoisetv_picoadk" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "PicoADK", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "DatanoiseTV" +} diff --git a/boards/flyboard2040_core.json b/boards/flyboard2040_core.json index fab7a0b..de6b228 100644 --- a/boards/flyboard2040_core.json +++ b/boards/flyboard2040_core.json @@ -2,7 +2,7 @@ "build": { "arduino": { "earlephilhower": { - "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "boot2_source": "boot2_w25q080_2_padded_checksum.S", "usb_vid": "0x2E8A", "usb_pid": "0x008A" } diff --git a/platform.json b/platform.json index 196953c..a23e00b 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#ec7631096b667b8d40663c6da4667e3e0aea5a97" + "version": "https://github.com/earlephilhower/arduino-pico.git#852219caf583f0d3e5ca7fe2c9c725f0f798019a" }, "tool-rp2040tools": { "type": "uploader", From 2e399c94ed74a6dd09fe7e8ecf074d9df1b1491f Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Wed, 23 Nov 2022 12:33:48 +0100 Subject: [PATCH 095/146] Add SCORPIO and Waveshre RP2040 Zero, update Arduino-Pico --- boards/adafruit_feather_scorpio.json | 54 ++++++++++++++++++++++++++++ boards/waveshare_rp2040_zero.json | 54 ++++++++++++++++++++++++++++ platform.json | 2 +- 3 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 boards/adafruit_feather_scorpio.json create mode 100644 boards/waveshare_rp2040_zero.json diff --git a/boards/adafruit_feather_scorpio.json b/boards/adafruit_feather_scorpio.json new file mode 100644 index 0000000..02973e9 --- /dev/null +++ b/boards/adafruit_feather_scorpio.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239A", + "usb_pid": "0x8121" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_SCORPIO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x239A", + "0x8121" + ] + ], + "mcu": "rp2040", + "variant": "adafruit_feather_scorpio" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Feather RP2040 SCORPIO", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} diff --git a/boards/waveshare_rp2040_zero.json b/boards/waveshare_rp2040_zero.json new file mode 100644 index 0000000..d04692f --- /dev/null +++ b/boards/waveshare_rp2040_zero.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q16jvxq_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x0003" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_WAVESHARE_RP2040_ZERO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x0003" + ] + ], + "mcu": "rp2040", + "variant": "waveshare_rp2040_zero" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040 Zero", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Waveshare" +} diff --git a/platform.json b/platform.json index a23e00b..a2cb74a 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#852219caf583f0d3e5ca7fe2c9c725f0f798019a" + "version": "https://github.com/earlephilhower/arduino-pico.git#a7cf5cd1caf1afc8aebc8723776847227fed8966" }, "tool-rp2040tools": { "type": "uploader", From 6ac422138b319672a8827b123eab1232d0ec0252 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 6 Dec 2022 22:45:11 +0100 Subject: [PATCH 096/146] Update Arduino-Pico commit --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index a2cb74a..014b73a 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#a7cf5cd1caf1afc8aebc8723776847227fed8966" + "version": "https://github.com/earlephilhower/arduino-pico.git#d35e938c36169f1496e52ffcc4c834a82bf1f153" }, "tool-rp2040tools": { "type": "uploader", From 20c7dbfcfe6677c5305fa28ecf5e3870321cb157 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sun, 18 Dec 2022 16:34:48 +0100 Subject: [PATCH 097/146] Update to 2.6.5 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 014b73a..1b2b0d4 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#d35e938c36169f1496e52ffcc4c834a82bf1f153" + "version": "https://github.com/earlephilhower/arduino-pico.git#4cc8e6d6db7533346a81c59657c5d76cf246668b" }, "tool-rp2040tools": { "type": "uploader", From 9a13c2575e569c141bd67db2ae1ed7cb61cd9ed6 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Fri, 23 Dec 2022 21:49:19 +0100 Subject: [PATCH 098/146] Update toolchain, update arduino-pico (ARMv7l support) --- platform.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform.json b/platform.json index 1b2b0d4..095c6d1 100644 --- a/platform.json +++ b/platform.json @@ -35,7 +35,7 @@ "type": "toolchain", "optional": true, "owner": "earlephilhower", - "version": "5.100300.220714" + "version": "5.100300.221223" }, "framework-arduino-mbed": { "type": "framework", @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#4cc8e6d6db7533346a81c59657c5d76cf246668b" + "version": "https://github.com/earlephilhower/arduino-pico.git#e105c539ad28079371cbd7fa025590a8f80d9b9e" }, "tool-rp2040tools": { "type": "uploader", From 9f8c10e50b5acd18e7bfd32638199c655be73a5b Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sun, 8 Jan 2023 15:56:01 +0100 Subject: [PATCH 099/146] Upgrade Arduino-Pico version to latest --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 095c6d1..26fee84 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#e105c539ad28079371cbd7fa025590a8f80d9b9e" + "version": "https://github.com/earlephilhower/arduino-pico.git#aeb41f3e70628e63ed1cf13f2031cdaf61d65ad0" }, "tool-rp2040tools": { "type": "uploader", From 3cf9e1a26583318dd38dee7f7bbe806e9b6ed28e Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Wed, 8 Feb 2023 19:42:55 +0100 Subject: [PATCH 100/146] Update Arduino-Pico --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 26fee84..37cd6ec 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#aeb41f3e70628e63ed1cf13f2031cdaf61d65ad0" + "version": "https://github.com/earlephilhower/arduino-pico.git#7df080ee92358293eca80d8095946d4d24fdfeeb" }, "tool-rp2040tools": { "type": "uploader", From d11b0eebdbd23ec3de8d76826692899c08ba9dcf Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Fri, 10 Feb 2023 19:01:59 +0100 Subject: [PATCH 101/146] Update Arduino-Pico --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 37cd6ec..0a799fa 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#7df080ee92358293eca80d8095946d4d24fdfeeb" + "version": "https://github.com/earlephilhower/arduino-pico.git#b6cb2e7edc3a09fb5f0bcbb33cf490f0765d1a94" }, "tool-rp2040tools": { "type": "uploader", From 1b962727b947bab63f302f891c8971c7a3c0a4a5 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Fri, 10 Feb 2023 19:11:13 +0100 Subject: [PATCH 102/146] Update board definitions --- boards/0xcb_helios.json | 54 ++++++++++++++++++++++++++ boards/nullbits_bit_c_pro.json | 54 ++++++++++++++++++++++++++ boards/vccgnd_yd_rp2040.json | 54 ++++++++++++++++++++++++++ boards/viyalab_mizu.json | 54 ++++++++++++++++++++++++++ boards/waveshare_rp2040_lcd_0_96.json | 54 ++++++++++++++++++++++++++ boards/waveshare_rp2040_lcd_1_28.json | 54 ++++++++++++++++++++++++++ boards/waveshare_rp2040_one.json | 54 ++++++++++++++++++++++++++ boards/waveshare_rp2040_plus_16mb.json | 54 ++++++++++++++++++++++++++ boards/waveshare_rp2040_plus_4mb.json | 54 ++++++++++++++++++++++++++ 9 files changed, 486 insertions(+) create mode 100644 boards/0xcb_helios.json create mode 100644 boards/nullbits_bit_c_pro.json create mode 100644 boards/vccgnd_yd_rp2040.json create mode 100644 boards/viyalab_mizu.json create mode 100644 boards/waveshare_rp2040_lcd_0_96.json create mode 100644 boards/waveshare_rp2040_lcd_1_28.json create mode 100644 boards/waveshare_rp2040_one.json create mode 100644 boards/waveshare_rp2040_plus_16mb.json create mode 100644 boards/waveshare_rp2040_plus_4mb.json diff --git a/boards/0xcb_helios.json b/boards/0xcb_helios.json new file mode 100644 index 0000000..5a5ca17 --- /dev/null +++ b/boards/0xcb_helios.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q128jvxq_4_padded_checksum.S", + "usb_vid": "0x1209", + "usb_pid": "0xCB74" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_0XCB_HELIOS -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x1209", + "0xCB74" + ] + ], + "mcu": "rp2040", + "variant": "0xcb_helios" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Helios", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "0xCB" +} diff --git a/boards/nullbits_bit_c_pro.json b/boards/nullbits_bit_c_pro.json new file mode 100644 index 0000000..9367d14 --- /dev/null +++ b/boards/nullbits_bit_c_pro.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25x10cl_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x6E61" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_NULLBITS_BIT_C_PRO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x6E61" + ] + ], + "mcu": "rp2040", + "variant": "nullbits_bit_c_pro" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Bit-C PRO", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 4194304, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "nullbits" +} diff --git a/boards/vccgnd_yd_rp2040.json b/boards/vccgnd_yd_rp2040.json new file mode 100644 index 0000000..019c2f2 --- /dev/null +++ b/boards/vccgnd_yd_rp2040.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x800A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_YD_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x800A" + ] + ], + "mcu": "rp2040", + "variant": "vccgnd_yd_rp2040" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "YD RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "VCC-GND" +} diff --git a/boards/viyalab_mizu.json b/boards/viyalab_mizu.json new file mode 100644 index 0000000..c21774c --- /dev/null +++ b/boards/viyalab_mizu.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x000A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_VIYALAB_MIZU_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x000A" + ] + ], + "mcu": "rp2040", + "variant": "viyalab_mizu" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Mizu RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Viyalab" +} diff --git a/boards/waveshare_rp2040_lcd_0_96.json b/boards/waveshare_rp2040_lcd_0_96.json new file mode 100644 index 0000000..543f260 --- /dev/null +++ b/boards/waveshare_rp2040_lcd_0_96.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q16jvxq_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x1021" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_WAVESHARE_RP2040_LCD_0_96 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x1021" + ] + ], + "mcu": "rp2040", + "variant": "waveshare_rp2040_lcd_0_96" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040 LCD 0.96", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Waveshare" +} diff --git a/boards/waveshare_rp2040_lcd_1_28.json b/boards/waveshare_rp2040_lcd_1_28.json new file mode 100644 index 0000000..b1a68a5 --- /dev/null +++ b/boards/waveshare_rp2040_lcd_1_28.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q16jvxq_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x1039" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_WAVESHARE_RP2040_LCD_1_28 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x1039" + ] + ], + "mcu": "rp2040", + "variant": "waveshare_rp2040_lcd_1_28" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040 LCD 1.28", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Waveshare" +} diff --git a/boards/waveshare_rp2040_one.json b/boards/waveshare_rp2040_one.json new file mode 100644 index 0000000..7861407 --- /dev/null +++ b/boards/waveshare_rp2040_one.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q16jvxq_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x103A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_WAVESHARE_RP2040_ONE -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x103A" + ] + ], + "mcu": "rp2040", + "variant": "waveshare_rp2040_one" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040 One", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 4194304, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Waveshare" +} diff --git a/boards/waveshare_rp2040_plus_16mb.json b/boards/waveshare_rp2040_plus_16mb.json new file mode 100644 index 0000000..c3d93ad --- /dev/null +++ b/boards/waveshare_rp2040_plus_16mb.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x1020" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_WAVESHARE_RP2040_PLUS -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x1020" + ] + ], + "mcu": "rp2040", + "variant": "waveshare_rp2040_plus_16mb" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040 Plus 16MB", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Waveshare" +} diff --git a/boards/waveshare_rp2040_plus_4mb.json b/boards/waveshare_rp2040_plus_4mb.json new file mode 100644 index 0000000..8414613 --- /dev/null +++ b/boards/waveshare_rp2040_plus_4mb.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x1020" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_WAVESHARE_RP2040_PLUS -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x1020" + ] + ], + "mcu": "rp2040", + "variant": "waveshare_rp2040_plus_4mb" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040 Plus 4MB", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 4194304, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Waveshare" +} From 11247e9e401dd463a13e835c99a87f9b6d074bdb Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sun, 12 Feb 2023 15:15:27 +0100 Subject: [PATCH 103/146] Update to 2.7.2 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 0a799fa..9527bc7 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#b6cb2e7edc3a09fb5f0bcbb33cf490f0765d1a94" + "version": "https://github.com/earlephilhower/arduino-pico.git#1bfd07c19a5a0485901acdb3943d7d8cedd6b2f1" }, "tool-rp2040tools": { "type": "uploader", From b9928a2d113f095ccea2540f6fb060d665243063 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sun, 19 Feb 2023 13:10:35 +0100 Subject: [PATCH 104/146] Generalize used toolchain version No more strict pinning --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 9527bc7..2195668 100644 --- a/platform.json +++ b/platform.json @@ -35,7 +35,7 @@ "type": "toolchain", "optional": true, "owner": "earlephilhower", - "version": "5.100300.221223" + "version": "~5.100300.0" }, "framework-arduino-mbed": { "type": "framework", From 0b2e90a43034484907a367f38355f364594d1443 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sun, 19 Feb 2023 15:21:19 +0100 Subject: [PATCH 105/146] Update to Arduino-Pico 2.7.3 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 2195668..58be206 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#1bfd07c19a5a0485901acdb3943d7d8cedd6b2f1" + "version": "https://github.com/earlephilhower/arduino-pico.git#11ac5ed33efa6daeae5dea63d6c330986401a8cc" }, "tool-rp2040tools": { "type": "uploader", From 090343e4478f749da5347487ca42c231df75aab3 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sun, 5 Mar 2023 22:44:20 +0100 Subject: [PATCH 106/146] Update Arduino-Pico (now BLE support) --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index f75a454..4a43ef9 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#11ac5ed33efa6daeae5dea63d6c330986401a8cc" + "version": "https://github.com/earlephilhower/arduino-pico.git#51afd3440f1e93efa7e866c397a409d763ddf8c7" }, "tool-rp2040tools": { "type": "uploader", From 139b86b1b4c015fe85ebf29adbd25aefebb7d807 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 6 Mar 2023 11:12:06 +0100 Subject: [PATCH 107/146] Enable long paths to hopefully fix TinyUSB clone --- .github/workflows/examples.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 31e3318..1824f81 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -25,6 +25,7 @@ jobs: python-version: "3.9" - name: Install dependencies run: | + git config --system core.longpaths true pip install -U https://github.com/platformio/platformio/archive/develop.zip pio pkg install --global --platform symlink://. # OpenSSL needed for signed OTA update example From e9fba631fafeef28f850b958978492ddb4326c81 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 6 Mar 2023 11:14:20 +0100 Subject: [PATCH 108/146] Only enable long paths for Windows --- .github/workflows/examples.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 1824f81..2d3d8b0 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -25,7 +25,9 @@ jobs: python-version: "3.9" - name: Install dependencies run: | - git config --system core.longpaths true + if [ "$RUNNER_OS" == "Windows" ]; then + git config --system core.longpaths true + fi pip install -U https://github.com/platformio/platformio/archive/develop.zip pio pkg install --global --platform symlink://. # OpenSSL needed for signed OTA update example From 8e7f3fcf79b69e5e24022fdb342e206d1d7cbc46 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 6 Mar 2023 11:16:32 +0100 Subject: [PATCH 109/146] Refactor enable long paths --- .github/workflows/examples.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 2d3d8b0..95ae82a 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -23,11 +23,14 @@ jobs: uses: actions/setup-python@v3 with: python-version: "3.9" - - name: Install dependencies + - name: Enable Long Paths run: | if [ "$RUNNER_OS" == "Windows" ]; then git config --system core.longpaths true fi + shell: bash + - name: Install dependencies + run: | pip install -U https://github.com/platformio/platformio/archive/develop.zip pio pkg install --global --platform symlink://. # OpenSSL needed for signed OTA update example From ddb4335440a2e260416cf2801dfa77ec5356cf5e Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Fri, 10 Mar 2023 18:27:34 +0100 Subject: [PATCH 110/146] Arduino-Pico 3.1.0 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 4a43ef9..1ee3348 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#51afd3440f1e93efa7e866c397a409d763ddf8c7" + "version": "https://github.com/earlephilhower/arduino-pico.git#7851dc8cb70af5bee0308566770c2f472d27a71a" }, "tool-rp2040tools": { "type": "uploader", From 5a533d6b36844183bb72794bc53091206165e921 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Fri, 10 Mar 2023 18:29:16 +0100 Subject: [PATCH 111/146] Update available boards --- boards/adafruit_feather_dvi.json | 54 +++++++++++++++++++++++++++++ boards/nekosystems_bl2040_mini.json | 54 +++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 boards/adafruit_feather_dvi.json create mode 100644 boards/nekosystems_bl2040_mini.json diff --git a/boards/adafruit_feather_dvi.json b/boards/adafruit_feather_dvi.json new file mode 100644 index 0000000..b829f7d --- /dev/null +++ b/boards/adafruit_feather_dvi.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239A", + "usb_pid": "0x8127" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_DVI -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x239A", + "0x8127" + ] + ], + "mcu": "rp2040", + "variant": "adafruit_feather_dvi" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Feather RP2040 DVI", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} diff --git a/boards/nekosystems_bl2040_mini.json b/boards/nekosystems_bl2040_mini.json new file mode 100644 index 0000000..3fd2807 --- /dev/null +++ b/boards/nekosystems_bl2040_mini.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_generic_03h_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x000A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_NEKOSYSTEMS_BL2040_MINI -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x000A" + ] + ], + "mcu": "rp2040", + "variant": "nekosystems_bl2040_mini" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "BL2040 Mini", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 4194304, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Neko Systems" +} From aa10954dab6f55803b2d77b838e8a1ac016064d3 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Tue, 4 Apr 2023 23:16:51 +0200 Subject: [PATCH 112/146] Update Arduino-Pico, sync boards --- boards/adafruit_feather_rfm.json | 54 +++++++++++++++++++++++++++ boards/adafruit_feather_thinkink.json | 54 +++++++++++++++++++++++++++ boards/adafruit_feather_usb_host.json | 54 +++++++++++++++++++++++++++ boards/challenger_2040_nfc.json | 2 +- boards/challenger_2040_sdrtc.json | 2 +- boards/challenger_2040_uwb.json | 54 +++++++++++++++++++++++++++ platform.json | 2 +- 7 files changed, 219 insertions(+), 3 deletions(-) create mode 100644 boards/adafruit_feather_rfm.json create mode 100644 boards/adafruit_feather_thinkink.json create mode 100644 boards/adafruit_feather_usb_host.json create mode 100644 boards/challenger_2040_uwb.json diff --git a/boards/adafruit_feather_rfm.json b/boards/adafruit_feather_rfm.json new file mode 100644 index 0000000..b46e713 --- /dev/null +++ b/boards/adafruit_feather_rfm.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239A", + "usb_pid": "0x812D" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_RFM -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x239A", + "0x812D" + ] + ], + "mcu": "rp2040", + "variant": "adafruit_feather_rfm" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Feather RP2040 RFM", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} diff --git a/boards/adafruit_feather_thinkink.json b/boards/adafruit_feather_thinkink.json new file mode 100644 index 0000000..3c5b979 --- /dev/null +++ b/boards/adafruit_feather_thinkink.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239A", + "usb_pid": "0x812B" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_THINKINK -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x239A", + "0x812B" + ] + ], + "mcu": "rp2040", + "variant": "adafruit_feather_thinkink" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Feather RP2040 ThinkINK", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} diff --git a/boards/adafruit_feather_usb_host.json b/boards/adafruit_feather_usb_host.json new file mode 100644 index 0000000..0651f47 --- /dev/null +++ b/boards/adafruit_feather_usb_host.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239A", + "usb_pid": "0x8129" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_USB_HOST -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x239A", + "0x8129" + ] + ], + "mcu": "rp2040", + "variant": "adafruit_feather_usb_host" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Feather RP2040 USB Host", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} diff --git a/boards/challenger_2040_nfc.json b/boards/challenger_2040_nfc.json index 308f473..0b1ea74 100644 --- a/boards/challenger_2040_nfc.json +++ b/boards/challenger_2040_nfc.json @@ -9,7 +9,7 @@ }, "core": "earlephilhower", "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_CHALLENGER_NB_2040_NFC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "extra_flags": "-D ARDUINO_CHALLENGER_2040_NFC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", "f_cpu": "133000000L", "hwids": [ [ diff --git a/boards/challenger_2040_sdrtc.json b/boards/challenger_2040_sdrtc.json index 6c9cb97..0f39dc3 100644 --- a/boards/challenger_2040_sdrtc.json +++ b/boards/challenger_2040_sdrtc.json @@ -9,7 +9,7 @@ }, "core": "earlephilhower", "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_CHALLENGER_NB_2040_SDRTC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "extra_flags": "-D ARDUINO_CHALLENGER_2040_SDRTC_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", "f_cpu": "133000000L", "hwids": [ [ diff --git a/boards/challenger_2040_uwb.json b/boards/challenger_2040_uwb.json new file mode 100644 index 0000000..fb34b6d --- /dev/null +++ b/boards/challenger_2040_uwb.json @@ -0,0 +1,54 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x1052" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CHALLENGER_2040_UWB_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x1052" + ] + ], + "mcu": "rp2040", + "variant": "challenger_2040_uwb" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Challenger 2040 UWB", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "iLabs" +} diff --git a/platform.json b/platform.json index 1ee3348..b774ab5 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#7851dc8cb70af5bee0308566770c2f472d27a71a" + "version": "https://github.com/earlephilhower/arduino-pico.git#5bf570c27d40cc2fc2b574661491ff4ccf37c2a" }, "tool-rp2040tools": { "type": "uploader", From 46ae0c828b785a68067772f17e46b6ba4ebe87f8 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Sat, 8 Apr 2023 22:07:24 +0200 Subject: [PATCH 113/146] Experimental BlackMagicProbe support --- boards/0xcb_helios.json | 1 + boards/adafruit_feather.json | 1 + boards/adafruit_feather_dvi.json | 1 + boards/adafruit_feather_rfm.json | 1 + boards/adafruit_feather_scorpio.json | 1 + boards/adafruit_feather_thinkink.json | 1 + boards/adafruit_feather_usb_host.json | 1 + boards/adafruit_itsybitsy.json | 1 + boards/adafruit_kb2040.json | 1 + boards/adafruit_macropad2040.json | 1 + boards/adafruit_qtpy.json | 1 + boards/adafruit_stemmafriend.json | 1 + boards/adafruit_trinkeyrp2040qt.json | 1 + boards/arduino_nano_connect.json | 1 + boards/bridgetek_idm2040-7a.json | 1 + boards/challenger_2040_lora.json | 1 + boards/challenger_2040_lte.json | 1 + boards/challenger_2040_nfc.json | 1 + boards/challenger_2040_sdrtc.json | 1 + boards/challenger_2040_subghz.json | 1 + boards/challenger_2040_uwb.json | 1 + boards/challenger_2040_wifi.json | 1 + boards/challenger_2040_wifi_ble.json | 1 + boards/challenger_nb_2040_wifi.json | 1 + boards/cytron_maker_nano_rp2040.json | 1 + boards/cytron_maker_pi_rp2040.json | 1 + boards/datanoisetv_picoadk.json | 1 + boards/dfrobot_beetle_rp2040.json | 1 + boards/electroniccats_huntercat_nfc.json | 1 + boards/extelec_rc2040.json | 1 + boards/flyboard2040_core.json | 1 + boards/generic.json | 1 + boards/ilabs_rpico32.json | 1 + boards/melopero_cookie_rp2040.json | 1 + boards/melopero_shake_rp2040.json | 1 + boards/nekosystems_bl2040_mini.json | 1 + boards/nullbits_bit_c_pro.json | 1 + boards/pico.json | 1 + boards/pimoroni_pga2040.json | 1 + boards/rpipico.json | 1 + boards/rpipicow.json | 1 + boards/seeed_xiao_rp2040.json | 1 + boards/solderparty_rp2040_stamp.json | 1 + boards/sparkfun_promicrorp2040.json | 1 + boards/sparkfun_thingplusrp2040.json | 1 + boards/upesy_rp2040_devkit.json | 1 + boards/vccgnd_yd_rp2040.json | 1 + boards/viyalab_mizu.json | 1 + boards/waveshare_rp2040_lcd_0_96.json | 1 + boards/waveshare_rp2040_lcd_1_28.json | 1 + boards/waveshare_rp2040_one.json | 1 + boards/waveshare_rp2040_plus_16mb.json | 1 + boards/waveshare_rp2040_plus_4mb.json | 1 + boards/waveshare_rp2040_zero.json | 1 + boards/wiznet_5100s_evb_pico.json | 1 + boards/wiznet_5500_evb_pico.json | 1 + boards/wiznet_wizfi360_evb_pico.json | 1 + builder/main.py | 22 ++++++++++++++++++++++ platform.py | 2 +- 59 files changed, 80 insertions(+), 1 deletion(-) diff --git a/boards/0xcb_helios.json b/boards/0xcb_helios.json index 5a5ca17..11d16e3 100644 --- a/boards/0xcb_helios.json +++ b/boards/0xcb_helios.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_feather.json b/boards/adafruit_feather.json index 9fa4cce..8837f89 100644 --- a/boards/adafruit_feather.json +++ b/boards/adafruit_feather.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_feather_dvi.json b/boards/adafruit_feather_dvi.json index b829f7d..f68c823 100644 --- a/boards/adafruit_feather_dvi.json +++ b/boards/adafruit_feather_dvi.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_feather_rfm.json b/boards/adafruit_feather_rfm.json index b46e713..a7e9bbe 100644 --- a/boards/adafruit_feather_rfm.json +++ b/boards/adafruit_feather_rfm.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_feather_scorpio.json b/boards/adafruit_feather_scorpio.json index 02973e9..c4ac220 100644 --- a/boards/adafruit_feather_scorpio.json +++ b/boards/adafruit_feather_scorpio.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_feather_thinkink.json b/boards/adafruit_feather_thinkink.json index 3c5b979..8947c7d 100644 --- a/boards/adafruit_feather_thinkink.json +++ b/boards/adafruit_feather_thinkink.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_feather_usb_host.json b/boards/adafruit_feather_usb_host.json index 0651f47..5778786 100644 --- a/boards/adafruit_feather_usb_host.json +++ b/boards/adafruit_feather_usb_host.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_itsybitsy.json b/boards/adafruit_itsybitsy.json index bb3e1c0..b70ad59 100644 --- a/boards/adafruit_itsybitsy.json +++ b/boards/adafruit_itsybitsy.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_kb2040.json b/boards/adafruit_kb2040.json index 9b9e27c..9c013ba 100644 --- a/boards/adafruit_kb2040.json +++ b/boards/adafruit_kb2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_macropad2040.json b/boards/adafruit_macropad2040.json index fd21d5a..dc0ec66 100644 --- a/boards/adafruit_macropad2040.json +++ b/boards/adafruit_macropad2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_qtpy.json b/boards/adafruit_qtpy.json index 74bf84f..c2de2b2 100644 --- a/boards/adafruit_qtpy.json +++ b/boards/adafruit_qtpy.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_stemmafriend.json b/boards/adafruit_stemmafriend.json index 5d3b432..2299a53 100644 --- a/boards/adafruit_stemmafriend.json +++ b/boards/adafruit_stemmafriend.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/adafruit_trinkeyrp2040qt.json b/boards/adafruit_trinkeyrp2040qt.json index 3765368..c4c10b4 100644 --- a/boards/adafruit_trinkeyrp2040qt.json +++ b/boards/adafruit_trinkeyrp2040qt.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/arduino_nano_connect.json b/boards/arduino_nano_connect.json index 68e9abb..f06b433 100644 --- a/boards/arduino_nano_connect.json +++ b/boards/arduino_nano_connect.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/bridgetek_idm2040-7a.json b/boards/bridgetek_idm2040-7a.json index 4c04fc4..42edf3d 100644 --- a/boards/bridgetek_idm2040-7a.json +++ b/boards/bridgetek_idm2040-7a.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/challenger_2040_lora.json b/boards/challenger_2040_lora.json index 4636c1d..5d56ca5 100644 --- a/boards/challenger_2040_lora.json +++ b/boards/challenger_2040_lora.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/challenger_2040_lte.json b/boards/challenger_2040_lte.json index e2ce6a4..dd33426 100644 --- a/boards/challenger_2040_lte.json +++ b/boards/challenger_2040_lte.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/challenger_2040_nfc.json b/boards/challenger_2040_nfc.json index 0b1ea74..1eade3d 100644 --- a/boards/challenger_2040_nfc.json +++ b/boards/challenger_2040_nfc.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/challenger_2040_sdrtc.json b/boards/challenger_2040_sdrtc.json index 0f39dc3..5ba1738 100644 --- a/boards/challenger_2040_sdrtc.json +++ b/boards/challenger_2040_sdrtc.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/challenger_2040_subghz.json b/boards/challenger_2040_subghz.json index 43d8e8b..a946eeb 100644 --- a/boards/challenger_2040_subghz.json +++ b/boards/challenger_2040_subghz.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/challenger_2040_uwb.json b/boards/challenger_2040_uwb.json index fb34b6d..784224a 100644 --- a/boards/challenger_2040_uwb.json +++ b/boards/challenger_2040_uwb.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/challenger_2040_wifi.json b/boards/challenger_2040_wifi.json index 6b2bcff..d76961d 100644 --- a/boards/challenger_2040_wifi.json +++ b/boards/challenger_2040_wifi.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/challenger_2040_wifi_ble.json b/boards/challenger_2040_wifi_ble.json index 5d4b829..687ded6 100644 --- a/boards/challenger_2040_wifi_ble.json +++ b/boards/challenger_2040_wifi_ble.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/challenger_nb_2040_wifi.json b/boards/challenger_nb_2040_wifi.json index 3d34647..11595d4 100644 --- a/boards/challenger_nb_2040_wifi.json +++ b/boards/challenger_nb_2040_wifi.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/cytron_maker_nano_rp2040.json b/boards/cytron_maker_nano_rp2040.json index 2ec7fdf..bce9977 100644 --- a/boards/cytron_maker_nano_rp2040.json +++ b/boards/cytron_maker_nano_rp2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/cytron_maker_pi_rp2040.json b/boards/cytron_maker_pi_rp2040.json index ccc793d..db57ee5 100644 --- a/boards/cytron_maker_pi_rp2040.json +++ b/boards/cytron_maker_pi_rp2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/datanoisetv_picoadk.json b/boards/datanoisetv_picoadk.json index 503763c..a7d0d8f 100644 --- a/boards/datanoisetv_picoadk.json +++ b/boards/datanoisetv_picoadk.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/dfrobot_beetle_rp2040.json b/boards/dfrobot_beetle_rp2040.json index 44bcd65..a7f879f 100644 --- a/boards/dfrobot_beetle_rp2040.json +++ b/boards/dfrobot_beetle_rp2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/electroniccats_huntercat_nfc.json b/boards/electroniccats_huntercat_nfc.json index 35ca902..00b210c 100644 --- a/boards/electroniccats_huntercat_nfc.json +++ b/boards/electroniccats_huntercat_nfc.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/extelec_rc2040.json b/boards/extelec_rc2040.json index ca2f3c8..d6e348c 100644 --- a/boards/extelec_rc2040.json +++ b/boards/extelec_rc2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/flyboard2040_core.json b/boards/flyboard2040_core.json index de6b228..6f0301c 100644 --- a/boards/flyboard2040_core.json +++ b/boards/flyboard2040_core.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/generic.json b/boards/generic.json index 3c95641..c22a678 100644 --- a/boards/generic.json +++ b/boards/generic.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/ilabs_rpico32.json b/boards/ilabs_rpico32.json index 97bffc0..82dfe28 100644 --- a/boards/ilabs_rpico32.json +++ b/boards/ilabs_rpico32.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/melopero_cookie_rp2040.json b/boards/melopero_cookie_rp2040.json index 5c8701c..d1980d2 100644 --- a/boards/melopero_cookie_rp2040.json +++ b/boards/melopero_cookie_rp2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/melopero_shake_rp2040.json b/boards/melopero_shake_rp2040.json index c36111b..0d4eeda 100644 --- a/boards/melopero_shake_rp2040.json +++ b/boards/melopero_shake_rp2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/nekosystems_bl2040_mini.json b/boards/nekosystems_bl2040_mini.json index 3fd2807..0b203fe 100644 --- a/boards/nekosystems_bl2040_mini.json +++ b/boards/nekosystems_bl2040_mini.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/nullbits_bit_c_pro.json b/boards/nullbits_bit_c_pro.json index 9367d14..420fae3 100644 --- a/boards/nullbits_bit_c_pro.json +++ b/boards/nullbits_bit_c_pro.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/pico.json b/boards/pico.json index 55fdfa4..b956978 100644 --- a/boards/pico.json +++ b/boards/pico.json @@ -41,6 +41,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/pimoroni_pga2040.json b/boards/pimoroni_pga2040.json index fadcb61..17fc4ab 100644 --- a/boards/pimoroni_pga2040.json +++ b/boards/pimoroni_pga2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/rpipico.json b/boards/rpipico.json index 72d6beb..d5be483 100644 --- a/boards/rpipico.json +++ b/boards/rpipico.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/rpipicow.json b/boards/rpipicow.json index 33b4cc8..717deda 100644 --- a/boards/rpipicow.json +++ b/boards/rpipicow.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/seeed_xiao_rp2040.json b/boards/seeed_xiao_rp2040.json index 24eb648..7fba246 100644 --- a/boards/seeed_xiao_rp2040.json +++ b/boards/seeed_xiao_rp2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/solderparty_rp2040_stamp.json b/boards/solderparty_rp2040_stamp.json index a459449..ab9d517 100644 --- a/boards/solderparty_rp2040_stamp.json +++ b/boards/solderparty_rp2040_stamp.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/sparkfun_promicrorp2040.json b/boards/sparkfun_promicrorp2040.json index 2052a8b..ea50345 100644 --- a/boards/sparkfun_promicrorp2040.json +++ b/boards/sparkfun_promicrorp2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/sparkfun_thingplusrp2040.json b/boards/sparkfun_thingplusrp2040.json index a14c9d6..2e92ae7 100644 --- a/boards/sparkfun_thingplusrp2040.json +++ b/boards/sparkfun_thingplusrp2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/upesy_rp2040_devkit.json b/boards/upesy_rp2040_devkit.json index de0d5ce..8fdfb93 100644 --- a/boards/upesy_rp2040_devkit.json +++ b/boards/upesy_rp2040_devkit.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/vccgnd_yd_rp2040.json b/boards/vccgnd_yd_rp2040.json index 019c2f2..7d05b08 100644 --- a/boards/vccgnd_yd_rp2040.json +++ b/boards/vccgnd_yd_rp2040.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/viyalab_mizu.json b/boards/viyalab_mizu.json index c21774c..98cb7df 100644 --- a/boards/viyalab_mizu.json +++ b/boards/viyalab_mizu.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/waveshare_rp2040_lcd_0_96.json b/boards/waveshare_rp2040_lcd_0_96.json index 543f260..5d38d0c 100644 --- a/boards/waveshare_rp2040_lcd_0_96.json +++ b/boards/waveshare_rp2040_lcd_0_96.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/waveshare_rp2040_lcd_1_28.json b/boards/waveshare_rp2040_lcd_1_28.json index b1a68a5..772eb60 100644 --- a/boards/waveshare_rp2040_lcd_1_28.json +++ b/boards/waveshare_rp2040_lcd_1_28.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/waveshare_rp2040_one.json b/boards/waveshare_rp2040_one.json index 7861407..b287e15 100644 --- a/boards/waveshare_rp2040_one.json +++ b/boards/waveshare_rp2040_one.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/waveshare_rp2040_plus_16mb.json b/boards/waveshare_rp2040_plus_16mb.json index c3d93ad..6663f53 100644 --- a/boards/waveshare_rp2040_plus_16mb.json +++ b/boards/waveshare_rp2040_plus_16mb.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/waveshare_rp2040_plus_4mb.json b/boards/waveshare_rp2040_plus_4mb.json index 8414613..cbdbe1d 100644 --- a/boards/waveshare_rp2040_plus_4mb.json +++ b/boards/waveshare_rp2040_plus_4mb.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/waveshare_rp2040_zero.json b/boards/waveshare_rp2040_zero.json index d04692f..f586915 100644 --- a/boards/waveshare_rp2040_zero.json +++ b/boards/waveshare_rp2040_zero.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/wiznet_5100s_evb_pico.json b/boards/wiznet_5100s_evb_pico.json index f86924a..6ec8008 100644 --- a/boards/wiznet_5100s_evb_pico.json +++ b/boards/wiznet_5100s_evb_pico.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/wiznet_5500_evb_pico.json b/boards/wiznet_5500_evb_pico.json index b633f6d..973f18c 100644 --- a/boards/wiznet_5500_evb_pico.json +++ b/boards/wiznet_5500_evb_pico.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/boards/wiznet_wizfi360_evb_pico.json b/boards/wiznet_wizfi360_evb_pico.json index a911556..1c248d5 100644 --- a/boards/wiznet_wizfi360_evb_pico.json +++ b/boards/wiznet_wizfi360_evb_pico.json @@ -42,6 +42,7 @@ "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", diff --git a/builder/main.py b/builder/main.py index cd26eda..4534fd6 100644 --- a/builder/main.py +++ b/builder/main.py @@ -381,6 +381,28 @@ def AutodetectPicoDisk(target, source, env): env.VerboseAction(AutodetectPicoDisk, "Looking for upload disk..."), env.VerboseAction(UploadUF2ToDisk, "Uploading $SOURCE") ] + +elif upload_protocol.startswith("blackmagic"): + env.Replace( + UPLOADER="$GDB", + UPLOADERFLAGS=[ + "-nx", + "--batch", + "-ex", "target extended-remote $UPLOAD_PORT", + "-ex", "monitor %s_scan" % + ("jtag" if upload_protocol == "blackmagic-jtag" else "swdp"), + "-ex", "attach 1", + "-ex", "load", + "-ex", "compare-sections", + "-ex", "kill" + ], + UPLOADCMD="$UPLOADER $UPLOADERFLAGS $SOURCE" + ) + upload_source = target_elf + upload_actions = [ + env.VerboseAction(env.AutodetectUploadPort, "Looking for BlackMagic port..."), + env.VerboseAction("$UPLOADCMD", "Uploading $SOURCE") + ] elif upload_protocol == "espota": if not env.subst("$UPLOAD_PORT"): sys.stderr.write( diff --git a/platform.py b/platform.py index f66db00..608fe06 100644 --- a/platform.py +++ b/platform.py @@ -86,7 +86,7 @@ def _add_default_debug_tools(self, board): if "tools" not in debug: debug["tools"] = {} - for link in ("cmsis-dap", "jlink", "raspberrypi-swd", "picoprobe"): + for link in ("blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", "picoprobe"): if link not in upload_protocols or link in debug["tools"]: continue From 47763a994873e1dc4e1000ac104a26565a82e2b5 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Sun, 9 Apr 2023 17:37:30 +0200 Subject: [PATCH 114/146] Enable debugging with BMP --- platform.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform.py b/platform.py index 608fe06..642ef77 100644 --- a/platform.py +++ b/platform.py @@ -89,8 +89,12 @@ def _add_default_debug_tools(self, board): for link in ("blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", "picoprobe"): if link not in upload_protocols or link in debug["tools"]: continue - - if link == "jlink": + if link == "blackmagic": + debug["tools"]["blackmagic"] = { + "hwids": [["0x1d50", "0x6018"]], + "require_debug_port": True + } + elif link == "jlink": assert debug.get("jlink_device"), ( "Missed J-Link Device ID for %s" % board.id) debug["tools"][link] = { From bade1b3dfbae02f614debad6638f39b1118e010f Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Fri, 5 May 2023 15:05:32 +0200 Subject: [PATCH 115/146] Add pico-debug support, update board definitions --- boards/0xcb_helios.json | 3 ++- boards/adafruit_feather.json | 3 ++- boards/adafruit_feather_dvi.json | 3 ++- boards/adafruit_feather_rfm.json | 3 ++- boards/adafruit_feather_scorpio.json | 3 ++- boards/adafruit_feather_thinkink.json | 3 ++- boards/adafruit_feather_usb_host.json | 3 ++- boards/adafruit_itsybitsy.json | 3 ++- boards/adafruit_kb2040.json | 3 ++- boards/adafruit_macropad2040.json | 3 ++- boards/adafruit_qtpy.json | 3 ++- boards/adafruit_stemmafriend.json | 3 ++- boards/adafruit_trinkeyrp2040qt.json | 3 ++- boards/arduino_nano_connect.json | 3 ++- boards/bridgetek_idm2040-7a.json | 3 ++- boards/challenger_2040_lora.json | 3 ++- boards/challenger_2040_lte.json | 3 ++- boards/challenger_2040_nfc.json | 3 ++- boards/challenger_2040_sdrtc.json | 3 ++- boards/challenger_2040_subghz.json | 3 ++- boards/challenger_2040_uwb.json | 3 ++- boards/challenger_2040_wifi.json | 3 ++- boards/challenger_2040_wifi_ble.json | 3 ++- boards/challenger_nb_2040_wifi.json | 3 ++- boards/cytron_maker_nano_rp2040.json | 3 ++- boards/cytron_maker_pi_rp2040.json | 3 ++- boards/datanoisetv_picoadk.json | 3 ++- boards/dfrobot_beetle_rp2040.json | 3 ++- boards/electroniccats_huntercat_nfc.json | 3 ++- boards/extelec_rc2040.json | 3 ++- boards/flyboard2040_core.json | 3 ++- boards/generic.json | 3 ++- boards/ilabs_rpico32.json | 3 ++- boards/melopero_cookie_rp2040.json | 3 ++- boards/melopero_shake_rp2040.json | 3 ++- boards/nekosystems_bl2040_mini.json | 3 ++- boards/nullbits_bit_c_pro.json | 3 ++- boards/pimoroni_pga2040.json | 3 ++- boards/rpipico.json | 3 ++- boards/rpipicow.json | 3 ++- ..._mizu.json => seeed_indicator_rp2040.json} | 24 ++++++++++--------- boards/seeed_xiao_rp2040.json | 3 ++- boards/solderparty_rp2040_stamp.json | 3 ++- boards/sparkfun_promicrorp2040.json | 3 ++- boards/sparkfun_thingplusrp2040.json | 3 ++- boards/upesy_rp2040_devkit.json | 3 ++- boards/vccgnd_yd_rp2040.json | 3 ++- boards/viyalab_mizu.json | 3 ++- boards/waveshare_rp2040_lcd_0_96.json | 3 ++- boards/waveshare_rp2040_lcd_1_28.json | 3 ++- boards/waveshare_rp2040_one.json | 3 ++- boards/waveshare_rp2040_plus_16mb.json | 3 ++- boards/waveshare_rp2040_plus_4mb.json | 3 ++- boards/waveshare_rp2040_zero.json | 3 ++- boards/wiznet_5100s_evb_pico.json | 3 ++- boards/wiznet_5500_evb_pico.json | 3 ++- boards/wiznet_wizfi360_evb_pico.json | 3 ++- 57 files changed, 125 insertions(+), 67 deletions(-) rename boards/{degz_mizu.json => seeed_indicator_rp2040.json} (65%) diff --git a/boards/0xcb_helios.json b/boards/0xcb_helios.json index 11d16e3..c3b6a01 100644 --- a/boards/0xcb_helios.json +++ b/boards/0xcb_helios.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_feather.json b/boards/adafruit_feather.json index 8837f89..c699d5b 100644 --- a/boards/adafruit_feather.json +++ b/boards/adafruit_feather.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_feather_dvi.json b/boards/adafruit_feather_dvi.json index f68c823..36bae0a 100644 --- a/boards/adafruit_feather_dvi.json +++ b/boards/adafruit_feather_dvi.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_feather_rfm.json b/boards/adafruit_feather_rfm.json index a7e9bbe..163d896 100644 --- a/boards/adafruit_feather_rfm.json +++ b/boards/adafruit_feather_rfm.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_feather_scorpio.json b/boards/adafruit_feather_scorpio.json index c4ac220..c38f39a 100644 --- a/boards/adafruit_feather_scorpio.json +++ b/boards/adafruit_feather_scorpio.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_feather_thinkink.json b/boards/adafruit_feather_thinkink.json index 8947c7d..a76ee7e 100644 --- a/boards/adafruit_feather_thinkink.json +++ b/boards/adafruit_feather_thinkink.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_feather_usb_host.json b/boards/adafruit_feather_usb_host.json index 5778786..4c017c0 100644 --- a/boards/adafruit_feather_usb_host.json +++ b/boards/adafruit_feather_usb_host.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_itsybitsy.json b/boards/adafruit_itsybitsy.json index b70ad59..acfc7f4 100644 --- a/boards/adafruit_itsybitsy.json +++ b/boards/adafruit_itsybitsy.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_kb2040.json b/boards/adafruit_kb2040.json index 9c013ba..e540e7b 100644 --- a/boards/adafruit_kb2040.json +++ b/boards/adafruit_kb2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_macropad2040.json b/boards/adafruit_macropad2040.json index dc0ec66..b76e3c3 100644 --- a/boards/adafruit_macropad2040.json +++ b/boards/adafruit_macropad2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_qtpy.json b/boards/adafruit_qtpy.json index c2de2b2..d8997c8 100644 --- a/boards/adafruit_qtpy.json +++ b/boards/adafruit_qtpy.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_stemmafriend.json b/boards/adafruit_stemmafriend.json index 2299a53..26fc96c 100644 --- a/boards/adafruit_stemmafriend.json +++ b/boards/adafruit_stemmafriend.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/adafruit_trinkeyrp2040qt.json b/boards/adafruit_trinkeyrp2040qt.json index c4c10b4..f2e1474 100644 --- a/boards/adafruit_trinkeyrp2040qt.json +++ b/boards/adafruit_trinkeyrp2040qt.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/arduino_nano_connect.json b/boards/arduino_nano_connect.json index f06b433..ba183fd 100644 --- a/boards/arduino_nano_connect.json +++ b/boards/arduino_nano_connect.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/bridgetek_idm2040-7a.json b/boards/bridgetek_idm2040-7a.json index 42edf3d..9b73b67 100644 --- a/boards/bridgetek_idm2040-7a.json +++ b/boards/bridgetek_idm2040-7a.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/challenger_2040_lora.json b/boards/challenger_2040_lora.json index 5d56ca5..7a03d90 100644 --- a/boards/challenger_2040_lora.json +++ b/boards/challenger_2040_lora.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/challenger_2040_lte.json b/boards/challenger_2040_lte.json index dd33426..e9d1cce 100644 --- a/boards/challenger_2040_lte.json +++ b/boards/challenger_2040_lte.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/challenger_2040_nfc.json b/boards/challenger_2040_nfc.json index 1eade3d..30887c1 100644 --- a/boards/challenger_2040_nfc.json +++ b/boards/challenger_2040_nfc.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/challenger_2040_sdrtc.json b/boards/challenger_2040_sdrtc.json index 5ba1738..56a2bcd 100644 --- a/boards/challenger_2040_sdrtc.json +++ b/boards/challenger_2040_sdrtc.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/challenger_2040_subghz.json b/boards/challenger_2040_subghz.json index a946eeb..2af3188 100644 --- a/boards/challenger_2040_subghz.json +++ b/boards/challenger_2040_subghz.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/challenger_2040_uwb.json b/boards/challenger_2040_uwb.json index 784224a..ff3713d 100644 --- a/boards/challenger_2040_uwb.json +++ b/boards/challenger_2040_uwb.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/challenger_2040_wifi.json b/boards/challenger_2040_wifi.json index d76961d..410fa47 100644 --- a/boards/challenger_2040_wifi.json +++ b/boards/challenger_2040_wifi.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/challenger_2040_wifi_ble.json b/boards/challenger_2040_wifi_ble.json index 687ded6..79e86ef 100644 --- a/boards/challenger_2040_wifi_ble.json +++ b/boards/challenger_2040_wifi_ble.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/challenger_nb_2040_wifi.json b/boards/challenger_nb_2040_wifi.json index 11595d4..d1cf53c 100644 --- a/boards/challenger_nb_2040_wifi.json +++ b/boards/challenger_nb_2040_wifi.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/cytron_maker_nano_rp2040.json b/boards/cytron_maker_nano_rp2040.json index bce9977..16fc2a6 100644 --- a/boards/cytron_maker_nano_rp2040.json +++ b/boards/cytron_maker_nano_rp2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/cytron_maker_pi_rp2040.json b/boards/cytron_maker_pi_rp2040.json index db57ee5..7ed3a04 100644 --- a/boards/cytron_maker_pi_rp2040.json +++ b/boards/cytron_maker_pi_rp2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/datanoisetv_picoadk.json b/boards/datanoisetv_picoadk.json index a7d0d8f..b9cb8e4 100644 --- a/boards/datanoisetv_picoadk.json +++ b/boards/datanoisetv_picoadk.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/dfrobot_beetle_rp2040.json b/boards/dfrobot_beetle_rp2040.json index a7f879f..dade44e 100644 --- a/boards/dfrobot_beetle_rp2040.json +++ b/boards/dfrobot_beetle_rp2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/electroniccats_huntercat_nfc.json b/boards/electroniccats_huntercat_nfc.json index 00b210c..a72035b 100644 --- a/boards/electroniccats_huntercat_nfc.json +++ b/boards/electroniccats_huntercat_nfc.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/extelec_rc2040.json b/boards/extelec_rc2040.json index d6e348c..07f2a6a 100644 --- a/boards/extelec_rc2040.json +++ b/boards/extelec_rc2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/flyboard2040_core.json b/boards/flyboard2040_core.json index 6f0301c..af8efd8 100644 --- a/boards/flyboard2040_core.json +++ b/boards/flyboard2040_core.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/generic.json b/boards/generic.json index c22a678..95633e3 100644 --- a/boards/generic.json +++ b/boards/generic.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/ilabs_rpico32.json b/boards/ilabs_rpico32.json index 82dfe28..fd57fad 100644 --- a/boards/ilabs_rpico32.json +++ b/boards/ilabs_rpico32.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/melopero_cookie_rp2040.json b/boards/melopero_cookie_rp2040.json index d1980d2..300b27a 100644 --- a/boards/melopero_cookie_rp2040.json +++ b/boards/melopero_cookie_rp2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/melopero_shake_rp2040.json b/boards/melopero_shake_rp2040.json index 0d4eeda..afea254 100644 --- a/boards/melopero_shake_rp2040.json +++ b/boards/melopero_shake_rp2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/nekosystems_bl2040_mini.json b/boards/nekosystems_bl2040_mini.json index 0b203fe..5fdd1c9 100644 --- a/boards/nekosystems_bl2040_mini.json +++ b/boards/nekosystems_bl2040_mini.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/nullbits_bit_c_pro.json b/boards/nullbits_bit_c_pro.json index 420fae3..f63470a 100644 --- a/boards/nullbits_bit_c_pro.json +++ b/boards/nullbits_bit_c_pro.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/pimoroni_pga2040.json b/boards/pimoroni_pga2040.json index 17fc4ab..76a007e 100644 --- a/boards/pimoroni_pga2040.json +++ b/boards/pimoroni_pga2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/rpipico.json b/boards/rpipico.json index d5be483..77a9f7f 100644 --- a/boards/rpipico.json +++ b/boards/rpipico.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/rpipicow.json b/boards/rpipicow.json index 717deda..b7fc47f 100644 --- a/boards/rpipicow.json +++ b/boards/rpipicow.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/degz_mizu.json b/boards/seeed_indicator_rp2040.json similarity index 65% rename from boards/degz_mizu.json rename to boards/seeed_indicator_rp2040.json index a9cb0e2..a18a328 100644 --- a/boards/degz_mizu.json +++ b/boards/seeed_indicator_rp2040.json @@ -2,14 +2,14 @@ "build": { "arduino": { "earlephilhower": { - "boot2_source": "boot2_generic_03h_4_padded_checksum.S", - "usb_vid": "0x2E8A", - "usb_pid": "0x000A" + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2886", + "usb_pid": "0x0050" } }, "core": "earlephilhower", "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_DEGZ_MIZU -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "extra_flags": "-D ARDUINO_SEEED_INDICATOR_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", "f_cpu": "133000000L", "hwids": [ [ @@ -17,12 +17,12 @@ "0x00C0" ], [ - "0x2E8A", - "0x000A" + "0x2886", + "0x0050" ] ], "mcu": "rp2040", - "variant": "degz_mizu" + "variant": "seeed_indicator_rp2040" }, "debug": { "jlink_device": "RP2040_M0_0", @@ -32,23 +32,25 @@ "frameworks": [ "arduino" ], - "name": "Mizu", + "name": "INDICATOR RP2040", "upload": { "maximum_ram_size": 270336, - "maximum_size": 8388608, + "maximum_size": 2097152, "require_upload_port": true, "native_usb": true, "use_1200bps_touch": true, "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", - "vendor": "Degz" + "vendor": "Seeed" } diff --git a/boards/seeed_xiao_rp2040.json b/boards/seeed_xiao_rp2040.json index 7fba246..e248b80 100644 --- a/boards/seeed_xiao_rp2040.json +++ b/boards/seeed_xiao_rp2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/solderparty_rp2040_stamp.json b/boards/solderparty_rp2040_stamp.json index ab9d517..6d96253 100644 --- a/boards/solderparty_rp2040_stamp.json +++ b/boards/solderparty_rp2040_stamp.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/sparkfun_promicrorp2040.json b/boards/sparkfun_promicrorp2040.json index ea50345..ddaca3f 100644 --- a/boards/sparkfun_promicrorp2040.json +++ b/boards/sparkfun_promicrorp2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/sparkfun_thingplusrp2040.json b/boards/sparkfun_thingplusrp2040.json index 2e92ae7..c6863c2 100644 --- a/boards/sparkfun_thingplusrp2040.json +++ b/boards/sparkfun_thingplusrp2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/upesy_rp2040_devkit.json b/boards/upesy_rp2040_devkit.json index 8fdfb93..713216a 100644 --- a/boards/upesy_rp2040_devkit.json +++ b/boards/upesy_rp2040_devkit.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/vccgnd_yd_rp2040.json b/boards/vccgnd_yd_rp2040.json index 7d05b08..5bb7f15 100644 --- a/boards/vccgnd_yd_rp2040.json +++ b/boards/vccgnd_yd_rp2040.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/viyalab_mizu.json b/boards/viyalab_mizu.json index 98cb7df..aac79f3 100644 --- a/boards/viyalab_mizu.json +++ b/boards/viyalab_mizu.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/waveshare_rp2040_lcd_0_96.json b/boards/waveshare_rp2040_lcd_0_96.json index 5d38d0c..1b1a1d8 100644 --- a/boards/waveshare_rp2040_lcd_0_96.json +++ b/boards/waveshare_rp2040_lcd_0_96.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/waveshare_rp2040_lcd_1_28.json b/boards/waveshare_rp2040_lcd_1_28.json index 772eb60..f49c67c 100644 --- a/boards/waveshare_rp2040_lcd_1_28.json +++ b/boards/waveshare_rp2040_lcd_1_28.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/waveshare_rp2040_one.json b/boards/waveshare_rp2040_one.json index b287e15..77e8b87 100644 --- a/boards/waveshare_rp2040_one.json +++ b/boards/waveshare_rp2040_one.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/waveshare_rp2040_plus_16mb.json b/boards/waveshare_rp2040_plus_16mb.json index 6663f53..c041e09 100644 --- a/boards/waveshare_rp2040_plus_16mb.json +++ b/boards/waveshare_rp2040_plus_16mb.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/waveshare_rp2040_plus_4mb.json b/boards/waveshare_rp2040_plus_4mb.json index cbdbe1d..891c9a6 100644 --- a/boards/waveshare_rp2040_plus_4mb.json +++ b/boards/waveshare_rp2040_plus_4mb.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/waveshare_rp2040_zero.json b/boards/waveshare_rp2040_zero.json index f586915..fa159e2 100644 --- a/boards/waveshare_rp2040_zero.json +++ b/boards/waveshare_rp2040_zero.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/wiznet_5100s_evb_pico.json b/boards/wiznet_5100s_evb_pico.json index 6ec8008..30b0b8c 100644 --- a/boards/wiznet_5100s_evb_pico.json +++ b/boards/wiznet_5100s_evb_pico.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/wiznet_5500_evb_pico.json b/boards/wiznet_5500_evb_pico.json index 973f18c..b7ee86a 100644 --- a/boards/wiznet_5500_evb_pico.json +++ b/boards/wiznet_5500_evb_pico.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", diff --git a/boards/wiznet_wizfi360_evb_pico.json b/boards/wiznet_wizfi360_evb_pico.json index 1c248d5..d9da91e 100644 --- a/boards/wiznet_wizfi360_evb_pico.json +++ b/boards/wiznet_wizfi360_evb_pico.json @@ -47,7 +47,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", From 92f7dcb58178125dcb6b3ac25002284ff5b325cc Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Fri, 5 May 2023 16:13:17 +0200 Subject: [PATCH 116/146] Add pico-debug openocd call --- platform.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/platform.py b/platform.py index 642ef77..68475fd 100644 --- a/platform.py +++ b/platform.py @@ -15,7 +15,7 @@ import platform from platformio.public import PlatformBase - +import sys class RaspberrypiPlatform(PlatformBase): @@ -86,7 +86,7 @@ def _add_default_debug_tools(self, board): if "tools" not in debug: debug["tools"] = {} - for link in ("blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", "picoprobe"): + for link in ("blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", "picoprobe", "pico-debug"): if link not in upload_protocols or link in debug["tools"]: continue if link == "blackmagic": @@ -113,6 +113,17 @@ def _add_default_debug_tools(self, board): }, "onboard": link in debug.get("onboard_tools", []) } + elif link == "pico-debug": + debug["tools"][link] = { + "server": { + "executable": "bin/openocd", + "package": "tool-openocd-rp2040-earlephilhower", + "arguments": [ + "-s", "$PACKAGE_DIR/share/openocd/scripts", + "-f", "board/%s.cfg" % link, + ] + } + } else: openocd_target = debug.get("openocd_target") assert openocd_target, ("Missing target configuration for %s" % From 0c33219f53faa035e188925ea1324f472e8b93d2 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Fri, 5 May 2023 17:19:12 +0200 Subject: [PATCH 117/146] Use latest Arduino-Pico (merged pico-debug support), update board defs --- boards/adafruit_feather_can.json | 56 +++++++++++++++++++++++++ boards/adafruit_feather_prop_maker.json | 56 +++++++++++++++++++++++++ platform.json | 2 +- 3 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 boards/adafruit_feather_can.json create mode 100644 boards/adafruit_feather_prop_maker.json diff --git a/boards/adafruit_feather_can.json b/boards/adafruit_feather_can.json new file mode 100644 index 0000000..c6777cb --- /dev/null +++ b/boards/adafruit_feather_can.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239A", + "usb_pid": "0x812F" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_CAN -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x239A", + "0x812F" + ] + ], + "mcu": "rp2040", + "variant": "adafruit_feather_can" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Feather RP2040 CAN", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} diff --git a/boards/adafruit_feather_prop_maker.json b/boards/adafruit_feather_prop_maker.json new file mode 100644 index 0000000..e0f586e --- /dev/null +++ b/boards/adafruit_feather_prop_maker.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239A", + "usb_pid": "0x8131" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_FEATHER_RP2040_PROP_MAKER -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x239A", + "0x8131" + ] + ], + "mcu": "rp2040", + "variant": "adafruit_feather_prop_maker" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Feather RP2040 Prop-Maker", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} diff --git a/platform.json b/platform.json index 3edf744..3e6e700 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#5bf570c27d40cc2fc2b574661491ff4ccf37c2a" + "version": "https://github.com/earlephilhower/arduino-pico.git#e95248a78723f6bfebb3d0ab0834a0dd216ad81a" }, "tool-rp2040tools": { "type": "uploader", From 79e4f615a10d29d87edc9e69bbf28b9f4afc41cc Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Wed, 24 May 2023 14:08:10 +0200 Subject: [PATCH 118/146] Update to Arduino-Pico 3.2.1 https://github.com/earlephilhower/arduino-pico/releases/tag/3.2.1 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 3e6e700..b18015f 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#e95248a78723f6bfebb3d0ab0834a0dd216ad81a" + "version": "https://github.com/earlephilhower/arduino-pico.git#b2b4b2d71d2af4738d9ff5146b3dca74a368770f" }, "tool-rp2040tools": { "type": "uploader", From c0acac7838238326237508581353fd65de815c46 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Thu, 8 Jun 2023 13:26:16 +0200 Subject: [PATCH 119/146] Update to Arduino-Pico 3.2.2 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index b18015f..492eb9d 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#b2b4b2d71d2af4738d9ff5146b3dca74a368770f" + "version": "https://github.com/earlephilhower/arduino-pico.git#7eb176c0b469fa0b1cf018c10cd78e7264e07a7f" }, "tool-rp2040tools": { "type": "uploader", From 02c5ef4a35aeae1112867ff5b3628f7090bd13f6 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 4 Jul 2023 10:26:13 +0200 Subject: [PATCH 120/146] Update to Arduino-Pico 3.3.0 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 492eb9d..11bcf4b 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#7eb176c0b469fa0b1cf018c10cd78e7264e07a7f" + "version": "https://github.com/earlephilhower/arduino-pico.git#20cabe824fadf9f9ef0bc7c69864e516863b6f7c" }, "tool-rp2040tools": { "type": "uploader", From f9e5a07556f5a89b799bd01c377ba2ac342ab5a9 Mon Sep 17 00:00:00 2001 From: max Date: Tue, 4 Jul 2023 10:29:19 +0200 Subject: [PATCH 121/146] Sync new Arduino-Pico boards --- boards/artronshop_rp2_nano.json | 56 ++++++++++++++++ boards/pimoroni_plasma2040.json | 56 ++++++++++++++++ boards/seeed_xiao_rp2040.json | 112 ++++++++++++++++---------------- 3 files changed, 168 insertions(+), 56 deletions(-) create mode 100644 boards/artronshop_rp2_nano.json create mode 100644 boards/pimoroni_plasma2040.json diff --git a/boards/artronshop_rp2_nano.json b/boards/artronshop_rp2_nano.json new file mode 100644 index 0000000..46d082d --- /dev/null +++ b/boards/artronshop_rp2_nano.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x000A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ARTRONSHOP_RP2_NANO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x000A" + ] + ], + "mcu": "rp2040", + "variant": "artronshop_rp2_nano" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2 Nano", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "ArtronShop" +} diff --git a/boards/pimoroni_plasma2040.json b/boards/pimoroni_plasma2040.json new file mode 100644 index 0000000..05a0c81 --- /dev/null +++ b/boards/pimoroni_plasma2040.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x100A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_PIMORONI_PLASMA2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x100A" + ] + ], + "mcu": "rp2040", + "variant": "pimoroni_plasma2040" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Plasma2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Pimoroni" +} diff --git a/boards/seeed_xiao_rp2040.json b/boards/seeed_xiao_rp2040.json index e248b80..1d3fb10 100644 --- a/boards/seeed_xiao_rp2040.json +++ b/boards/seeed_xiao_rp2040.json @@ -1,56 +1,56 @@ -{ - "build": { - "arduino": { - "earlephilhower": { - "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x2E8A", - "usb_pid": "0x000A" - } - }, - "core": "earlephilhower", - "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_SEEED_XIAO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", - "f_cpu": "133000000L", - "hwids": [ - [ - "0x2E8A", - "0x00C0" - ], - [ - "0x2E8A", - "0x000A" - ] - ], - "mcu": "rp2040", - "variant": "seeed_xiao_rp2040" - }, - "debug": { - "jlink_device": "RP2040_M0_0", - "openocd_target": "rp2040.cfg", - "svd_path": "rp2040.svd" - }, - "frameworks": [ - "arduino" - ], - "name": "XIAO RP2040", - "upload": { - "maximum_ram_size": 270336, - "maximum_size": 2097152, - "require_upload_port": true, - "native_usb": true, - "use_1200bps_touch": true, - "wait_for_upload_port": false, - "protocol": "picotool", - "protocols": [ - "blackmagic", - "cmsis-dap", - "jlink", - "raspberrypi-swd", - "picotool", - "picoprobe", - "pico-debug" - ] - }, - "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", - "vendor": "Seeed" -} +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x000A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_SEEED_XIAO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x000A" + ] + ], + "mcu": "rp2040", + "variant": "seeed_xiao_rp2040" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "XIAO RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Seeed" +} From e3446b7526dae45fd4e7e21fea7733d772369c67 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sat, 29 Jul 2023 22:49:36 +0200 Subject: [PATCH 122/146] Update Arduino-Pico to bleeding-edges master (fixes Intellisense issues with newer PIO cores) --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 11bcf4b..4bb3fff 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#20cabe824fadf9f9ef0bc7c69864e516863b6f7c" + "version": "https://github.com/earlephilhower/arduino-pico.git#3cc5ac14ff5ab9fd2d0399c8d4a99c3451c5e818" }, "tool-rp2040tools": { "type": "uploader", From ac45b109c11de65901c559891a89afe2bb165eac Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Sun, 30 Jul 2023 13:47:12 +0200 Subject: [PATCH 123/146] Update board defs --- ...at.json => challenger_2040_wifi6_ble.json} | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) rename boards/{electroniccats_bombercat.json => challenger_2040_wifi6_ble.json} (68%) diff --git a/boards/electroniccats_bombercat.json b/boards/challenger_2040_wifi6_ble.json similarity index 68% rename from boards/electroniccats_bombercat.json rename to boards/challenger_2040_wifi6_ble.json index a8cbd12..ff6843f 100644 --- a/boards/electroniccats_bombercat.json +++ b/boards/challenger_2040_wifi6_ble.json @@ -3,13 +3,13 @@ "arduino": { "earlephilhower": { "boot2_source": "boot2_w25q080_2_padded_checksum.S", - "usb_vid": "0x1209", - "usb_pid": "0x1209" + "usb_vid": "0x2E8A", + "usb_pid": "0x105F" } }, "core": "earlephilhower", "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_ELECTRONICCATS_BOMBERCAT -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "extra_flags": "-D ARDUINO_CHALLENGER_2040_WIFI6_BLE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500 -DWIFIESPAT2", "f_cpu": "133000000L", "hwids": [ [ @@ -17,12 +17,12 @@ "0x00C0" ], [ - "0x1209", - "0x1209" + "0x2E8A", + "0x105F" ] ], "mcu": "rp2040", - "variant": "electroniccats_bombercat" + "variant": "challenger_2040_wifi6_ble" }, "debug": { "jlink_device": "RP2040_M0_0", @@ -32,23 +32,25 @@ "frameworks": [ "arduino" ], - "name": "HunterCat NFC RP2040", + "name": "Challenger 2040 WiFi6/BLE", "upload": { "maximum_ram_size": 270336, - "maximum_size": 2097152, + "maximum_size": 8388608, "require_upload_port": true, "native_usb": true, "use_1200bps_touch": true, "wait_for_upload_port": false, "protocol": "picotool", "protocols": [ + "blackmagic", "cmsis-dap", "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", - "vendor": "ElectronicCats" + "vendor": "iLabs" } From 16d6042a245332e7386d059fd87602a49a3c4d0f Mon Sep 17 00:00:00 2001 From: LinusHeu <118672629+LinusHeu@users.noreply.github.com> Date: Sun, 13 Aug 2023 15:00:52 +0200 Subject: [PATCH 124/146] change default picoprobe speed to 5000 kHz To make it the same as with the Arduino IDE See https://github.com/earlephilhower/arduino-pico/pull/1218 --- builder/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/builder/main.py b/builder/main.py index 4534fd6..10c2b59 100644 --- a/builder/main.py +++ b/builder/main.py @@ -499,9 +499,9 @@ def _jlink_cmd_script(env, source): ] openocd_args.extend( debug_tools.get(upload_protocol).get("server").get("arguments", [])) - # always use a default speed directive of 1000khz or an otherwise configured speed + # always use a default speed directive of 5000khz or an otherwise configured speed # otherwise, flash failures were observed - speed = env.GetProjectOption("debug_speed") or "1000" + speed = env.GetProjectOption("debug_speed") or "5000" openocd_args.extend( ["-c", "adapter speed %s" % speed] ) From 0742fd4f880ec897fa5a63294e3ffedd0aff99ad Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Sun, 3 Sep 2023 18:27:53 +0200 Subject: [PATCH 125/146] Resolve hang of 2nd core after FW upload via debug adapter --- builder/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/builder/main.py b/builder/main.py index 4534fd6..135a550 100644 --- a/builder/main.py +++ b/builder/main.py @@ -508,12 +508,12 @@ def _jlink_cmd_script(env, source): if "uploadfs" in COMMAND_LINE_TARGETS: # filesystem upload. use FS_START. openocd_args.extend([ - "-c", "program {$SOURCE} ${hex(FS_START)} verify reset; shutdown;" + "-c", "program {$SOURCE} ${hex(FS_START)} verify; reset init; resume; shutdown;" ]) else: # normal firmware upload. flash starts at 0x10000000 openocd_args.extend([ - "-c", "program {$SOURCE} %s verify reset; shutdown;" % + "-c", "program {$SOURCE} %s verify; reset init; resume; shutdown;" % board.get("upload.offset_address", "") ]) openocd_args = [ From 5208e8cc74ca3278194d08da3cc6d2eaadeec1ef Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Sun, 10 Sep 2023 12:33:41 +0200 Subject: [PATCH 126/146] Use different reset strategy and delay --- builder/main.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/builder/main.py b/builder/main.py index 135a550..d6665d8 100644 --- a/builder/main.py +++ b/builder/main.py @@ -471,7 +471,8 @@ def _jlink_cmd_script(env, source): commands = [ "h", "loadbin %s, %s" % (source, upload_addr), - "r", + "RSetType 2", + "ResetX 100", "q" ] with open(script_path, "w") as fp: From ac952daba7e1743b280d4c08c3106ebbb5a8647d Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Wed, 13 Sep 2023 21:19:30 +0200 Subject: [PATCH 127/146] Experimental: Bypass PIO registry --- platform.json | 2 +- platform.py | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/platform.json b/platform.json index 4bb3fff..1f0e4c2 100644 --- a/platform.json +++ b/platform.json @@ -35,7 +35,7 @@ "type": "toolchain", "optional": true, "owner": "earlephilhower", - "version": "~5.100300.0" + "version": "https://github.com/maxgerhardt/toolchain-dummy/archive/refs/heads/main.zip" }, "framework-arduino-mbed": { "type": "framework", diff --git a/platform.py b/platform.py index 68475fd..a715aee 100644 --- a/platform.py +++ b/platform.py @@ -15,6 +15,7 @@ import platform from platformio.public import PlatformBase +from platformio import util import sys class RaspberrypiPlatform(PlatformBase): @@ -22,26 +23,66 @@ class RaspberrypiPlatform(PlatformBase): def is_embedded(self): return True + earle_toolchain = { + # Windows + "windows_amd64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-w64-mingw32.arm-none-eabi-d3d2e6b.230911.zip", + "windows_x86": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/i686-w64-mingw32.arm-none-eabi-d3d2e6b.230911.zip", + # No Windows ARM64 or ARM32 builds. + # Linux + "linux_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-linux-gnu.arm-none-eabi-d3d2e6b.230911.tar.gz", + "linux_i686": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/i686-linux-gnu.arm-none-eabi-d3d2e6b.230911.tar.gz", + "linux_aarch64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/aarch64-linux-gnu.arm-none-eabi-d3d2e6b.230911.tar.gz", + "linux_armv7l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/arm-linux-gnueabihf.arm-none-eabi-d3d2e6b.230911.tar.gz", + "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/arm-linux-gnueabihf.arm-none-eabi-d3d2e6b.230911.tar.gz", + # Mac (Intel and ARM use same toolchain) + "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.arm-none-eabi-d3d2e6b.230911.tar.gz", + "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.arm-none-eabi-d3d2e6b.230911.tar.gz" + } + + earle_openocd = { + # Windows + "windows_amd64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-w64-mingw32.openocd-4d87f6dca.230911.zip", + "windows_x86": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/i686-w64-mingw32.openocd-4d87f6dca.230911.zip", + # No Windows ARM64 or ARM32 builds. + # Linux + "linux_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-linux-gnu.openocd-4d87f6dca.230911.tar.gz", + "linux_i686": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/i686-linux-gnu.openocd-4d87f6dca.230911.tar.gz", + "linux_aarch64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/aarch64-linux-gnu.openocd-4d87f6dca.230911.tar.gz", + "linux_armv7l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/arm-linux-gnueabihf.openocd-4d87f6dca.230911.tar.gz", + "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/arm-linux-gnueabihf.openocd-4d87f6dca.230911.tar.gz", + # Mac (Intel and ARM use same tool build) + "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.openocd-4d87f6dca.230911.tar.gz", + "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.openocd-4d87f6dca.230911.tar.gz" + } + def configure_default_packages(self, variables, targets): + print("System type: %s" % (util.get_systype())) # configure arduino core package. # select the right one based on the build.core, disable other one. board = variables.get("board") board_config = self.board_config(board) build_core = variables.get( "board_build.core", board_config.get("build.core", "arduino")) - + # Use the same string identifier as seen in "pio system info" and registry + sys_type = util.get_systype() frameworks = variables.get("pioframework", []) + # Configure OpenOCD package if used + openocd_pkg = "tool-openocd-rp2040-earlephilhower" + if openocd_pkg in self.packages and self.packages[openocd_pkg]["optional"] is False: + self.packages[openocd_pkg]["version"] = RaspberrypiPlatform.earle_openocd[sys_type] if "arduino" in frameworks: if build_core == "arduino": self.frameworks["arduino"]["package"] = "framework-arduino-mbed" self.packages["framework-arduinopico"]["optional"] = True - self.packages["toolchain-rp2040-earlephilhower"]["optional"] = True + self.packages["toolchain-rp2040-earlephilhower"]["optional"] = True self.packages.pop("toolchain-rp2040-earlephilhower", None) elif build_core == "earlephilhower": self.frameworks["arduino"]["package"] = "framework-arduinopico" self.packages["framework-arduino-mbed"]["optional"] = True self.packages.pop("toolchain-gccarmnoneeabi", None) - self.packages["toolchain-rp2040-earlephilhower"]["optional"] = False + self.packages["toolchain-rp2040-earlephilhower"]["optional"] = False + # Configure toolchain download link dynamically + self.packages["toolchain-rp2040-earlephilhower"]["version"] = RaspberrypiPlatform.earle_toolchain[sys_type] else: sys.stderr.write( "Error! Unknown build.core value '%s'. Don't know which Arduino core package to use." % build_core) From b036e8727e9f13b2a9ff4e893970a0097d3f2c32 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Wed, 13 Sep 2023 21:36:11 +0200 Subject: [PATCH 128/146] Update boards and Arduino-Pico core --- boards/adafruit_metro.json | 56 +++++++++++++++++++++++++++ boards/pimoroni_tiny2040.json | 56 +++++++++++++++++++++++++++ boards/redscorp-rp2040-promini.json | 56 +++++++++++++++++++++++++++ boards/silicognition_rp2040_shim.json | 56 +++++++++++++++++++++++++++ platform.json | 2 +- 5 files changed, 225 insertions(+), 1 deletion(-) create mode 100644 boards/adafruit_metro.json create mode 100644 boards/pimoroni_tiny2040.json create mode 100644 boards/redscorp-rp2040-promini.json create mode 100644 boards/silicognition_rp2040_shim.json diff --git a/boards/adafruit_metro.json b/boards/adafruit_metro.json new file mode 100644 index 0000000..e96021d --- /dev/null +++ b/boards/adafruit_metro.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x239A", + "usb_pid": "0x813D" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_ADAFRUIT_METRO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x239A", + "0x813D" + ] + ], + "mcu": "rp2040", + "variant": "adafruit_metro" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Metro RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Adafruit" +} diff --git a/boards/pimoroni_tiny2040.json b/boards/pimoroni_tiny2040.json new file mode 100644 index 0000000..3037cc5 --- /dev/null +++ b/boards/pimoroni_tiny2040.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q64jv_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x100A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_PIMORONI_TINY2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x100A" + ] + ], + "mcu": "rp2040", + "variant": "pimoroni_tiny2040" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Tiny2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Pimoroni" +} diff --git a/boards/redscorp-rp2040-promini.json b/boards/redscorp-rp2040-promini.json new file mode 100644 index 0000000..f1e834d --- /dev/null +++ b/boards/redscorp-rp2040-promini.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2341", + "usb_pid": "0x005F" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_REDSCORP_RP2040_PROMINI -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2341", + "0x005F" + ] + ], + "mcu": "rp2040", + "variant": "redscorp-rp2040-promini" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040-ProMini", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "redscorp" +} diff --git a/boards/silicognition_rp2040_shim.json b/boards/silicognition_rp2040_shim.json new file mode 100644 index 0000000..9e10912 --- /dev/null +++ b/boards/silicognition_rp2040_shim.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x1209", + "usb_pid": "0xF502" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_SILICOGNITION_RP2040_SHIM -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x1209", + "0xF502" + ] + ], + "mcu": "rp2040", + "variant": "silicognition_rp2040_shim" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040-Shim", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 4194304, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Silicognition" +} diff --git a/platform.json b/platform.json index 1f0e4c2..a204faf 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#3cc5ac14ff5ab9fd2d0399c8d4a99c3451c5e818" + "version": "https://github.com/earlephilhower/arduino-pico.git#3c93d14b3327803ee0ce20eadcc46c93e10a0c4f" }, "tool-rp2040tools": { "type": "uploader", From f222d26160ef528917530b8f13d7972d7a859aa1 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Thu, 14 Sep 2023 14:02:21 +0200 Subject: [PATCH 129/146] Update to Arduino-Pico 3.5.0 plus warning fix --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index a204faf..629f59f 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#3c93d14b3327803ee0ce20eadcc46c93e10a0c4f" + "version": "https://github.com/earlephilhower/arduino-pico.git#3950b944748950756fcf89576eefb6f08b7aea09" }, "tool-rp2040tools": { "type": "uploader", From 1bd794d0c5217de68e3e6f18b8f75de0d63b00a2 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Sat, 16 Sep 2023 00:05:38 +0200 Subject: [PATCH 130/146] Fix OpenOCD not installing correct version --- platform.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform.py b/platform.py index a715aee..b21d7aa 100644 --- a/platform.py +++ b/platform.py @@ -56,7 +56,7 @@ def is_embedded(self): } def configure_default_packages(self, variables, targets): - print("System type: %s" % (util.get_systype())) + #print("System type: %s" % (util.get_systype())) # configure arduino core package. # select the right one based on the build.core, disable other one. board = variables.get("board") @@ -68,7 +68,7 @@ def configure_default_packages(self, variables, targets): frameworks = variables.get("pioframework", []) # Configure OpenOCD package if used openocd_pkg = "tool-openocd-rp2040-earlephilhower" - if openocd_pkg in self.packages and self.packages[openocd_pkg]["optional"] is False: + if openocd_pkg in self.packages: self.packages[openocd_pkg]["version"] = RaspberrypiPlatform.earle_openocd[sys_type] if "arduino" in frameworks: if build_core == "arduino": From 612de5399d68b359053f1307ed223d400aea975c Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Sat, 23 Sep 2023 15:46:15 +0200 Subject: [PATCH 131/146] Arduino-Pico 3.6.0 clean --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 629f59f..dfd6b4c 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#3950b944748950756fcf89576eefb6f08b7aea09" + "version": "https://github.com/earlephilhower/arduino-pico.git#41b0686aec4b0655e518e3ef98379131ad3773fa" }, "tool-rp2040tools": { "type": "uploader", From ffb688955f1bbb341a90e22ce6c2b03d7e5ad2fd Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Wed, 27 Sep 2023 18:55:44 +0200 Subject: [PATCH 132/146] Use actually updated toolchain links --- platform.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform.py b/platform.py index b21d7aa..a936446 100644 --- a/platform.py +++ b/platform.py @@ -25,8 +25,8 @@ def is_embedded(self): earle_toolchain = { # Windows - "windows_amd64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-w64-mingw32.arm-none-eabi-d3d2e6b.230911.zip", - "windows_x86": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/i686-w64-mingw32.arm-none-eabi-d3d2e6b.230911.zip", + "windows_amd64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-w64-mingw32.arm-none-eabi-d3d2e6b.230911-v2.zip", + "windows_x86": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/i686-w64-mingw32.arm-none-eabi-d3d2e6b.230911-v2.zip", # No Windows ARM64 or ARM32 builds. # Linux "linux_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-linux-gnu.arm-none-eabi-d3d2e6b.230911.tar.gz", From c9d5ede351bcef2fa583a940b569ffff7c5ab190 Mon Sep 17 00:00:00 2001 From: Dom Date: Wed, 4 Oct 2023 21:08:19 +0200 Subject: [PATCH 133/146] increase rset to 200ms with 100ms I ran into issues, I had to reset manually afterwards --- builder/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/main.py b/builder/main.py index d6665d8..17332c9 100644 --- a/builder/main.py +++ b/builder/main.py @@ -472,7 +472,7 @@ def _jlink_cmd_script(env, source): "h", "loadbin %s, %s" % (source, upload_addr), "RSetType 2", - "ResetX 100", + "ResetX 200", "q" ] with open(script_path, "w") as fp: From 182d833a42f1e476567c46aaaa5d058c8cb6adcf Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Thu, 5 Oct 2023 12:13:12 +0200 Subject: [PATCH 134/146] Reference most up-to-date JLink Software --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index ebef19e..d33a268 100644 --- a/platform.json +++ b/platform.json @@ -64,7 +64,7 @@ "type": "uploader", "optional": true, "owner": "platformio", - "version": "^1.72000.0" + "version": "^1.78811.0" }, "tool-mklittlefs-rp2040-earlephilhower": { "type": "uploader", From 20d9d19a0144756e40b1d8850f24e2e584be081b Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Sun, 3 Dec 2023 16:12:30 +0100 Subject: [PATCH 135/146] Sync boards and framework version --- boards/cytron_maker_uno_rp2040.json | 56 +++++++++++++++++++ boards/degz_suibo.json | 56 +++++++++++++++++++ boards/rakwireless_rak11300.json | 56 +++++++++++++++++++ boards/redscorp_rp2040_eins.json | 56 +++++++++++++++++++ ...mini.json => redscorp_rp2040_promini.json} | 2 +- boards/sea_picro.json | 56 +++++++++++++++++++ platform.json | 2 +- 7 files changed, 282 insertions(+), 2 deletions(-) create mode 100644 boards/cytron_maker_uno_rp2040.json create mode 100644 boards/degz_suibo.json create mode 100644 boards/rakwireless_rak11300.json create mode 100644 boards/redscorp_rp2040_eins.json rename boards/{redscorp-rp2040-promini.json => redscorp_rp2040_promini.json} (96%) create mode 100644 boards/sea_picro.json diff --git a/boards/cytron_maker_uno_rp2040.json b/boards/cytron_maker_uno_rp2040.json new file mode 100644 index 0000000..5c847e6 --- /dev/null +++ b/boards/cytron_maker_uno_rp2040.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x1071" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CYTRON_MAKER_UNO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x1071" + ] + ], + "mcu": "rp2040", + "variant": "cytron_maker_uno_rp2040" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Maker UNO RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "Cytron" +} diff --git a/boards/degz_suibo.json b/boards/degz_suibo.json new file mode 100644 index 0000000..8867618 --- /dev/null +++ b/boards/degz_suibo.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_generic_03h_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0xF00A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_DEGZ_SUIBO_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0xF00A" + ] + ], + "mcu": "rp2040", + "variant": "degz_suibo" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Suibo RP2040", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.degzrobotics.com/suibo", + "vendor": "Degz Robotics" +} diff --git a/boards/rakwireless_rak11300.json b/boards/rakwireless_rak11300.json new file mode 100644 index 0000000..6ae7049 --- /dev/null +++ b/boards/rakwireless_rak11300.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q16jvxq_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x00C0" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_RAKWIRELESS_RAK11300 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x00C0" + ] + ], + "mcu": "rp2040", + "variant": "rakwireless_rak11300" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RAK11300", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 2097152, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://store.rakwireless.com/products/wisduo-lpwan-module-rak11300", + "vendor": "RAKwireless" +} diff --git a/boards/redscorp_rp2040_eins.json b/boards/redscorp_rp2040_eins.json new file mode 100644 index 0000000..ec5cd0f --- /dev/null +++ b/boards/redscorp_rp2040_eins.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2341", + "usb_pid": "0x005F" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_REDSCORP_RP2040_EINS -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2341", + "0x005F" + ] + ], + "mcu": "rp2040", + "variant": "redscorp_rp2040_eins" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "RP2040-Eins", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 16777216, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "redscorp" +} diff --git a/boards/redscorp-rp2040-promini.json b/boards/redscorp_rp2040_promini.json similarity index 96% rename from boards/redscorp-rp2040-promini.json rename to boards/redscorp_rp2040_promini.json index f1e834d..3080a0a 100644 --- a/boards/redscorp-rp2040-promini.json +++ b/boards/redscorp_rp2040_promini.json @@ -22,7 +22,7 @@ ] ], "mcu": "rp2040", - "variant": "redscorp-rp2040-promini" + "variant": "redscorp_rp2040_promini" }, "debug": { "jlink_device": "RP2040_M0_0", diff --git a/boards/sea_picro.json b/boards/sea_picro.json new file mode 100644 index 0000000..6a6a4ab --- /dev/null +++ b/boards/sea_picro.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q64jv_4_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0xF00A" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_SEA_PICRO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0xF00A" + ] + ], + "mcu": "rp2040", + "variant": "sea_picro" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Sea-Picro", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://github.com/joshajohnson/sea-picro", + "vendor": "Generic" +} diff --git a/platform.json b/platform.json index d33a268..6535ccb 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#41b0686aec4b0655e518e3ef98379131ad3773fa" + "version": "https://github.com/earlephilhower/arduino-pico.git#d2461a14ad5aa920e44508d236c2f459e3befbf8" }, "tool-rp2040tools": { "type": "uploader", From 79ebb7d7917e8379001a1b480d6997468710b4cd Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Tue, 5 Dec 2023 10:13:07 +0100 Subject: [PATCH 136/146] Update framework with SPI 16-bit fix --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 6535ccb..20d4f5d 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#d2461a14ad5aa920e44508d236c2f459e3befbf8" + "version": "https://github.com/earlephilhower/arduino-pico.git#c3a3526aada769c800a30e985553f1523be8c413" }, "tool-rp2040tools": { "type": "uploader", From eef7c2908b27788fbcf6b343a71c4a26b5727f47 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Fri, 26 Jan 2024 22:52:16 +0100 Subject: [PATCH 137/146] Update toolchain to 2.2.0 (native Apple ARM), update Arduino-Pico, Update board definitions --- boards/DudesCab.json | 56 ++++++++++++++++++++++ boards/connectivity_2040_lte_wifi_ble.json | 56 ++++++++++++++++++++++ boards/cytron_maker_uno_rp2040.json | 2 +- boards/ilabs_rpico32.json | 2 +- platform.json | 2 +- platform.py | 38 +++++++-------- 6 files changed, 134 insertions(+), 22 deletions(-) create mode 100644 boards/DudesCab.json create mode 100644 boards/connectivity_2040_lte_wifi_ble.json diff --git a/boards/DudesCab.json b/boards/DudesCab.json new file mode 100644 index 0000000..9dc005e --- /dev/null +++ b/boards/DudesCab.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x106F" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_RASPBERRY_PI_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x106F" + ] + ], + "mcu": "rp2040", + "variant": "DudesCab" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "DudesCab", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 4194304, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "L'atelier d'Arnoz" +} diff --git a/boards/connectivity_2040_lte_wifi_ble.json b/boards/connectivity_2040_lte_wifi_ble.json new file mode 100644 index 0000000..3b77363 --- /dev/null +++ b/boards/connectivity_2040_lte_wifi_ble.json @@ -0,0 +1,56 @@ +{ + "build": { + "arduino": { + "earlephilhower": { + "boot2_source": "boot2_w25q080_2_padded_checksum.S", + "usb_vid": "0x2E8A", + "usb_pid": "0x107B" + } + }, + "core": "earlephilhower", + "cpu": "cortex-m0plus", + "extra_flags": "-D ARDUINO_CONNECTIVITY_2040_LTE_WIFI_BLE_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500 -DWIFIESPAT2", + "f_cpu": "133000000L", + "hwids": [ + [ + "0x2E8A", + "0x00C0" + ], + [ + "0x2E8A", + "0x107B" + ] + ], + "mcu": "rp2040", + "variant": "connectivity_2040_lte_wifi_ble" + }, + "debug": { + "jlink_device": "RP2040_M0_0", + "openocd_target": "rp2040.cfg", + "svd_path": "rp2040.svd" + }, + "frameworks": [ + "arduino" + ], + "name": "Connectivity 2040 LTE/WiFi/BLE", + "upload": { + "maximum_ram_size": 270336, + "maximum_size": 8388608, + "require_upload_port": true, + "native_usb": true, + "use_1200bps_touch": true, + "wait_for_upload_port": false, + "protocol": "picotool", + "protocols": [ + "blackmagic", + "cmsis-dap", + "jlink", + "raspberrypi-swd", + "picotool", + "picoprobe", + "pico-debug" + ] + }, + "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", + "vendor": "iLabs" +} diff --git a/boards/cytron_maker_uno_rp2040.json b/boards/cytron_maker_uno_rp2040.json index 5c847e6..9ad56d3 100644 --- a/boards/cytron_maker_uno_rp2040.json +++ b/boards/cytron_maker_uno_rp2040.json @@ -32,7 +32,7 @@ "frameworks": [ "arduino" ], - "name": "Maker UNO RP2040", + "name": "Maker Uno RP2040", "upload": { "maximum_ram_size": 270336, "maximum_size": 2097152, diff --git a/boards/ilabs_rpico32.json b/boards/ilabs_rpico32.json index fd57fad..48d0d90 100644 --- a/boards/ilabs_rpico32.json +++ b/boards/ilabs_rpico32.json @@ -9,7 +9,7 @@ }, "core": "earlephilhower", "cpu": "cortex-m0plus", - "extra_flags": "-D ARDUINO_ILABS_2040_RPICO32_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250", + "extra_flags": "-D ARDUINO_ILABS_2040_RPICO32_RP2040 -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250 -DWIFIESPAT2", "f_cpu": "133000000L", "hwids": [ [ diff --git a/platform.json b/platform.json index 20d4f5d..e147955 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#c3a3526aada769c800a30e985553f1523be8c413" + "version": "https://github.com/earlephilhower/arduino-pico.git#adb23c1cac17192067d71da797a01364d0e725e9" }, "tool-rp2040tools": { "type": "uploader", diff --git a/platform.py b/platform.py index a936446..eab2872 100644 --- a/platform.py +++ b/platform.py @@ -25,34 +25,34 @@ def is_embedded(self): earle_toolchain = { # Windows - "windows_amd64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-w64-mingw32.arm-none-eabi-d3d2e6b.230911-v2.zip", - "windows_x86": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/i686-w64-mingw32.arm-none-eabi-d3d2e6b.230911-v2.zip", + "windows_amd64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-w64-mingw32.arm-none-eabi-d04e724.240125.zip", + "windows_x86": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/i686-w64-mingw32.arm-none-eabi-d04e724.240125.zip", # No Windows ARM64 or ARM32 builds. # Linux - "linux_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-linux-gnu.arm-none-eabi-d3d2e6b.230911.tar.gz", - "linux_i686": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/i686-linux-gnu.arm-none-eabi-d3d2e6b.230911.tar.gz", - "linux_aarch64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/aarch64-linux-gnu.arm-none-eabi-d3d2e6b.230911.tar.gz", - "linux_armv7l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/arm-linux-gnueabihf.arm-none-eabi-d3d2e6b.230911.tar.gz", - "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/arm-linux-gnueabihf.arm-none-eabi-d3d2e6b.230911.tar.gz", - # Mac (Intel and ARM use same toolchain) - "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.arm-none-eabi-d3d2e6b.230911.tar.gz", - "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.arm-none-eabi-d3d2e6b.230911.tar.gz" + "linux_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-linux-gnu.arm-none-eabi-028e019.240125.tar.gz", + "linux_i686": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/i686-linux-gnu.arm-none-eabi-d04e724.240125.tar.gz", + "linux_aarch64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/aarch64-linux-gnu.arm-none-eabi-d04e724.240125.tar.gz", + "linux_armv7l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.arm-none-eabi-d04e724.240125.tar.gz", + "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.arm-none-eabi-d04e724.240125.tar.gz", + # Mac (Intel and ARM use different toolchain) + "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.arm-none-eabi-d04e724.240125.tar.gz", + "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/aarch64-apple-darwin20.4.arm-none-eabi-d04e724.240125.tar.gz" } earle_openocd = { # Windows - "windows_amd64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-w64-mingw32.openocd-4d87f6dca.230911.zip", - "windows_x86": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/i686-w64-mingw32.openocd-4d87f6dca.230911.zip", + "windows_amd64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-w64-mingw32.openocd-4d87f6dca.240125.zip", + "windows_x86": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/i686-w64-mingw32.openocd-4d87f6dca.240125.zip", # No Windows ARM64 or ARM32 builds. # Linux - "linux_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-linux-gnu.openocd-4d87f6dca.230911.tar.gz", - "linux_i686": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/i686-linux-gnu.openocd-4d87f6dca.230911.tar.gz", - "linux_aarch64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/aarch64-linux-gnu.openocd-4d87f6dca.230911.tar.gz", - "linux_armv7l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/arm-linux-gnueabihf.openocd-4d87f6dca.230911.tar.gz", - "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/arm-linux-gnueabihf.openocd-4d87f6dca.230911.tar.gz", + "linux_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-linux-gnu.openocd-4d87f6dca.240125.tar.gz", + "linux_i686": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/i686-linux-gnu.openocd-4d87f6dca.240125.tar.gz", + "linux_aarch64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/aarch64-linux-gnu.openocd-4d87f6dca.240125.tar.gz", + "linux_armv7l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.openocd-4d87f6dca.240125.tar.gz", + "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.openocd-4d87f6dca.240125.tar.gz", # Mac (Intel and ARM use same tool build) - "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.openocd-4d87f6dca.230911.tar.gz", - "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.openocd-4d87f6dca.230911.tar.gz" + "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.openocd-4d87f6dca.240125.tar.gz", + "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/aarch64-apple-darwin20.4.openocd-4d87f6dca.240125.tar.gz" } def configure_default_packages(self, variables, targets): From a025e1a7666f46ecc265262257485a5ede2dbec2 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Sat, 27 Jan 2024 14:26:59 +0100 Subject: [PATCH 138/146] Revert use native MAC ARM binary, compiler crashes on startup --- platform.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/platform.py b/platform.py index eab2872..71328a0 100644 --- a/platform.py +++ b/platform.py @@ -34,9 +34,9 @@ def is_embedded(self): "linux_aarch64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/aarch64-linux-gnu.arm-none-eabi-d04e724.240125.tar.gz", "linux_armv7l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.arm-none-eabi-d04e724.240125.tar.gz", "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.arm-none-eabi-d04e724.240125.tar.gz", - # Mac (Intel and ARM use different toolchain) + # Mac (Intel and ARM the same toolchain for now because of a bug) "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.arm-none-eabi-d04e724.240125.tar.gz", - "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/aarch64-apple-darwin20.4.arm-none-eabi-d04e724.240125.tar.gz" + "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.arm-none-eabi-d04e724.240125.tar.gz" } earle_openocd = { @@ -52,7 +52,7 @@ def is_embedded(self): "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.openocd-4d87f6dca.240125.tar.gz", # Mac (Intel and ARM use same tool build) "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.openocd-4d87f6dca.240125.tar.gz", - "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/aarch64-apple-darwin20.4.openocd-4d87f6dca.240125.tar.gz" + "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.openocd-4d87f6dca.240125.tar.gz" } def configure_default_packages(self, variables, targets): From 55d5d52cf1c12d295dc7cdef6f593af0f14d1e0e Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Sat, 27 Jan 2024 14:43:54 +0100 Subject: [PATCH 139/146] Make ARM M1 use 2.1.0-a toolchain --- platform.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform.py b/platform.py index 71328a0..e4df7de 100644 --- a/platform.py +++ b/platform.py @@ -36,7 +36,7 @@ def is_embedded(self): "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.arm-none-eabi-d04e724.240125.tar.gz", # Mac (Intel and ARM the same toolchain for now because of a bug) "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.arm-none-eabi-d04e724.240125.tar.gz", - "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.arm-none-eabi-d04e724.240125.tar.gz" + "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.arm-none-eabi-d3d2e6b.230911.tar.gz" } earle_openocd = { @@ -52,7 +52,7 @@ def is_embedded(self): "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.openocd-4d87f6dca.240125.tar.gz", # Mac (Intel and ARM use same tool build) "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.openocd-4d87f6dca.240125.tar.gz", - "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.openocd-4d87f6dca.240125.tar.gz" + "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.openocd-4d87f6dca.230911.tar.gz" } def configure_default_packages(self, variables, targets): From 1f63e598ee639fc98cf133fbe2744415d01e60e1 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Sat, 27 Jan 2024 23:37:24 +0100 Subject: [PATCH 140/146] Use fixed ARM M1 toolchain --- platform.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/platform.py b/platform.py index e4df7de..9282dec 100644 --- a/platform.py +++ b/platform.py @@ -34,9 +34,9 @@ def is_embedded(self): "linux_aarch64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/aarch64-linux-gnu.arm-none-eabi-d04e724.240125.tar.gz", "linux_armv7l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.arm-none-eabi-d04e724.240125.tar.gz", "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.arm-none-eabi-d04e724.240125.tar.gz", - # Mac (Intel and ARM the same toolchain for now because of a bug) + # Mac (Intel and ARM are separate) "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.arm-none-eabi-d04e724.240125.tar.gz", - "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.arm-none-eabi-d3d2e6b.230911.tar.gz" + "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/aarch64-apple-darwin20.4.arm-none-eabi-d04e724.240127.tar.gz" } earle_openocd = { @@ -50,9 +50,9 @@ def is_embedded(self): "linux_aarch64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/aarch64-linux-gnu.openocd-4d87f6dca.240125.tar.gz", "linux_armv7l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.openocd-4d87f6dca.240125.tar.gz", "linux_armv6l": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/arm-linux-gnueabihf.openocd-4d87f6dca.240125.tar.gz", - # Mac (Intel and ARM use same tool build) + # Mac (Intel and ARM are separate) "darwin_x86_64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/x86_64-apple-darwin20.4.openocd-4d87f6dca.240125.tar.gz", - "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.1.0-a/x86_64-apple-darwin15.openocd-4d87f6dca.230911.tar.gz" + "darwin_arm64": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/2.2.0/aarch64-apple-darwin20.4.openocd-4d87f6dca.240127.tar.gz" } def configure_default_packages(self, variables, targets): From 60d6ae81fcc73c34b1493ca9e261695e471bc0c2 Mon Sep 17 00:00:00 2001 From: maxgerhardt Date: Fri, 9 Feb 2024 22:41:22 +0100 Subject: [PATCH 141/146] Arduino-Pico update, fixes lwip, SPI, better Ethernet interrupt performance --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index f291d05..2e428d1 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#adb23c1cac17192067d71da797a01364d0e725e9" + "version": "https://github.com/earlephilhower/arduino-pico.git#88ccf0c256dc717ff932adc9e2d84485214bf2e5" }, "tool-rp2040tools": { "type": "uploader", From 1d083309492eeb6014a050d12f9b37722e3bfda6 Mon Sep 17 00:00:00 2001 From: Britannio Date: Thu, 4 Apr 2024 00:17:20 +0100 Subject: [PATCH 142/146] update arduino-pico to Release 3.7.2 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 2e428d1..5634e7a 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#88ccf0c256dc717ff932adc9e2d84485214bf2e5" + "version": "https://github.com/earlephilhower/arduino-pico.git#c670f66140e4188aab4a6f1a92644791a89cb153" }, "tool-rp2040tools": { "type": "uploader", From 38b1c2ff1d69911a659fedec7f211e9be657b9a4 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 29 Apr 2024 18:36:21 +0200 Subject: [PATCH 143/146] Add pico-debug to board definition --- boards/pico.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/boards/pico.json b/boards/pico.json index b956978..711b40b 100644 --- a/boards/pico.json +++ b/boards/pico.json @@ -46,7 +46,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://www.raspberrypi.org/products/raspberry-pi-pico/", From a8930d1d5edbcadd0f3b5ed0b877c6bb911fa414 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 29 Apr 2024 18:36:53 +0200 Subject: [PATCH 144/146] Update nanorp2040connect.json --- boards/nanorp2040connect.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/boards/nanorp2040connect.json b/boards/nanorp2040connect.json index 3122960..1010a06 100644 --- a/boards/nanorp2040connect.json +++ b/boards/nanorp2040connect.json @@ -49,7 +49,8 @@ "jlink", "raspberrypi-swd", "picotool", - "picoprobe" + "picoprobe", + "pico-debug" ] }, "url": "https://blog.arduino.cc/2021/01/20/welcome-raspberry-pi-to-the-world-of-microcontrollers/", From d317b1f48a291d8d13049808bf1d590223035baa Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 29 Apr 2024 18:42:00 +0200 Subject: [PATCH 145/146] Update Arduino-Pico 3.8.0 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 5634e7a..359993a 100644 --- a/platform.json +++ b/platform.json @@ -47,7 +47,7 @@ "type": "framework", "optional": true, "owner": "earlephilhower", - "version": "https://github.com/earlephilhower/arduino-pico.git#c670f66140e4188aab4a6f1a92644791a89cb153" + "version": "https://github.com/earlephilhower/arduino-pico.git#d53d0033fe1870df29714348f166d94118a0f9fc" }, "tool-rp2040tools": { "type": "uploader", From 503933d536b4345e964b2dc5f04761e61edc9ed6 Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt Date: Mon, 29 Apr 2024 18:44:09 +0200 Subject: [PATCH 146/146] Add note for NTFS long paths in main readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f2ee78..20de664 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,8 @@ RP2040 is a low-cost, high-performance microcontroller device with a large on-ch # Usage 1. [Install PlatformIO](https://platformio.org) -2. Create PlatformIO project and configure a platform option in [platformio.ini](https://docs.platformio.org/page/projectconf.html) file: +2. **Enable Win32 NTFS Long Paths** if on Windows. Otherwise, the installation of the package files for Arduino-Pico **will** fail. See https://arduino-pico.readthedocs.io/en/latest/platformio.html#important-steps-for-windows-users-before-installing. +3. Create PlatformIO project and configure a platform option in [platformio.ini](https://docs.platformio.org/page/projectconf.html) file: ## Stable version