ES9018 I2C simple volume control

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
It's based on PIC16LF84A and uses rotary encoder to set volume. There is no visual indication of volume level, except PWM signal at RB2. You can attach an analog voltmeter there. Volume level is stored in internal EEPROM at power shutdown. PNP transistor, 3k3, 18k, 39k circuit senses Vdd drop and set RA1 input low, then 470uF capacitor keeps Vdd long enough for the program to store current volume level in EEPROM. LED connected to RB3 goes on after succesfull initial startup write to DAC. Power supplies for DAC and volume controler should start at the same time in order to avoid audible pop when DAC starts first, or maxed volume level when DAC starts after the controller sends initial volume level. Attached schematics, basic program listing, and compiled hex file.
 

Attachments

  • ES9018_I2C_PIC16LF84_Volume.gif
    ES9018_I2C_PIC16LF84_Volume.gif
    14.1 KB · Views: 716
  • ES9018_I2C_PIC16LF84_Volume.zip
    819 bytes · Views: 123
  • ES9018_I2C_PIC16LF84_Volume.txt
    3.9 KB · Views: 151
Simpler version

This version stores the volume level to the eeprom each time you stop adjusting it, with 10 seconds delay. Power voltage level watching circuit has been removed. Also, after power-up, the controler reads volume level from eeprom and writes it to the DAC repeatedly until not succesfully acked. This is in the case of the DAC startup time being longer than the controler startup time.
 

Attachments

  • ES9018_I2C_PIC16LF84_Volume_simple.gif
    ES9018_I2C_PIC16LF84_Volume_simple.gif
    12 KB · Views: 603
  • ES9018_I2C_PIC16LF84_Volume_simple.txt
    4.2 KB · Views: 114
  • ES9018_I2C_PIC16LF84_Volume_simple.zip
    995 bytes · Views: 77
3-digit LED display

It displays ES9018 DAC attenuation register 0 value. Uses separate PIC16F84. Connected to I2C bus of the DAC parallel to volume controller. It may work with controllers other than mine. Latches for driving LED display segments assure flicker-free displaying. I hate multiplexed and flickering displays. It is perfectly visible when you roll your eyes very fast in front of such display.
 

Attachments

  • ES9018_I2C_PIC16LF84_Volume_LED_display.zip
    1.9 KB · Views: 79
  • ES9018_I2C_PIC16LF84_Volume_LED_display.png
    ES9018_I2C_PIC16LF84_Volume_LED_display.png
    136.7 KB · Views: 230
  • 4.jpg
    4.jpg
    68.7 KB · Views: 156
  • 3.jpg
    3.jpg
    62 KB · Views: 132
  • 2.jpg
    2.jpg
    44.1 KB · Views: 460
  • 1.jpg
    1.jpg
    66.3 KB · Views: 474
  • 0.jpg
    0.jpg
    72.6 KB · Views: 503
Wouldn't Arduino based solution be easier to implement? You can control an LCD screen, add IR remote and control other settings of 9018. Plus you can display much more.
On the other hand I have to admit that from all I mentioned above I use only volume control.

Edit: I haven't noticed that it is a very old thread! Can't remember whether Arduino was well know at that time...
 
Last edited:
Wouldn't Arduino based solution be easier to implement? You can control an LCD screen, add IR remote and control other settings of 9018. Plus you can display much more.
On the other hand I have to admit that from all I mentioned above I use only volume control.

Edit: I haven't noticed that it is a very old thread! Can't remember whether Arduino was well know at that time...

Probably- yes
BUT
Almost all articles is unclear, everything is present except basic connections schematics of arduino and other modules. Somehow everything about this arduino is chaotic. People non stop posting the pictures in opperation but without connection diagrams and directing to the links most of them are NOT active...
Every "project" is gravitating to cosmetics - more characters on high tech dispalys...
 
For instance I like this project and topic. I don't mind home made PCBs. :)
And again it is not explained HOW the code will be transferred into the micro-controller?
- Is there any additional hardware between computer and this board? Probably yes?
- Which software to use for communicating with micro-controller?
and so.
Arduino is In these terms less complicated, no need for additional hardware to import codes in modules. Just common USB cable, and Arduino software is good. I tried working booth platforms.
...
But almost everything else stops on this border...
 
Last edited:
BUT
Almost all articles is unclear, everything is present except basic connections schematics of arduino and other modules. Somehow everything about this arduino is chaotic. People non stop posting the pictures in opperation but without connection diagrams and directing to the links most of them are NOT active...
Every "project" is gravitating to cosmetics - more characters on high tech dispalys...
When I did mine I spent lots of time learning how to interface arduino. I wanted to learn as much possible from the project. Also I have found commonly used 4x20 LCD screen too bulky. I had to learn how to use an OLED screen (much nicer cosmetics ;-) ) and adjust the code.

But if one wants just a working HiFIduino then I think it is possible to find easy to follow instructions.

Anyway here is something for everybody.

Just for reference, the link to arduino hookup:
INTRO | H i F i D U I N O
Somewhere 25% through the text there are links to schematics how to hook up an LCD screen, IR receiver, rotary encoder etc.

I am not affiliated with the above web page.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.