XStore

Choosing Expansion Modules

Updated on September 15, 2026

5 min read

A step-by-step tutorial for planning valid NORVI X CPU + expansion module combinations.

Every NORVI X expansion module talks to the CPU over a shared I2C bus, while a few use a dedicated interface instead. Because devices on the same bus must have unique I2C addresses, each type of expansion chip has a limited number of addresses available. This limits how many modules of that type can be stacked on one CPU.

This tutorial explains how to determine which NORVI X expansion modules can be combined and how many of each can be used in a system.

Two ways modules connect to the CPU #

I2C bus (most modules): X-DI8, X-DA8, X-R4, X-R8, X-Q8, X-DI16, X-Q16, X-AV4, X-AI4, X-AQ4, X-T4, X-TC4, X-MX4 and X-RTD4 share the same I2C bus. Each module is identified by a unique address configured using its DIP switch.

Direct GPIO (a few modules): X-DI4, X-Q4 and X-UARTIO skip I2C communication and connect directly to dedicated GPIO pins on the CPU. Their limitations depend on the physical GPIO pins available rather than I2C address counts.

Understand what’s actually behind each module #

Most of the NORVI X expansion line-up communicates with the CPU over I2C. Several different chips are used across these modules, and modules that share the same chip also share the same limited pool of I2C addresses.

X-DI4, X-Q4 and X-UARTIO are exceptions because they use dedicated GPIO pins instead.

NORVI X CPU compatibility with NORVI expansion modules
NORVI X CPU compatibility with NORVI expansion modules
Chip TypeModules Using ItMaximum on One CPU
PCA9538 8-bit GPIO expanderX-DI8, X-DA8, X-R4, X-R8, X-Q8, X-MX44
PCA9555 16-bit GPIO expanderX-DI16, X-Q168
ADS1115 16-bit ADCX-AV4, X-AI4, X-MX4, X-T44
STM32 MicrocontrollerX-AQ4, X-RTD4, X-TC416

All devices on the same I2C bus must have a unique address. A chip with only four configurable addresses can therefore appear only four times on one CPU, regardless of which modules using that chip are selected.

Check for GPIO pin conflicts #

Three modules, X-DI4, X-Q4 and X-UARTIO, use dedicated GPIO pins directly on the CPU rather than relying entirely on I2C communication.

X-DI4 and X-UARTIO use the same GPIO pins, creating a direct pin conflict. Therefore, they cannot be installed together.

NORVI X direct GPIO expansion module compatibility
NORVI X direct GPIO expansion module compatibility
CombinationResult
X-UARTIO + X-DI4 + X-Q4Cannot use all three together
X-UARTIO + X-DI4Cannot use due to pin conflict
X-DI4 + X-Q4Can use
X-UARTIO + X-Q4Can use
Expansion ModuleGPIO Pins Used
NORVI X-DI4GPIO5, GPIO6, GPIO7, GPIO10
NORVI X-UARTIOGPIO5, GPIO6, GPIO7, GPIO10
NORVI X-Q4GPIO35, GPIO41, GPIO13, GPIO14
Valid and invalid NORVI X direct GPIO expansion module combinations
Valid and invalid direct GPIO module combinations

Rule of thumb: Use either X-DI4 + X-Q4 or X-Q4 + X-UARTIO on a CPU. Do not use all three together, and do not combine X-DI4 with X-UARTIO.

Know the address limit for each chip #

Each I2C chip family provides a fixed number of selectable addresses configured through the module’s DIP switches. This determines the maximum number of modules from that chip family that can share one bus.

PCA9538 – up to 4 modules #

The PCA9538 is used by X-DI8, X-DA8, X-R4, X-R8, X-MX4 and X-Q8. Only four addresses are available, so the total number of PCA9538-based expansion modules connected to a single CPU cannot exceed four.

DIP 1DIP 2DIP 3DIP 4Address
OFFOFF0x73
ONOFF0x72
OFFON0x71
ONON0x70
PCA9538 NORVI X expansion module capacity and address limitations
PCA9538 expansion module capacity and limitations

PCA9555 – up to 8 modules #

The PCA9555 is used by X-DI16 and X-Q16. It provides eight selectable addresses, allowing up to eight modules from this group to be mixed on a single CPU.

The total number of PCA9555-based expansions connected to one CPU cannot exceed eight.

DIP 1DIP 2DIP 3DIP 4Address
OFFOFFOFF0x27
ONOFFOFF0x26
OFFONOFF0x25
ONONOFF0x24
OFFOFFON0x23
ONOFFON0x22
OFFONON0x21
ONONON0x20
PCA9555 NORVI X expansion module capacity and address limitations
PCA9555 expansion module capacity and limitations

ADS1115 – up to 4 modules #

The ADS1115 is used by X-AV4, X-T4, X-MX4 and X-AI4 for analog input. Four addresses are available, so up to four ADS1115-based modules can be connected in any combination.

