Pioneer DJM 900 as DAC?

Hello,
I am having a Pioneer DJM 900 in my living room as a mixer for my turntables and would love to use the buildt in DAC with volumio, i think it should have 4 integrated stereo lines which could be used but if i connect it to volumio none of them show up, any ideas how I could get it working?

thanks for any ideas!

Felix

Any Ideas?

Would be so great to use!

Just looking at the spec of the DJM900, there’s a number of ways you could get to talk to it, but… how are you connecting to it? USB, S/PDIF, RCA ? What are you connecting from? These details would need to be filled out before any suggestions could be made…

Chris M

Hi Chris,
I would like to use the djm 900s buildt in dac so i connected it via usb…

best
felix

I’ve gone looking through Pioneer’s specs and ‘documentation’ on this thing and can find no trace of what DAC they’re using. Without that, It’s not going to be easy/possible to provide an appropriate driver for the mixer. All I can see is that it’s either 32bit or 24bit (depending on what you’re reading), so not really useful. The possibility exists that it’s all being done by the DSP in the middle of the mixer (for cost purposes), at which point I’d give up and try something else.

Sorry, I don’t think this is going to be possible with so little information available. If it were an industry-standard DAC, then one of the Volumio devs might have been persuaded to tweak an existing driver but currently the DJM900 is just a black box…

Chris M

thanks for your help, so sad this great dac cant be used yet.

Well, if you could connect it again and do lsusb it might show us some more detail about the fact whether and how is is being recognized.
Also, the output of dmesg may help.
Don’t hesitate to ask if you need help with that.

Thanks,
thats what comes out

