Skip to content

Pin Assignments

This page documents the GPIO pin assignments for both NanoVNA-H (STM32F072) and NanoVNA-H4 (STM32F303) hardware platforms.

PinF072 FunctionF303 FunctionModeNotes
PA0BUTTON (unused)BUTTONInputNot used in firmware
PA1LEVER1LEVER1InputJog wheel encoder A
PA2PUSHPUSHInputJog wheel push button
PA3LEVER2LEVER2InputJog wheel encoder B
PA4-VBUSInputUSB VBUS detect (H4)
PA5DAC2DAC2AnalogLCD backlight control
PA6XPXPAnalogTouch panel X+
PA7YPYPAnalogTouch panel Y+
PA8MCOMCOAF0Master clock output
PA9USART1_TXUSART1_TXAF1/AF7Serial console TX
PA10USART1_RXUSART1_RXAF1/AF7Serial console RX
PA11USB_DMUSB_DMAF14USB D-
PA12USB_DPUSB_DPAF14USB D+
PA13SWDIOSWDIOAF0Debug interface
PA14SWCLKSWCLKAF0Debug interface
PA15LCD_RESETLCD_RESETOutputLCD reset signal
SPI1:
SCLK -> PB3
MISO -> PB4
MOSI -> PB5
LCD:
CS -> PB6
DC -> PB7
RESET -> PA15
SD Card:
CS -> PB11
GP1 -> PB2
GP2 -> PB10
I2C1:
SCL -> PB8
SDA -> PB9
Si5351 Address: 0x60 (7-bit)
TLV320AIC3204 Address: 0x18 (7-bit)
I2S2:
WCLK -> PB12 (Word select / LRCLK)
BCLK -> PB13 (Bit clock)
MOSI -> PB15 (Data to codec)
MISO -> PB14 (Data from codec, H4 only)
USART1:
TX -> PA9
RX -> PA10
Alternate Function:
F072: AF1
F303: AF7
USB:
DM -> PA11
DP -> PA12
VBUS -> PA4 (H4 detection)
VID: 0x0483 (STMicroelectronics)
PID: 0x5740 (Virtual COM Port)
Encoder:
A -> PA1 (LEVER1)
B -> PA3 (LEVER2)
Push -> PA2 (PUSH)
Input Mode: Pull-down resistors enabled
Touch ADC:
X+ -> PA6 (ADC channel 6)
Y+ -> PA7 (ADC channel 7)
X- -> PB0
Y- -> PB1
OscillatorFrequencyPinsNotes
HSE8 MHzPF0/PF1Main system clock source
LSE32.768 kHzPC14/PC15RTC clock (optional)
TargetSYSCLKHCLKAPB
F07248 MHz48 MHz48 MHz
F30372 MHz72 MHz72 MHz

PA8 can output a clock signal (used for audio codec reference):

#define AUDIO_CLOCK_REF 8000000U // 8 MHz to codec
DMA ChannelFunctionSource/Dest
DMA1_CH4I2S RXAudio samples from codec
DMA1_CH5SPI TXDisplay data (if DMA enabled)
AFFunctionPins
AF0MCO, SPI1, I2S2, SWDIOMultiple
AF1USART1, I2C1PA9/PA10, PB8/PB9
AF14USBPA11/PA12
AFFunctionPins
AF0MCO, SWDIOPA8, PA13/PA14
AF4I2C1PB8/PB9
AF5SPI1, I2S2PB3-5, PB12-15
AF7USART1PA9/PA10
AF14USBPA11/PA12
SWD:
SWDIO -> PA13
SWCLK -> PA14
GND and 3.3V required

Use with OpenOCD + CMSIS-DAP adapter:

Terminal window
openocd -f NanoVNA_DAP.cfg

To enter DFU bootloader:

  1. Hardware method: Short BOOT0 to VCC during power-on
  2. Software method: Menu CONFIG > EXPERT SETTINGS > DFU
  3. Shell command: reset dfu

DFU uses USB in bootloader mode (built into STM32 ROM).

Pin definitions are located in:

  • F072 pins: NANOVNA_STM32_F072/board.h lines 48-88
  • F303 pins: NANOVNA_STM32_F303/board.h lines 48-90
  • ADC channels: hardware.h lines 31-36