Skip to content

Commit 6bae831

Browse files
committed
[RP2XXX] build is ready for Pico 2W (RP2350+CY43439)
1 parent b673cc5 commit 6bae831

File tree

6 files changed

+46
-25
lines changed

6 files changed

+46
-25
lines changed

software/firmware/source/SkyView/Platform_RP2040.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,11 @@ extern "C"
4444
}
4545
#endif /* ARDUINO_ARCH_MBED */
4646

47-
#if !defined(ARDUINO_RASPBERRY_PI_PICO_2)
47+
#if !defined(ARDUINO_RASPBERRY_PI_PICO_2) && \
48+
!defined(ARDUINO_RASPBERRY_PI_PICO_2W)
4849
#include <pico_sleep.h>
4950
#include <pico_rosc.h>
50-
#endif /* ARDUINO_RASPBERRY_PI_PICO_2 */
51+
#endif /* ARDUINO_RASPBERRY_PI_PICO_2 or 2W */
5152

5253
#if defined(USE_TINYUSB)
5354
#if defined(USE_USB_HOST)
@@ -134,10 +135,10 @@ static union {
134135
#endif /* USE_EXT_I2S_DAC */
135136
#endif /* EXCLUDE_AUDIO */
136137

137-
#if defined(ARDUINO_RASPBERRY_PI_PICO_W)
138+
#if defined(ARDUINO_RASPBERRY_PI_PICO_W) || defined(ARDUINO_RASPBERRY_PI_PICO_2W)
138139
#include <pico/cyw43_arch.h>
139140
#include <boards/pico_w.h>
140-
#endif /* ARDUINO_RASPBERRY_PI_PICO_W */
141+
#endif /* ARDUINO_RASPBERRY_PI_PICO_W or 2W */
141142

142143
Adafruit_INA219 ina219(INA219_ADDRESS_ALT);
143144

@@ -527,7 +528,8 @@ static void RP2040_fini()
527528
USBDevice.detach();
528529
#endif /* USE_TINYUSB */
529530

530-
#if !defined(ARDUINO_RASPBERRY_PI_PICO_2)
531+
#if !defined(ARDUINO_RASPBERRY_PI_PICO_2) && \
532+
!defined(ARDUINO_RASPBERRY_PI_PICO_2W)
531533
sleep_run_from_xosc();
532534

533535
#if SOC_GPIO_PIN_KEY1 != SOC_UNUSED_PIN
@@ -545,7 +547,7 @@ static void RP2040_fini()
545547

546548
// back from dormant state
547549
rosc_enable();
548-
#endif /* ARDUINO_RASPBERRY_PI_PICO_2 */
550+
#endif /* ARDUINO_RASPBERRY_PI_PICO_2 or 2W */
549551

550552
#if PICO_SDK_VERSION_MAJOR < 2
551553
clocks_init();

software/firmware/source/SkyView/Platform_RP2040.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#ifndef PLATFORM_RP2040_H
2121
#define PLATFORM_RP2040_H
2222

23-
#if defined(ARDUINO_RASPBERRY_PI_PICO_W)
23+
#if defined(ARDUINO_RASPBERRY_PI_PICO_W) || defined(ARDUINO_RASPBERRY_PI_PICO_2W)
2424
#include <WiFi.h>
2525
#include <WiFiClient.h>
2626
#include <WebServer.h>
@@ -34,7 +34,7 @@ extern WebServer server;
3434
#include <Arduino.h>
3535
#define EXCLUDE_WIFI
3636
#define EXCLUDE_BLUETOOTH
37-
#endif /* ARDUINO_RASPBERRY_PI_PICO_W */
37+
#endif /* ARDUINO_RASPBERRY_PI_PICO_W or 2W */
3838

3939
/* Maximum of tracked flying objects is now SoC-specific constant */
4040
#define MAX_TRACKING_OBJECTS 8

software/firmware/source/SkyWatch/Platform_RP2040.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,10 @@ extern "C"
4545
}
4646
#endif /* ARDUINO_ARCH_MBED */
4747

48-
#if !defined(ARDUINO_RASPBERRY_PI_PICO_2)
48+
#if !defined(ARDUINO_RASPBERRY_PI_PICO_2) && \
49+
!defined(ARDUINO_RASPBERRY_PI_PICO_2W)
4950
#include <pico_sleep.h>
50-
#endif /* ARDUINO_RASPBERRY_PI_PICO_2 */
51+
#endif /* ARDUINO_RASPBERRY_PI_PICO_2 or 2W */
5152

5253
#if defined(USE_TINYUSB)
5354
#if defined(USE_USB_HOST)

software/firmware/source/SkyWatch/Platform_RP2040.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#ifndef PLATFORM_RP2040_H
2121
#define PLATFORM_RP2040_H
2222

