The X9C102, X9C103, X9C104, X9C503 are digitally controlled (XDCP) potentiometers. The device consists of a resistor array, wiper switches, a control section, and nonvolatile memory. The wiper position is controlled by a three-wire interface.
⚠️ THIS FEATURE IS AVAILABLE ON CC2652 or CC1352 CHIPS ONLY
Connecting X9C10X to a Zigbee module
From X9C10X to a Zigbee module:
GND: connected to GND on a Zigbee module.
CS (chip select): Connected to any pin configured as X9C100 (P00 – DIO0, see below).
INC (increment): Connected to any pin configured as I2C SCL/SPI CLK (e.g., P02 – DIO2).
U/D (up/down): : Connected to any pin configured as an additional parameter (e.g., P04 – DIO4).
VCC: Connected to 3.3V.
Firmware configuration
Remember state – if this option is active, the firmware remembers the last level and restores it after power up. Otherwise, the firmware sets the maximum resistance on the X9C10X output (VL – VW).
Pin (Up/Down) – it is the “U/D” pin. It has the same pull-up resistor settings as the master output pin.
Transition time (ms) – if this interval is not zero, the firmware smoothly changes the output resistance between two states.
Linked input – the mode of the linked input that controls this output.
Zigbee commands
The device acts as a level control device. You can change the level from 0 to 255, and the firmware scales it to 0 – 99 levels in X9C10X. When you set the zero level in Zigbee, the firmware forcibly makes 99 steps down. It allows synchronizing levels between the device and Zigbee. In other cases, the firmware calculates a difference and makes the necessary number of steps up or down.
Zigbee cluster: ZCL_CLUSTER_ID_GEN_LEVEL_CONTROL
Zigbee attributes: ATTRID_LEVEL_CURRENT_LEVEL (uint8)
Zigbee commands: read, write, moveToLevel, moveToLevelWithOff
Zigbee2MQTT commands
on/off - The "Off" command sets the minimum level, and the "On" command restores the last level (before off). Look for commands and examples for GPIO outputs.
write - sets the level. Topic: zigbee2mqtt/[friedly_name]/[channel]/set/brightness Channel: l1, l2, l3 … l16 Payload: value (0 - 255)
Topic: zigbee2mqtt/[friedly_name]/set/[channel] Channel: l1, l2, l3 … l16 Payload: {"brightness": value, "transition": 3} value - 0 - 255. transition - (optional) the transition time in seconds between states.
read - reads the current value Topic: zigbee2mqtt/[friedly_name]/[channel]/get/brightness Payload: none Returns: {"brightness_[channel]": value}
mb
Hi,
why is it nor available on cc2530 ? Board capabilities issue or not developed yet ?
Thanks
Owner
It is not available in the router firmware. Too small memory.
mb
Thanks for your reply 🙂