
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
- Inventory sensors and peripherals — check 3.3V compatibility.
- Replace nRF-specific libraries with ESP32-compatible ones (WiFi, BLE wrappers).
- Port ADC/PWM code and validate sensor calibration.
- 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.