The total number of ADS1115-based expansion modules connected to a single CPU cannot exceed four.

DIP 1DIP 2DIP 3DIP 4Address
ONOFFOFFOFF0x49
OFFONOFFOFF0x4B
OFFOFFONOFF0x4A
OFFOFFOFFON0x48
ADS1115 NORVI X expansion module capacity and address limitations
ADS1115 expansion module capacity and limitations

STM32-based modules – up to 16 modules each #

X-AQ4, X-TC4 and X-RTD4 each use an STM32 microcontroller as an I2C slave, with 16 selectable addresses of their own.

NORVI X-AQ4 #

The NORVI X-AQ4 expansion module uses an STM32 microcontroller for communication and supports 16 configurable I2C addresses in the 0x5X address range, allowing up to 16 modules on a single I2C bus.

DIP 1DIP 2DIP 3DIP 4Address
OFFOFFOFFOFF0x5F
ONOFFOFFOFF0x57
OFFONOFFOFF0x5B
ONONOFFOFF0x53
OFFOFFONOFF0x5D
ONOFFONOFF0x55
OFFONONOFF0x59
ONONONOFF0x51
OFFOFFOFFON0x5E
ONOFFOFFON0x56
OFFONOFFON0x5A
ONONOFFON0x52
OFFOFFONON0x5C
ONOFFONON0x54
OFFONONON0x58
ONONONON0x50
Maximum NORVI X-AQ4 expansion modules and STM32 I2C addressing
Maximum NORVI X-AQ4 expansion modules

The STM32-based NORVI X-AQ4 provides 16 unique I2C addresses in the 0x5X range. Each address can be used only once on the same I2C bus. Therefore, the total number of X-AQ4 expansion modules connected to a single CPU cannot exceed 16.

NORVI X-RTD4 #

The NORVI X-RTD4 expansion module uses an STM32 microcontroller and supports 16 configurable I2C addresses in the 0x3X address range. This allows up to 16 modules to operate on the same I2C bus without address conflicts.

DIP 1DIP 2DIP 3DIP 4Address
OFFOFFOFFOFF0x3F
ONOFFOFFOFF0x3E
OFFONOFFOFF0x3D
ONONOFFOFF0x3C
OFFOFFONOFF0x3B
ONOFFONOFF0x3A
OFFONONOFF0x39
ONONONOFF0x38
OFFOFFOFFON0x37
ONOFFOFFON0x36
OFFONOFFON0x35
ONONOFFON0x34
OFFOFFONON0x33
ONOFFONON0x32
OFFONONON0x31
ONONONON0x30
Maximum NORVI X-RTD4 expansion modules and STM32 I2C addressing
Maximum NORVI X-RTD4 expansion modules

The STM32-based NORVI X-RTD4 provides 16 unique I2C addresses in the 0x3X address range. Each address can be used only once on the same I2C bus. The total number of X-RTD4 expansions connected to a single CPU cannot exceed 16.

NORVI X-TC4 #

The NORVI X-TC4 expansion module also uses an STM32 microcontroller and supports 16 configurable I2C addresses, enabling up to 16 modules to operate on the same I2C bus without address conflicts.

DIP 1DIP 2DIP 3DIP 4Address
OFFOFFOFFOFF0x18
ONOFFOFFOFF0x17
OFFONOFFOFF0x16
ONONOFFOFF0x14
OFFOFFONOFF0x13
ONOFFONOFF0x12
OFFONONOFF0x11
ONONONOFF0x10
OFFOFFOFFON0x0F
ONOFFOFFON0x0E
OFFONOFFON0x0D
ONONOFFON0x0C
OFFOFFONON0x0B
ONOFFONON0x0A
OFFONONON0x09
ONONONON0x08
Maximum NORVI X-TC4 expansion modules and STM32 I2C addressing
Maximum NORVI X-TC4 expansion modules

The STM32-based NORVI X-TC4 provides 16 unique I2C addresses. Each address can be used only once on the same I2C bus. Therefore, the total number of X-TC4 expansion modules connected to a single CPU cannot exceed 16.

Quick-reference summary #

Keep this table handy when planning a NORVI X CPU and expansion module configuration.

Module GroupMembersMaximum Modules Combined
PCA9538 groupX-DI8, X-DA8, X-R4, X-R8, X-Q8, X-MX44
PCA9555 groupX-DI16, X-Q168
ADS1115 groupX-AV4, X-AI4, X-T4, X-MX44
STM32X-AQ4, X-RTD4, X-TC416
GPIO-pin groupX-DI4, X-Q4, X-UARTIOSee GPIO conflict rule

Checklist before you order or wire anything #

  • Identify the chip family behind every module in your design.
  • Confirm that the total count within each chip family does not exceed its address limit.
  • If using X-DI4, X-Q4 or X-UARTIO, confirm that only a valid GPIO pairing is used.
  • Plan a unique DIP switch setting for every module sharing the same chip family.