PortPilot scans your codebase, maps vendor-specific HAL calls to the target MCU family, and generates a migration report with stub code. Weeks of porting → hours of review.
No spam. Just a heads-up when it's ready.
You shipped on STM32. Now you need nRF52. Or your chip is on a 40-week lead time and you need to move to something available. What happens next:
$ grep -r "HAL_" src/ | wc -l 847 # Now read 847 lines, figure out what each does, # find the equivalent in the target SDK, and rewrite.
$ portpilot scan --source src/ --from stm32 --to nrf52 Scanning 847 HAL calls across 43 files... Migration Report: ✅ 612 calls have direct equivalents (auto-mapped) ⚠️ 187 calls need review (behavioral differences) ❌ 48 calls have no equivalent (manual work needed) Stubs generated: output/nrf52_stubs/ Report saved: output/migration_report.md
Instead of starting from scratch, you review the report, adjust the flagged items, and fill in the 48 calls that need manual work. Days, not weeks.
Point PortPilot at your firmware source tree. It parses C/C++ files, identifies vendor-specific HAL calls, and classifies them by peripheral type (GPIO, SPI, I2C, UART, DMA, Timer, ADC).
PortPilot's database knows the relationships between HAL APIs across MCU families — STM32 HAL, nRF Connect SDK, ESP-IDF, TI DriverLib. It finds the closest equivalent for each call.
You get a migration report: what maps directly, what has behavioral differences, and what needs manual work. For mapped calls, PortPilot generates skeleton driver code.
| Source | Target |
|---|---|
| STM32 (HAL/LL) | nRF52/nRF53 (nRF Connect SDK) |
| STM32 (HAL/LL) | ESP32 (ESP-IDF) |
| ESP32 (ESP-IDF) | STM32 (HAL/LL) |
| nRF52 (nRF Connect SDK) | STM32 (HAL/LL) |
More families coming based on demand. Tell us what you need.
Early access users get first look, input on MCU family priorities, and a direct line to the developer.
No spam. Just a heads-up when it's ready.