Migration Notes: Nano 33 → ESP32
Tutorial04 January 2026

Migration Notes: Nano 33 → ESP32

By KreativeKommit

#Arduino#Nano 33#ESP32#migration

When to port: if you need WiFi, higher throughput, or more I/O/peripherals, move to an ESP32. This note covers key differences and practical porting steps.

Key differences

  • Connectivity: Nano 33 provides BLE (nRF52840). ESP32 provides WiFi + BLE (depending on module) and generally higher throughput for networked projects.
  • Logic voltage: both use 3.3V, but ESP32 peripherals and pin behaviour differ.
  • Libraries: some Arduino libraries for nRF52 are not identical to ESP32 cores — replace platform-specific APIs where necessary.

GPIO, ADC & PWM

  • ADC: Nano 33 ADC range/config differs from ESP32 (calibration and resolution). ESP32 often uses 12-bit ADC; calibrate readings.
  • PWM: use LEDC on ESP32 instead of analogWrite() for advanced control.

WiFi & networking

  • Replace BLE-only flows with WiFi clients/servers or MQTT for cloud connectivity.
  • Handle reconnection and longer connection lifecycles; WiFi increases power consumption.

Deep sleep / low-power

  • ESP32 deep-sleep APIs differ and can provide very low power but require careful wake configuration for peripherals and pins.

Example porting steps

  1. Inventory sensors and peripherals — check 3.3V compatibility.
  2. Replace nRF-specific libraries with ESP32-compatible ones (WiFi, BLE wrappers).
  3. Port ADC/PWM code and validate sensor calibration.
  4. Adapt deep-sleep and power logic for ESP32 APIs.

Next steps

  • Port incrementally: start with basic sensor reads and communication tests, then add networking and power optimisation.

Hope this tutorial helps you learn something new!