Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use x9c104: Examples, Pinouts, and Specs

Image of x9c104
Cirkit Designer LogoDesign with x9c104 in Cirkit Designer

Introduction

The X9C104 is a digital potentiometer manufactured in China, designed to provide variable resistance control through a digital interface. With a resistance range of 100kΩ, it is a versatile component suitable for a variety of applications. The X9C104 allows precise adjustment of resistance values, making it ideal for use in volume control, signal conditioning, sensor calibration, and other applications requiring fine-tuned resistance settings.

Explore Projects Built with x9c104

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32-Controlled Multi-Display Interactive System with Pushbutton Inputs
Image of ORBS: A project utilizing x9c104 in a practical application
This circuit consists of multiple GC9A01 display modules interfaced with an ESP32 microcontroller. The ESP32 controls the reset (RST), chip select (CS), data/command (DC), serial data (SDA), and serial clock (SCL) lines of each display, allowing for individual communication with each screen. Additionally, there are pushbuttons connected to the ESP32, which could be used for user input to control the displays or other functions within the circuit.
Cirkit Designer LogoOpen Project in Cirkit Designer
Dual GC9A01 Displays Interface with ESP32 for Dynamic Visual Output
Image of spooky eyes: A project utilizing x9c104 in a practical application
The circuit features an ESP32 Devkit V1 microcontroller connected to two GC9A01 display modules. The displays are wired in parallel for control signals but have separate chip select lines, enabling independent operation of each display from the ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Powered NTP Clock with Multiple GC9A01 Displays
Image of InfoOrbsFork: A project utilizing x9c104 in a practical application
This circuit features an ESP32 microcontroller connected to multiple GC9A01 displays and a USB Type C breakout for power. The ESP32 runs a sketch to retrieve the current time from an NTP server over WiFi and displays the hours and minutes across the GC9A01 displays, with each display showing a single digit or colon separator. Pushbuttons are connected to GPIOs on the ESP32, potentially for user input to control display functions or settings.
Cirkit Designer LogoOpen Project in Cirkit Designer
Solar-Powered STM32-Based Automation System with Matrix Keypad and RTC
Image of soloar cleaner : A project utilizing x9c104 in a practical application
This circuit features an STM32F103C8T6 microcontroller interfaced with a membrane matrix keypad for input, an RTC DS3231 for real-time clock functionality, and a 16x2 I2C LCD for display. It controls four 12V geared motors through two MD20 CYTRON motor drivers, with the motor power supplied by a 12V battery regulated by a buck converter. The battery is charged via a solar panel connected through a solar charge controller, ensuring a renewable energy source for the system.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with x9c104

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of ORBS: A project utilizing x9c104 in a practical application
ESP32-Controlled Multi-Display Interactive System with Pushbutton Inputs
This circuit consists of multiple GC9A01 display modules interfaced with an ESP32 microcontroller. The ESP32 controls the reset (RST), chip select (CS), data/command (DC), serial data (SDA), and serial clock (SCL) lines of each display, allowing for individual communication with each screen. Additionally, there are pushbuttons connected to the ESP32, which could be used for user input to control the displays or other functions within the circuit.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of spooky eyes: A project utilizing x9c104 in a practical application
Dual GC9A01 Displays Interface with ESP32 for Dynamic Visual Output
The circuit features an ESP32 Devkit V1 microcontroller connected to two GC9A01 display modules. The displays are wired in parallel for control signals but have separate chip select lines, enabling independent operation of each display from the ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of InfoOrbsFork: A project utilizing x9c104 in a practical application
ESP32-Powered NTP Clock with Multiple GC9A01 Displays
This circuit features an ESP32 microcontroller connected to multiple GC9A01 displays and a USB Type C breakout for power. The ESP32 runs a sketch to retrieve the current time from an NTP server over WiFi and displays the hours and minutes across the GC9A01 displays, with each display showing a single digit or colon separator. Pushbuttons are connected to GPIOs on the ESP32, potentially for user input to control display functions or settings.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of soloar cleaner : A project utilizing x9c104 in a practical application
Solar-Powered STM32-Based Automation System with Matrix Keypad and RTC
This circuit features an STM32F103C8T6 microcontroller interfaced with a membrane matrix keypad for input, an RTC DS3231 for real-time clock functionality, and a 16x2 I2C LCD for display. It controls four 12V geared motors through two MD20 CYTRON motor drivers, with the motor power supplied by a 12V battery regulated by a buck converter. The battery is charged via a solar panel connected through a solar charge controller, ensuring a renewable energy source for the system.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Audio volume control
  • Signal conditioning in analog circuits
  • Sensor calibration and tuning
  • Adjustable gain in amplifiers
  • Programmable resistor networks

Technical Specifications

The X9C104 is a 100kΩ digital potentiometer with 100 wiper positions, allowing for fine-grained resistance adjustments. It operates via a simple digital interface, making it easy to integrate into microcontroller-based systems.

Key Specifications

Parameter Value
Resistance Range 100kΩ
Number of Wiper Steps 100
Wiper Resistance 40Ω (typical)
Supply Voltage (Vcc) 2.7V to 5.5V
Operating Current 3mA (typical)
Standby Current 1µA (typical)
Interface Up/Down control with CS pin
Operating Temperature -40°C to +85°C
Package Type 8-pin DIP/SOIC