23-
#if defined(ARDUINO_RASPBERRY_PI_PICO_W)
23+
#if defined(ARDUINO_RASPBERRY_PI_PICO_W) || defined(ARDUINO_RASPBERRY_PI_PICO_2W)
2424
#include <WiFi.h>
2525
#include <WiFiClient.h>
2626
#include <WebServer.h>
@@ -34,7 +34,7 @@ extern WebServer server;
3434
#include <Arduino.h>
3535
#define EXCLUDE_WIFI
3636
#define EXCLUDE_BLUETOOTH
37-
#endif /* ARDUINO_RASPBERRY_PI_PICO_W */
37+
#endif /* ARDUINO_RASPBERRY_PI_PICO_W or 2W */
3838

3939
/* Maximum of tracked flying objects is now SoC-specific constant */
4040
#define MAX_TRACKING_OBJECTS 9

software/firmware/source/SoftRF/src/platform/RP2XXX.cpp

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,10 @@ extern "C" {
4646
#include "pico/binary_info.h"
4747
}
4848

49-
#if !defined(ARDUINO_RASPBERRY_PI_PICO_2)
49+
#if !defined(ARDUINO_RASPBERRY_PI_PICO_2) && \
50+
!defined(ARDUINO_RASPBERRY_PI_PICO_2W)
5051
#include <pico_sleep.h>
51-
#endif /* ARDUINO_RASPBERRY_PI_PICO_2 */
52+
#endif /* ARDUINO_RASPBERRY_PI_PICO_2 or 2W */
5253
#else
5354
extern "C"
5455
{
@@ -308,7 +309,9 @@ static void RP2xxx_setup()
308309
SPI1.setRX(SOC_GPIO_PIN_MISO);
309310
SPI1.setTX(SOC_GPIO_PIN_MOSI);
310311
SPI1.setSCK(SOC_GPIO_PIN_SCK);
311-
#if !defined(ARDUINO_RASPBERRY_PI_PICO) && !defined(ARDUINO_RASPBERRY_PI_PICO_W)
312+
#if !defined(ARDUINO_RASPBERRY_PI_PICO) && \
313+
!defined(ARDUINO_RASPBERRY_PI_PICO_W) && \
314+
!defined(ARDUINO_RASPBERRY_PI_PICO_2W)
312315
SPI1.setCS(SOC_GPIO_PIN_SS);
313316
#endif /* ARDUINO_RASPBERRY_PI_PICO or ARDUINO_RASPBERRY_PI_PICO_W */
314317

@@ -336,6 +339,8 @@ static void RP2xxx_setup()
336339
#endif /* EXCLUDE_WIFI */
337340
#elif defined(ARDUINO_RASPBERRY_PI_PICO_W)
338341
RP2xxx_board = rp2040.isPicoW() ? RP2040_RPIPICO_W : RP2040_RPIPICO;
342+
#elif defined(ARDUINO_RASPBERRY_PI_PICO_2W)
343+
RP2xxx_board = rp2040.isPicoW() ? RP2040_RPIPICO_2W : RP2040_RPIPICO;
339344
#endif /* ARDUINO_RASPBERRY_PI_PICO */
340345

341346
RP2xxx_board = (SoC->getChipId() == 0xcf516424) ?
@@ -502,7 +507,7 @@ static void RP2xxx_loop()
502507
#endif /* SOC_GPIO_RADIO_LED_RX */
503508
}
504509

