ES9018 I2C controller

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Correct, it's like controlling a dual mono.
The output should be in-phase (assuming I understood correctly your question :eek:)
Any other changes to the code? This is very easy to implement. If this is all I'll start to add the multichannel option real soon. It will be accessible from the interface, so no additional coding is required when you want to set it to multichannel.
 
Any other changes to the code? This is very easy to implement. If this is all I'll start to add the multichannel option real soon. It will be accessible from the interface, so no additional coding is required when you want to set it to multichannel.

That would be great.
As I remember no other changes are needed
Anyway I just ordered a PCB, so I can test it :)
 
You got a PM.

Well I have not been doing some proper investigation on the miniDSP products, but I assumed that I can use them to take both analog and digital signals and use it for volume control. Perhaps a descent analog volume control is better.

Thx! :)

You could allways do what MR. Russ White suggested to me for analog volume control with a COD based DAC.

Russ White @ TPA forum said:
What you could do if you were using only the SE output of the legato would be to lift the input side of the resistors at the BAL/SE stage and inject the JT in front of it. But that would only work for single ended output. This would also take some value fiddling on the JT to compensate for the impedance into it.

It would be much simpler with IVY3. You would simply put a JT between the first and second stage of each half after removing the first series resistors that form the low pass filter. The JT itself would then provide that impedance since it is almost constant 750R. That solution would work quite well.

I am sure that TPA would give you some hints as to how to control the Joshua tree with your controller.

Edit: If you are running dual mono with seporate IV stages the first suggestion from TPA applies
 
Last edited:
Just a quick question to clarify something.

Will the DAC not be isolated from the controller when using the controller to switch the sidecar?

Edit: PS. Perhaps an idea to have a link to the CE644 Firmware Manual v1.0 on the "Manuals" tab on your site as well as on the "Downloads" section.
When connecting D21 directly to the sidecar you need to share grounds. Otherwise it won't work. When sharing grounds there is no isolation anymore. If you want to truly isolate the controller from the DAC you need to use a relay, digital isolator or other solution to isolate the pins for input switching as well.
 
Looks very cool. A couple of questions:

1) Have you tested it with an OLED display? Specifically, I'm interested in the New Haven 20x4 OLED displays (e.g., the NHD‐0420DZW‐AY5). I've been wrestling with using a port expander with one of these displays for quite some time (Hacking an Arduino Library to support a NewHaven OLED with an MCP23008 port expander | BuffaloDac). I'm guessing the CE644 probably won't work with this type of display w/o some code modification, but I'd love to be wrong. Ultimately, I may have to give up on this display, but I really prefer the look of an OLED to an LCD.

2) What are the dimensions of the mounting holes on the CE644? The center point of the mounting holes on my New Haven OLED are 93 mm apart in width and 55mm apart in height. Will it fit?

3) Are there enough free pins w/ interrupt functionality to support a second rotary encoder? I'd like to make a system with a dial for controlling input/settings and a dial for controlling volume/mute.
 
Looks very cool. A couple of questions:

1) Have you tested it with an OLED display? Specifically, I'm interested in the New Haven 20x4 OLED displays (e.g., the NHD‐0420DZW‐AY5). I've been wrestling with using a port expander with one of these displays for quite some time (Hacking an Arduino Library to support a NewHaven OLED with an MCP23008 port expander | BuffaloDac). I'm guessing the CE644 probably won't work with this type of display w/o some code modification, but I'd love to be wrong. Ultimately, I may have to give up on this display, but I really prefer the look of an OLED to an LCD.

2) What are the dimensions of the mounting holes on the CE644? The center point of the mounting holes on my New Haven OLED are 93 mm apart in width and 55mm apart in height. Will it fit?

3) Are there enough free pins w/ interrupt functionality to support a second rotary encoder? I'd like to make a system with a dial for controlling input/settings and a dial for controlling volume/mute.

Sorry for the late responds.

I'm currently testing it with the same OLED, but I have the same issue that you had. No custom characters. When I try to display these the OLED stampedes. I had a look at your code, but I can not use these exact same code with my expander. I'm using the PCF8574at. I still have some ideas to try out, so using OLED is not possible for the moment. Work in progress :)

The center points of the mounting holes are exactly the same as your OLED and as other 20x4 HD44780 LCD's as well.

