# Pin mappings for GPIOs and other components specifically for the pi-interface-board_v1.0 # ====================== # === Digital Inputs === # ====================== # Pin mappings for digital inputs (labeled on housing as 1-8) GPIO_DIGITAL_INPUTS = { 0: 25, # Dig-IN_1 is connected to GPIO_25 1: 16, # Dig-IN_2 is connected to GPIO_16 2: 26, # Dig-IN_3 is connected to GPIO_26 3: 13, # Dig-IN_4 is connected to GPIO_13 4: 6, # Dig-IN_5 is connected to GPIO_6 5: 5, # Dig-IN_6 is connected to GPIO_5 6: 22, # Dig-IN_7 is connected to GPIO_22 7: 24, # Dig-IN_8 is connected to GPIO_24 } # ====================== # === Shift Register === # ====================== GPIO_SHIFT_REG_DATA = 27 GPIO_SHIFT_REG_LATCH = 17 GPIO_SHIFT_REG_CLOCK = 4 # FIXME: numbering in schematic is wrong (inverse) layout / terminal order matches the shift register though (left to right -> 0-7) # Shift Register Channel Assignments SHIFT_REG_CHANNEL_BUZZER = 0 # Buzzer connected to shift register channel 0 SHIFT_REG_CHANNEL_RELAY1 = 2 # Relay 1 connected to shift register channel 2 SHIFT_REG_CHANNEL_RELAY2 = 1 # Relay 2 connected to shift register channel 1 # =============== # ===== ADC ===== # =============== # ADC IC is connected to RPI SPI interface 0 (pins below) ADC_SPI_BUS_NUM = 0 ADC_SPI_DEVICE_NUM = 0 ADC_SPI_CS_PIN = 8 # SPI Chip Select for MCP3208 # MISO_0: GPIO_9 # MOSI_0: GPIO_10 # SCLK_0: GPIO_11 # CE_0: GPIO# MCP3208 (ADC) # Pin mappings for Terminal number to actual ADC channels, including max voltage range ADC_TERMINALS = { 0: {"adc_channel": 1, "max_value": 3.3, "unit": "V"}, # Terminal 0 -> ADC channel 1, max 3.3V 1: {"adc_channel": 0, "max_value": 3.3, "unit": "V"}, # Terminal 1 -> ADC channel 0, max 3.3V 2: {"adc_channel": 3, "max_value": 5, "unit": "V"}, # Terminal 2 -> ADC channel 3, max 5V 3: {"adc_channel": 2, "max_value": 5, "unit": "V"}, 4: {"adc_channel": 5, "max_value": 12, "unit": "V"}, 5: {"adc_channel": 4, "max_value": 24, "unit": "V"}, 6: {"adc_channel": 7, "max_value": 20, "unit": "mA"}, # Terminal 6 -> ADC channel 7, max 20mA 7: {"adc_channel": 6, "max_value": 20, "unit": "mA"}, } # Alternative to ADC_CHANNELS list have separate constants for the channels (more intuitive) ADC_CHANNEL_T0__0_TO_3V3 = 1 ADC_CHANNEL_T1__0_TO_3V3 = 0 ADC_CHANNEL_T2__0_TO_5V = 3 ADC_CHANNEL_T3__0_TO_5V = 2 ADC_CHANNEL_T4__0_TO_12V = 5 ADC_CHANNEL_T5__0_TO_24V = 4 ADC_CHANNEL_T6__0_TO_20MA = 7 ADC_CHANNEL_T7__0_TO_20MA = 6 # ==================== # === SPI Terminal === # ==================== SPI_BUS_NUM = 1 # MISO_1: GPIO_19 # MOSI_1: GPIO_20 # SCLK_1: GPIO_21 # CE_1: GPIO_7 # ==================== # === I2C Terminal === # ==================== GPIO_I2C_SDA = 2 GPIO_I2C_SCL = 3 # =================== # === PWM outputs === # =================== GPIO_PWM1 = 18 # RPI_PWM0 GPIO_PWM2 = 12 # RPI_PWM0 too # ==================== # === UART / RS485 === # ==================== GPIO_UART_TX = 14 # RPI TXD GPIO_UART_RX = 15 # RPI RXD GPIO_UART_DIR = 23