STM32F429 RTP pager
Very simple RTP pager (VoIP audio receiver) based on STM32F429, Nucleo F429 starter kit. This is direct follow up of RTP pager based on ESP 8266, but it uses Ethernet instead of WiFi. As it uses real DAC (built into STM32) audio quality is much better than with my ESP 8266 circuit (using PWM output).
Nucleo with STM32F429 seems to be cheapest easily available and convenient (with onboard STLink) microcontroller board with ethernet interface. With lot (all?) of the important microcontroller pins routed to goldpin headers it looks also like decent STM32 board in general - sensors and other stuff included and connected on board often just block pins from user.
Firmware is based on LwIP_HTTP_Server_Netconn_RTOS example. As project workspace is relatively heavy and contains bunch of 3rd party software (CMSIS, lwip, FreeRTOS) I've included only "user" part of sources here. It was built with System Workbench for STM32, although software package from STM contains also project files for Keil and IAR for same example.
Same as with ESP8266, G711.a/u and G722 are supported. Refer to ESP8266 page for testing suggestions, including open source Windows softphone and RTP transmitter for android.
Pager is listening for RTP coming to UDP port 4000 (udp_rx.c, BIND_PORT).
Board is configured (main.h) with static IP = 192.168.0.52, netmask 255.255.254.0. Audio signal is available on PA4 pin (DAC output, on CN7 connector).
Source and binary
2016.09.24. Initial release: stm32_rtp_pager.zip - SW4STM32
2017.04.01. Project moved to EmBitz (Code::Blocks derivative).
SW4STM32 feels like safe IDE choice as it's officially supported by STM, but after few use hours it looses its attractiveness.
It's painfully sluggish (as probably any other eclipse-based IDE), I don't like its workspace concept and
debugging with it seemed unreliable - every few minutes I had to reset STLink. On the other hand EmBitz is small (50MB download, GCC included),
responsive and it was stable when running debugger.
stm32_rtp_pager_20170401.7z - complete with CMSIS, lwip, FreeRTOS
2020.07.01. Minor modifications before reusing same project as Scream receiver: switched to DHCP, using MAC address based on chip UID.
stm32_rtp_pager_20200701.7z - complete with CMSIS, lwip, FreeRTOS
- DAC is running in stereo mode (though both outputs are generating same signal)
- joining multicast group 220.127.116.11
- added some logs related to DHCP