CE328 Firmware


Creative Commons License

CE328 Firmware by CE-Designs is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at http://hifiduino.wordpress.com/code/.

This firmware is a derivative of the CE644 Firmware, but is less sophisticated. It is to be used with a Arduino Uno in combination with the Buffalo Shield and the 'I2C LCD extra IO' from electroFUN. This firmware has the I2C address of the 'I2C LCD extra IO' set to 0x20 by default. This can easily be changed at the beginning of the code in case the 'I2C LCD extra IO' has a different address. In contrast to the CE644 firmware the DAC version (BII, BIII or BIIISE), output (stereo, dual mono), clock frequency (80 MHz, 100 MHz) and output phase (in phase, anti phase) need to be set in the 'configuration part' in the code. The 'configuration part' can also be found at the beginning of the code. Only minimal coding experience should be enough to get it working.

The firmware works with all Apple remotes, no IR learning functions is available.

There's no manual available, but it shares all it's functions with the CE644 Firmware making the CE644 firmware manual applicable. Note that the pinout from the Arduino Uno is different, so the pins used for input switching do not correspond to the pin numbers as in the manual. The table below shows which pins are to be used for input switching and what their pinstate's are while in S/PDIF or PCM/DSD mode.

6 Sidecar LOW HIGH
7 OTTO-II 2:1 Mux   LOW /HIGH

In order to use the code the LiquidCrystal library from F Malpartida needs to be used. Download it, unpack the files and folders and replace the original LiquidCrystal library by the new one in the libraries folder of the Arduino software. Restart the Arduino software for the changes to take effect. 

IMPORTANT: When using version 1.01 or older it is important to perform a factory reset when running the firmware for the first time! Otherwise the firmware will not work correct.



Latest version:


Older versions:



Verson: Changes:
Version 1.1

Changed the way I2S, Spd or DSD is indicated on the screen.Now the physical input number is is shown with a space after indicating I2S, Spd or DSD.

Added a check to see if the firmware is installed for the first time, when it's the first install it will write all needed settings to the EEPROM.

Corrected some minor display errors.

Version 1.01 The last selected input was not be selected again after a power cycle.  
The error was found in the 'startDac2' function