Skip to content

Vortex V1 pin map

Every functional pin and ADC channel of the Vortex V1 motor controller board, generated from src/hf_functional_pin_config_vortex_v1.hpp.

The MCU is an ESP32-C6. Besides its own GPIOs, the board routes control and status signals through a PCAL95555 I/O expander (I²C address 0x20) and two GPIOs of the TMC9660 motor controller. Select it with HARDFOC_BOARD_VORTEX_V1. The board HAL is documented at hf-hal-vortex-v1.

GPIO

Source: src/hf_functional_pin_config_vortex_v1.hpp, HF_FUNCTIONAL_GPIO_PIN_LIST (34 rows).

Function Category Chip Pin Active Pull Drive Max (mA)
XTAL_32K_P core MCU 0 high none push-pull 0
XTAL_32K_N core MCU 1 high none push-pull 0
BOOT_SEL core MCU 9 high none push-pull 0
JTAG_USB_D_N core MCU 12 high none push-pull 0
JTAG_USB_D_P core MCU 13 high none push-pull 0
SPI2_MISO comm MCU 2 high up push-pull 40
SPI2_SCK comm MCU 6 high none push-pull 40
SPI2_MOSI comm MCU 7 high none push-pull 40
SPI2_CS_TMC9660 comm MCU 18 low up push-pull 40
SPI2_CS_AS5047 comm MCU 20 low up push-pull 40
UART_RXD comm MCU 4 high up push-pull 40
UART_TXD comm MCU 5 high none push-pull 40
TWAI_TX comm MCU 14 high up push-pull 40
TWAI_RX comm MCU 15 high up push-pull 40
I2C_SDA comm MCU 21 high up push-pull 40
I2C_SCL comm MCU 22 high up push-pull 40
I2C_PCAL95555_INT comm MCU 23 low up push-pull 40
WS2812_LED_DAT comm MCU 3 high none push-pull 40
EXT_GPIO_CS_1 gpio MCU 19 low up push-pull 40
EXT_GPIO_CS_2 gpio MCU 8 low up push-pull 40
PCAL_TMC_FAULT_STATUS gpio PCAL95555 3 low none push-pull 25
PCAL_TMC_DRV_EN gpio PCAL95555 4 high none push-pull 25
PCAL_TMC_RST_CTRL gpio PCAL95555 5 high none push-pull 25
PCAL_PWR_GOOD gpio PCAL95555 6 high none push-pull 25
PCAL_CAN_HS_STB_OP gpio PCAL95555 10 high none push-pull 25
PCAL_IMU_BOOT gpio PCAL95555 11 low none push-pull 25
PCAL_IMU_INT gpio PCAL95555 12 low none push-pull 25
PCAL_IMU_RST gpio PCAL95555 15 low none push-pull 25
PCAL_TMC_SPI_COMM_EN gpio PCAL95555 13 low none push-pull 25
PCAL_TMC_WAKE_CTRL gpio PCAL95555 14 low none push-pull 25
PCAL_TMC_GPIO17_EXP_IN gpio PCAL95555 1 high none push-pull 25
PCAL_TMC_GPIO18_EXP_IN gpio PCAL95555 2 high none push-pull 25
TMC_GPIO17 gpio TMC9660 17 high none push-pull 25
TMC_GPIO18 gpio TMC9660 18 high none push-pull 25

Pin is the GPIO number on the MCU, the port bit (0 to 15) on the PCAL95555 and the GPIO number on the TMC9660. Active low means the row is PIN_LOGIC_INVERTED.

One net, two rows

TMC9660 GPIO17 and GPIO18 are wired to PCAL95555 inputs 1 and 2. PCAL_TMC_GPIO17_EXP_IN and PCAL_TMC_GPIO18_EXP_IN sample them at the expander; TMC_GPIO17 and TMC_GPIO18 configure and drive them inside the TMC9660. Both views see the same nets.

ADC

Source: src/hf_functional_pin_config_vortex_v1.hpp, HF_FUNCTIONAL_ADC_CHANNEL_LIST (15 rows).

Function Chip Channel Bits Full scale (mV) Divider Description
TMC9660_AIN0 TMC9660 0 16 3300 1.0 TMC9660 ADC Input 0 (Reserved)
TMC9660_AIN1 TMC9660 1 16 3300 1.0 TMC9660 ADC Input 1 (Reserved)
TMC9660_AIN2 TMC9660 2 16 3300 1.0 TMC9660 ADC Input 2 (Reserved)
TMC9660_AIN3 TMC9660 3 16 3300 1.0 TMC9660 ADC Input 3 (Temperature Sensor)
TMC9660_CURRENT_I0 TMC9660 10 16 3300 1.0 TMC9660 Current Sense I0
TMC9660_CURRENT_I1 TMC9660 11 16 3300 1.0 TMC9660 Current Sense I1
TMC9660_CURRENT_I2 TMC9660 12 16 3300 1.0 TMC9660 Current Sense I2
TMC9660_CURRENT_I3 TMC9660 13 16 3300 1.0 TMC9660 Current Sense I3
TMC9660_SUPPLY_VOLTAGE TMC9660 20 16 3300 1.0 TMC9660 Supply Voltage
TMC9660_DRIVER_VOLTAGE TMC9660 21 16 3300 1.0 TMC9660 Driver Voltage
TMC9660_CHIP_TEMPERATURE TMC9660 30 16 3300 1.0 TMC9660 Chip Temperature
TMC9660_EXTERNAL_TEMPERATURE TMC9660 31 16 3300 1.0 TMC9660 External Temperature
TMC9660_MOTOR_CURRENT TMC9660 40 16 3300 1.0 TMC9660 Motor Current
TMC9660_MOTOR_VELOCITY TMC9660 41 16 3300 1.0 TMC9660 Motor Velocity
TMC9660_MOTOR_POSITION TMC9660 42 16 3300 1.0 TMC9660 Motor Position

The ESP32-C6 ADC channels are present in the header as comments and are not part of the map.