Skip to content

Three-Wire Digitally Controlled Potentiometer driver for ESP-IDF

License

Notifications You must be signed in to change notification settings

nopnop2002/esp-idf-x9c103

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

esp-idf-x9c103

Three-Wire Digitally Controlled Potentiometer driver for ESP-IDF.

ESP32 has two 8-bit DAC (digital to analog converter) channels, connected to GPIO25 (Channel 1) and GPIO26 (Channel 2).
However, the maximum voltage is up to VDD.
If you control a voltage up to 5V, you can use this.

And ESP32Sx/ESP32Cx core does not have a DAC function.

  • X9C102 = 1kOhms
  • X9C103 = 10kOhms
  • X9C503 = 50kOhms
  • X9C104 = 100kOhms

I ported from here.

Installation

git clone https://github.com/nopnop2002/esp-idf-x9c103
cd esp-idf-x9c103
idf.py set-target {esp32/esp32s2/esp32s3/esp32c3}
idf.py menuconfig
idf.py flash

Configuration

config-top config-x9c103-1 config-x9c103-2

Wirering

Circuit X9C ESP32 ESP32-S2/S3 ESP32-C3
INC -- GPIO33 GPIO38 GPIO3
U/D -- GPIO32 GPIO33 GPIO4
High terminals Vh/Rh --
Vss -- GND GND GND
Wiper terminals Vw/Rw --
Low terminals Vl/Rl --
CS -- GPIO5 GPIO34 GPIO5
Vcc -- 5V 5V 5V

You can change it to any pin using menuconfig.

If you connect to Low terminals = Gnd and High terminals = 5V, 0 to 5V is output to Wiper terminals in 99 steps.

Typical circuit

ESP32-x9c103

API

See here.

Reference

https://github.com/nopnop2002/esp-idf-mcp41010

Releases

No releases published

Packages

No packages published