505-
#if defined(ARDUINO_RASPBERRY_PI_PICO_W)
510+
#if defined(ARDUINO_RASPBERRY_PI_PICO_W) || defined(ARDUINO_RASPBERRY_PI_PICO_2W)
506511
#include <pico/cyw43_arch.h>
507512
#include <boards/pico_w.h>
508513
#endif /* ARDUINO_RASPBERRY_PI_PICO_W */
@@ -511,10 +516,12 @@ static void RP2xxx_fini(int reason)
511516
{
512517
Wire.end();
513518

514-
#if defined(ARDUINO_RASPBERRY_PI_PICO_W)
519+
#if defined(ARDUINO_RASPBERRY_PI_PICO_W) || defined(ARDUINO_RASPBERRY_PI_PICO_2W)
515520
if (RP2xxx_board == RP2040_RPIPICO_W) {
516521
if (cyw43_is_initialized(&cyw43_state)) cyw43_arch_deinit();
522+
#if !(ARDUINO_PICO_MAJOR == 4 && ARDUINO_PICO_MINOR == 3 && ARDUINO_PICO_REVISION == 0)
517523
pinMode(CYW43_PIN_WL_REG_ON, INPUT_PULLDOWN);
524+
#endif
518525
}
519526
#endif /* ARDUINO_RASPBERRY_PI_PICO_W */
520527

@@ -550,7 +557,9 @@ static void RP2xxx_fini(int reason)
550557
USBDevice.detach();
551558
#endif /* USE_TINYUSB */
552559

553-
#if !defined(ARDUINO_ARCH_MBED) && !defined(ARDUINO_RASPBERRY_PI_PICO_2)
560+
#if !defined(ARDUINO_ARCH_MBED) && \
561+
!defined(ARDUINO_RASPBERRY_PI_PICO_2) && \
562+
!defined(ARDUINO_RASPBERRY_PI_PICO_2W)
554563
sleep_run_from_xosc();
555564

556565
#if SOC_GPIO_PIN_BUTTON != SOC_UNUSED_PIN
@@ -993,7 +1002,9 @@ static float RP2xxx_Battery_param(uint8_t param)
9931002
pin29_func = gpio_get_function(SOC_GPIO_PIN_BATTERY);
9941003
adc_gpio_init(SOC_GPIO_PIN_BATTERY);
9951004

996-
#if defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W)
1005+
#if defined(ARDUINO_RASPBERRY_PI_PICO) || \
1006+
defined(ARDUINO_RASPBERRY_PI_PICO_W) || \
1007+
defined(ARDUINO_RASPBERRY_PI_PICO_2W)
9971008
pin25_dir = gpio_get_dir(SOC_GPIO_PIN_CYW43_EN);
9981009
pin25_func = gpio_get_function(SOC_GPIO_PIN_CYW43_EN);
9991010
pinMode(SOC_GPIO_PIN_CYW43_EN, OUTPUT);
@@ -1004,7 +1015,9 @@ static float RP2xxx_Battery_param(uint8_t param)
10041015
mV = (analogRead(SOC_GPIO_PIN_BATTERY) * 3300UL) >> 12;
10051016

10061017
if (RP2xxx_board == RP2040_RPIPICO_W) {
1007-
#if defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_W)
1018+
#if defined(ARDUINO_RASPBERRY_PI_PICO) || \
1019+
defined(ARDUINO_RASPBERRY_PI_PICO_W) || \
1020+
defined(ARDUINO_RASPBERRY_PI_PICO_2W)
10081021
gpio_set_function(SOC_GPIO_PIN_CYW43_EN, pin25_func);
10091022
gpio_set_dir(SOC_GPIO_PIN_CYW43_EN, pin25_dir);
10101023
#endif /* PICO or PICO W */
@@ -1354,6 +1367,8 @@ void setup1() {
13541367
pio_cfg.pio_rx_num = 0;
13551368
pio_cfg.pio_tx_num = 1;
13561369
pio_cfg.tx_ch = 9;
1370+
#elif defined(ARDUINO_RASPBERRY_PI_PICO_2W)
1371+
/* TBD */
13571372
#endif /* ARDUINO_RASPBERRY_PI_PICO_W */
13581373

13591374
USBHost.configure_pio_usb(1, &pio_cfg);

software/firmware/source/SoftRF/src/platform/RP2XXX.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ enum RP2xxx_board_id {
6969
RP2040_RPIPICO_W,
7070
RP2040_WEACT,
7171
RP2350_RPIPICO_2,
72+
RP2040_RPIPICO_2W,
7273
};
7374

7475
struct rst_info {
@@ -154,9 +155,10 @@ struct rst_info {
154155

155156
#define SOC_ADC_VOLTAGE_DIV (5.0 / 3)
156157

157-
#elif defined(ARDUINO_RASPBERRY_PI_PICO) || \
158-
defined(ARDUINO_RASPBERRY_PI_PICO_2) || \
159-
defined(ARDUINO_RASPBERRY_PI_PICO_W) || \
158+
#elif defined(ARDUINO_RASPBERRY_PI_PICO) || \
159+
defined(ARDUINO_RASPBERRY_PI_PICO_2) || \
160+
defined(ARDUINO_RASPBERRY_PI_PICO_W) || \
161+
defined(ARDUINO_RASPBERRY_PI_PICO_2W) || \
160162
defined(ARDUINO_NANO_RP2040_CONNECT)
161163

162164
/* Console I/O */
@@ -228,7 +230,8 @@ struct rst_info {
228230
#error "This RP2040 build variant is not supported!"
229231
#endif
230232

231-
#if defined(ARDUINO_RASPBERRY_PI_PICO_W)
233+
#if defined(ARDUINO_RASPBERRY_PI_PICO_W) || \
234+
defined(ARDUINO_RASPBERRY_PI_PICO_2W)
232235
#define EXCLUDE_OTA
233236
#define USE_WIFI_NINA false
234237
#define USE_WIFI_CUSTOM true
@@ -268,7 +271,7 @@ struct rst_info {
268271
#define EXCLUDE_BLUETOOTH
269272
#endif /* ARDUINO_NANO_RP2040_CONNECT */
270273
#endif /* ARDUINO_ARCH_MBED */
271-
#endif /* ARDUINO_RASPBERRY_PI_PICO_W */
274+
#endif /* ARDUINO_RASPBERRY_PI_PICO_W or 2W */
272275

273276
#define EXCLUDE_CC13XX
274277
#define EXCLUDE_TEST_MODE

0 commit comments

Comments
 (0)