advertisement


MDAC First Listen (part 00111001)

Status
Not open for further replies.
Before we start deciding which programming language or environment to use we really need to get more spec on what it is we need to do. Both PHP and Node.js are really designed for web applications not really as device configuration languages/environment. They also might have certain characteristic which might make them unsuitable for the job. Do we really want to use a truck/luarry to go shopping for few eggs?

Lets examine more what libraries we have to use, their API interface, error handling, execution dependencies and time constrains, buffering, parameters and return values format and and God knows what else before we decide what language would give us best option.

For the web interface, sure we can use PHP or Node.js, but for communication between Streamer and DAC we may, and I say may, need something a bit leaner and granular.

Anyhow, all this is academic until we get the hardware which at the moment we do not have a date for yet.

JohnW, how is it looking for that?
Serial port communication is supported in many languages. So we really do not have to choose a specific programming language and I cannot see what is wrong with a web interface. I think that is what most UI on the official RPI 7" touch screen is using.

The great thing is that Johns streamer is an open platform and with the documentation of the serial commands to the DAC functions there is a good chance that other distros over time will support it or we can each make our own in our preferred language.

Competition is good. :)
 
We have updated the DevDAC APi - I'd say its basically 95% complete (we can always added extra Commands / functions on request).

https://github.com/lakewestaudio/devdac

I mentioned PHP just because moOde is built on PHP and I'm presuming you would want to add the CDC UART channel within the PHP environment - but as the APi is published and communication channel is via a simple UART then there are no limitations - your free to choose whatever software environment fits best.
 
Last edited:
We have updated the DevDAC APi - I'd say its basically 95% complete (we can always added extra Commands / functions on request).

https://github.com/lakewestaudio/devdac

I mentioned PHP just because moOde is built on PHP add I'm presuming you would want to add the CDC UART channel in PHP - but as the APi is published and communication channel is via a simple UART then there are no limitations - your free to choose whatever software environment fits best.
Nice !
For now i've got a modified moode version with a modified interface including a new page with custom buttons. I am now investigating the event system moode uses (as i see a lot of constant exchanges between browser and rpi). I will check if i can use this event flow to control "live" information from the device. It could avoid to add extra traffic. Else i will set-up my own event timer.
Will investigate more when i got access to devdac hardware. It's hard to code without any possibility to test...
I am also lookint at how to install/use serial usb over php (the link you sent is for x86)
Bests
 
Update on the Ministreamer chassis:-

"The chassis will be ready no later than this Wednesday morning, and we will arrange the shipment on Wednesday or Thursday. Currently DHL is delayed heavily, we will choose Fedex or TNT to ensure they will arrive before Christmas holiday, please do not worry."

So they should arrive before the Christmas break - but I'm not sure how we can ship them out in time for Christmas...

Lets see when they are expect to arrive.
 
For anyone with sometime on there hands :) :) :) and would like to help out with the MDAC2 software development we need to configure dual video frame buffers on the RPI so we can have independent displays on HDMI and DPI interfaces (the DPI interface is used internally to drive the front panel LCD).

A suitable DPI panel for the RPi:-

http://cpc.farnell.com/pimoroni/pim297/hyperpixel/dp/SC14735
http://rover.ebay.com/rover/1/711-5...0001&campid=5338728743&icep_item=132348905827
http://rover.ebay.com/rover/1/711-5...0001&campid=5338728743&icep_item=222741378199

We will use a different (IPS) panel (we can edit the panel configuration file later) - but the above panel is ~the same size and resolution.

The idea behind the two Video frame buffers is that the internal DPI LCD panel displays the DAC UI while the external HDMI is "free" for independent use.

The MDAC2 streamer board hardware supports both HDMI and DPI interfaces.

The hardest part I see is configuring the RPi GPU (and Linux) for two video frame buffers - its certainly possible as omxplayer a video player designed for the Raspberry PI supports dual independent display selection, so is possible for the RPI GPU to render and play different videos simultaneously on two independent displays...

https://elinux.org/Omxplayer

Discussion on Dual Video frame buffer support on the RPI