Pin Configuration and Descriptions

The X9C104 is an 8-pin device. The table below describes each pin:

Pin Number Pin Name Description
1 CS Chip Select: Activates the device when pulled low.
2 INC Increment: Adjusts the wiper position when toggled.
3 U/D Up/Down: Determines the direction of wiper movement (high = up, low = down).
4 Vss Ground: Connect to system ground.
5 Vw Wiper Terminal: Connect to the adjustable output.
6 Vl Low Terminal: Connect to the lower end of the resistor.
7 Vh High Terminal: Connect to the upper end of the resistor.
8 Vcc Power Supply: Connect to a 2.7V to 5.5V power source.

Usage Instructions

The X9C104 is straightforward to use in a circuit. It requires a digital control signal to adjust the resistance between its terminals. Below are the steps and considerations for using the X9C104:

Basic Circuit Connection

  1. Power Supply: Connect the Vcc pin to a 2.7V to 5.5V power source and the Vss pin to ground.
  2. Resistor Terminals: Connect Vh to the high end of the resistor network, Vl to the low end, and Vw to the adjustable wiper output.
  3. Control Pins:
    • Connect the CS pin to a digital output pin of a microcontroller.
    • Connect the INC pin to another digital output pin for toggling the wiper position.
    • Connect the U/D pin to a digital output pin to set the direction of wiper movement.

Important Considerations

  • The CS pin must be pulled low to enable the device. When CS is high, the device is inactive.
  • The INC pin must be toggled (high to low) to adjust the wiper position. The U/D pin determines whether the wiper moves up or down.
  • The wiper position is non-volatile, meaning it retains its position even after power is removed.

Example: Using X9C104 with Arduino UNO

Below is an example of how to control the X9C104 using an Arduino UNO:

// Define pin connections for the X9C104
const int CS_PIN = 10;  // Chip Select pin
const int INC_PIN = 9;  // Increment pin
const int UD_PIN = 8;   // Up/Down pin

void setup() {
  // Set pin modes
  pinMode(CS_PIN, OUTPUT);
  pinMode(INC_PIN, OUTPUT);
  pinMode(UD_PIN, OUTPUT);

  // Initialize pins
  digitalWrite(CS_PIN, HIGH);  // Disable the device initially
  digitalWrite(INC_PIN, HIGH); // Set INC to high
  digitalWrite(UD_PIN, LOW);   // Set direction to down
}

void loop() {
  // Example: Increase resistance by 10 steps
  digitalWrite(CS_PIN, LOW);  // Enable the device
  digitalWrite(UD_PIN, HIGH); // Set direction to up

  for (int i = 0; i < 10; i++) {
    digitalWrite(INC_PIN, LOW);  // Toggle INC pin
    delay(1);                    // Short delay
    digitalWrite(INC_PIN, HIGH); // Complete the toggle
    delay(1);                    // Short delay
  }

  digitalWrite(CS_PIN, HIGH); // Disable the device
  delay(1000);                // Wait for 1 second

  // Example: Decrease resistance by 5 steps
  digitalWrite(CS_PIN, LOW);  // Enable the device
  digitalWrite(UD_PIN, LOW);  // Set direction to down

  for (int i = 0; i < 5; i++) {
    digitalWrite(INC_PIN, LOW);  // Toggle INC pin
    delay(1);                    // Short delay
    digitalWrite(INC_PIN, HIGH); // Complete the toggle
    delay(1);                    // Short delay
  }

  digitalWrite(CS_PIN, HIGH); // Disable the device
  delay(1000);                // Wait for 1 second
}

Best Practices

  • Use decoupling capacitors (e.g., 0.1µF) near the Vcc pin to stabilize the power supply.
  • Avoid toggling the INC pin too quickly; ensure a minimum pulse width of 1µs.
  • Ensure the CS pin is high when not adjusting the wiper to prevent unintended changes.

Troubleshooting and FAQs

Common Issues

  1. Wiper Position Not Changing:

    • Ensure the CS pin is pulled low during adjustments.
    • Verify that the INC pin is toggled correctly with sufficient delay.
  2. Incorrect Resistance Output:

    • Check the connections to Vh, Vl, and Vw.
    • Ensure the U/D pin is set to the correct direction.
  3. Device Not Responding:

    • Verify the power supply voltage is within the specified range (2.7V to 5.5V).
    • Check for loose or incorrect connections.

FAQs

Q: Can the X9C104 retain its wiper position after power is removed?
A: Yes, the X9C104 has non-volatile memory and retains its wiper position even after power is disconnected.

Q: What is the maximum current the wiper can handle?
A: The wiper can handle a maximum current of 1mA. Exceeding this limit may damage the device.

Q: Can I use the X9C104 with a 3.3V microcontroller?
A: Yes, the X9C104 operates within a supply voltage range of 2.7V to 5.5V, making it compatible with 3.3V systems.

Q: How precise is the resistance adjustment?
A: The X9C104 provides 100 discrete wiper positions, allowing for fine-grained resistance adjustments.