Update: TFT HiFiDuino v2.13

I did a little work on the TFT HiFiDuino code, incorporating most of the enhancements I made to the ArDAM1021 code.







These are the enhancements:

  • Option of displaying white text & graphics on black background as well as the “original” look.
  • New encoder code (it requires a new library).

Plus a few minor bugfixes here and there.

The new version of the code is here (v2.13): TFT_HiFiDuino_v2.xx (1651 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.

Soekris dam1021 ArDAM Project update

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 (1339 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.
  • New encoder code (it requires a new library).

The download now also includes all the necessary fonts. Let me know what you think.

The project’s page will be edited later today.

Universal Signal Isolator shield for Arduino DUE & MEGA

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).

5) Support of a 5VDC power relay (up to 100mA).

6) Header for connecting a Nextion display.

7) On-board EEPROM memory (24LC256).

8) And of course full compatibility with the previous shield (same pinouts for the encoders, IR, TFT, etc.).

I will release the Eagle files once I have confirmed that the shield works as expected (I’m waiting for the first (and hopefully last) batch of PCBs).

Soekris dam1021: First major firmware update

A few hours ago Soren released the much-anticipated new firmware for the dam1021: http://www.diyaudio.com/forums/vendors-bazaar/259488-reference-dac-module-discrete-r-2r-sign-magnitude-24-bit-384-khz-328.html#post4421518

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:

soekris after upgrade crop

Both the uManager and FPGA revisions should be 0.99.

The uManager has a few new options:

soekris after upgrade 2 crop

Plus these are the new built-in filters:

soekris after upgrade filters all crop

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.