The new version of the code is here (v2.13):
TFT_HiFiDuino_v2.xx (14046 downloads )
(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 will also update the code’s official page with the new version of the code.
Three weeks back I released the first public alpha of the ArDAM code, stating that it was very very alpha. I was meaning every word of that sentence.
Since then, Soren has released the new firmware for the DAM and I have resumed work on the project. Today I am happy to release the first usable version of the code (v0.74):
ArDAM1021 Code (99589 downloads )
Changes include but are not limited to:
Tons of bugfixes (volume control, source selection, etc etc).
Filter selection either by remote or via rotary encoder (in the settings).
Option of displaying white text & graphics on black background as well as the “original” look.
A few years back I designed a little Arduino shield who’s main function was to provide electrical isolation between an Arduino and a DAC (specifically a TPA Buffalo III).
The years have passed and my needs have changed with the introduction of the dam1021 DAC and its serial interface. My first though was to design a new shield specific to the dam but then I said “why not design a universal isolator shield?”. It would provide electrical isolation for both I2C as well as serial signalling.
Thus was born the Universal Signal Isolator shield for Arduino DUE & MEGA:
OK, it does look a lot more complicated than my first shield but remember, you only need to solder in the parts that your DAC actually needs.
So, what does this thing do?
1) Electrical isolation of I2C signals, complete with support of 8 isolated inputs or outputs (via an MCP23008 IC). Three of the MCP’s pins are high current outputs (up to 100mA).
2) Electrical isolation of up to 2 serial ports (implemented with an Si8642).
3) Electrical isolation of the second I2C interface of the DUE (implemented with an ADUM1250).
4) Powered either by 5VDC, 8-15VDC (non-regulated) or 7-12VAC (includes support for on-board rectification and filtering).
According to Soren, these are the changes to the firmware:
* PLL Clock Sync at sample rate change cut down to less than 0.2 second * Isolated Serial port now works, note that port is at 3.3V cmos level * Serial Port now interrupt driven, no character loss at high speed * Volume Control now is -80db to +10 db, and phase bug fixed * Volume Control also now have zero crossing detect * Power Off plop can be reduced to 1/3 by adding a single 27K4 resistors, see picture attachment * FIR1 filters doubled in size, so max 2032 coeff @ 44K/48K, 1016 @ 88/96K, 508 @ 176/192K, 127 @ 352/384K * You can now select four sets of filters, named Linear, Mixed, Minimum and Soft. * FIR1 coefficients are now 1.31 format, filters should be good down to around -150 db * Stock filter now have improved deemphasis filter * Input Source Select bug fixed * New mode setting: Normal, Inverted, Balanced Left, Balanced Right * The tiny bug on signal saturation on -full scale fixed * Should now be possible to do balanced and crossovers by parallel the inputs and connecting the isolated serial ports together, more details to follow
I had some difficulty uploading the new firmware but that was due to Windows 10 and ExtraPuTTY not playing along very well. I got an “Error File not found!” message when I was trying to upload the file. When I went to a Windows 8.1 machine everything went as expected. One thing – do not forget to give the “update” command once you have uploaded the code followed by a “y” and return. When the procedure is complete and upon power cycling the board (and entering the “+++” command) you should get something like this:
Both the uManager and FPGA revisions should be 0.99.
The uManager has a few new options:
Plus these are the new built-in filters:
First impressions are very good. The dam now locks much faster to incoming signals, so fast that it’s near instantaneous:
Plus we have very good news on the serial control department. Not only has the isolated serial port been enabled (to be tested asap..) but the RS232 port seems to no longer have problems with my Arduino controller. It probably had something to do with the “Serial Port now interrupt driven, no character loss at high speed” fix. So development of the ArDAM1021 code becomes high priority. 🙂
Zero crossing detection seems to be working fine too – no more glitches during volume adjustments.
All in all I would say this is a pretty good upgrade. Kudos to Soren.
Now looking forward to DSD support on the next upgrade.