diff --git a/.github/workflows/micropython.yml b/.github/workflows/micropython.yml index 42386ddd..f9b44b06 100644 --- a/.github/workflows/micropython.yml +++ b/.github/workflows/micropython.yml @@ -22,6 +22,8 @@ jobs: board: RPI_PICO - name: pico_usb board: RPI_PICO_USB + - name: pico_ppp + board: RPI_PICO_PPP - name: picow board: RPI_PICO_W - name: tiny2040_8mb diff --git a/micropython/board/RPI_PICO_PPP/board.json b/micropython/board/RPI_PICO_PPP/board.json new file mode 100644 index 00000000..5a67a25e --- /dev/null +++ b/micropython/board/RPI_PICO_PPP/board.json @@ -0,0 +1,20 @@ +{ + "deploy": [ + "../deploy.md" + ], + "docs": "", + "features": [ + "Breadboard friendly", + "Castellated Pads", + "Micro USB" + ], + "id": "rp2-pico", + "images": [ + "rp2-pico.jpg" + ], + "mcu": "rp2040", + "product": "Pico", + "thumbnail": "", + "url": "https://www.raspberrypi.com/products/raspberry-pi-pico/", + "vendor": "Raspberry Pi" +} \ No newline at end of file diff --git a/micropython/board/RPI_PICO_PPP/manifest.py b/micropython/board/RPI_PICO_PPP/manifest.py new file mode 100644 index 00000000..f8ee3f93 --- /dev/null +++ b/micropython/board/RPI_PICO_PPP/manifest.py @@ -0,0 +1,5 @@ +include("$(PORT_DIR)/boards/manifest.py") + +require("bundle-networking") + +include("../manifest_pico.py") \ No newline at end of file diff --git a/micropython/board/RPI_PICO_PPP/mpconfigboard.cmake b/micropython/board/RPI_PICO_PPP/mpconfigboard.cmake new file mode 100644 index 00000000..1aeeff20 --- /dev/null +++ b/micropython/board/RPI_PICO_PPP/mpconfigboard.cmake @@ -0,0 +1,9 @@ +# cmake file for Raspberry Pi Pico +set(PICO_BOARD "pico") + +set(MICROPY_PY_LWIP ON) + +# Board specific version of the frozen manifest +set(MICROPY_FROZEN_MANIFEST ${MICROPY_BOARD_DIR}/manifest.py) + +set(MICROPY_C_HEAP_SIZE 4096) \ No newline at end of file diff --git a/micropython/board/RPI_PICO_PPP/mpconfigboard.h b/micropython/board/RPI_PICO_PPP/mpconfigboard.h new file mode 100644 index 00000000..a64e2893 --- /dev/null +++ b/micropython/board/RPI_PICO_PPP/mpconfigboard.h @@ -0,0 +1,16 @@ +// Board and hardware specific configuration +#define MICROPY_HW_BOARD_NAME "Raspberry Pi Pico" +#define MICROPY_HW_FLASH_STORAGE_BYTES (1408 * 1024) + +// Enable networking. +#define MICROPY_PY_NETWORK 1 +#define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "Pico" + +#define MICROPY_PY_NETWORK_PPP_LWIP 1 + +#define MICROPY_HW_NIC_PPP { MP_ROM_QSTR(MP_QSTR_PINT), MP_ROM_PTR(&mp_network_ppp_lwip_type) }, + +#define MICROPY_BOARD_NETWORK_INTERFACES \ + MICROPY_HW_NIC_PPP + +#define MICROPY_PY_SOCKET_EXTENDED_STATE 1 \ No newline at end of file diff --git a/micropython/board/RPI_PICO_PPP/pins.csv b/micropython/board/RPI_PICO_PPP/pins.csv new file mode 100644 index 00000000..9c40b41c --- /dev/null +++ b/micropython/board/RPI_PICO_PPP/pins.csv @@ -0,0 +1,28 @@ +GP0,GPIO0 +GP1,GPIO1 +GP2,GPIO2 +GP3,GPIO3 +GP4,GPIO4 +GP5,GPIO5 +GP6,GPIO6 +GP7,GPIO7 +GP8,GPIO8 +GP9,GPIO9 +GP10,GPIO10 +GP11,GPIO11 +GP12,GPIO12 +GP13,GPIO13 +GP14,GPIO14 +GP15,GPIO15 +GP16,GPIO16 +GP17,GPIO17 +GP18,GPIO18 +GP19,GPIO19 +GP20,GPIO20 +GP21,GPIO21 +GP22,GPIO22 +GP25,GPIO25 +GP26,GPIO26 +GP27,GPIO27 +GP28,GPIO28 +LED,GPIO25 \ No newline at end of file diff --git a/micropython/modules/micropython-pico_ppp.cmake b/micropython/modules/micropython-pico_ppp.cmake new file mode 100644 index 00000000..bb5b677f --- /dev/null +++ b/micropython/modules/micropython-pico_ppp.cmake @@ -0,0 +1,13 @@ +include_directories(${CMAKE_CURRENT_LIST_DIR}/../../) + +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../") +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../") + +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) + +include(micropython-common) + +# C++ Magic Memory +include(cppmem/micropython)