volumio@volumio:~$ lsusb Bus 001 Device 002: ID 08e4:0158 Pioneer Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub volumio@volumio:~$ dmesg [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.14.92+ (dom@dom-XPS-13-9370) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1187 Wed Jan 9 19:46:46 GMT 2019 [ 0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache [ 0.000000] OF: fdt: Machine model: Raspberry Pi Zero W Rev 1.1 [ 0.000000] Memory policy: Data cache writeback [ 0.000000] cma: Reserved 8 MiB at 0x1c800000 [ 0.000000] On node 0 totalpages: 122880 [ 0.000000] free_area_init_node: node 0, pgdat c09ca790, node_mem_map dc3c8000 [ 0.000000] Normal zone: 1080 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 122880 pages, LIFO batch:31 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 121800 [ 0.000000] Kernel command line: 8250.nr_uarts=0 bcm2708_fb.fbwidth=640 bcm2708_fb.fbheight=480 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:27:EB:B0:75:70 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 splash quiet plymouth.ignore-serial-consoles dwc_otg.fiq_enable=1 dwc_otg.fiq_fsm_enable=1 dwc_otg.fiq_fsm_mask=0xF dwc_otg.nak_holdoff=1 console=ttyS0,115200 kgdboc=ttyS0,115200 console=tty1 imgpart=/dev/mmcblk0p2 imgfile=/volumio_current.sqsh elevator=noop rootwait bootdelay=5 logo.nologo vt.global_cursor_default=0 loglevel=0 [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Memory: 452860K/491520K available (6448K kernel code, 588K rwdata, 1992K rodata, 444K init, 673K bss, 30468K reserved, 8192K cma-reserved) [ 0.000000] Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0xde800000 - 0xff800000 ( 528 MB) lowmem : 0xc0000000 - 0xde000000 ( 480 MB) modules : 0xbf000000 - 0xc0000000 ( 16 MB) .text : 0xc0008000 - 0xc0654350 (6449 kB) .init : 0xc08d3000 - 0xc0942000 ( 444 kB) .data : 0xc0942000 - 0xc09d5198 ( 589 kB) .bss : 0xc09daa90 - 0xc0a8302c ( 674 kB) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] ftrace: allocating 24126 entries in 71 pages [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000029] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 2147483647500ns [ 0.000062] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns [ 0.000147] bcm2835: system timer (irq = 27) [ 0.000705] Console: colour dummy device 80x30 [ 0.000732] console [tty1] enabled [ 0.000768] Calibrating delay loop... 697.95 BogoMIPS (lpj=3489792) [ 0.060297] pid_max: default: 32768 minimum: 301 [ 0.060795] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.060815] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.062176] Disabling memory control group subsystem [ 0.062338] CPU: Testing write buffer coherency: ok [ 0.063479] Setting up static identity map for 0x8200 - 0x8238 [ 0.064605] devtmpfs: initialized [ 0.074062] random: get_random_u32 called from bucket_table_alloc+0x88/0x1c4 with crng_init=0 [ 0.075269] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5 [ 0.075642] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.075672] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.076986] pinctrl core: initialized pinctrl subsystem [ 0.078312] NET: Registered protocol family 16 [ 0.081583] DMA: preallocated 1024 KiB pool for atomic coherent allocations [ 0.088048] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers. [ 0.088064] hw-breakpoint: maximum watchpoint size is 4 bytes. [ 0.088185] Serial: AMBA PL011 UART driver [ 0.091134] bcm2835-mbox 2000b880.mailbox: mailbox enabled [ 0.091872] uart-pl011 20201000.serial: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe [ 0.131143] bcm2835-dma 20007000.dma: DMA legacy API manager at de80d000, dmachans=0x1 [ 0.133385] SCSI subsystem initialized [ 0.133597] usbcore: registered new interface driver usbfs [ 0.133703] usbcore: registered new interface driver hub [ 0.133910] usbcore: registered new device driver usb [ 0.140845] raspberrypi-firmware soc:firmware: Attached to firmware from 2019-01-09 20:04 [ 0.143175] clocksource: Switched to clocksource timer [ 0.229790] VFS: Disk quotas dquot_6.6.0 [ 0.229913] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 0.230200] FS-Cache: Loaded [ 0.230547] CacheFiles: Loaded [ 0.247691] NET: Registered protocol family 2 [ 0.248875] TCP established hash table entries: 4096 (order: 2, 16384 bytes) [ 0.248962] TCP bind hash table entries: 4096 (order: 2, 16384 bytes) [ 0.249057] TCP: Hash tables configured (established 4096 bind 4096) [ 0.249209] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.249238] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.249588] NET: Registered protocol family 1 [ 0.250323] RPC: Registered named UNIX socket transport module. [ 0.250336] RPC: Registered udp transport module. [ 0.250341] RPC: Registered tcp transport module. [ 0.250346] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.250739] Trying to unpack rootfs image as initramfs... [ 2.133693] Freeing initrd memory: 14824K [ 2.146828] hw perfevents: no irqs for PMU, sampling events not supported [ 2.146908] hw perfevents: enabled with armv6_1176 PMU driver, 3 counters available [ 2.150581] workingset: timestamp_bits=14 max_order=17 bucket_order=3 [ 2.162280] FS-Cache: Netfs 'nfs' registered for caching [ 2.163953] NFS: Registering the id_resolver key type [ 2.164004] Key type id_resolver registered [ 2.164012] Key type id_legacy registered [ 2.164038] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 2.168577] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251) [ 2.168993] io scheduler noop registered (default) [ 2.169007] io scheduler deadline registered [ 2.169524] io scheduler cfq registered [ 2.169539] io scheduler mq-deadline registered [ 2.169546] io scheduler kyber registered [ 2.171908] BCM2708FB: allocated DMA memory 5c900000 [ 2.171973] BCM2708FB: allocated DMA channel 0 @ de80d000 [ 2.180657] Console: switching to colour frame buffer device 80x30 [ 2.189902] bcm2835-rng 20104000.rng: hwrng registered [ 2.190132] vc-mem: phys_addr:0x00000000 mem_base=0x1ec00000 mem_size:0x20000000(512 MiB) [ 2.191167] vc-sm: Videocore shared memory driver [ 2.191765] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000 [ 2.210216] brd: module loaded [ 2.222019] loop: module loaded [ 2.222042] Loading iSCSI transport class v2.0-870. [ 2.222887] usbcore: registered new interface driver smsc95xx [ 2.222919] dwc_otg: version 3.00a 10-AUG-2012 (platform bus) [ 2.251094] dwc_otg 20980000.usb: base=0xf0980000 [ 2.413180] random: fast init done [ 2.451484] Core Release: 2.80a [ 2.451511] Setting default values for core params [ 2.451551] Finished setting default values for core params [ 2.651891] Using Buffer DMA mode [ 2.651907] Periodic Transfer Interrupt Enhancement - disabled [ 2.651914] Multiprocessor Interrupt Enhancement - disabled [ 2.651925] OTG VER PARAM: 0, OTG VER FLAG: 0 [ 2.652004] Dedicated Tx FIFOs mode [ 2.652859] WARN::dwc_otg_hcd_init:1046: FIQ DMA bounce buffers: virt = 0xdc914000 dma = 0x5c914000 len=9024 [ 2.652887] FIQ FSM acceleration enabled for : Non-periodic Split Transactions Periodic Split Transactions High-Speed Isochronous Endpoints Interrupt/Control Split Transaction hack enabled [ 2.652899] dwc_otg: Microframe scheduler enabled [ 2.653070] WARN::hcd_init_fiq:459: FIQ on core 0 at 0xc049f7c0 [ 2.653084] WARN::hcd_init_fiq:460: FIQ ASM at 0xc049fa9c length 36 [ 2.653112] WARN::hcd_init_fiq:486: MPHI regs_base at 0xf0006000 [ 2.653280] dwc_otg 20980000.usb: DWC OTG Controller [ 2.653351] dwc_otg 20980000.usb: new USB bus registered, assigned bus number 1 [ 2.653426] dwc_otg 20980000.usb: irq 56, io mem 0x00000000 [ 2.653482] Init: Port Power? op_state=1 [ 2.653488] Init: Power Port (0) [ 2.653862] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 2.653879] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 2.653890] usb usb1: Product: DWC OTG Controller [ 2.653900] usb usb1: Manufacturer: Linux 4.14.92+ dwc_otg_hcd [ 2.653910] usb usb1: SerialNumber: 20980000.usb [ 2.654986] hub 1-0:1.0: USB hub found [ 2.655081] hub 1-0:1.0: 1 port detected [ 2.656086] dwc_otg: FIQ enabled [ 2.656098] dwc_otg: NAK holdoff enabled [ 2.656104] dwc_otg: FIQ split-transaction FSM enabled [ 2.656122] Module dwc_common_port init [ 2.656647] usbcore: registered new interface driver usb-storage [ 2.657094] mousedev: PS/2 mouse device common for all mice [ 2.657153] IR NEC protocol handler initialized [ 2.657162] IR RC5(x/sz) protocol handler initialized [ 2.657168] IR RC6 protocol handler initialized [ 2.657172] IR JVC protocol handler initialized [ 2.657178] IR Sony protocol handler initialized [ 2.657183] IR SANYO protocol handler initialized [ 2.657188] IR Sharp protocol handler initialized [ 2.657193] IR MCE Keyboard/mouse protocol handler initialized [ 2.657199] IR XMP protocol handler initialized [ 2.658450] bcm2835-wdt 20100000.watchdog: Broadcom BCM2835 watchdog timer [ 2.659004] bcm2835-cpufreq: min=700000 max=1000000 [ 2.659600] sdhci: Secure Digital Host Controller Interface driver [ 2.659610] sdhci: Copyright(c) Pierre Ossman [ 2.660223] mmc-bcm2835 20300000.mmc: could not get clk, deferring probe [ 2.660838] sdhost-bcm2835 20202000.mmc: could not get clk, deferring probe [ 2.661023] sdhci-pltfm: SDHCI platform and OF driver helper [ 2.661565] ledtrig-cpu: registered to indicate activity on CPUs [ 2.661689] hidraw: raw HID events driver (C) Jiri Kosina [ 2.661920] usbcore: registered new interface driver usbhid [ 2.661929] usbhid: USB HID core driver [ 2.662842] vchiq: vchiq_init_state: slot_zero = dc980000, is_master = 0 [ 2.664908] [vc_sm_connected_init]: start [ 2.674408] [vc_sm_connected_init]: end - returning 0 [ 2.675338] Initializing XFRM netlink socket [ 2.675402] NET: Registered protocol family 17 [ 2.675560] Key type dns_resolver registered [ 2.677576] registered taskstats version 1 [ 2.685685] uart-pl011 20201000.serial: cts_event_workaround enabled [ 2.685824] 20201000.serial: ttyAMA0 at MMIO 0x20201000 (irq = 81, base_baud = 0) is a PL011 rev2 [ 2.688693] mmc-bcm2835 20300000.mmc: mmc_debug:0 mmc_debug2:0 [ 2.688712] mmc-bcm2835 20300000.mmc: DMA channel allocated [ 2.744705] sdhost: log_buf @ dc913000 (5c913000) [ 2.782247] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) [ 2.783964] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 2.785620] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 2.788569] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) [ 2.823242] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) [ 2.824478] of_cfs_init [ 2.824622] of_cfs_init: OK [ 2.827752] Freeing unused kernel memory: 444K [ 2.827765] This architecture does not have kernel memory protection. [ 2.876809] Indeed it is in host mode hprt0 = 00021501 [ 3.005529] mmc1: new high speed SDIO card at address 0001 [ 3.034047] mmc0: host does not support reading read-only switch, assuming write-enable [ 3.037483] mmc0: new high speed SDHC card at address aaaa [ 3.043408] mmcblk0: mmc0:aaaa SC32G 29.7 GiB [ 3.046930] mmcblk0: p1 p2 p3 [ 3.083341] usb 1-1: new high-speed USB device number 2 using dwc_otg [ 3.083656] Indeed it is in host mode hprt0 = 00001101 [ 3.384446] usb 1-1: New USB device found, idVendor=08e4, idProduct=0158 [ 3.384472] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 3.384503] usb 1-1: Product: DJM-900nexus [ 3.384515] usb 1-1: Manufacturer: Pioneer Corporation [ 3.457555] initramfs: Booting Volumio for BCM2835 [ 3.458067] initramfs: This script mounts rootfs RO with an overlay RW layer. [ 3.504212] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 3.519947] initramfs: IMGPART=/dev/mmcblk0p2 [ 3.520431] initramfs: IMGFILE=/volumio_current.sqsh [ 3.521036] initramfs: Boot delay (except first time) will be 5 seconds [ 3.600251] initramfs: /dev/mmcblk0p2: [ 3.693054] EXT4-fs (mmcblk0p2): recovery complete [ 3.695323] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [ 3.697890] initramfs: Doing a 5 second delay here to give kernel load a headstart [ 5.551698] random: crng init done [ 8.708066] initramfs: Checking for USB updates [ 8.905599] initramfs: No USB device detected (when incorrect, try adding 'bootdelay=5' to your boot cmdline) [ 9.051324] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. [ 9.088235] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. [ 9.213715] EXT4-fs (mmcblk0p3): recovery complete [ 9.220122] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null) [ 9.225915] initramfs: With Option: [ 9.309610] initramfs: VOLUMIO_VERSION="2.565" [ 9.310089] initramfs: Finish initramfs, continue booting Volumio [ 10.119877] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR) [ 10.120835] systemd[1]: Detected architecture 'arm'. [ 10.368974] NET: Registered protocol family 10 [ 10.370781] Segment Routing with IPv6 [ 10.371072] systemd[1]: Inserted module 'ipv6' [ 10.390958] systemd[1]: Set hostname to <volumio>. [ 11.027758] systemd[1]: [/lib/systemd/system/mpd.service:18] Unknown lvalue 'ProtectKernelTunables' in section 'Service' [ 11.027910] systemd[1]: [/lib/systemd/system/mpd.service:19] Unknown lvalue 'ProtectControlGroups' in section 'Service' [ 11.028045] systemd[1]: [/lib/systemd/system/mpd.service:20] Unknown lvalue 'ProtectKernelModules' in section 'Service' [ 11.028223] systemd[1]: [/lib/systemd/system/mpd.service:23] Unknown lvalue 'RestrictNamespaces' in section 'Service' [ 11.156428] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory. [ 11.162788] systemd[1]: Starting Forward Password Requests to Wall Directory Watch. [ 12.061283] fuse init (API version 7.26) [ 12.221071] i2c /dev entries driver [ 13.378021] Adding 524284k swap on /data/swapfile. Priority:-2 extents:3 across:540668k SSFS [ 14.164919] systemd-udevd[173]: starting version 215 [ 16.972686] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned. [ 16.984580] snd_bcm2835: unknown parameter 'index' ignored [ 17.006772] bcm2835_alsa bcm2835_alsa: card created with 8 channels [ 18.206994] brcmfmac: F1 signature read @0x18000000=0x1541a9a6 [ 18.232853] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43430-sdio.bin for chip 0x00a9a6(43430) rev 0x000001 [ 18.233439] usbcore: registered new interface driver brcmfmac [ 18.705514] snd_usb_audio: unknown parameter 'nrpacks' ignored [ 18.705537] snd_usb_audio: unknown parameter 'nrpacks' ignored [ 18.759660] usbcore: registered new interface driver snd-usb-audio [ 18.864343] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Oct 23 2017 03:55:53 version 7.45.98.38 (r674442 CY) FWID 01-e58d219f [ 18.865538] brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 7.11.15 Compiler: 1.24.2 ClmImport: 1.24.1 Creation: 2014-05-26 10:53:55 Inc Data: 9.10.39 Inc Compiler: 1.29.4 Inc ClmImport: 1.36.3 Creation: 2017-10-23 03:47:14 [ 20.080354] systemd-journald[144]: Received request to flush runtime journal from PID 1 [ 22.336737] brcmfmac: power management disabled [ 24.522505] brcmfmac: power management disabled [ 27.005893] Installing knfsd (copyright (C) 1996 okir@monad.swb.de). [ 28.572579] ip_tables: (C) 2000-2006 Netfilter Core Team [ 29.154719] nf_conntrack version 0.5.0 (8192 buckets, 32768 max) [ 65.974271] brcmfmac: power management disabled volumio@volumio:~$