There are enought free pins to a a second rotary encoder, no problem. Pin 2, 10 and 11 can be used for the external interrupt routines. Pin 2 is already used for the encoder, but pin 10 and 11 are free to use for any application that uses the interrupt routines, f.i. adding some more encoders.
 
IR learning code

I finished the learning code for the IR codes.:)
Now the firmware is able to learn the IR codes of most commonly used IR protocols. I tested it with all my remotes I have at home and they all worked just fine. Most of these are using the NEC or RC5 protocols.

I also designed a new version of the PCB. This new version includes a two channel digital isolator (ADUM1200) which I will be using to fully isolate the pins used for input switching at the OTTO or my 4:1 Mux. In the previous version it was only possible to use the I2C isolator to isolate it from my DAC, but the pins used for input switching where not isolated. This meant that there still was no real isolation, unless a relay was used to do the switching (which I did :rolleyes:)
 
Hi Robert,
I purchased on of your controllers and finally had a chance to hook it up. It is working fine. I like the simplified display and it is much easier to change settings with the remote than using the push button. The volume numbers go the opposite way than they did with the HI Fiduino code. (they go up when volume is increased). I assume this is by design? What kind of relay do you use for the sidecar and power?

Overall I am very happy with your controller. Thank you for making this available.
Mike
 
My pleasure.

I reversed the volume numbers :). This can easily be undone. Look for all lines that contain "99-(dimval\2)" and change it to "(dimval\2)"

You only have to use a relay when you want the controller to be isolated from your DAC. Any 5v relay will do for the sidecar, but since it does no have to switch large currents I suggest using a small signal relay. This is also more energy efficient.

The relay for power also has to operate at 5v. It should be able to switch larger currents,so make sure it can switch a few amperes. I'm using an Omron G6B-1174P-US. This type can handle currents up to 8 amperes. A bit of overkill. At least I do not have to worry about frying the relay.
 
Hello, Corpius.

I've downloaded your CE328 code and I wonder what did you use to compile it?
So far I have been using the hifiduino code with Arduino 1.02, reports some warning during compile but it's OK. Your code compiles but when I upload it don't have input names, just 6 rectangles and it's very slow, doesn't react on encoder rotation(don't have apple remote). Watched your youtube video and I supposed it should behave like that.
At the moment I'm trying to implement some TI ISOs 7220 (iso1540 already on the breadboard area of your shield working fine) for OTTO II and SIDECAR control. I think their power supply should be totaly separated and for otto very clean.
Thanks for great effort and I hope you can help.
 
I'm using Visual Studio to write and compile the code. You need the Visual Micro plugin for it to work. I think that Atmel (Visual) Studio does also work, but I'm not sure about that.

The reason that you don't see input names is that you did not perform a reset from the menu. You need to have a remote for this. However I just uploaded a new version that does the reset for you when you have never done this before. Also some minor errors are corrected in this new version.

The Terminal A & B of rotary encoder should connect to pin 2 and pin 4. The switch of the rotary encoder should connect to pin 5.
 
Thanks Corpius, :worship:
It's working now but I still need the remote to get in the menu. I have the remote from yamaha av receiver with IR learning capabilities but need original apple remote to set it up:headbash:. I know the apple tv code for the latest yamaha remotes but this code doesn't apply for my remote :no:.
 
Thanks Corpius, :worship:
It's working now but I still need the remote to get in the menu. I have the remote from yamaha av receiver with IR learning capabilities but need original apple remote to set it up:headbash:. I know the apple tv code for the latest yamaha remotes but this code doesn't apply for my remote :no:.
U're welcome!

You can use the serial monitor to find out which codes your Yamaha remote is using.

uncomment the first line in the setup() function:

Serial.begin(9600); // for debugging

Comment the second last line in the getIRkey() function:

//c3>>= 1; // Discard the least significant bit

Add the next line to the end getIRkey() function before the return (c1+c2+C3);. Upload and watch the code appear on the Serial monitor when you press a key.

Serial.println(c1 + c2 +c3, DEC);

Write down the code for each key. Then go to the loop() function and change all the numbers in the switches in a way that they correspond to the numbers you have written down.
 
Robert,
I noticed in your user manual v1.21 you say, "When using the non-isolated I2C breakout connect it to the DAC’s I2C header by means of a logic level converter." I have connected my DAC directly as was recommended in the previous version of your user manual. I do have a logic level converter that I used with the Arduino but I assumed that it was not needed here. Wouldn't the same result be achieved by simply using the isolated i2c breakout?
Thanks, Mike
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.