I was going to wait until I had gotten to the point that I had a version that I could call “v1” but a fellow DIYer kind of forced my hand. So this is v.0.91g. (Note: As always, the code on this page may not be the current one, i.e. there may be a newer version available. The latest version is always up at the project’s official page.)
I have included in the ZIP file all of the necessary fonts, but you will also need the UTFT library. You should get it from here.
There is a number of things that you should keep in mind:
The code supports both the MEGA as well as the Due. You have to set the appropriate setting in the code. It is not hard to find.. search for #define ARDUMEGA
Keep in mind that the rotary encoder does not yet work on the Due. The relevant code is still a little buggy, but it should be fixed soon. Also the selection bars are buggy as well..
This version of the code requires the addition of a 24LC256 EEPROM chip. That is necessary in order to support the Due, since it does not have any on-chip EEPROM. You should wire it like this (making the necessary connections to the correct pins SDA/SCL for the MEGA/Due): http://www.hobbytronics.co.uk/arduino-external-eeprom
If you plan on using a MEGA (even though I would advise against it, see the video that follows) you could easily adapt the code to use the MEGA’s EEPROM (essentially use the original hifiduino code for the specific functionality) and omit the 24LC256.
You should use a compatible remote control. You will know it is compatible if you see the IR codes displaying on the top right of the screen when you press the various keys. You will need to change the IR codes in the code to the numbers corresponding to your specific remote control (see CASE statement).
I have implemented a remote power on/off feature but the TFT’s backlight remains on all the time. That can easily be remedied by wiring a transistor as control for the TFT’s backlight.. However, since I plan on implementing dimming for the TFT, I will do it more elegantly in a future version of the code.
This version of the code supports all 8 s/pdif inputs of the ES9018 as well as a 9th input (named USB) which is used for I2S/DSD input. You can of course easily change the number of the inputs as well as their names. I am using a sidecar for the switching between I2S & s/pdif.
Finally, here is a short video comparing the performance of the MEGA versus the Due: