MirkoPC - a full-featured Raspberry Pi desktop computer

The MirkoPC is so far the closest thing to a full-fledged Raspberry Pi desktop computer:

MirkoPC with Raspberry Pi Compute Module 4

Based on the Compute Module 4, it has a full-size M.2 M-key slot, allowing the Pi to boot from reliable and fast NVMe SSD storage, a built-in headphone amp and line out, 4 USB 2.0 ports, gigabit Ethernet, two HDMI ports, and a number of other neat little features.

Video

I also have a video review of this board here:

I'm tracking the MirkoPC and dozens of other CM4 projects on this page: Compute Module 4 Boards and Projects.

Hardware Overview

The MirkoPC has a full assortment of connectivity you'd expect from a modern Raspberry Pi, along with a few extra bits, including:

  • M.2 2242/2280 M-key socket (PCIe x1 Gen 2.0)
  • MicroSD card slot (for 'Lite' compute modules without eMMC)
  • 1 Gbps Ethernet
  • 4x USB 2.0
  • 28-pin GPIO header (compatible with Pi HATs)
  • 2x HDMI outputs (1x full-size, 1x micro)
  • 2x MIPI CSI-2 camera interfaces (22-pin FFC)
  • 2x MIPI DSI display interfaces (22-pin FFC)
  • 32-bit/384 kHz stereo line out
  • 128 mW headphone output
  • RTC clock with battery backup
  • Temperature sensor
  • IR receiver
  • 5V fan header
  • 3 kHz buzzer
  • Reset switch
  • USB-C or 2-pin terminal block power supply

And in the MirkoPC documentation, an entire block diagram with all the relevant part numbers is included:

MirkoPC Hardware Block Diagram

Getting Things to Work

Some things, like NVMe SSDs, are pretty easy to use—you install the SSD, and it works. And you can even boot off NVMe SSDs on the Raspberry Pi now.

But as with many other things in Pi-land, to get parts like the built-in buzzer, RTC, or IR port to work, you have to edit the Raspberry Pi's configuration and reboot—and sometimes do even more things like install or uninstall extra packages.

RTC

MirkoPC RTC battery and audio line output headphone amp

To get the built-in RTC to work with Pi OS, I had to do a number of things:

  1. I had to set the 'I2C' interface to 'Enabled' in the Pi Configuration (e.g. sudo raspi-config).
  2. I had to add the following to the bottom of /boot/config.txt and reboot:

    # RTC
    dtoverlay=i2c-rtc,pcf8523
    
  3. I had to remove the 'fake hardware clock' that Pi OS ships with:

    1. sudo apt-get uninstall -y fake-hwclock
    2. sudo update-rc.d -f fake-hwclock remove
    3. sudo nano /lib/udev/hwclock-set (and remove the /run/systemd/system section).
  4. Finally, I could write the current date and time to the hardware clock with sudo hwclock -w.

High-quality audio

Enabling the high-quality line and headphone outputs also requires a similar effort:

  1. I had to remove the following default line from /boot/config.txt:

    dtparam=audio=on
    
  2. Then I enabled i2s and the hifiberry-dac appropriate for the audio chipset on the MirkoPC inside /boot/config.txt, and rebooted:

    # I2S DAC
    dtparam=i2s=on
    dtoverlay=hifiberry-dac
    dtdebug=1
    
  3. I confirmed the DAC was working correctly by running sudo aplay -l.

  4. I played back music using mplayer (e.g. mplayer file.mp3).

I should note that by default, using my pair of Audio Technica over-the-ear headphones, I was glad to not have them on my ears when I did this the first time—the default volume was something like 88%, and that would've probably ruptured my eardrums!

I turned the volume down to a more pleasant 4% using the / key and was able to enjoy a few songs through the MirkoPC. The audio circuit on it sounds great, and I could not hear any discernible background noise—which is better than I can say for many devices!

Designed by Mirek, in Poland

What I think impressed me the most about this board—and others like it that I've since discovered—is the fact that it was conceived, designed, and built by one person, Mirek, in Poland!

I am amazed how much one person can do with electronics design today. Building custom PCBs to hold a tiny computer that's more powerful than the computer I owned 10 years ago—with more functionality to boot!—can be done in the matter of weeks by one individual with the proper tools.

And those tools are progressively getting less expensive, opening up more advanced electronics design to a much larger group of people than ever before.

And yet, we still seem to be (as a society) moving towards locked-down platforms and proprietary standards in many areas.

There are definite tradeoffs with the MirkoPC and others like it (e.g. with RISC-V computers, they are often a bit slower and even less widely-used/supported than even ARM boards like the Pi), but using more open designs and building on top of open source solutions feels like a better way to keep advancing our industry forward and creating new opportunities.

Conclusion

I got a little philosophical there, but bringing it back to the MirkoPC, it's not a perfect board. The power circuit on it is designed for 5V 3A power input, but if you couple the Pi CM4 (which likes to have at least 10W of power available at peak) with a fast modern NVMe SSD like a WD_black (which can use up to 10W peak), the 15W available through the MirkoPC's power connector is not adequate, and I was able to make some writes error out when pushing the Pi to it's extremes.

Also, the MicroSD card slot on the back (which is in the middle of the board) is in an awkward location, making it hard to plug and unplug cards for 'Lite' CM4 models that don't have built-in eMMC.

I'm hopeful Mirek can work through some of these issues in a 2nd revision to the board, and you can follow his progress on Hackaday or his MirkoPC GitHub project.

Comments

Very tempting, irresistible if power-over-ethernet was added!

I would love to see USB 3.0 support on this little board!

Where I can buy it? I was also searching Google for Mirko Electronics and there is no single website.

So far, no USB 3(...). I can care less for 4 USB 2s.

Well, that is because the PCI lane, which normally is populated by the USB3 controller, is being used for the M.2 drive. Now, you could, in theory, use a riser to get a USB card connected to that PCI lane, but... well, that's a waste of time and energy.
I guess we'll just be waiting until the Foundation comes out with something that has more that 1 PCI lane (or, really, Broadcom does - because this is a limitation of the SoC, methinks.)
But it's hard to step up the power and IO of a SoC without making the power consumption just unreasonable, as this would make it hard to do embedded things on batteries. Maybe soon we'll see a splintering of the Pi lineup, because the power consumption of each successive model just keeps trending up, up, and up. A model C, or another model A perhaps.

Or you all abandon that religious cult and quit using RPis. There are plenty of faster computers out there. Mine has 6-core CPU with 4xA73 at 2.2GHz, 4xUSB3 and 4GB of RAM. I use it as my everyday desktop, that good it is. I'm writing this rant on it.
RPF has a very successful business model of pretending there's nobody near them, where in fact there are plenty of far better computers out there. Free from hardware bugs, what by itself is convincing. Open source hardware and software. With smarter community than quarter million middle-aged weirdos hanging out on an educational toy forum and copy-pasting the fixed set of advice on every question asked.

For all that money you can get a proper computer with i3 and full usb 3.0....

I contacted Mirek this week with a view to purchasing one of these. He said the project is now closed and he will not be building any more.

Thought I would share this here.

Thanks for the update! Thanks so much to Mirek for making a number of the boards, and the inspiration from making the thing. I know a few other people who are now trying their hand at building their own PCBs inspired by the TOFU!

I am wondering to know if there will be 12/13/14 inch laptops with inter-changable CM4 or any other CM (pine64/radxa) to make it as daily user?