Main Page

From M-DAC wiki
Jump to: navigation, search

Hardware upgrades (by JohnW)[edit]

TODO: citations / link to PFM posts needed everywhere

Upgrade path[edit]

MDAC ----------------> MDAC L2 ----> Fusion/Toy
| | \                 /
| | `--- MDAC L1 ---'
| |  (discontinued)
|  \
|   `--- Sovereign+ (discontinued)
  `--- (theory) New PCB (with L2 upgrades) ----> Fusion/Toy

Past upgrades (no longer available)[edit]


TODO: description here

MDAC L1[edit]

MDAC internal PSU section upgrade (this upgrades 6 of the PSU supply rails around the ESS DAC, reducing modulation spurie by up to x1000 (40dB) around the ESS DAC).

Present upgrades (available)[edit]

MDAC L2[edit]

Full rebuild (redesign) of the CROSS analogue stage, over 56 components changed in the Analogue section + MDAC L1. Major leap in sound quality. Vishay Naked Z-foil resistors (Toy/Fusion) During development/testing of MDAC L2, results have shown that certain components (resistors) can have a significant effect on sound quality when used in a feedback loop. This upgrade further enhances MDAC L2. Originally, only 4 resistors were considered to be critical, but the revelation around resistors itself led to the idea of replacing all "important" resistors in direct analog signal path by the Z-foil resistors.

"Fusion" variant[edit]

Named after "fusion5", a Pink Fish Media forum member, who was brave enough to fund the replacement of 36 resistors by the Z-foil ones in his MDAC. This upgrade is rather expensive as it costs more than half the cost of the MDAC itself.

"Toy" variant[edit]

Named after Steven Toy, a Pink Fish Media forum member, who preferred the original exchange of 4 resistors (for just a small increase in cost) instead of going "full fusion".

(theory) New PCB[edit]

The process of updating MDAC units to L2 upgrade has shown differences between each of the upgraded/tested units. This significantly increased the time needed to perform the L2 upgrade. JohnW has therefore proposed an idea of using a brand new PCBs, manufactured in Europe. This led to further ideas about using USB2.0 and DSD / 768Fs support.

Firmware updates[edit]

Below you can find firmware download links, along with MD5 hashes. Please Note: The firmware updates on this page are considered beta software. The software is stable, but there is the possibility that not all functionality is intact.

Installation instructions[edit]

Close all running programs. Ensure M-DAC is connected to your computer via USB (select the USB input and the display should indicate "Ready"). Run the downloaded executable; once the computer has found the M-DAC, enter Y to start update, the computer should report a successful upload after about 2 seconds for the Mainboard & 11 seconds for the Control. You can push and hold the M-DAC's Volume Knob on power-up to indicate the software versions. Alternatively, you can simply run the update executable one more time to see the new version numbers. Enter N to exit.

Latest version[edit]


First announced in #post1935914.

  • track & time working again
  • no more crashes when browsing menu
  • filters and their exclude list can be browsed by the knob or Prev/Next remote buttons
  • filters that fail to load due to absence of signal lock will automatically load the next time an opportunity arises

Windows Download (MD5: 0ae6dc4b2ec603200ec81c08f39dbed5)
Mac Download (MD5: 27807fb77c6506779400ef70fbf04f35)

Earlier versions[edit]


First announced in #post1934300.

  • based upon original v0.90
  • includes most of the UI features introduced over time
  • custom input labeling
  • mute working in DAC-only mode
  • CD emphasis detection & de-emphasis filter
  • fixes OPT1/2 discrete remote codes

Windows Download (MD5: 02e820b22469f1a4d0e8b9cfae13025c)


Brings Mac & Windows users up to the same version. First announced in #post1756153.

  • fixes auto dimming bug introduced in vA.07

Mac Download (MD5: 60D8A3BBDA51FCC9A587A11AABFCFC5)
Windows Download (MD5: FCB00D3CA0BD9278A2CFD60146F8D319)


First native Mac update. Announced in #post1754575.

  • Fixes USB playback issue under OS X 10.8~10.8.1 Mountain Lion (as well as USB 3.0 enabled Macs running Lion) - OS X 10.8.2 restores correct operation w/o the need for this patch
  • Intuitive selection of powerup default input
  • Peak meters no longer stick to their last value when display wakes up

Mac (file currently not available) (MD5: 8106FC2D0C57749AC286AF38EA2D3200)


First announced in #post1747944.

  • menu option Phase Select does it's business by inverting data before it hits the DAC chip as opposed to flipping the phase ahead of DAC array

Windows Download (MD5: 47A5A0C3C84AE2FB144C36AC9EF5F7C4)


First announced in #post1747683.

  • TimR's ssue with discrete codes for inputs has been resolved
  • PlutoX will find mute pausing as well as resuming playback
  • finesensations's household might become more harmonious after a quick stroll through the menu
  • way weirder stuff might well happen..

Windows Download (MD5: 10067e3af9f84408826c0eadf3d65500)


First announced in #post1745472.

  • Edit list of filters to exclude your worst offenders and/or make filter face-offs easier. You can go down to 2 filters but not bellow that
    • press and hold filter key,
    • short press to list through the filters,
    • long press to include or exclude them from the list
  • Screen auto dimming after 20s of no user action. Available options are:
    • Always on
    • Auto dimming (Full illumination on key press, then slowly dims)
    • Auto suppress (Full illumination on key press, then slowly dims to display "L A K E . W E S T")
  • Added safeguard to detect stuck samples on the input as has been reported for Asus Xonar soundcard. This issue might possibly happen elsewhere as well, so the output is muted to prevent DC on the analog output.
  • D3E indicator no longer flickers when playing from Vista/7/8 when peak limiter kicks in.
  • Going into mute will pause the playback via USB. Similarly pressing play on M-DAC's remote clears mute.
  • Discrete remote commands added for input and filter selection

Windows Download (MD5: 42e2d329acf239c388f941656cf142a3)


First announced in ?

  • "Should" solve ESS Left channel locking Design Bug
  • Adds "Phase invert" option

Windows Download (MD5: FDA41B02CC87C43B2B84BAD547A5690C)


First announced ?

  • Corrects issues with rapid Volume control operation from Remote control
  • Adds DPLL setting for SPDIF inputs
  • Corrects Filter load issue with SPDIF sources
  • Reworked Bit Perfect Test
  • Add's "Streaming Error" indication for incomplete USB packets
  • Early Rev MCU Interlock (prevents the production line from programming early Rev MCU's that cannot be updated later via USB)
  • Tidy up the Absolute Freq. display with high Jitter sources
  • Resolves "Crashes" with rapidly Locking / Unlocking sources at 176/192KHz (Oppo)

Windows Download (MD5: e7728a5b77a8c3b67072c69166168f7e)


Original shipping version.

  • Inaugural Audiolab production build

Windows Download (MD5: 9184C21B7CBFD9B4F15207019028B502)

Bitperfect test[edit]

Download the latest Bitperfect Test Generator. Check that your computer has Java runtime installed. Running the unzipped .jar file will produce two .wav audio files in the same folder, one at 16/44.1 and another at 24/96 resolution. In M-DAC's menu, select Bitperfect Test and replay one of these files using your regular audio player.


OT and OT XD have the identical numerical output from the Digital filter but the results are calculated via different mathematics. As they have the identical numerical output - they have an identical Filter characteristics, however due to the differences in the processing, you can hear the second order effects of PSU and Jitter modulation on the DAC's silicon die. Optimal Transient DD again has the same end frequency response, but we have attempted to balance the PSU modulation currents on the DAC die - with interesting results but I prefer OT or OT XD - John W.

Discrete IR codes[edit]

Discrete codes for input and filter selection were first introduced to firmware vA.05. Standard functions will work on all firmware revisions. (NEC uPD6121 format) Custom code: 0x20DF

Standard functions:[edit]

Function Code Philips Pronto Compatible
VOL+ 0x00 900A 006D 0000 0001 20DF 00FF
Filter 0x04 900A 006D 0000 0001 20DF 04FB
Play/pause 0x09 900A 006D 0000 0001 20DF 09F6
stop 0x0D 900A 006D 0000 0001 20DF 0DF2
mute 0x10 900A 006D 0000 0001 20DF 10EF
VOL- 0x11 900A 006D 0000 0001 20DF 11EE
R(bal) 0x12 900A 006D 0000 0001 20DF 12ED
menu 0x16 900A 006D 0000 0001 20DF 16E9
next 0x17 900A 006D 0000 0001 20DF 17E8
SEL- 0x1B 900A 006D 0000 0001 20DF 1BE4
prev 0x40 900A 006D 0000 0001 20DF 40BF
L(bal) 0x48 900A 006D 0000 0001 20DF 48B7
SEL+ 0x4C 900A 006D 0000 0001 20DF 4CB3

Discrete Inputs:[edit]

Input Code Philips Pronto Compatible
USB 0xA0 900A 006D 0000 0001 20DF A05F
COAX1 0xA1 900A 006D 0000 0001 20DF A15E
COAX2 0xA2 900A 006D 0000 0001 20DF A25D
OPT1 0xA3 900A 006D 0000 0001 20DF A35C
OPT2 0xA4 900A 006D 0000 0001 20DF A45B

Discrete Filters:[edit]

Filter Code Philips Pronto Compatible
Sharp Rolloff 0xF0 900A 006D 0000 0001 20DF F00F
Slow Rolloff 0xF1 900A 006D 0000 0001 20DF F10E
Mimimum Phase 0xF2 900A 006D 0000 0001 20DF F20D
Optimal Spectrum 0xF3 900A 006D 0000 0001 20DF F30C
Optimal Transient 0xF4 900A 006D 0000 0001 20DF F40B
Optimal Transient XD 0xF5 900A 006D 0000 0001 20DF F50A
Optimal Transient DD 0xF6 900A 006D 0000 0001 20DF F609

M-DAC PSU[edit]

M-DAC pinout The M-DAC PSU connects to the M-DAC via a mini-DIN type 9(b) connector. The pinout and wire colors (in the cables originally used; may be subject to change?) are described in this PFM post. The connector can be found e.g. through Distrelec (article no 155366).

Logitech Squeezebox Touch / Async USB[edit]

Asynchronous USB provides a jitter-free connection to the M-DAC similar to a "clock-locked" CD transport, and this makes it the preferred connection method over Coax and Optical. Unfortunately, out of the box, the Logitech Squeezebox Touch (SBT) does not support Asynchronous USB connectivity as an option. However, by applying a 3rd Party SBT firmware modification, M-DAC owners can now benefit from true asynchronous USB between the SBT and M-DAC, with the M-DAC providing the high quality master clock. A huge thank you to Adrian ("Triode" on the SlimDevices forums) for all his hard work in developing the excellent Enhanced Digital Output (EDO) app. Full instructions here

iTunes, Airport Express, Apple TV and MDAC[edit]

The MDAC is perfectly suited as a member of the iTunes/AirPlay ecosystem. However, this by itself can get a bit more complicated than the "just works" paradigm, if you want to have a complex setup or simply look for the best possible SQ. Best SQ from iTunes connect the Mac (PC ...) to the MDAC via USB; cable quality is a matter of discussion, but nothing fancy needed (maybe insulator ... comments?) use Apple Lossless (ALAC) as preferred encoding format set the iTunes volume to max., and do not use any sound/level adjustments enable the "USB Volume" option to "Allow Control" via the MDAC's menu, and use e.g. the volume keys on the Mac to adjust the MDAC's volume, or just use the MDAC (or its remote) Be aware that iTunes and Osx are unable to change bitrate by themselves. You need to manually change this into "midi and audio devices control panel". if you want to use other bitrates thant the default 16bit /44.1 Khz.

Airport Express (AES)[edit]

Since their inception, the AES base stations have been able to provide an optical digital audio out, through a combined 3.5mm analog/mini TOSlink socket. Importantly, they are able to pass bit perfect testing - though only for 16 bit/44.1 kHz. A summary for the latest "hockey puck" model can be found at Connection problems: all models, but especially the new "hockey puck", are susceptible to breaking up the audio stream, if there are networking problems; and the MDAC won't like it. Apparently, the last plug-in type version with 802.11n support has the best network/audio performance. However, with very good WiFi feed they work fine - but to be "drop-out proof", especially with high bit rates, one should feed them through ethernet.


The "Remote" app in iOS can be used to control the iTunes output volume on the iTunes host machine and the volumes of AirPlay targets (ATVs and AEs), but not the system volume of the iTunes host. So while one can control the MDAC from the iTunes host through changes in the system volume, this is neither possible through iTunes nor the Remote app. For an unmodified signal before DAC, one has to let iTunes be on max. volume and use either system volume or MDAC control. However, since iTunes volume control is 24 bit, any degradation in SQ should be in the range of one's imagination... Therefore, Remote app should be fine for adjustments (but in my experience this leads to confusion throughout the household, when adjusting at all iTunes, system, MDAC, amp - but this is a non-technical problem...).

USB Hub / USB Extension[edit]

The TAS1020 USB Receiver in the MDAC is USB 1.1 only. If you use a USB extender Cable (>10m) there is always a integrated USB Hub at the end of the cable. This USB Hub translates from USB 2.0 to 1.1 and causes Buffer problems. Use a long "passive" USB cable instead. Everything above 5m outside the USB 1.1 specs but works well! Refer to:

Issues with MDAC on GNU/Linux[edit]

On recent Linux kernels (3.8+ and -stable backports), MDAC produces crackling noise along with the music. This only enhanced older issue with buffer flushing on 24/96k streams that was/is present on some usb host chipset implementations (since 3.5 kernel version, backported to -stable as far as 3.0.x). Until this issue is resolved properly, there's a workaround available for Ubuntu 13.04. Similar approach can be taken on other distributions (just reuse the patch).

Update: 3.10-rc3 reverts the generic breakage of 3.8+, but the bandwidth / URB scheduling issue of 3.5 remains. This one, however, is fixed in during the ehci-hcd scheduling rewrite for 3.12, on which MDAC works flawlessly once again.

Other possible issues heavily depend on the hardware (USB host chipset) used. Ie. my MDAC (jirij) works fully with xhci-hcd (USB3.0), ignoring the issued mentioned above (since it's a separate driver), but users of Intel NUC systems aren't as lucky.

Update: Intel NUC owners (Haswell based: D54250WYK, D34010WYK) finally got a BIOS update from Intel (released on 2015-04-10) which adds the possibilty to disable xHCI from BIOS. This will limit the USB ports to USB2.0 speed, but will turn off the problematic circuit in the Intel USB controller and will force the Linux Kernel to choose the legacy USB 2.0 driver which works perfectly with asynchronous mode and eliminates the cracking sounds for MDAC (and other USB-Async mode DAC) users.