https://www.element14.com/community...lay-dsi-simultaneously?displayFullThread=true

From about 7.30 minutes the link talks about configuring Xorg for dual displays with the Pi


Heres a second video with more details:-


It be a really great help if we can get the dual display mode working - we can then start to supply the Streamer PCB's with a touch panel display :)
 
Last edited:
This site contains affiliate links for which pink fish media may be compensated.
I'm cleaning up the listening room to add a production line work bench, and have an "As New" Quad QC-24P tube phono preamp designed by Tim de Paravicini - its too good to be left laying around unused.

Unmarked Quad Tube phone stage with MM / MC input - it has both fixed and passive Preamp outputs.

http://rover.ebay.com/rover/1/711-5...0001&campid=5338728743&icep_item=291810308701

Its the Gray version they seem to sell for around GBP1K - I'd let it go for GBP500 with shipping to EU / UK (includes original box, manuals etc).

Its been used for about 5 hours at most - we are now use a Audio Research phono stage as our lab reference (as it was given to us free of charge) is it better? not really but its well considered...

"Quad QC-24P tube phono preamp, a Tim de Paravicini design that can be used in conjunction with a line-level preamp or connected directly to your amp(s) via the variable output. Tube life: Quad quotes the tube life as 60,000 to 100,000 hours."
 
Last edited:
This site contains affiliate links for which pink fish media may be compensated.
(Here's my research, done some months ago, may be out of date or incorrect altogether. It's also simplified to be understandable for non-FOSS-geeks.)

John,
getting it to work on the default rpi install will be hard. Omxplayer is using some BCM-specific code to push frames into the GPU and can thus get it working that way - this is completely incompatible with anything else in the linux ecosystem and won't work for X11, Wayland or anything else. You could write a full UI that utilizes that, but it would be similar (from what I understood) to MDAC(1) in its limitations and "low level work" needed.

You could have a VGA console on one and a framebuffer on the other, but I'm assuming you want two "graphical" outputs, not one 80x24 teletype terminal and one graphical output.

The dual-monitor video you linked is a workaround for that - a displaylink USB-to-DVI plug that basically saturates your USB throughput so you can get a second, very low-framerate, display.

