Skip to content

Commit

Permalink
PPP/Plasma: Simplify config.
Browse files Browse the repository at this point in the history
Since both PPP2 or Plasma2350 have a SP/CE connector, enable WiFi in all cases.

Additionally enable PPP in all cases.

Finally, drop the non-PSRAM build. (TBC if it returns, since it's less RAM but faster.)
  • Loading branch information
Gadgetoid committed Nov 6, 2024
1 parent edccf66 commit db7bdf5
Show file tree
Hide file tree
Showing 18 changed files with 228 additions and 409 deletions.
9 changes: 0 additions & 9 deletions .github/workflows/micropython.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,8 @@ jobs:
board: RPI_PICO2B
- name: plasma2350
board: PIMORONI_PLASMA2350
- name: plasma2350_wireless
board: PIMORONI_PLASMA2350
variant: WIRELESS
- name: tiny2350
board: PIMORONI_TINY2350
- name: pico_plus2_rp2350_psram
board: PIMORONI_PICO_PLUS2
variant: PSRAM
- name: pico_plus2_rp2350_wireless
board: PIMORONI_PICO_PLUS2
variant: WIRELESS
- name: pico_plus2_rp2350
board: PIMORONI_PICO_PLUS2

Expand Down
8 changes: 0 additions & 8 deletions micropython/board/PIMORONI_PICO_PLUS2/manifest-wireless.py

This file was deleted.

9 changes: 8 additions & 1 deletion micropython/board/PIMORONI_PICO_PLUS2/manifest.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
require("bundle-networking")

# Bluetooth
require("aioble")

include("$(PORT_DIR)/boards/manifest.py")

include("../manifest_pico2.py")
include("../manifest_pico2.py")

freeze("$(BOARD_DIR)/../../modules_py", "lte.py")
32 changes: 31 additions & 1 deletion micropython/board/PIMORONI_PICO_PLUS2/mpconfigboard.cmake
Original file line number Diff line number Diff line change
@@ -1,9 +1,39 @@
# cmake file for Raspberry Pi Pico
set(PICO_BOARD "pimoroni_pico_plus2_rp2350")
set(PICO_BOARD "pimoroni_pico_plus2w_rp2350")
set(PICO_BOARD_HEADER_DIRS ${CMAKE_CURRENT_LIST_DIR})
set(PICO_PLATFORM "rp2350")
set(PICO_NUM_GPIOS 48)

# Board specific version of the frozen manifest
set(MICROPY_FROZEN_MANIFEST ${MICROPY_BOARD_DIR}/manifest.py)

set(MICROPY_C_HEAP_SIZE 4096)

# Links micropy_lib_lwip and sets MICROPY_PY_LWIP = 1
# Picked up and expanded upon in mpconfigboard.h
set(MICROPY_PY_LWIP ON)

# Links cyw43-driver and sets:
# MICROPY_PY_NETWORK_CYW43 = 1,
# MICROPY_PY_SOCKET_DEFAULT_TIMEOUT_MS = 30000
set(MICROPY_PY_NETWORK_CYW43 ON)

# Adds mpbthciport.c
# And sets:
# MICROPY_PY_BLUETOOTH = 1,
# MICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS = 1,
# MICROPY_PY_BLUETOOTH_ENABLE_CENTRAL_MODE = 1
set(MICROPY_PY_BLUETOOTH ON)

# Links pico_btstack_hci_transport_cyw43
# And sets:
# MICROPY_BLUETOOTH_BTSTACK = 1,
# MICROPY_BLUETOOTH_BTSTACK_CONFIG_FILE =
set(MICROPY_BLUETOOTH_BTSTACK ON)

# Sets:
# CYW43_ENABLE_BLUETOOTH = 1,
# MICROPY_PY_BLUETOOTH_CYW43 = 1
set(MICROPY_PY_BLUETOOTH_CYW43 ON)


76 changes: 14 additions & 62 deletions micropython/board/PIMORONI_PICO_PLUS2/mpconfigboard.h
Original file line number Diff line number Diff line change
@@ -1,79 +1,31 @@
// Board and hardware specific configuration
#define MICROPY_HW_FLASH_STORAGE_BYTES (PICO_FLASH_SIZE_BYTES - (2 * 1024 * 1024))

#define MICROPY_HW_PSRAM_CS_PIN PIMORONI_PICO_PLUS2_PSRAM_CS_PIN

#ifndef CYW43_WL_GPIO_COUNT
// Effecively remaps LEDW,EXT_GPIO0 to GPIO25 on non-W builds
#define pin_EXT_GPIO0 pin_GPIO25
// Shim the EXT GPIOs because we can't specify a variant pins.csv
#define pin_EXT_GPIO1 pin_GPIO1
#define pin_EXT_GPIO2 pin_GPIO2
#endif

// Might be defined in mpconfigvariant_PSRAM.cmake
// or mpconfigvariant_WIRELESS.cmake
#if defined(MICROPY_HW_ENABLE_PSRAM)

#define MICROPY_GC_SPLIT_HEAP (1)

#endif

// Set up networking.
#define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "PPP2"

#if defined(MICROPY_PY_NETWORK_CYW43)
#define MICROPY_HW_BOARD_NAME "Pimoroni Pico Plus 2 (PSRAM + LTE + WiFi)"

// Enable WiFi & PPP
#define MICROPY_PY_NETWORK (1)
#define MICROPY_PY_NETWORK_PPP_LWIP (1)

// CYW43 driver configuration.
#define CYW43_USE_SPI (1)
#define CYW43_LWIP (1)
#define CYW43_GPIO (1)
#define CYW43_SPI_PIO (1)

#define MICROPY_HW_PIN_EXT_COUNT CYW43_WL_GPIO_COUNT

#if defined(CYW43_PIN_WL_DYNAMIC)

#define CYW43_PIO_CLOCK_DIV_DYNAMIC (1)

// Defined by pimoroni_pico_plus2w_rp2350.h
//#define CYW43_DEFAULT_PIN_WL_HOST_WAKE SPICE_RESET_MOSI_PIN
//#define CYW43_DEFAULT_PIN_WL_REG_ON SPICE_TX_MISO_PIN
#define CYW43_DEFAULT_PIN_WL_DATA_OUT CYW43_DEFAULT_PIN_WL_HOST_WAKE
#define CYW43_DEFAULT_PIN_WL_DATA_IN CYW43_DEFAULT_PIN_WL_HOST_WAKE
#define CYW43_DEFAULT_PIN_WL_CLOCK 29u
#define CYW43_DEFAULT_PIN_WL_CS 25u

/* SPICE alternative
#define CYW43_DEFAULT_PIN_WL_HOST_WAKE SPICE_RESET_MOSI_PIN
#define CYW43_DEFAULT_PIN_WL_REG_ON SPICE_TX_MISO_PIN
#define CYW43_DEFAULT_PIN_WL_DATA_OUT SPICE_RESET_MOSI_PIN
#define CYW43_DEFAULT_PIN_WL_DATA_IN SPICE_RESET_MOSI_PIN
#define CYW43_DEFAULT_PIN_WL_CLOCK SPICE_NETLIGHT_SCK_PIN
#define CYW43_DEFAULT_PIN_WL_CS SPICE_RX_CS_PIN
*/

// Slow down the wireless clock, since we'll be running
// comms through wiring spaghetti!
#define CYW43_PIO_CLOCK_DIV_INT 50
#define CYW43_PIO_CLOCK_DIV_FRAC 0
#define CYW43_SPI_PROGRAM_NAME spi_gap0_sample1

#endif

#endif

// Might be defined in mpconfigvariant_PPP.cmake
// This is not checked by mpconfigport.h so we must set up networking below
#if defined(MICROPY_PY_NETWORK_PPP_LWIP)

// Nothing to do here?

#ifndef CYW43_WL_GPIO_COUNT
#define CYW43_WL_GPIO_COUNT 3
#endif

// If a variant is not used, define a fallback board name
#ifndef MICROPY_HW_BOARD_NAME
#define MICROPY_HW_PIN_EXT_COUNT CYW43_WL_GPIO_COUNT

#define MICROPY_HW_BOARD_NAME "Pimoroni Pico Plus 2"
int mp_hal_is_pin_reserved(int n);
#define MICROPY_HW_PIN_RESERVED(i) mp_hal_is_pin_reserved(i)

#endif
// PSRAM Settings
#define MICROPY_HW_ENABLE_PSRAM (1)
#define MICROPY_HW_PSRAM_CS_PIN PIMORONI_PICO_PLUS2_PSRAM_CS_PIN
#define MICROPY_GC_SPLIT_HEAP (1)
Empty file.

This file was deleted.

This file was deleted.

84 changes: 55 additions & 29 deletions micropython/board/PIMORONI_PICO_PLUS2/pimoroni_pico_plus2w_rp2350.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,35 +31,6 @@
#define PIMORONI_PICO_PLUS2_USER_SW_PIN 45
#define PIMORONI_PICO_PLUS2_PSRAM_CS_PIN 47

// -- CYW43 Wireless --
#ifndef CYW43_DEFAULT_PIN_WL_HOST_WAKE
#define CYW43_DEFAULT_PIN_WL_HOST_WAKE 24
#endif

#ifndef CYW43_DEFAULT_PIN_WL_REG_ON
#define CYW43_DEFAULT_PIN_WL_REG_ON 23
#endif

#ifndef CYW43_WL_GPIO_COUNT
#define CYW43_WL_GPIO_COUNT 3
#endif

#ifndef CYW43_WL_GPIO_LED_PIN
#define CYW43_WL_GPIO_LED_PIN 0
#endif

// If CYW43_WL_GPIO_VBUS_PIN is defined then a CYW43 GPIO has to be used to read VBUS.
// This can be passed to cyw43_arch_gpio_get to determine if the device is battery powered.
// PICO_VBUS_PIN and CYW43_WL_GPIO_VBUS_PIN should not both be defined.

// no CYW43_WL_GPIO_VBUS_PIN

// If CYW43_USES_VSYS_PIN is defined then CYW43 uses the VSYS GPIO (defined by PICO_VSYS_PIN) for other purposes.
// If this is the case, to use the VSYS GPIO it's necessary to ensure CYW43 is not using it.
// This can be achieved by wrapping the use of the VSYS GPIO in cyw43_thread_enter / cyw43_thread_exit.

// no CYW43_USES_VSYS_PIN

// --- UART ---
#ifndef PICO_DEFAULT_UART
#define PICO_DEFAULT_UART 0
Expand Down Expand Up @@ -118,6 +89,26 @@
#define PICO_FLASH_SIZE_BYTES (16 * 1024 * 1024)
#endif

#ifndef CYW43_WL_GPIO_COUNT
#define CYW43_WL_GPIO_COUNT 3
#endif

#ifndef CYW43_WL_GPIO_LED_PIN
#define CYW43_WL_GPIO_LED_PIN 0
#endif

// If CYW43_WL_GPIO_VBUS_PIN is defined then a CYW43 GPIO has to be used to read VBUS.
// This can be passed to cyw43_arch_gpio_get to determine if the device is battery powered.
// PICO_VBUS_PIN and CYW43_WL_GPIO_VBUS_PIN should not both be defined.

// no CYW43_WL_GPIO_VBUS_PIN

// If CYW43_USES_VSYS_PIN is defined then CYW43 uses the VSYS GPIO (defined by PICO_VSYS_PIN) for other purposes.
// If this is the case, to use the VSYS GPIO it's necessary to ensure CYW43 is not using it.
// This can be achieved by wrapping the use of the VSYS GPIO in cyw43_thread_enter / cyw43_thread_exit.

// no CYW43_USES_VSYS_PIN

// The GPIO Pin used to read VBUS to determine if the device is battery powered.
#ifndef PICO_VBUS_PIN
#define PICO_VBUS_PIN 24
Expand All @@ -133,4 +124,39 @@
#define PICO_RP2350_A2_SUPPORTED 1
#endif

// PICO_CONFIG: CYW43_PIN_WL_DYNAMIC, flag to indicate if cyw43 SPI pins can be changed at runtime, type=bool, default=false, advanced=true, group=pico_cyw43_driver
#ifndef CYW43_PIN_WL_DYNAMIC
#define CYW43_PIN_WL_DYNAMIC 1
#endif

// PICO_CONFIG: CYW43_DEFAULT_PIN_WL_REG_ON, gpio pin to power up the cyw43 chip, type=int, default=23, advanced=true, group=pico_cyw43_driver
#ifndef CYW43_DEFAULT_PIN_WL_REG_ON
#define CYW43_DEFAULT_PIN_WL_REG_ON 23u
#endif

// PICO_CONFIG: CYW43_DEFAULT_PIN_WL_DATA_OUT, gpio pin for spi data out to the cyw43 chip, type=int, default=24, advanced=true, group=pico_cyw43_driver
#ifndef CYW43_DEFAULT_PIN_WL_DATA_OUT
#define CYW43_DEFAULT_PIN_WL_DATA_OUT 24u
#endif

// PICO_CONFIG: CYW43_DEFAULT_PIN_WL_DATA_IN, gpio pin for spi data in from the cyw43 chip, type=int, default=24, advanced=true, group=pico_cyw43_driver
#ifndef CYW43_DEFAULT_PIN_WL_DATA_IN
#define CYW43_DEFAULT_PIN_WL_DATA_IN 24u
#endif

// PICO_CONFIG: CYW43_DEFAULT_PIN_WL_HOST_WAKE, gpio (irq) pin for the irq line from the cyw43 chip, type=int, default=24, advanced=true, group=pico_cyw43_driver
#ifndef CYW43_DEFAULT_PIN_WL_HOST_WAKE
#define CYW43_DEFAULT_PIN_WL_HOST_WAKE 24u
#endif

// PICO_CONFIG: CYW43_DEFAULT_PIN_WL_CLOCK, gpio pin for the spi clock line to the cyw43 chip, type=int, default=29, advanced=true, group=pico_cyw43_driver
#ifndef CYW43_DEFAULT_PIN_WL_CLOCK
#define CYW43_DEFAULT_PIN_WL_CLOCK 29u
#endif

// PICO_CONFIG: CYW43_DEFAULT_PIN_WL_CS, gpio pin for the spi chip select to the cyw43 chip, type=int, default=25, advanced=true, group=pico_cyw43_driver
#ifndef CYW43_DEFAULT_PIN_WL_CS
#define CYW43_DEFAULT_PIN_WL_CS 25u
#endif

#endif
8 changes: 0 additions & 8 deletions micropython/board/PIMORONI_PLASMA2350/manifest-wireless.py

This file was deleted.

9 changes: 8 additions & 1 deletion micropython/board/PIMORONI_PLASMA2350/manifest.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
require("bundle-networking")

# Bluetooth
require("aioble")

include("$(PORT_DIR)/boards/manifest.py")

include("../manifest_pico2.py")
include("../manifest_pico2.py")

freeze("$(BOARD_DIR)/../../modules_py", "lte.py")
34 changes: 30 additions & 4 deletions micropython/board/PIMORONI_PLASMA2350/mpconfigboard.cmake
Original file line number Diff line number Diff line change
@@ -1,11 +1,37 @@
# cmake file for Raspberry Pi Pico
set(PICO_BOARD "pimoroni_plasma2350")
# cmake file for Pimoroni Plasma 2350
set(PICO_BOARD "pimoroni_plasma2350w")
set(PICO_BOARD_HEADER_DIRS ${CMAKE_CURRENT_LIST_DIR})
set(PICO_PLATFORM "rp2350")

# Board specific version of the frozen manifest
set(MICROPY_FROZEN_MANIFEST ${MICROPY_BOARD_DIR}/manifest.py)

set(MICROPY_C_HEAP_SIZE 4096)

set(PICO_BOARD "pimoroni_plasma2350")
set(PICO_BOARD_HEADER_DIRS ${CMAKE_CURRENT_LIST_DIR})
# Links micropy_lib_lwip and sets MICROPY_PY_LWIP = 1
# Picked up and expanded upon in mpconfigboard.h
set(MICROPY_PY_LWIP ON)

# Links cyw43-driver and sets:
# MICROPY_PY_NETWORK_CYW43 = 1,
# MICROPY_PY_SOCKET_DEFAULT_TIMEOUT_MS = 30000
set(MICROPY_PY_NETWORK_CYW43 ON)

# Adds mpbthciport.c
# And sets:
# MICROPY_PY_BLUETOOTH = 1,
# MICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS = 1,
# MICROPY_PY_BLUETOOTH_ENABLE_CENTRAL_MODE = 1
set(MICROPY_PY_BLUETOOTH ON)

# Links pico_btstack_hci_transport_cyw43
# And sets:
# MICROPY_BLUETOOTH_BTSTACK = 1,
# MICROPY_BLUETOOTH_BTSTACK_CONFIG_FILE =
set(MICROPY_BLUETOOTH_BTSTACK ON)

# Sets:
# CYW43_ENABLE_BLUETOOTH = 1,
# MICROPY_PY_BLUETOOTH_CYW43 = 1
set(MICROPY_PY_BLUETOOTH_CYW43 ON)

Loading

0 comments on commit db7bdf5

Please sign in to comment.