From 539e708a3180ee58d228b1d4a273427c30cd6eb6 Mon Sep 17 00:00:00 2001 From: epsilonrt Date: Mon, 8 Dec 2025 12:06:44 +0100 Subject: [PATCH 1/3] feat(board): add support for Waveshare ESP32-C6 Zero --- boards.txt | 165 ++++++++++++++++++ .../waveshare_esp32_c6_zero/pins_arduino.h | 112 ++++++++++++ 2 files changed, 277 insertions(+) create mode 100644 variants/waveshare_esp32_c6_zero/pins_arduino.h diff --git a/boards.txt b/boards.txt index 77a0f6f5d4a..5f34a9ec9c6 100644 --- a/boards.txt +++ b/boards.txt @@ -44150,6 +44150,171 @@ waveshare_esp32s3_touch_lcd_128.menu.EraseFlash.all.upload.erase_cmd=-e ############################################################## +waveshare_esp32_c6_zero.name=Waveshare ESP32-C6 Zero + +waveshare_esp32_c6_zero.bootloader.tool=esptool_py +waveshare_esp32_c6_zero.bootloader.tool.default=esptool_py + +waveshare_esp32_c6_zero.upload.tool=esptool_py +waveshare_esp32_c6_zero.upload.tool.default=esptool_py +waveshare_esp32_c6_zero.upload.tool.network=esp_ota + +waveshare_esp32_c6_zero.upload.maximum_size=1310720 +waveshare_esp32_c6_zero.upload.maximum_data_size=327680 +waveshare_esp32_c6_zero.upload.flags= +waveshare_esp32_c6_zero.upload.extra_flags= +waveshare_esp32_c6_zero.upload.use_1200bps_touch=false +waveshare_esp32_c6_zero.upload.wait_for_upload_port=false + +waveshare_esp32_c6_zero.serial.disableDTR=false +waveshare_esp32_c6_zero.serial.disableRTS=false + +waveshare_esp32_c6_zero.build.tarch=riscv32 +waveshare_esp32_c6_zero.build.target=esp +waveshare_esp32_c6_zero.build.mcu=esp32c6 +waveshare_esp32_c6_zero.build.core=esp32 +waveshare_esp32_c6_zero.build.variant=waveshare_esp32_c6_zero +waveshare_esp32_c6_zero.build.board=WAVESHARE_ESP32_C6_ZERO +waveshare_esp32_c6_zero.build.bootloader_addr=0x0 + +waveshare_esp32_c6_zero.build.cdc_on_boot=0 +waveshare_esp32_c6_zero.build.f_cpu=160000000L +waveshare_esp32_c6_zero.build.flash_size=4MB +waveshare_esp32_c6_zero.build.flash_freq=80m +waveshare_esp32_c6_zero.build.flash_mode=qio +waveshare_esp32_c6_zero.build.boot=qio +waveshare_esp32_c6_zero.build.partitions=default +waveshare_esp32_c6_zero.build.defines= + +## IDE 2.0 Seems to not update the value +waveshare_esp32_c6_zero.menu.JTAGAdapter.default=Disabled +waveshare_esp32_c6_zero.menu.JTAGAdapter.default.build.copy_jtag_files=0 +waveshare_esp32_c6_zero.menu.JTAGAdapter.builtin=Integrated USB JTAG +waveshare_esp32_c6_zero.menu.JTAGAdapter.builtin.build.openocdscript=esp32c6-builtin.cfg +waveshare_esp32_c6_zero.menu.JTAGAdapter.builtin.build.copy_jtag_files=1 +waveshare_esp32_c6_zero.menu.JTAGAdapter.external=FTDI Adapter +waveshare_esp32_c6_zero.menu.JTAGAdapter.external.build.openocdscript=esp32c6-ftdi.cfg +waveshare_esp32_c6_zero.menu.JTAGAdapter.external.build.copy_jtag_files=1 +waveshare_esp32_c6_zero.menu.JTAGAdapter.bridge=ESP USB Bridge +waveshare_esp32_c6_zero.menu.JTAGAdapter.bridge.build.openocdscript=esp32c6-bridge.cfg +waveshare_esp32_c6_zero.menu.JTAGAdapter.bridge.build.copy_jtag_files=1 + +waveshare_esp32_c6_zero.menu.CDCOnBoot.default=Disabled +waveshare_esp32_c6_zero.menu.CDCOnBoot.default.build.cdc_on_boot=0 +waveshare_esp32_c6_zero.menu.CDCOnBoot.cdc=Enabled +waveshare_esp32_c6_zero.menu.CDCOnBoot.cdc.build.cdc_on_boot=1 + +waveshare_esp32_c6_zero.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) +waveshare_esp32_c6_zero.menu.PartitionScheme.default.build.partitions=default +waveshare_esp32_c6_zero.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) +waveshare_esp32_c6_zero.menu.PartitionScheme.defaultffat.build.partitions=default_ffat +waveshare_esp32_c6_zero.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) +waveshare_esp32_c6_zero.menu.PartitionScheme.minimal.build.partitions=minimal +waveshare_esp32_c6_zero.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) +waveshare_esp32_c6_zero.menu.PartitionScheme.no_ota.build.partitions=no_ota +waveshare_esp32_c6_zero.menu.PartitionScheme.no_ota.upload.maximum_size=2097152 +waveshare_esp32_c6_zero.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS) +waveshare_esp32_c6_zero.menu.PartitionScheme.noota_3g.build.partitions=noota_3g +waveshare_esp32_c6_zero.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576 +waveshare_esp32_c6_zero.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS) +waveshare_esp32_c6_zero.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat +waveshare_esp32_c6_zero.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152 +waveshare_esp32_c6_zero.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS) +waveshare_esp32_c6_zero.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat +waveshare_esp32_c6_zero.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576 +waveshare_esp32_c6_zero.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS) +waveshare_esp32_c6_zero.menu.PartitionScheme.huge_app.build.partitions=huge_app +waveshare_esp32_c6_zero.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 +waveshare_esp32_c6_zero.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) +waveshare_esp32_c6_zero.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs +waveshare_esp32_c6_zero.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 +waveshare_esp32_c6_zero.menu.PartitionScheme.rainmaker=RainMaker 4MB +waveshare_esp32_c6_zero.menu.PartitionScheme.rainmaker.build.partitions=rainmaker +waveshare_esp32_c6_zero.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080 +waveshare_esp32_c6_zero.menu.PartitionScheme.rainmaker_4MB=RainMaker 4MB No OTA +waveshare_esp32_c6_zero.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB_no_ota +waveshare_esp32_c6_zero.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656 +waveshare_esp32_c6_zero.menu.PartitionScheme.zigbee=Zigbee 4MB with spiffs +waveshare_esp32_c6_zero.menu.PartitionScheme.zigbee.build.partitions=zigbee +waveshare_esp32_c6_zero.menu.PartitionScheme.zigbee.upload.maximum_size=1310720 +waveshare_esp32_c6_zero.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs +waveshare_esp32_c6_zero.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr +waveshare_esp32_c6_zero.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720 +waveshare_esp32_c6_zero.menu.PartitionScheme.custom=Custom +waveshare_esp32_c6_zero.menu.PartitionScheme.custom.build.partitions= +waveshare_esp32_c6_zero.menu.PartitionScheme.custom.upload.maximum_size=4194304 + +waveshare_esp32_c6_zero.menu.CPUFreq.160=160MHz (WiFi) +waveshare_esp32_c6_zero.menu.CPUFreq.160.build.f_cpu=160000000L +waveshare_esp32_c6_zero.menu.CPUFreq.80=80MHz (WiFi) +waveshare_esp32_c6_zero.menu.CPUFreq.80.build.f_cpu=80000000L +waveshare_esp32_c6_zero.menu.CPUFreq.40=40MHz +waveshare_esp32_c6_zero.menu.CPUFreq.40.build.f_cpu=40000000L +waveshare_esp32_c6_zero.menu.CPUFreq.20=20MHz +waveshare_esp32_c6_zero.menu.CPUFreq.20.build.f_cpu=20000000L +waveshare_esp32_c6_zero.menu.CPUFreq.10=10MHz +waveshare_esp32_c6_zero.menu.CPUFreq.10.build.f_cpu=10000000L + +waveshare_esp32_c6_zero.menu.FlashMode.qio=QIO +waveshare_esp32_c6_zero.menu.FlashMode.qio.build.flash_mode=dio +waveshare_esp32_c6_zero.menu.FlashMode.qio.build.boot=qio +waveshare_esp32_c6_zero.menu.FlashMode.dio=DIO +waveshare_esp32_c6_zero.menu.FlashMode.dio.build.flash_mode=dio +waveshare_esp32_c6_zero.menu.FlashMode.dio.build.boot=dio + +waveshare_esp32_c6_zero.menu.FlashFreq.80=80MHz +waveshare_esp32_c6_zero.menu.FlashFreq.80.build.flash_freq=80m +waveshare_esp32_c6_zero.menu.FlashFreq.40=40MHz +waveshare_esp32_c6_zero.menu.FlashFreq.40.build.flash_freq=40m + +waveshare_esp32_c6_zero.menu.FlashSize.4M=4MB (32Mb) +waveshare_esp32_c6_zero.menu.FlashSize.4M.build.flash_size=4MB + +waveshare_esp32_c6_zero.menu.UploadSpeed.921600=921600 +waveshare_esp32_c6_zero.menu.UploadSpeed.921600.upload.speed=921600 +waveshare_esp32_c6_zero.menu.UploadSpeed.115200=115200 +waveshare_esp32_c6_zero.menu.UploadSpeed.115200.upload.speed=115200 +waveshare_esp32_c6_zero.menu.UploadSpeed.256000.windows=256000 +waveshare_esp32_c6_zero.menu.UploadSpeed.256000.upload.speed=256000 +waveshare_esp32_c6_zero.menu.UploadSpeed.230400.windows.upload.speed=256000 +waveshare_esp32_c6_zero.menu.UploadSpeed.230400=230400 +waveshare_esp32_c6_zero.menu.UploadSpeed.230400.upload.speed=230400 +waveshare_esp32_c6_zero.menu.UploadSpeed.460800.linux=460800 +waveshare_esp32_c6_zero.menu.UploadSpeed.460800.macosx=460800 +waveshare_esp32_c6_zero.menu.UploadSpeed.460800.upload.speed=460800 +waveshare_esp32_c6_zero.menu.UploadSpeed.512000.windows=512000 +waveshare_esp32_c6_zero.menu.UploadSpeed.512000.upload.speed=512000 + +waveshare_esp32_c6_zero.menu.DebugLevel.none=None +waveshare_esp32_c6_zero.menu.DebugLevel.none.build.code_debug=0 +waveshare_esp32_c6_zero.menu.DebugLevel.error=Error +waveshare_esp32_c6_zero.menu.DebugLevel.error.build.code_debug=1 +waveshare_esp32_c6_zero.menu.DebugLevel.warn=Warn +waveshare_esp32_c6_zero.menu.DebugLevel.warn.build.code_debug=2 +waveshare_esp32_c6_zero.menu.DebugLevel.info=Info +waveshare_esp32_c6_zero.menu.DebugLevel.info.build.code_debug=3 +waveshare_esp32_c6_zero.menu.DebugLevel.debug=Debug +waveshare_esp32_c6_zero.menu.DebugLevel.debug.build.code_debug=4 +waveshare_esp32_c6_zero.menu.DebugLevel.verbose=Verbose +waveshare_esp32_c6_zero.menu.DebugLevel.verbose.build.code_debug=5 + +waveshare_esp32_c6_zero.menu.EraseFlash.none=Disabled +waveshare_esp32_c6_zero.menu.EraseFlash.none.upload.erase_cmd= +waveshare_esp32_c6_zero.menu.EraseFlash.all=Enabled +waveshare_esp32_c6_zero.menu.EraseFlash.all.upload.erase_cmd=-e + +waveshare_esp32_c6_zero.menu.ZigbeeMode.default=Disabled +waveshare_esp32_c6_zero.menu.ZigbeeMode.default.build.zigbee_mode= +waveshare_esp32_c6_zero.menu.ZigbeeMode.default.build.zigbee_libs= +waveshare_esp32_c6_zero.menu.ZigbeeMode.ed=Zigbee ED (end device) +waveshare_esp32_c6_zero.menu.ZigbeeMode.ed.build.zigbee_mode=-DZIGBEE_MODE_ED +waveshare_esp32_c6_zero.menu.ZigbeeMode.ed.build.zigbee_libs=-lesp_zb_api.ed -lzboss_stack.ed -lzboss_port.native +waveshare_esp32_c6_zero.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator/router) +waveshare_esp32_c6_zero.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR +waveshare_esp32_c6_zero.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzboss_stack.zczr -lzboss_port.native + +############################################################## + weact_studio_esp32c3.name=WeAct Studio ESP32C3 weact_studio_esp32c3.upload.tool=esptool_py diff --git a/variants/waveshare_esp32_c6_zero/pins_arduino.h b/variants/waveshare_esp32_c6_zero/pins_arduino.h new file mode 100644 index 00000000000..b0be1dbe043 --- /dev/null +++ b/variants/waveshare_esp32_c6_zero/pins_arduino.h @@ -0,0 +1,112 @@ +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include +#include "soc/soc_caps.h" +/* + Arduino Pin Definitions for Waveshare ESP32-C6-Zero + +----------------------------------------------------------------+ + | | | | # | USB | # | | | | + |:---:|:-------:|:--------:|:--:|:---:|:--:|:------:|:----:|:---:| + | | | 5V | 1 | TOP | 18 | GPIO16 | TX | D16 | + | | | GND | 2 | TOP | 17 | GPIO17 | RX | D17 | + | | | 3V3(OUT) | 3 | TOP | 16 | GPIO14 | SDA | D12 | + | D0 | A0 | GPIO0 | 4 | TOP | 15 | GPIO15 | SCL | D11 | + | D1 | A1 | GPIO1 | 5 | TOP | 14 | GPIO18 | SS | D10 | + | D2 | A2 | GPIO2 | 6 | TOP | 13 | GPIO19 | MOSI | D9 | + | D3 | A3 | GPIO3 | 7 | TOP | 12 | GPIO20 | MISO | D8 | + | D4 | A4 | GPIO4 | 8 | TOP | 11 | GPIO21 | SCK | D7 | + | D5 | A5 | GPIO5 | 9 | TOP | 10 | GPIO22 | | D6 | + +----------------------------------------------------------------+ + + +----------------------------------------------------------------+ + | | | | # | USB | # | | | | + |:---:|:-------:|:--------:|:--:|:---:|:--:|:------:|:----:|:---:| + | | | | | BOT | | | | | + | | | | | BOT | | | | | + | D21 | | GPIO13 | 19 | BOT | | | | | + | D20 | | GPIO12 | 20 | BOT | | | | | + | D19 | | GPIO23 | 21 | BOT | | | | | + | D18 | BOOT | GPIO9 | 22 | BOT | | | | | + | D13 | RGB_LED | GPIO8 | 23 | BOT | | | | | + | D15 | | GPIO7 | 24 | BOT | | | | | + | D14 | A6 | GPIO6 | 25 | BOT | | | | | + +----------------------------------------------------------------+ +*/ +// The built-in RGB LED is connected to this pin +static const uint8_t PIN_RGB_LED = 8; +#define PIN_RGB_LED PIN_RGB_LED // allow testing #ifdef PIN_RGB_LED + +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +// but also used in new Arduino API rgbLedWrite() +static const uint8_t RGB_BUILTIN = SOC_GPIO_PIN_COUNT + PIN_RGB_LED; +#define RGB_BUILTIN RGB_BUILTIN // allow testing #ifdef RGB_BUILTIN + +// Define default brightness for the built-in RGB LED +#define RGB_BRIGHTNESS 32 // default brightness level (0-255) + +// Define the color order for the built-in RGB LED +// Possible values: +// LED_COLOR_ORDER_RGB +// LED_COLOR_ORDER_BGR +// LED_COLOR_ORDER_BRG +// LED_COLOR_ORDER_RBG +// LED_COLOR_ORDER_GBR +// LED_COLOR_ORDER_GRB +#define RGB_BUILTIN_LED_COLOR_ORDER LED_COLOR_ORDER_RGB // default WS2812B color order + +// Define the built-in as LED pin (RGB LED) to use with digitalWrite() +static const uint8_t LED_BUILTIN = RGB_BUILTIN; +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN + +static const uint8_t TX = 16; +static const uint8_t RX = 17; + +static const uint8_t SDA = 14; +static const uint8_t SCL = 15; + +static const uint8_t SS = 18; +static const uint8_t MOSI = 19; +static const uint8_t MISO = 20; +static const uint8_t SCK = 21; + +static const uint8_t A0 = 0; +static const uint8_t A1 = 1; +static const uint8_t A2 = 2; +static const uint8_t A3 = 3; +static const uint8_t A4 = 4; +static const uint8_t A5 = 5; +static const uint8_t A6 = 6; + +static const uint8_t D0 = 0; +static const uint8_t D1 = 1; +static const uint8_t D2 = 2; +static const uint8_t D3 = 3; +static const uint8_t D4 = 4; +static const uint8_t D5 = 5; +static const uint8_t D6 = 22; +static const uint8_t D7 = 21; +static const uint8_t D8 = 20; +static const uint8_t D9 = 19; +static const uint8_t D10 = 18; +static const uint8_t D11 = 15; +static const uint8_t D12 = 14; +static const uint8_t D13 = 8; +static const uint8_t D14 = 6; +static const uint8_t D15 = 7; +static const uint8_t D16 = 16; +static const uint8_t D17 = 17; +static const uint8_t D18 = 9; +static const uint8_t D19 = 23; +static const uint8_t D20 = 12; +static const uint8_t D21 = 13; + +// LP I2C Pins are fixed on ESP32-C6 +#define WIRE1_PIN_DEFINED +static const uint8_t SDA1 = 6; +static const uint8_t SCL1 = 7; + +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define BUILTIN_RGB RGB_BUILTIN // backward compatibility + +#endif /* Pins_Arduino_h */ From 188ed4bc2dd46b8dad77e49230918ce0c35651a3 Mon Sep 17 00:00:00 2001 From: epsilonrt Date: Mon, 8 Dec 2025 13:16:23 +0100 Subject: [PATCH 2/3] Update variants/waveshare_esp32_c6_zero/pins_arduino.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com> --- variants/waveshare_esp32_c6_zero/pins_arduino.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/variants/waveshare_esp32_c6_zero/pins_arduino.h b/variants/waveshare_esp32_c6_zero/pins_arduino.h index b0be1dbe043..550f76444c2 100644 --- a/variants/waveshare_esp32_c6_zero/pins_arduino.h +++ b/variants/waveshare_esp32_c6_zero/pins_arduino.h @@ -46,13 +46,6 @@ static const uint8_t RGB_BUILTIN = SOC_GPIO_PIN_COUNT + PIN_RGB_LED; #define RGB_BRIGHTNESS 32 // default brightness level (0-255) // Define the color order for the built-in RGB LED -// Possible values: -// LED_COLOR_ORDER_RGB -// LED_COLOR_ORDER_BGR -// LED_COLOR_ORDER_BRG -// LED_COLOR_ORDER_RBG -// LED_COLOR_ORDER_GBR -// LED_COLOR_ORDER_GRB #define RGB_BUILTIN_LED_COLOR_ORDER LED_COLOR_ORDER_RGB // default WS2812B color order // Define the built-in as LED pin (RGB LED) to use with digitalWrite() From da40e0f393b8d3a99278b425a955d463c9d09381 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 12:32:30 +0000 Subject: [PATCH 3/3] ci(pre-commit): Apply automatic fixes --- .../waveshare_esp32_c6_zero/pins_arduino.h | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/variants/waveshare_esp32_c6_zero/pins_arduino.h b/variants/waveshare_esp32_c6_zero/pins_arduino.h index 550f76444c2..4dd10b8d2db 100644 --- a/variants/waveshare_esp32_c6_zero/pins_arduino.h +++ b/variants/waveshare_esp32_c6_zero/pins_arduino.h @@ -35,7 +35,7 @@ */ // The built-in RGB LED is connected to this pin static const uint8_t PIN_RGB_LED = 8; -#define PIN_RGB_LED PIN_RGB_LED // allow testing #ifdef PIN_RGB_LED +#define PIN_RGB_LED PIN_RGB_LED // allow testing #ifdef PIN_RGB_LED // BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino // but also used in new Arduino API rgbLedWrite() @@ -43,7 +43,7 @@ static const uint8_t RGB_BUILTIN = SOC_GPIO_PIN_COUNT + PIN_RGB_LED; #define RGB_BUILTIN RGB_BUILTIN // allow testing #ifdef RGB_BUILTIN // Define default brightness for the built-in RGB LED -#define RGB_BRIGHTNESS 32 // default brightness level (0-255) +#define RGB_BRIGHTNESS 32 // default brightness level (0-255) // Define the color order for the built-in RGB LED #define RGB_BUILTIN_LED_COLOR_ORDER LED_COLOR_ORDER_RGB // default WS2812B color order @@ -75,20 +75,20 @@ static const uint8_t D0 = 0; static const uint8_t D1 = 1; static const uint8_t D2 = 2; static const uint8_t D3 = 3; -static const uint8_t D4 = 4; -static const uint8_t D5 = 5; +static const uint8_t D4 = 4; +static const uint8_t D5 = 5; static const uint8_t D6 = 22; static const uint8_t D7 = 21; -static const uint8_t D8 = 20; +static const uint8_t D8 = 20; static const uint8_t D9 = 19; static const uint8_t D10 = 18; -static const uint8_t D11 = 15; -static const uint8_t D12 = 14; -static const uint8_t D13 = 8; -static const uint8_t D14 = 6; +static const uint8_t D11 = 15; +static const uint8_t D12 = 14; +static const uint8_t D13 = 8; +static const uint8_t D14 = 6; static const uint8_t D15 = 7; -static const uint8_t D16 = 16; -static const uint8_t D17 = 17; +static const uint8_t D16 = 16; +static const uint8_t D17 = 17; static const uint8_t D18 = 9; static const uint8_t D19 = 23; static const uint8_t D20 = 12;