Now, the upstream Linux kernel has been slowly, since ~2011, re-implementing "the proper way" what the RPi foundation/community have done in closed-source binary blobs and incompatible patches, so now there are essentially two independent implementations of the same thing. Fairly recently (2016-2017), the graphics stack has become usable thanks mainly to Eric Anholt (he runs / used to run a blog about the changes, http://anholt.livejournal.com/) and very recently, Sept. 2017, even added support for the official DSI-based 7" touchscreen was added (I remember him having big issues with making DSI work). On the other hand, support for DPI is there for some time and dual-display should be working, see https://anholt.livejournal.com/45862.html . He even added the display he worked with to the panel-simple.c file, https://git.kernel.org/pub/scm/linu.../?id=e8b6f561b2eeb667aff932d9a5af5a6279221283 , however, as far as I was able to gather, the implementation is not limited to it, any DPI panel supported by the kernel and defined in your devicetree should be usable, https://git.kernel.org/pub/scm/linu...umentation/devicetree/bindings/display/panel/ .

Since all this needs a "clean" Linux kernel and a GNU/Linux distribution to go with it, as opposed to the RPi foundation customizations, it may be tricky to get it working from the ground up - this is what I was working on earlier. Fortunately, some people at Debian provide a fairly up-to-date build, a ready-to-use image with the kernel and everything compiled and ready to use on RPi3 - https://wiki.debian.org/RaspberryPi3 .

The downside or upside is that, because they're not bringing the "legacy" RPi baggage, they can choose to run aarch64 architecture (the 64-bit ARM), supported by RPi3. This makes some operations potentially faster, allows you to build your software potentially faster (extra GP registers and more), but also renders most binary closed-source software unusable out-of-the-box (like one of the 3rd party plugins I was preparing, not HQPlayer, the other one) because the vast majority of the RPi community assumes you're running the 32-bit RPi foundation based system.

Now, you can probably run 32bit ARM on aarch64 given supporting libraries, you can also rebuild the upstream Linux kernel and userspace for 32bit (which is what I was doing), sort-of fixing the problem, but it's an extra effort compared to just using a ready-made image. The image should, however, allow you (or one of your minions, hehe) to assess if such path is worth pursuing. I can confirm that on my RPi3, I can see one framebuffer device, so the graphics support is there, but I don't have a DPI display defined in devicetree to see if this implementation supports both using a standard interface, usable by X11 and others.

Hopefully this helps somewhat.
 
Jirij,

Good to see you back - we tried to contact you a few months ago but with no luck - Shame not to see you on Skype thesedays.

In simple terms, what steps are required to Enable the HDMI and DPI interface on the RPi with independent Video framebuffers?

Is there such a thing as a HDMI driver and DPI driver - I assume there is.

Is it too simplistic to say that you first have to create a second framebuffer then associate a physical interface (HDMI, DPI, DSI etc) - is the "physical interface" connected via a DMA channel or some such?

Basic question, but I'm well out of my area of expertise - I'm just trying to understand whats involved, and wonder why the RPi linux ecosystem does not nativity support multiple framebuffers as apparently the BCM has quite a capable GPU for such applications (being originally targeted for STB applications).
 
Unfortunately I don't know the steps to get it working, you would presumably first have to get the basic graphics working on the image, which a quick glance at dmesg,
Code:
[   14.129688] vc4-drm soc:gpu: failed to allocate buffer with size 16777216
[   14.129827] [drm:vc4_bo_create [vc4]] *ERROR* Failed to allocate from CMA:
[   14.129851] [drm] num bos allocated: 0
[   14.129854] [drm] size bos allocated: 0kb
[   14.129856] [drm] num bos used: 0
[   14.129859] [drm] size bos used: 0kb
[   14.129861] [drm] num bos cached: 0
[   14.129864] [drm] size bos cached: 0kb
[   14.129877] vc4_v3d 3fc00000.v3d: Failed to allocate memory for tile binning: -12. You may need to enable CMA or give it more memory.
[   14.130000] vc4-drm soc:gpu: failed to bind 3fc00000.v3d (ops vc4_v3d_ops [vc4]): -12
[   14.217744] vc4-drm soc:gpu: master bind failed: -12
[   14.217825] vc4-drm: probe of soc:gpu failed with error -12
indicates that at least CONFIG_CMA (Contiguous Memory Allocator) is not enabled,
Code:
root@rpi3:~# grep CONFIG_CMA /boot/config-4.13.0-1-arm64
# CONFIG_CMA is not set
Once enabled (kernel recompiled), google says something like this in /boot/firmware/config.txt should get it working,
Code:
dtoverlay=vc4-kms-v3d
avoid_warnings=1
if it doesn't start working right after enabling CMA. Also, there's ie. "cma=256m" kernel cmdline.txt parameter that can be used to give it more reserve memory.

After that, the vc4 graphics driver should be working on some level and it should be possible to use it as a console output ("console=" in /boot/firmware/cmdline.txt). After that, enabling debian repositories and installing X11 (after enlarging the 1GB space on the sdcard, the image didn't auto-resize itself) should demonstrate whether it's working. Checking for /dev/dri/* may be a faster indication.

After all that (sounds complex, but is fairly simple compared to writing an i2s driver), you can start digging into making the touch panel working, by defining it in devicetree.
 
Jirij,

I'd love to say I understand much of this, but I don't - I've passed it on and lets see how far we can get :)

Thanks :)
 
Update on the Streamer / Dev DAC and MiniStreamer PCB's, we are waiting for:-

1. TME component order - should arrive tomorrow

2. DigiKey component order - should arrive Friday

3. MiniChassis (Should be shipped tomorrow from China)

I've ordered, EU, UK and US style PSU adapters for the Ministreamer and DevDAC platform

We can start building the PCB as soon as the components arrive - we dont have full stock control systems in place so I hope there are no unexpected parts shortages. As we are only manufacturing a few units we should be able to scavenge parts from prototypes if need.... certainly all major components will be in stock.

I'm very keen to see pictures from the vendor of the MiniStreamer chassis - which they have promised will be completed by tomorrow.
 
“I'm very keen to see pictures from the vendor of the MiniStreamer chassis - which they have promised will be completed by tomorrow.”

...me too! :)
 
Is MDAC2 ready yet? Or is it something else now?

I am, as ever, totally lost. Just want to know when it's likely to be ready so that I can ready the, um, readies...
 
“I'm very keen to see pictures from the vendor of the MiniStreamer chassis - which they have promised will be completed by tomorrow.”

...me too! :)

Sent by the vendor this evening (without silkscreen).

https://www.dropbox.com/s/9ktg123fq6mocpa/MiniChassis.jpg?dl=0

I've emailed the vendor as from the picture it appears they added countersunk holes after anodizing and then used a black marker pen (that can be seen in the picture) to blacken the holes - we cannot accept this...

They should have shipped last week, yet they have not yet tried the silkscreen - and I'm worried that they will have difficulty with the fine detail (although they say its fine) - lets see....
 
Is MDAC2 ready yet? Or is it something else now?

I am, as ever, totally lost. Just want to know when it's likely to be ready so that I can ready the, um, readies...

John,

The first few development designs are being shipped in the next week or so, the higherend MDAC2 (MDAC2 DD2A) will be shipped in Q1, we are just ordering samples of the custom parts for the DD2A circuit in the next few days.
 
Sent by the vendor this evening (without silkscreen).

https://www.dropbox.com/s/9ktg123fq6mocpa/MiniChassis.jpg?dl=0

I've emailed the vendor as from the picture it appears they added countersunk holes after anodizing and then used a black marker pen (that can be seen in the picture) to blacken the holes - we cannot accept this...

They should have shipped last week, yet they have not yet tried the silkscreen - and I'm worried that they will have difficulty with the fine detail (although they say its fine) - lets see....

Hi John

At worst won’t the screws cover the counter sink holes? Can cheekily put tamper evidence stickers over those screws ;-)

Paul
 
Sent by the vendor this evening (without silkscreen).

https://www.dropbox.com/s/9ktg123fq6mocpa/MiniChassis.jpg?dl=0

I've emailed the vendor as from the picture it appears they added countersunk holes after anodizing and then used a black marker pen (that can be seen in the picture) to blacken the holes - we cannot accept this...

They should have shipped last week, yet they have not yet tried the silkscreen - and I'm worried that they will have difficulty with the fine detail (although they say its fine) - lets see....

Hi John,
Great to see progress on the chassis but,
it's a shame the front panel has to have screw holes, it doesn't look great on such a small fascia, they don't appear to be centred either. I think my alarm bells would be ringing.
 
The vendor was ready to ship the chassis today - so I sent our QC agent to check the shipment and they found 5 major dimension errors on the front / rear panel cutouts and the rear panel silkscreen was badly aligned.

https://www.dropbox.com/s/rb5u9ntlnj1dsf4/2.jpg?dl=0

On the rear panel you can see the boot text is not centered below the hole - the whole silkscreen print is shifted left.

The front panel silkscreen is OK, but the cuts of the switches is too small and the front panel USB jack is 3mm too high.

On the rear panel, the Micro USB is 1mm off on all axis...

This is typical China, we sent the the RAW DWG files but they recreate the mechanical drawings from the attached PDF.

Waiting for a new delivery date from the vendor :(
 
Hi John,
Great to see progress on the chassis but,
it's a shame the front panel has to have screw holes, it doesn't look great on such a small fascia, they don't appear to be centered either. I think my alarm bells would be ringing.

We used an off-the-shelf extrusion which for some bizarre reason the panel mounting screws are not centered along the horizontal axis!

But simply by luck, the screws are aligned with the horizontal switch position - so hopefully masking some of the "oddness".

We have had only 3 people interested in the MiniStreamer - should there be more interest in the future then I'll open custom tooling and earlier units can be upgraded at cost by simply removing the screws and swapping the PCB into the new style chassis.
 
Last edited:
Status
Not open for further replies.


advertisement


Back
Top