diff --git a/ports/esp32/esp32_common.cmake b/ports/esp32/esp32_common.cmake
new file mode 100644
index 0000000..d55dd38
--- /dev/null
+++ b/ports/esp32/esp32_common.cmake
@@ -0,0 +1,200 @@
+# Set location of base MicroPython directory.
+if(NOT MICROPY_DIR)
+    get_filename_component(MICROPY_DIR ${CMAKE_CURRENT_LIST_DIR}/../.. ABSOLUTE)
+endif()
+
+# Set location of the ESP32 port directory.
+if(NOT MICROPY_PORT_DIR)
+    get_filename_component(MICROPY_PORT_DIR ${MICROPY_DIR}/ports/esp32 ABSOLUTE)
+endif()
+
+# Include core source components.
+include(${MICROPY_DIR}/py/py.cmake)
+
+if(NOT CMAKE_BUILD_EARLY_EXPANSION)
+    # Enable extmod components that will be configured by extmod.cmake.
+    # A board may also have enabled additional components.
+    set(MICROPY_PY_BTREE ON)
+
+    include(${MICROPY_DIR}/py/usermod.cmake)
+    include(${MICROPY_DIR}/extmod/extmod.cmake)
+endif()
+
+list(APPEND MICROPY_QSTRDEFS_PORT
+    ${MICROPY_PORT_DIR}/qstrdefsport.h
+)
+
+list(APPEND MICROPY_SOURCE_SHARED
+    ${MICROPY_DIR}/shared/readline/readline.c
+    ${MICROPY_DIR}/shared/netutils/netutils.c
+    ${MICROPY_DIR}/shared/timeutils/timeutils.c
+    ${MICROPY_DIR}/shared/runtime/interrupt_char.c
+    ${MICROPY_DIR}/shared/runtime/stdout_helpers.c
+    ${MICROPY_DIR}/shared/runtime/sys_stdio_mphal.c
+    ${MICROPY_DIR}/shared/runtime/pyexec.c
+)
+
+list(APPEND MICROPY_SOURCE_LIB
+    ${MICROPY_DIR}/lib/littlefs/lfs1.c
+    ${MICROPY_DIR}/lib/littlefs/lfs1_util.c
+    ${MICROPY_DIR}/lib/littlefs/lfs2.c
+    ${MICROPY_DIR}/lib/littlefs/lfs2_util.c
+    #${MICROPY_DIR}/lib/mbedtls_errors/esp32_mbedtls_errors.c
+    ${MICROPY_DIR}/lib/oofatfs/ff.c
+    ${MICROPY_DIR}/lib/oofatfs/ffunicode.c
+)
+
+list(APPEND MICROPY_SOURCE_DRIVERS
+    ${MICROPY_DIR}/drivers/bus/softspi.c
+    ${MICROPY_DIR}/drivers/dht/dht.c
+)
+
+list(APPEND MICROPY_SOURCE_PORT
+    main.c
+    ppp_set_auth.c
+    uart.c
+    usb.c
+    usb_serial_jtag.c
+    gccollect.c
+    mphalport.c
+    fatfs_port.c
+    help.c
+    machine_bitstream.c
+    machine_timer.c
+    machine_pin.c
+    machine_touchpad.c
+    machine_adc.c
+    machine_adcblock.c
+    machine_dac.c
+    machine_i2c.c
+    machine_i2s.c
+    machine_uart.c
+    modmachine.c
+    network_common.c
+    network_lan.c
+    network_ppp.c
+    network_wlan.c
+    mpnimbleport.c
+    modsocket.c
+    modesp.c
+    esp32_nvs.c
+    esp32_partition.c
+    esp32_rmt.c
+    esp32_ulp.c
+    modesp32.c
+    machine_hw_spi.c
+    machine_wdt.c
+    mpthreadport.c
+    machine_rtc.c
+    machine_sdcard.c
+    modespnow.c
+)
+list(TRANSFORM MICROPY_SOURCE_PORT PREPEND ${MICROPY_PORT_DIR}/)
+
+list(APPEND MICROPY_SOURCE_QSTR
+    ${MICROPY_SOURCE_PY}
+    ${MICROPY_SOURCE_EXTMOD}
+    ${MICROPY_SOURCE_USERMOD}
+    ${MICROPY_SOURCE_SHARED}
+    ${MICROPY_SOURCE_LIB}
+    ${MICROPY_SOURCE_PORT}
+    ${MICROPY_SOURCE_BOARD}
+)
+
+list(APPEND IDF_COMPONENTS
+    app_update
+    bootloader_support
+    bt
+    driver
+    esp_adc
+    esp_app_format
+    esp_common
+    esp_eth
+    esp_event
+    esp_hw_support
+    esp_netif
+    esp_partition
+    esp_pm
+    esp_psram
+    esp_ringbuf
+    esp_rom
+    esp_system
+    esp_timer
+    esp_wifi
+    freertos
+    hal
+    heap
+    log
+    lwip
+    mbedtls
+    newlib
+    nvs_flash
+    sdmmc
+    soc
+    spi_flash
+    ulp
+    vfs
+    xtensa
+)
+
+# Register the main IDF component.
+idf_component_register(
+    SRCS
+        ${MICROPY_SOURCE_PY}
+        ${MICROPY_SOURCE_EXTMOD}
+        ${MICROPY_SOURCE_SHARED}
+        ${MICROPY_SOURCE_LIB}
+        ${MICROPY_SOURCE_DRIVERS}
+        ${MICROPY_SOURCE_PORT}
+        ${MICROPY_SOURCE_BOARD}
+    INCLUDE_DIRS
+        ${MICROPY_INC_CORE}
+        ${MICROPY_INC_USERMOD}
+        ${MICROPY_PORT_DIR}
+        ${MICROPY_BOARD_DIR}
+        ${CMAKE_BINARY_DIR}
+    REQUIRES
+        ${IDF_COMPONENTS}
+)
+
+# Set the MicroPython target as the current (main) IDF component target.
+set(MICROPY_TARGET ${COMPONENT_TARGET})
+
+# Define mpy-cross flags, for use with frozen code.
+set(MICROPY_CROSS_FLAGS -march=xtensawin)
+
+# Set compile options for this port.
+target_compile_definitions(${MICROPY_TARGET} PUBLIC
+    ${MICROPY_DEF_CORE}
+    MICROPY_ESP_IDF_4=1
+    MICROPY_VFS_FAT=1
+    MICROPY_VFS_LFS2=1
+    FFCONF_H=\"${MICROPY_OOFATFS_DIR}/ffconf.h\"
+    LFS1_NO_MALLOC LFS1_NO_DEBUG LFS1_NO_WARN LFS1_NO_ERROR LFS1_NO_ASSERT
+    LFS2_NO_MALLOC LFS2_NO_DEBUG LFS2_NO_WARN LFS2_NO_ERROR LFS2_NO_ASSERT
+)
+
+# Disable some warnings to keep the build output clean.
+target_compile_options(${MICROPY_TARGET} PUBLIC
+    -Wno-clobbered
+    -Wno-deprecated-declarations
+    -Wno-missing-field-initializers
+)
+
+# Additional include directories needed for private NimBLE headers.
+target_include_directories(${MICROPY_TARGET} PUBLIC
+    ${IDF_PATH}/components/bt/host/nimble/nimble
+)
+
+# Add additional extmod and usermod components.
+target_link_libraries(${MICROPY_TARGET} micropy_extmod_btree)
+target_link_libraries(${MICROPY_TARGET} usermod)
+
+# Collect all of the include directories and compile definitions for the IDF components.
+foreach(comp ${IDF_COMPONENTS})
+    micropy_gather_target_properties(__idf_${comp})
+    micropy_gather_target_properties(${comp})
+endforeach()
+
+# Include the main MicroPython cmake rules.
+include(${MICROPY_DIR}/py/mkrules.cmake)