best
felix

Hi Felix,

What @gkkpch is asking you to do follows on from the boot sequence that you’ve shown. What’s needed is to use the command line of the Pi to enter the command lsusb and copy what gets reported. This is what my RPi shows (without any USB devices attached):

volumio@volumio:~$ lsusb
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
volumio@volumio:~$

and then again with dmesg. This command gives a large amount of info, so don’t be surprised by the huge amount of text it produces,

Chris M

Hi Chris,
Thats exactly what i have done, no? I added it to the quote box to increase the readability

please check it again

thanks
felix

Apologies, perhaps @gkkpch can make sense of it… My only thought is that a Pi Zero W might struggle to run Volumio and feed a hi-res DAC, but that’s just a passing thought…

Chris M

Hi Chris, i would use a pi b3+ but just had a zero around and thought it would be enough for the testing…

@felixheller,
looks like your Pioneer is being recognized.
Now it would be interesting to see the output of “aplay -l”.
That should should the device as an usb audio card.

Hi gkkpch

As far as I know it has at least four ins and four outs so maybe this helps?

volumio@volumio:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 7/7
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0

Thanks

Hi gkkpch,
Any ideas on that?

best
felix

@gkkpch
Any ideas? I still try to get it working…

Thanks
Felix

Great news…
Support for the Pioneer DJM 900NXS2 was included In a recent linux kernel release ((5.8)
Not sure if it applies to the DJM 900.

I have a DJM 750MK2 and am hoping it will be supported soon, too…