Home Blog

How to set up a free self hosted email server for home in 2020

Outcome Summary

  • This ‘How To’ article will show you step by step how to set up and install the Zimbra mail server, arguably the best professional mail system you can get as an open source free alternative to cloud and proprietary solutions. There is also another frontrunner though, SOGo mail server. If you’re after something simpler, this may be for you.
  • This article includes installation of anti-spam technology
  • This article includes proper implementation of email sending so that it is not detected as spam by recipient services

I actually did this project while in lockdown because I was frustrated with the cost of decent email and forgot to publish it. Since that time obviously centos has got a new contender in the space, but the instructions will still work and I suspect people will get some use out of it. The server I built out of this guide is still running happily today serving many happy customers with email. Happy emailing. 😀

Why might I want to do this?

Pros

  • Because you’re tired of paying $7 per month for one email account and you need more accounts!
  • Because you’re tired of paying for an extra domain only to be told you also need to pay for an extra account on top
  • Because you want to know your personal email isn’t being mined and analysed for information (not naming you because I’m scared of you)
  • You’re a geek and you need admin sending accounts and so on (and let’s face it you are)
  • Because your provider keeps marking email as SPAM when it isn’t (thanks Microsoft, why don’t you listen to your forums!)
  • Because your provider loses email when it shouldn’t (I’m not naming you but you know who you are)
  • Because you’re so tired of cloud everything, and it fails to deliver sometimes (and you’ve tried enough of them to know)
  • Because $7 + $7 +$7 +$7 ‘per user’ for everything cloud begins to become unviable and it’s more cost effective to do it yourself!

Cons

  • You have to administer it
  • You may experience slightly more downtime

Implementation

Zimbra Mail Server – Amazon Simple Email Service (SES) for sending

Problem

Most residential ISP’s either don’t allow or don’t provide a PTR record (that is a reverse DNS lookup that can only be provisioned by the owner of an IP address).  While many email providers have now done away with PTR validation including the big ones such as google and Microsoft), many still use this validation technique, so without a PTR you are likely to be unable to send to many addresses.

Architecture Summary

This howto will set up a Zimbra mail server, that receives on your local server but sends via an external mail relay, Amazon Simple Email Services.  Using an official mail relay gets around the problem of PTR.  Amazon is chosen because even though there are free mail relays available, Amazon has a high reputation and very low cost solution that is likely to cost less than 10c per month for most people.  You can easily change this out if required, just search online for ‘email relay’ to find another choice.

Further Recommendations

It’s a good idea to run a backup MX either in the cloud or with a friend as a store and forward, this way if your ISP or email server experiences an outage, your mail will be safe and senders will not receive email delivery delay messages.

Pre-requisites

Domain Setup

  • DNS A record server.yourdomain.com pointing to public IP of your mail server (NAT OK)
  • MX record yourdomain.com points to server.yourdomain.com 10
  • Set up Internally facing DNS pointing to mail server in firewall e.g. kirk.yourdomain.com (some firewalls may just use the public IP OK, OPNSENSE doesn’t and this is better anyway).

Amazon Simple Email Service

  • In AWS console
    • Set up domain and DKIM – very important
    • Request sending limit increase (takes 24 hours) so that you don’t have to validate every email address recipient and can increase from default 200 emails per day sending if desired.

Email Server System Requirements

  • 2.0GHz 64 bit CPU
  • 8 GB RAM
  • 10GB Disk Space for software and logs (allows for 5GB logs) + Mail storage
  • See here for more information

Operating System

  • Minimal CentOS 7 server (minimal chosen to avoid conflicts with Zimbra in-built mail systems such as postfix) see here for other supported Operating systems
  • Ext4
  • NTP configured and running

Summary Steps

High Level Summary Steps

The below lists the high level summary of steps we’re about to take during this howto.

Virtualisation settings

  • Provision in qcow format to limit disk space usage
  • Install and create a new minimal CentOS Virtual Machine or equivalent
  • 8-16GB RAM / 4CPU
  • Note the Network Mac address from the VM template and assign a static IP from your router

CentOS Install

  • Don’t forget to turn on network and configure hostname at your domain during install
  • You don’t need to create a zimbra user, it’s created by the install script automatically.

Build

  • Add your Zimbra user to the sudo group
  • # usermod -aG wheel Zimbra
  • Note you may have to log out and back in for the sudo command to take effect.
  • Update your packages to latest
  • $ sudo yum update
  • Disable the inbuilt firewall (make sure you have a network firewall obviously)
  • $ sudo systemctl disable firewalld
  • $ sudo systemctl stop firewalld
  • Disable selinux
  • $ sudo setenforce 0
  • $ sudo nano /etc
  • Change selinux to SELINUX=disabled in the below file
  • $ sudo vi /etc/selinux/config
  • Install dependencies (+ wget and nano)
  • $ sudo yum -y install unzip net-tools sysstat openssh-clients perl-core libaio nmap-ncat libstdc++.so.6 wget nano
  • Remove unwanted stuff
  • $ sudo systemctl stop postfix
  • $ sudo systemctl disable postfix
  • $ sudo yum remove postfix
  • $ sudo hostnamectl set-hostname kirk
  • Add the following into /etc/hosts
  • 192.168.1.41             kirk.yourdomain.net            kirk
  • Download Zimbra
  • Get the link for the latest red hat 7 edition from here
  • $ sudo wget https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_3869.RHEL7_64.20190918004220.tgz
  • Extract it to the zimbra home folder
  • $ tar -xvf zcs-8.8.15_GA_3869.RHEL7_64.20190918004220.tgz
  • Run the install script
  • $ sudo ./install.sh –platform-override
  • Accept licence agreement [Y]
  • Use Zimbra’s package repository [Y]
  • Accept all the defaults for the package installation (imapd correctly defaults to no, for others [Y]
  • The system will be modified [Y]
  • DNS Error Resolve MX for kirk.yourdomain.com
  • Change domain name? [No]
  • In the menu, press 7 and 4 to set the admin password
  • Press r to return
  • Press a to apply
  • Say yes to save configuration and note the path as you may need this depending on your proxy setups etc.
  • The system will be modified [Yes]
  • Notify Zimbra of your installation  [No]
  • Configuration complete, press return to exit.

Configuring Zimba

  • From a web browser go to your mail server on port 7071 via https e.g. https://kirk.yourdomain.com:7071
  • Accept the self signed certificate, you’re likely using a reverse proxy anyway
  • Login with admin and the password you created previously.
  • You now have a fully functioning mail server.
  • The server can be uninstalled by
  • $ sudo ./install.sh -u
  • Also, you can reinstall it safely over the top if you want to change some settings (it detects what is already existing in the configuration automatically.

Connecting to the web mail address

Best practice and easiest would be to set up a reverse proxy to the webmail server over https e.g.

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name webmail.yourdomain.com;
    include /config/nginx/ssl.conf;
    client_max_body_size 0;
    # enable for ldap auth, fill in ldap details in ldap.conf
    #include /config/nginx/ldap.conf;
    location / {
        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_app 192.168.43.41;
        set $upstream_port 443;
        set $upstream_proto https;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
    }
}

Or you can directly connect to the webmail self-signed install by port forwarding to port 443 on the server IP.

In Zimbra administration

  • Go to configure, domains, new
  • Add your proper domain (i.e. without the host part)
  • e.g Domain name electropositive.net
  • Click next and choose the mail server from the drop down list.
  • Click finish (skipping the remainder of the screens.
  • Go to configure, global settings, and chance default domain to the correct default domain (i.e take out the host).  e.g yourdomain.com is all that should remain.
  • Go to configure, class of service, default, preferences and choose your default time zone.  Save.
  • Go to Manage, accounts, new
  • Add your email address and relevant domain
  • Add your First / Last name
  • Set your password details and time Zone
  • Skip the remainder of questions and click finish

If you get an error about “unknown command sent to server: ZxChatRequest”, the fix is to do the following:

mv /opt/zimbra/lib/ext/openchat/zal.jar /tmp
cp -rp /opt/zimbra/lib/ext/zimbradrive/zal.jar /opt/zimbra/lib/ext/openchat/zal.jar
su - zimbra
zmmailboxdctl restart

Amazon Simple Email Services setup

  • Setup your Amazon dkim etc if you haven’t already.
  • Get your smtp username and password.
  • su – zimbra
  • create an authentication file for amazon:
  • nano /opt/ zimbra/conf/relay_password
  • email-smtp.eu-west-1.amazonaws.com AKIATNTTHISISDUMMYCODEF36NNR: BVm74Oor0nB1XDUMBvFs2xtEmla8Ki
  • postmap lmdb:/opt/zimbra/conf/relay_password
  • Configure zimbra to use this username and password:
  • zmprov mcf zimbraMtaSmtpSaslPasswordMaps lmdb:/opt/zimbra/conf/relay_password
  • zmprov mcf zimbraMtaSmtpSaslAuthEnable yes
  • zmprov mcf zimbraMtaSmtpCnameOverridesServername no
  • zmprov mcf zimbraMtaSmtpTlsSecurityLevel may
  • zmprov mcf zimbraMtaSmtpSaslSecurityOptions noanonymous
  • Create a lookup file where you put the domains you want to send via amazon or skip to the bottom where you can just route all non-local mail to amazon via the GUI.
  • nano /opt/zimbra/conf/relay_amazon
  • inside that file put 
  • kirk.yourdomain.net smtp:email-smtp.eu-west-1.amazonaws.com
  • postmap lmdb:/opt/zimbra/conf/relay_amazon
  • Of Course, you can add extra domains to the list above in an editor of your liking. Remember to run the postmap command after every change.
  • Tell zimbra to use the above mapping:
  • zmprov mcf zimbraMtaTransportMaps lmdb:/opt/zimbra/conf/relay_amazon,proxy:ldap:/opt/zimbra/conf/ldap-transport.cf
  • Activate the configuration
  • zmmtactl reload

Configure all non local mail to amazon via GUI

  • Go to configure, global settings, MTA, network.
  • Add email-smtp.eu-west-1.amazonaws.com to relay MTA for external delivery port 587
  • Save

Adding an extra domain

  • Add a new domain to zimbra
  • Add the new accounts on that domain
  • Validate the domain on amazon or your other relay
  • Do it in this order so that any downtime between old and new providers has the mail turning up in one of the accounts.  Failure to do so may create some non-delivery.
  • Caldav and cardave work on port 443 so reverse proxy is good for that

How to set up Taiga with Docker on Ubuntu

What is Taiga?

Taiga is an awesome agile team management tool. Think of it as more advanced than Trello, but less advanced than Jira. Don’t let that fool you though, you can do most things Jira can do and it’s a lot nicer to work with. It has the full range of features you’d expect, such as Scrum and Kanban Support, Ticket management, configurable sprints, burndown charts and Epic linking. Further it supports import from Trello (and a few others), integration with Github/Gitlab. For a complete and up to date feature list, have a look at the official Taiga site here. Also note, it is available as open source or paid options, the only difference with the paid option being that they host it for you.

Why did I write this?

If you’re like me and ever having tried Taiga, it’s pretty frustrating such an awesome product loses customers over what looks like great documentation, but misses out a lot of the basics. Such as how to actually set it up so that it can be accessed behind a reverse proxy. This page outlines how I got mine set up with default settings, so that you can modify from there. There is still an unofficial omnibus docker image here you can use, but for this guide, I’m using the official Taiga docker method which requires unfortunately docker compose.

Mostly these days, I use docker in behind something like unraid, or the new TrueNAS Scale, but those platforms don’t play well with docker compose out of the box. So for Taiga, given I needed a production instance, I opted for a small Ubuntu Server OS (no GUI) and installing docker compose and docker on that.

Some great guides for getting docker and docker-compose installed to latest versions for Ubuntu are at Digital Ocean e.g. here.

Please note the master taiga documentation here.

The process

Typical to Taiga, they don’t do things like everyone else and as such Taiga docker doesn’t work like other docker instances. That’s the first stumbling block is others coming along get stumped and give up. What they do is have a git repo, which you clone then configure by hand at the command line, then publish into dockers by using docker-compose. Rinse and repeat when your config changes. It’s quite horrible if you’re only used to things like unraid, but if you’re more familiar with the devops side of things, it’s a tad more familiar.

Step 1: Clone the files

git clone https://github.com/kaleidos-ventures/taiga-docker
cd taiga-docker
git checkout stable

Step 2: Edit the config files

docker-compose.yml

&default-back-environment
POSTGRES_DB:  taiga
POSTGRES_USER: taiga
POSTGRES_PASSWORD: yourdbpassword
TAIGA_SECRET_KEY: "your secret key"
TAIGA_SITES_DOMAIN: “taiga.yourdomain.com:443”
TAIGA_SITES_SCHEME: “https”

Taiga-db
POSTGRES_DB:  taiga
POSTGRES_USER: taiga
POSTGRES_PASSWORD: yourdbpassword #same as above)

Taiga-events
TAIGA_SECRET_KEY: "your secret key" #same as above

Taiga-protected
TAIGA_SECRET_KEY: "your secret key" #same as above

Taiga-front
TAIGA_URL: “https://taiga.yourdomain.com:443”
TAIGA_WEBSOCKETS_URL: “wss://taiga.yourdomain.com:443"

taiga-gateway
ports:
  - "443:443"

docker-compose-inits.yml

&default-back-environment
POSTGRES_PASSWORD: your db password #same as above
TAIGA_SECRET_KEY: "your secret key" #same as above

Other

Of course you should really update your RABBITMQ_PASS as well, but you get the idea.

The other part of course is the NGINX reverse proxy. I use a great little docker container for this called Swag that handles the proxying and SSL via lets encrypt. You can find this here.

I haven’t gone into the details of setting that up as there is plenty of good documentation on how to do that around the web, however the NGINX file you need to create within it would be as follows:

taiga.subdomain.conf

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name taiga.yourdomain.com;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;
    large_client_header_buffers 4 32k;
    charset utf-8;

    # enable for ldap auth, fill in ldap details in ldap.conf
    #include /config/nginx/ldap.conf;

    # access_log /home/taiga/logs/nginx.access.log;
    # error_log /home/taiga/logs/nginx.error.log;

    # Frontend
    location / {
        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_app taiga;
        set $upstream_port 443;
        set $upstream_proto http;
#        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
	 proxy_pass http://192.168.1.18:443;
    }
}

Note the last line and the hashed out line before it. I tend to like to just type things, but if you prefer you can swap that around. The proxy pass line should point to the host ip of your ubuntu server. This allows your newly set up ‘swag’ container to proxy web sites to any number of hosts on the internal network with a single IP address – ssl certificate all taken care of as part of the process.

Also clearly this is not typical given there is port 443 being used for non-encrypted tunnelling between the nginx reverse proxy and the nginx proxy that comes with Taiga. The key to understanding this is to look at how things communicate. To explain that, I’ve copied in a simple diagram below. I agree it’s not very clever but from what I can tell, you can’t really encrypt that side of the traffic and it’s a limitation of how taiga has been coded. Hopefully I will prove that wrong at some point, but so far no luck!

Anyway, I hope this helps someone and perhaps promotes this great open source Agile tool also. Next on the list is to figure out why the events in it isn’t working!

Marshalleq

Raspberry Pi audio HAT’s (Hardware Attached on Top) – Definitive List

Summary

Back in July 2014, Raspberry Pi announced the then new, Raspberry Pi 2 followed soon after by the announcement of HaTs (Hardware Attached on Top).  There have been some incredible products developed that attach to the Raspberry Pi 2, 3 and now the Raspberry Pi Zero as well.  Audio has been one of those incredible product ranges where in some cases a US$20 add on board competes with US$700 off the shelf DAC (Digital Audio Converter) supplied from some very large Audiophile brands.

If you’re looking to make a cheap but high quality audio device, be it for Audiophile purposes, Home Theatre purposes or something else, a Raspberry Pi with an Audio HAT is a great option.

Combine one of these with some audio related software for Raspberry Pi and you’re all geared up for sonic bliss on a budget.  Please see our disk images page here for a list of audio software available, both free and paid for the Raspberry Pi.

This page attempts to list all the Raspberry Pi add on audio hardware from around the web.

If you notice anything obvious missing, please list it in the comments below and I will add it.

If you are the manufacturer of any of these devices and wish to make a correction, remove it from this list or otherwise, please either add a comment below, or direct message me @marshalleq on twitter.

Contents

Audio Injector

Audio Injector is a maker of Audio HATs for Raspberry Pi that feature both inputs and outputs, potentiometers and even an electret microphone port.  It’s unique hardware offerings are particularly useful for musicians.  The products have been designed ‘live’ including feedback from the kickstarter community allowing re-design before shipping.  Both the Injector pi and the injector Octo were successfully backed and shipped.  The latest which has nearly reached it’s Kickstarter target is the Injector Zero.

Zero Soundcard

The injector Zero is a Rasperry Pi Audio HAT where you guide live redesigns.  Full functionality – ins, outs & mic.  Small enough to fit on a Rasperry Pi Zero.

Stereo Soundcard

The Stereo Soundcard by Audio Injector provides two channels of Audio input and two channels of audio output.  It provides a stackable GPIO header more in line with shield lore than that of a simple HAT.  It uses crystal driven codec as a timing master and tantalium DC decoupling capacitors along with 32 bit operation.  It includes input and output volume / gain knobs right out of the box.  You can get one on ebay here.

Octo Soundcard – Cirrus Logic 42448 – 24/192

One of the most exciting audio HAT’s I’ve ever seen, The Audio Injector Octo Raspberry Pi HAT features crystal clear 8 channel audio output and 6 channel audio input.  Through some apparent feats of hardware engineering, it achieves this through the I2S GPIO bus rather than USB or HDMI.  It has both unbalanced RCA and ‘powered’ balanced audio output options because the system is differential.  It supports customising your own breakout audio style via standard break out headers.  There are more details on the original kickstarter page here.

AudioPhonics

Audiophonics isa French audio oriented supplier / manufacturer of Audio Electronics equipment, including the well regarded Audio-GD brand.  Their hardware is of a high standard and their kits (including those for the Raspberry Pi) are very comprehensive including many beautiful and functional options for cases.

I-Sabre I-DAC ES9023 TCXO

The I-DAC ES9023 TCXO is a more advanced version of the AudioPhonics Sabre ES9023 which includes a temperature controlled crystal oscilator.  It supports Raspberry Pi A+, B+ and is equipped with the now famous Saber ES9023 ultra low noise ‘on’ regulator and condenser.  It supports GPIO B+ or A+ Raspberry Pi as well as generic I2S ports e.g via USB.  There are older versions listed on their web page, but these all redirect to this version.

I-Sabre AMP DAC – Saber ES9023 / 24/192 – Class D Amp 2x30W TPA3118

The I-Sabre Amp DAC is an all in one DAC and amp based on the Saber ES9023 removing the need to connect an external amplifier.  It also supports use of an Infrared remote and is compatible with the usual Raspberry Pi Audio software listed here.

RaspDAC Kit – Special Mention

One of the nicer kits available today is the Audiophonics RaspDAC network player kit.  It includes the above I-Sabre I-DAC ES9023 TCXO DAC listed above.

Fe-Pi

Without a doubt the cheapest offerings I’ve seen to date. Here.

G2 Labs

Showing as all out of stock, included here only in case they become available again.  G2Labs.

BerryNOS 1543 Red

Listed here.

BerryNOS mini

Listed here.

HiFiBerry

HiFiBerry is a brand that makes a number of entry level priced add on hardware boards for Raspberry Pi to increase the sound quality.  Don’t be fooled by it’s low price point, it has been said that the sound quality of these devices rival that of a US$700 audiophile stand alone unit.  HiFiBerry currently support the Raspberry Pi 2 & 3 model B and Raspberry Pi Zero.  They post an impressive array of products covering both Analog and Digital output options, plus options for dedicated power amp, separate power supply, Real Time Clock and even balanced outputs.  Further, the HiFiBerry is dead simple to install in most cases requiring no soldering.  They all provide access to the GPIO pins except for the Pi Zero.

Further, HiFiBerry now offer an excellent HiFiBerryOS free of charge, that combines a large number of audio sources such as Roon, Airplay, Spotify, Squeezbox, Bluetooth, Openhome and pipes them out any of the HiFiBerry boards, complete with official drivers.

There are four main ranges of HiFiBerry Audio Hats.  The DAC (which is analog output), the DIGI (for digital output), the Amp (removing the need for a separate amplifier) and finally the DSP which comes in either an add on board format, or included in the Beocreate listed below.

Amplifiers

Amp2

The successor to the Amp+, the HifiBerry Amp2 now supplies up to 60W of class D power using a single 12-24v power supply which powers both the Amp2 and the Raspberry Pi.  Sample rates from 44.1-192kHz (16-32 bit) are supported.  The HifiBerry Amp2 is basically a DAC+ with an integrated power stage. You can buy the HifiBerry Amp2 here.

Beocreate 4CA

The Beocreate HAT, is a fantastic board that includes a 4 channel amplifier (2x30W + 2x60W), TOSLink digital in and out, ethernet, wifi 24 bit / 192Khz DAC specifically designed to retrofit into Bang & Olufsen Beocreate speakers.  It can be run with our without a Raspberry Pi, or as some have done, retrofitted into other speaker brands as seen on YouTube.  You can buy a HiFiBerry Beocreate DSP board here.

Miniamp

Marketed as when you’ve just got to have small, the HifiBerry Miniamp is their smallest amplifier board, designed for the Raspberry Pi Zero.  However, it can also be used with the other raspberry pi’s.  At a price of only $16.90 it’s actually a pretty nice and impressive option.  Supplying 3W of power via Class D it’s not going to suit all your installations, but could be great as a kitchen radio or something for the kids.  At this wattage, it’s easily powered from your existing Raspberry Pi supply which is a bonus.  The HifiBerry Miniamp can be purchased here.

Analog Preamp Out Boards

DAC+ Light

The DAC+ Light A high resolution digital to analogue converter available for every Raspberry Pi model.  Powered directly from the Raspberry Pi I2S port, ultra-low noise voltage regulator, available with RCA outputs.  Dedicated 24/192 ESS DAC, includes all materials needed in the box.  Some nice case options are available at HiFiBerry that mount the Raspberry Pi and the Dac+ Light in a single box of plastic or aluminium.  You can buy a HiFiBerry DAC+ light here.

DAC+ Standard

The HiFiBerry DAC+ Standard is the same as the HiFiBerry DAC+ Light, however it adds a higher quality Burr-Brown DAC, 3.5mm output option, Integrated Volume Control and an Integrated EEPROM.  You can buy a HiFiBerry DAC+ Standard here.

DAC+ Pro

The HiFiBerry DAC+ Pro is the same as the HiFiBerry DAC+ Standard, however it adds Gold Plater RCA outputs or Balanced XLR, a dual domain clock circuit to lower jitter and allows modification to provide an external power supply for the analog part of the board and provides capability to connect external I2S DAC’s.  You can buy a HiFiBerry Dac+ Pro here.

DAC + Zero

Similar to the DAC+ Light, the HiFiBerry DAC+ Zero it designed for a Raspberry Pi Zero.  It does not have the advanced features such as volume control, EEPROM, ultra-low noise regulators, but still offers good sound quality and 24/192KHz playback.  It is the exception in that it is not an all inclusive kit, requiring separate purchase of spacers and a male header.  You can buy one here.

Dac2 HD

The HifiBerry Dac2 HD is a new offering only announced 17 August 2020.  Designed to be just the best sound money can buy, with a completely redesigned power supply for just that very reason it comes in at one of the highest prices I’ve seen for one of these boards.  Available also is the HifiBerry DSP add-on for digital signal processing and the HifiBerry Aamp60 for 60 Watts of class D power.

DAC2 Pro

The successor to the HiFiBerry DAC+ Pro above, the HiFiBerry DAC2 Pro adds dual-domain low jitter clock and gold plated RCA connectors, on board headphone amplifier and DSP add on card support.  You can buy the HiFiBerry DAC2 Pro here.

DAC2 Pro XLR

Identical to the DAC2 Pro with one obvious exception, the DAC2 Pro XLR adds two balanced XLR jacks for fully balanced, audio output.  You can buy the DAC2 Pro XLR here.

Digital Out Boards

Digi+ Standard

The HiFiBerry Digi+ standard contains high-quality S/PDIF output boards with a dedicated 24/196 chip.  They include both Optical (Toslink) and electrical outputs, are bit-perfect, require no additional cables and again are powered directly from the Rasperry Pi.  They have an integrated EEPROM and include all components required to mount it to the Raspberry Pi.  You can buy a HiFiBerry Digi+ standard here.

Digi+ Transformer

The HiFiBerry Digi+ Transformer is the same as the Digi+ Standard, but with galvanic isolation via a special output transformer.  This is generally only an advantage for audiophiles not using an optical output.  You can buy a HiFiBerry Digi+ Transformer here.

Digi+ Pro

The HiFiBerry Digi+ Pro is the same as the HiFiBerry Digi+ Transformer, however it includes a low-noise power regulator and a dual domain clock generator.  This is the model for the audio enthusiast.  You can buy a HiFiBerry Digi+ Pro here.

Bundles

A number of HifiBerry HAT’s bundled with Raspberry Pi’s, power supplies etc can be purchased here.

IQaudIO

IQaudIO make a number of differing audio products, including for the Raspberry Pi.  Again featuring an impressive array of output options covering analog, digital and a straight build in power amp, supporting both the standard Raspberry Pi and the Raspberry Pi Zero, IQaudIO are another solid option.  You can find their Raspberry Pi Audio HAT options here.

Pi-DAC+ – TI PCM5122 – 24/192

The IQaudIO Pi-DAC+ can be plugged straight into your Raspberry Pi requiring no soldering to install.  It features an integrated hardware volume control, a built in high quality headphone amplifier and advanced ESD protection.  It is powered directly from the Raspberry Pi has standard Phono / RCA connectors and can take an optional infrared receiver for remote control.

Pi-AMP+ for Pi-DAC+

The IQaudIO Pi-AMP+ for PiDAC+ is a 2x35w add on Stereo Class D amplifier for the above Pi-DAC+.  It is a solderless design and requires an external power supply, which provides power to both the raspberry Pi and the PiDAC+.  You can buy one here.

Pi-DACZero – TI PCM5122 – 24/192

The pi-DACZero is designed exclusively for the Raspberry Pi Zero.  It features integrated hardware volume, Audiophile Burr Brown DAC, Advanced ESD protection, no additional power needed, standard Phono / RCA connectors, support for a headphone board, rotary encoder and as such is one of the more fully featured audio HATs for the Raspberry Pi Zero.  You can buy an IQaudIO Pi-DACZero here here.

Pi-DACZeroHP

The IQaudIO Pi-DACZeroHP is an audiophile headphone daughter card for the above IQaudIO Pi-DACZero.  It features a 3.5mm stereo headphone output, 24/192 playback and requires no additional power connection.  You can buy an IQaudIO PiDACZeroHP here.

Pi-Digi+ – Wolfson WM8804 – 24/192

The IQaudIO Pi-Digi+ is utilises the popular WM8804 digital output card for Raspberry Pi.  It includes both optical and electrical outputs, a galvanic isloation transformer as standard on the electical output, Wolfson WM8804 chip, Advanced ESD protection and is powered via the standard Raspberry Pi I2S pins.  You can buy a IQaudIO Pi-Digi+ here.

Pi-DAC Pro – PCM5242 – 24/192

The IQaudIO Pi-DAC Pro is an audiophile grade DAC for the Raspberry Pi featuring Phono / RCA outputs, 3.5mm Headphone outputs and includes supplied (but not fitted) headers for balanced XLR outputs.  It’s another solderless board requiring little installation unless you desire XLR.  It has an audiophile Burr Brown DAC, Advanced ESD protection and the usual DAC features from IQaudIO.  It is very well rated in reviews, outclassing many other expensive name brand solutions.  You can get buy an IQaudIO Pi-DAC Pro here.

Pi-DigiAMP+ – TI TAS5756m – 24/192

The IQaudIO Pi-DigiAMP+ is a combined DAC and AMP solution in one board.  It is one of the more powerful Raspberry Pi Amp’s rated at 2x35w.  It supports IR sensors, rotary encoder, or i2c devices such as OLED screens.  It includes EEPROM, 24/192kHz playback, solderless design, hardware volume control and powers the Raspberry Pi via it’s own power supply.  It even has design support for the official 7″ Raspberry Pi Screen.  You can buy an IQaudIO Pi-DigiAMP+ here.

JustBoom

JustBoom again features yet another impressive array of audio products designed specifically for the Raspberry Pi 3B, 2B, B+ and the Pi Zero.  Both analogue, digital and power amp options are available, plus some standalone options, priced very well that don’t require a Raspberry Pi at all.  A unique product to JustBoom is an actual physical remote control, which is a nice touch.

Dac Zero 32/192 – TI PCM5121

The Justboom Dac Zero for Raspberry Pi by Justboom is a plug and play, high resolution, digital to analog converter for the Raspberry Pi Zero and Pi Zero W.  It is a no solder solution and includes all mounting hardware.  It includes an optional IR receiving for remote control.  It is sold as supporting 32 bit / 384kHz audio, but like others in it’s class is limited by the driver restrictions to 192kHz which is later noted in the description.  It does still state that it supports 32bit though, which is the only brand I’ve noted to do so.  It includes a headphone amplifier and does not include RCA outputs, this instead requires a cable to convert from the standard (but seperate) 3.5mm connection.

Amp Zero 32/192

The JustBoom amp zero is a TAS5756 class D amplifier designed specifically for the Raspberry Pi Zero.  It provides 32/192kHz output, at an impressive 30W RMS / 55W peak.  It includes a headphone amplifier and the usual ESD protection.  Although noted as having RCA outputs, this appears to refer to the voltage rather than the connector.  It does not have RCA outputs, rather screw down connectors for speaker wire.  This does lead to some small doubt over their specifications as this is the second time this has been contradictory to their own product imaging.  Still, a solid sounding performer at an incredible price point.

Digi Zero – 24/192

The Justboom Digi Zero is the same as the DAC zero but with digital outputs instead of analogue outputs.  It is simple and easy to install and use, with no soldering required.  The mounting hardware is included and again it includes the ‘optional’ but included IR port which you can solder on yourself if desired.   It supports both optical and electrical connectors, low jitter, bit perfect output.  It has galvanic isolation for the electrical output and sports a software based volume control.

Digi HAT – 24 /192

The JustBoom Digi HAT is a high resolution audio output add on board for the Raspberry Pi.  It supports the Raspberry Pi A+, B+, 2B or the new 3B and Raspberry Pi Zero (though the above Digi Zero is a better fit for that).  It produces unmodified high quality digital audio data stream for bit perfect transmission.  It supports both optical and electrical connectors, low jitter, bit perfect output.  It has galvanic isolation for the electrical output and sports a software based volume control.

DAC HAT – 32/192

The JustBoom DAC HAT is a plug and play, high resolution, digital to analogue converter for the Raspberry Pi.  Simply stack the plug-and-play add on board (HAT) onto your Raspberry Pi A+, B+, 2B or the new 3B and it will be ready to use immediately.  It has both line level RCA connectors and a headphone amplifier, requires no soldering, supports both hardware and software volume control and includes all mounting hardware.  It also includes the ‘optional’ but included IR receiver in the package.  You can add the JustBoom AMP, on top of this DAC HAT to add further outputs to your sound.  This can ‘backpower’ the DAC HAT and the connected Raspberry Pi.

Amp HAT – 32 /192

The JustBoom AMP HAT (Not to be confused with the different but similar JustBoom AMP), is a high qualtity Class D audio amplifier with included DAC.  It requires no soldering and includes all the mounting hardware including the optional IR port.  It will power 4 or 8 Ohm speakers and is rated at an impressive 2x30W RMS (or 2×55 Watt Peak).  It backpowers the connected Raspberry Pi and supports the Raspberry Pi A+, B+, 2B and the new 3B.  It does support the Raspberry Pi Zero, but obviously there is a dedicated option for that above.

Collybia

Mamboberry

Mamboberry made by Collybia is a high quality Raspberry Pi DAC that supports Raspberry Pi models A+/B+ and 2B/Zero/Pi 3.  It has an ultra low power requirement and supports powering the Raspberry Pi from the Mamboberry power input.  The full and impressive specs of the Mamboberry HiFi-DAC can be viewed here.

Orchard Audio

PecanPi Streamer / DAC

The PecanPi DAC made by Orchard Audio is an ultra-high fidelity, plug and play, ready to go wireless high resolution music streamer.  It has XLR and RCA connectors a headphone amplifier and supports 24 bit sampling rates up to 192kHz.  The full specs of the Orchard Audio PecanPi DAC can be viewed here.

Pi 2 Design

Just to confuse you Pi 2 Design make their add on hardware and call them shields instead of HAT’s.  A shield in the traditional sense is stackable (that is, other hardware can be added on top) whereas a HAT by design does not.  Officially Raspberry Pi don’t support stackable hardware, however that doesn’t mean it won’t work, so this solves one of the problems associated with having two needs on a single board.

502DAC – Pro Audio Shield – 24/192 – TI PCM5122

The 502DAC – Pro Audio Shield is a professional I/O audio ‘Shield’ designed to bring audiophile quality to the Raspberry Pi family of Single Board computers.  The 502DAC converts the Raspberry Pi I2S port to High Resolution Pro-Audio, Analog and Digital simultaneously. For more information on the 502DAC, please see their information and purchase page here.

503HTA Hybrid Tube Amp – 24/192 – TI PCM5102A

The 503HTA is one of the more exciting audio card options out there given that it includes a real tube for that ‘sweet tube sound’ that some of us like.  It’s a high quality HAT that even drives a headphone port.  It has a class A output buffer and Audiophile grade IRL510 MOSFET and LM317A constant current source.  It supports Tube Rolling and has it’s own volume and gain potentiometers.  It is also one of the more expensive and required a separate 48W 24v/2Apower supply.  You can get further details and purchase the 503HTA Hybrid Tube Amp here.  However, it has now been cancelled due to availability of parts.

Pi2Media

The Pi2Media is a profressional I/O sheild designed to extract the 7.1 surround sound audio data from the RPi 2 HDMI output while passing the original HDMI and audio to a downstream device.  At time of writing there doesn’t seem to be a purchase option or further specification, however information can be found here.

PiFi

Of course the Chinese cloning factory has audio cards also, with their PiFi which is supposedly a clone of a HiFi Berry.  Of course your mileage may vary.  You can buy them at dx.com here.

Pisound

One of the few cards available that offers audio ‘in’, not to mention volume and gain controls, standard 3/4 Jack connectors plus a programmable button to trigger up to four different scripts depending on how you press it, this one is an out of the box audio card for muso’s.  It also promises to be super low latency for all that multitrack goodness, support three types of MIDI and connect to smart phones and tablets.  You can lay your hands on a pre-order here.

Pimoroni

pHAT DAC – 24/192 – TI PCM5102A

The Pimoroni pHAT DAC is one of the cheapest audio cards available today, providing super affordable high quality audio for the Raspberry Pi in a Raspberry Pi Zero format.  It supports also Raspberry Pi 2/B+/A+.  It’s based on the Texas Instruments PCM5102A DAC chip and supports 24 bit audio up to 192KHz.  It comes with a standard 3.5mm line out jack and has optional an landing for dual RCA connectors at only $2 extra.

Raspyplay3

Other

The branding of the below cards are either generic or unclear.  Please advise if you are aware of any further information.

Cirrus Logic Audio Card

Supporting Pi 3, Pi 2, B+ and A+, Cirrus Logic are one of the less common brands to get in on the Raspberry Pi Audio market, while their roots are from a long standing PC audio card market which died out with the integration of most audio into motherboards back in the 2000’s, it’s good to see them back in the add on board market.  Also, they have just purchased Wolfson Audio, which put’s them toward the higher end of the super portable audio market.  You can buy one here.

Wolfson Audio Card – 24/192

The Wolfson Audio Card, extends and enhances the Raspberry Pi® audio features beyond its native HDMI output with onboard HD Audio, at 24-bit, 192KHz. It offers similar flexibility to a PC soundcard to capture audio alongside their camera, and experiment with stereo digital capture and playback.  It is one of the few that has a wider array of audio connectivity options covering both playback and recording, including two in-built microphones.  It has a 3.5mm 4-pole jack for a headset/boom mic combination for gaming or VoIP applications, Two DMIC microphones onboard for stereo recording, 3.5 mm jack Stereo Line Output for connection to devices such as external stereo amplifiers or powered speakers and 3.5mm jack for Stereo Line Input for high quality audio recording or capture.

Summary

So that’s the first run of audio cards for the Raspbery Pi I can find.  If you find any I’ve missed, please let me know in the comments so I can add them!  Also, let me know if you purchase one and what your experiences are.  Enjoy your new sonic bliss!

Marshalleq.

How to check port forwarding is working

0

Problem-Outcome Summary

This guide applies to:

  • Any router or firewall you may have such as:
    • DLink, Asus, TP Link, Linksys, Synology, Apple, Belkin, Buffalo, Cisco, Netgear, TRENDNet, Zyxel (to name a few).

Why might I want to do this?

  • Typically, if you want to test port mapping, it’s because you’re trying to allow something on the internet, access to something on your internal network, beit at home or at work.  Sometimes things aren’t working properly and you just want to test if the port mapping is working.  Read on for more info.

Foreword

What do I get by using this testing method?

This testing method uses known internet based port detection methods that originate OUTSIDE your home or work network.  This is exactly what you need for most scenarios as typically it’s outside your network that you’re attempting to let in.

What kinds of port forwarding tests are there?

There are two main types of tests we can utilise here.  The first is like it sounds, it tests the ‘open’ or ‘closed’ state of a given network port and additionally if there is a response on the end of it.  The second is more of a catch all, which checks for any common port open on your IP address.  This is more typically used to check your security, but can also be used as a test here.

Security

Of course as with all things on the internet, security should be a concern.  Also depending on how concerned you are with that there are multiple levels of security you could worry about.

Of particular note with port forwarding is UPnP (Universal Plug ‘n’ Play).  This is provisioned to make things easy for people by automatically setting up the port forwarding rules in your router.  Of course the big danger with this is that there is no approval process and any software you download (or anyone else downloads) could potentially open up your internet connection in any way it decides.  Therefore, if you know what you’re doing, I personally recommend disabling UPnP on your router to prevent unauthorised access due to a virus or similar and setting up manually.  This way you can be sure of what ports you’ve opened and manage them accordingly.

In addition, please make sure you have a decent firewall.  This might be in your computers software if you have a modem connected directly to your computer, but these are the lowest grade of firewall.  Better is a separate piece of hardware that you connect with over Ethernet or Wifi, typically called a router, or may actually be a proper firewall also.

One of the advantage these dedicated hardware devices is that they protect your whole network rather than just a single computer.

Home routers have come a long way and are a lot better, but do not match the features and capabilities of a true firewall.  See our post on setting up IPFire for creating your own network based Firewall from scratch here.

Pre-Requisites

Software Dependencies

  • A recent web browser such as Firefox, Safari or Chrome

Hardware Dependencies

  • A computer or Router / Modem with firewall software installed and activated

Tools Required

  • None

Other Dependencies

  • An internet connection

Summary Steps

The below lists the high level summary of steps we’re about to take to….

  • Open your desired port
  • Test the port forwarding from the Internet

Implementation

Open your desired port

This article doesn’t go in to how to enable port forwarding.  It is assumed you have already attempted to do this.

Test the port forwarding from the Internet

Test a single port – Web Method

First ensure you know your internet IP address.  Note this is not the same as your computers IP address.  We have detected your internet IP address to be: 172.18.0.1

If you think our detection of your IP address is wrong, try going here for a second opinion.

To test a single port, choose from one of the below sites.  Ensure you know the port number that you have opened and enter it into the relevant port number field.  Enter in your IP address if necessary.

Test a single port – Telnet method

Another method which is often not known about is using telnet.  To do this however, you need to run it outside of your network.  Also, be careful that where ever you run it, that network’s firewall hasn’t blocked the port you are trying to test.  If you have a laptop, an easy way to do this is to connect it to your phone’s WiFi hotspot.  Just be sure to disable any other network connections.

The simple telnet test notation is like this

telnet <IP ADDRESS> Port

So typically in windows or Linux you could type telnet 201.55.102.1 80

If the connection is refused, that typically means the port is blocked.  If the connection says ‘Trying’ for some time, that typically means the port is open, but nothing is connected behind it.  And finally, if you get ‘Connected to’ etc.  Then the port is open and the service is working behind it.  Press CTRL-C and or Enter a few times to get out.

Scan for any open ports

To scan for any open ports (typically restricted to ports within a common range), simply do the same as above, except go to these sites instead.  Remember your IP Address: 172.18.0.1

Other

In addition to online tools, you can also download specialised software and scan your network from an alternate location.  This can be done with a tool such as OpenVAS which also does full security checking.  However, for purposes of checking open ports, the above will be much simpler to serve the purpose.

Final Word

So that’s it, pretty simple in the end.  However it’s the simple questions that are asked the most, so I decided to write a quick howto on it.

If you have any questions or queries, please do not hesitate to hit me up in the comments below.

Marshalleq.

Raspberry Pi Disk Images – Definitive List

This page attempts to list all the Raspberry Pi disk images known to currently exist from around the web, providing direct links to download pages and further information.

If you notice anything missing, please list it in the comments below and I will add it.

If you are the owner of any of these images and wish to make a correction, remove it from this list or otherwise, please either add a comment below, or direct message me @marshalleq on twitter.

If you wish to write one of these images to a micro SD card for your Raspberry Pi, please see our image writing guide here.  Also note the curated list of Raspberry Pi tools, projects, images and resources by thibmaek here.

Contents

Audio and Music Disk Images

Please also note, our list of available Raspberry Pi Audio HATs (Hardware Attached on Top), which greatly increase the sound quality of your Raspberry Pi here).

Gqrx

Gqrx is an open source software defined radio receiver (SDR) powered by the Gnu Radio and Qt graphical toolkit.  You can download the Raspberry Pi disk image for Gqrx here.

Moode Audio

Moode Audio (formally called tcmods) is an Audio Player that appears to have branched out of UI tweaks from Volumio.  They also have some nice custom cases available for purchase.  Like most of the Audio players you can add a HiFiBerry card or Mambo berry card to get a huge sound improvement.  You can download the Raspberry Pi disk image for Moode here.

piCorePlayer

PiCorePlayer is a Raspberry Pi Audio System that provides a custom made Squeezebox client that fits right into your existing Squeezebox system.  It optionally can include the Squeezebox Server component as well.  It is based on Tiny Core Linux, which gives it an extremely small footprint and runs entirely from RAM.  This is an advantage as there is never any corruption of the operating system due to sudden power loss.  Please see our HowTo guide for PiCorePlayer here.  You can also directly download the Raspberry Pi Disk image for piCorePlayer here.

PiFM Radio Transmitter

PiFM transmitter turns your Raspberry Pi into an FM transmitter.  You can download the Raspberry Pi disk image for PiFM Radio Transmitter here.

Pi MusicBox

With Pi MusicBox, you can create a cheap (Sonos-like) standalone streaming music player for Spotify, Google Music, SoundCloud, Webradio, Podcasts and other music from the cloud. Or from your own collection from a device in your network. It won’t drain the battery of your phone when playing. The music won’t stop if you play a game on your phone.  You can download the Raspberry Pi Disk image for Pi MusicBox here.

Roon

Roon is arguably the best and highest quality Raspberry Pi based audio player available today.  It comes with a comprehensive front end which brings the positive aspects of Vinyl back into your digital library.  It is a paid subscription with a Lifetime pass as an option.  You can download the Raspberry Pi Disk Images for HiFiBerry cards here.

Rune Audio

Rune Audio is a free an open source software media player the turns your raspberry Pi into a HiFi media player.  You can download the Raspberry Pi Disk image for Rune Audio here.

Volumio

Volumio is an Audiophile quality audio player which is free to use and install.  You can use it as a network media player, or have it play local files from a USB drive, or stick.  It supports high quality audio cards such as the HiFiBerry.  You can download the Raspberry Pi disk image for Volumio here.

Aviation & Marine

OpenPlotter

OpenPlotter is an open source sailing platform for arm computers.  It is a combination of software and hardware to be used as a navigational aid on small and medium boats.  It also has a complete home automation system on board,.  Being of low power consumption, this is an ideal fit for Maritime use.  You can download the Raspberry Pi disk image for OpenPlotter here.

PiAware

PiAware is an ADS-B and MLAT ground station that runs on Raspberry Pi that enables your to track flights in real time.  It requires some additional hardware to be purchased, but this is quite cheap.  They provide full instructions and a parts shopping list on their site.  You can download the Raspberry Pi disk image for PiAware here (see step 2).

Stratux

Stratux is an aviation oriented weather and traffic receiver based on RTL-SDR.  It’s a homebuilt system designed for pilots and is easy to assemble using inexpensive off-the-shelf hardware.  The software is open source so you can build the system that’s right for you.  You can download the Raspberry Pi disk image for Straux here.

Development Disk Images

Kivy

Kivy is a python framework for mult-touch applications.  Developers can boot Kivy Pi to start working straight away.  The Raspberry Pi disk image for Kivy can be downloaded here.

Nard

Nard is a software development kit for Raspberry Pi which is intended entirely for highly available development of Modified off the shelf embedded systems such as in remote locations.  You can download the Raspberry Pi disk image for Nard here.

Tingbot

Tingbot is a development kit that comes with all the hardware necessary to learn how to make cool apps.  They have a purpose written code editor which runs on Windows, Linux or Mac which utilises Python (one of the easiest programming languages to learn).  Their slogan, ‘Build Apps, not programs’ summarises the project intent nicely.  You can create the Raspberry Pi disk image for Tingbot here.  I am in the process of confirming if there is a direct download for this as there is meant to be one.

Educational Disk Images

Coder

Coder is a free, open source project that turns a Raspberry Pi into a simple platform that educators and parents can use to teach the basics of building for the web.  New coders can craft small projects in HTML, CSS and Javascript, right from the web browser.  You can download the Raspberry Pi disk image for Coder using the ‘download coder’ button here.

Kano OS

Kano OS is an open source OS for exploration, creation and play – free for Raspberry Pi and the new Pi 3.  You can download the Raspberry Pi disk image for Kano OS here.

PiNet

PiNet is a free and open source project for helping schools set up and manage a Raspberry Pi classroom. It has been developed alongside teachers with feedback from over 15 countries across the world.  It’s not actually a Raspberry Pi disk image, it’s an add on for Ubuntu to manage Raspberry Pi computers in your classroom over the network.  Installation instructions here.

RachelPi

RachelPi is short for the Remote Area Community Hotspot for Education and Learning.  It’s a combination of freely available software and content modules that make it easy to bring online educational materials into places with limited or no internet access.  The content supports multiple languages and customised to support local needs.  You can download the Raspberry Pi disk image for RachelPi via ftp here. User / Pass anonymous/anonymous.  The RachelPi Raspberry Pi information page is here.

Weather Station

The Raspberry Pi Oracle weather station is a weather station in kit form, controlled by a Raspberry Pi and a special add-on board called a HAT. It’s an educational tool aimed at teaching computing, engineering and data handling. Funded by a grant from Oracle, the kit has been sent, free of charge, to nearly 1000 schools in 78 countries.  You can download the Raspberry Pi disk image for Weather Station here.

Gaming Disk Images

Emulation Station

Emulation Station is a graphical and themeable emulator front-end that allows you to access all your favorite games in one place, even without a keyboard.  You can download the Raspberry Pi disk image for Emulation Station here.

Lakka

Lakka is an open source game console and is the official Linux distribution of RetroArch and the libretro ecosystem.  It is both modular and centralised in it’s configuration.  It supports joypad recognition and emulates a variety of systems.

Minecraft Pi Edition

Minecraft Pocket Edition comes with a revised feature set and support for multiple programming languages.  It is completely free to download.  You can organise the cheapest LAN party of all time, or use the Pi to learn the fundamentals of programming on a miniscule budget. It’s like hacking your way into Minecraft and modifying the game world with code.  You can download the Raspberry Pi disk image for Minecraft Pi Edition here**Note it has been reported that this is not an image, rather an add on to Raspbian**.

Recalbox

Recalbox is a DIY multi-emulation gaming platform for Raspberry Pi.  A nice feature is it uses existing USB and wireless controllers such as the PS3 sixaxis controller or Dualshock 3.  You can download the Raspberry Pi disk image for Recalbox here.

RetroPie

RetroPie allows you to turn your Raspberry Pi or PC into a retro-gaming machine.  You can download the Raspberry Pi disk image for RetroPie here.

General Purpose Operating System Disk Images

Alpine Linux

Alpine Linux is a security oriented distribution designed as a general purpose OS for non commercial use.  It is extremely small at 130MB.  You can download the Raspberry Pi disk image for Alpine Linux here.

Amibian

Amibian transforms your Raspberry Pi into an Amiga computer.  It is lightweight and fit’s on SD cards 2GB and up.  It runs on an over clocked RPi zero, Rpi 1 and Rpi 2.  Rpi 3 is notably absent from that list.  You can download the Raspberry Pi disk image for Amibian here.

Aros

Aros is a lightweight, efficient and flexible desktop operating system that is compatible with AmigaOS at the API level (like Wine, unlike UAE).  While binary compatible with AmigaOS it also takes things a bit further by extending the functionality beyond what the Amiga offered.  You can download the Raspberry Pi disk images for Aros here.

AstroBox

AstroBox is a device made by AstroPrint that enables you to wirelessly manage your 3D printer.  It allows remote monitoring via a camera, wireless management, removal of SD cards when loading STL files and works on any web enabled device.  It can be (and is recommended) to be connected to your astroprint account.  You can download the Raspberry Pi disk image for AstroBox here.

Arch Linux Arm

Arch Linux Arm is a port of Arch Linux designed specifically for Arm processors such as the Raspberry Pi.  It is specifically optimised for the Raspberry Pi’s processor in order to utilise the Raspberry Pi to it’s full potential.  It comes as a light-weight base structure that you can add to and shape the system according to your own needs.  You can download the Raspberry Pi disk image for Arch Linux Arm here.  Be sure to follow the installation guide here.

Bodhi Linux

Bhodi Linux is the Enlightened Linux distribution.  It is based on Ubuntu LTS and runs the Moksha desktop.  You can download the Raspbery Pi Disk images for Bodhi Linux here.

CentOS

CentOS is a distribution focused on delivering a robust open source ecosystem that is as stable as a paid Enterprise OS.  You can downlaod the Raspberry Pi disk image for CentOS here.

The Core Project (Core, TinyCore, CorePlus)

The Core Project is often just referred to as Tiny Core Linux.  It is a distribution that runs on the Raspberry Pi and has an extremely small footprint.  In addition, it works very differently to other distributions in that everything runs in RAM by default, this makes it extremely quick and it does not lose integrity due to power outages.  This makes it perfect for appliance like uses such as media player.  The distro, does allow you to also run things from the SD card as well, should you wish.  You can download the Raspberry Pi disk images for the Core Project here.

DietPi

DietPi is an extremely lightweight operating system based on Debian.  It starts at just 400MB and is optimised to extensively reduce memory usage.  It also claims ‘ready to run’ software that doesn’t require countless guides in order to install.  You can download the Raspberry Pi disk image for DietPi here – (see the download menu at the top, unable to link directly at this time).

Flint OS

Flint OS is a browser based cloud operating system based on Chromium OS.  It’s a new project so some features are still coming, including support for Android Apps.  You can download the Raspberry Pi disk image for Flint OS here.

FreeBSD

FreeBSD is an advanced computer operating system derived from BSD.  It focusses on features, speed and stability.  You can download the Raspberry Pi image for FreeBSD here.

Fedora

Fedora is an open source operating system originally spun off from Red Hat Linux.  It has an extensive list of features and is one of the larger Linux Operating systems around.  You can download the Raspberry Pi disk image for Fedora here.

HypriotOS

HypriotOS is an operating system optimised for Docker containers.  The project belief is that containers can be even more useful on small devices than on big servers.  It is a minimal OS based on Debian and is typically very up to date with the latest docker versions.  You can download the Raspberry Pi disk image for HypriotOS here.

Max2Play

Max2Play is a complete operating system with dozens of add ons via a simple web client.  It includes many of the software packages on this site such as Audio and Video players and home automation and also does offer some customisation to get things running out of the box which wouldn’t otherwise be easily achieved.  You can download the Raspberry Pi disk image for Max2Play here.

Manjaro-Arm

Marjaro-Arm is an Arch Linux based distribution that takes Archlinux and makes it simple and easy to use.  It offers an easy install and setup process for DIY creators and developers that doesn’t require hours of configuration in order to get to work.  It has three editions, server, media and base.  You can download the Raspberry Pi disk images for Manjaro-arm here.

Minibian

Minibian is a minimal Raspbian based OS for Raspberry Pi.  It’s core focus is to be small, up-to-date and stable.  It is fully compatible with Rasbian which enables you to utilise compatible resources from that distribution.  You can download the Raspberry Pi disk image for Minibian here.

Multibootpi

Multibootpi is a web site dedicated to booting multiple operating systems, from a single install image made specifically for the Raspberry Pi.  For example, there is a pre-made images that boots Raspbian, Retropie, Rasplex and Kodi all from a single Micro SD Card or USB stick.  On top of that, it has three versions of Kodi, (OpenElec, LibreElec and OSMC) that you can choose to run beside the other operating systems.  You can download the Raspberry Pi disk images within each article here.

NAS4Free

NAS4Free is an open source storage NAS (Network attached storage) distribution based on FreeBSD.  It can be installed on virtually any hardware platform to share computer data storage over a computer network.  It supports sharing across Windows, Apple and Unix like systems, includes ZFS v5000, software RAID, disk encryption, smart email reports and many other protocols and features.  The Raspberry Pi Disk image for NAS4Free can be downloaded here.

NetBSD

NetBSD is a fast secure and highly portable Unix-like operating system.  It is available for a wide range of platforms from large scale server and now even on a Raspberry Pi.  You can download the Raspberry Pi disk image for NetBSD here.

NextCloudPi

NextCloudPi is a ready to use Raspbian 8 image with the latest NextCloud (11.0.1 at time of writing).  It comes preconfigured with PHP 7 for speed and defaults to HTTPS.  You can read all about Nextcloud here.  You can download the Raspberry Pi disk image for NextCloudPi here.

Noobs

NOOBS is an easy operating system installer which contains Raspbian. It also provides a selection of alternative operating systems which are then downloaded from the internet and installed.  If you’re just starting out with the Raspberry Pi, this is a good place to start.  That said, sometimes a specific image focused on a specific use case is a more enjoyable place to start.  You can download the Raspberry Pi disk image for Noobs here.

OctoPi

OctoPi is a Raspberry Pi distribution for 3d printers.  It includes support for live viewing your printing with a webcam, timelapse creation, direct slicing and direct connected LCD panel displays.  You can download the Raspberry Pi disk image for OctoPi on their main web page here.

PirateBox

PirateBox is an anonymous offline file sharing and communications system built around inexpensive hardware and software.  You can use it to transform any space in a free and open offline communications and file sharing network.  You can download the Raspberry Pi disk image for PirateBox in the installation section here.

PipaOS

PipaOS is a compact Raspian based distribution that runs the official Raspberry Pi kernel and is compact in size.  Notable features include built in QEMU emulator, easy customisation via text file, power failure tolerance, great USB wireless adapter support and built in FM radio transmitter.  You can download PipaOS on the same page here.

pipplware

pipplware describes itself as ‘the’ operating system for Raspberry Pi.  In fact, it’s much more than that as it creates an entertainment system that includes Kodi Media Center, RetroPie, XFCE desktop, a server and a multimedia client.  It is based on Debian and is created in the Portuguese language, so for English only speakers like myself, be sure to view their web page through the google translator.  You can download the Raspberry Pi disk image for Pplware here.

Q4OS

Q40S is a fast and powerful operating system based on the latest technologies while offering highly productive desktop environment.  A focus is made on security, reliability, long-term stability and conservative integration of new features.  The system is fast and has very low hardware requirements.  You can download the Raspberry Pi disk image for Q4OS here.

Quirky Xerus

Quirky Xerus is a 360MB Linux distro with LIbre office, Inkscape, Seamonkey and many. other applications. It sports a fast GUI, auto update capability, is built with puppy linux kit and Ubuntu.  You can download the Raspberry Pi disk image for Quirky Xerus here.

RaspArch

RaspArch is a Raspberry Pi build of the famous Arch Linux.  Arch is easy to install and simple to keep up to date.  It has been said it has the benefits of Gentoo without the challenges associated with re-compiling.  You can download the Raspberry Pi disk image for RaspArch here.

Raspbian

Raspbian is the Raspberry Pi Foundation’s official supported operating system. You can install it with the above ‘NOOBS’ or you can download the Raspberry Pi Disk image for Raspbian from the Raspberry Pi Foundations download page here.

RaspBSD

RaspBSD is FreeBSD for Raspberry Pi.  It comes with various preconfigured images that you can add to.  It is maintained by the FreeBSD committer Brad Davis.  You can download the Raspberry Pi disk images for RaspBSD here.

ResinOS

ResinOS is an OS for for running docker containers on embedded devices, tailored for reliability, ready for production use.  You can download the Raspberry Pi disk image for Resin OS here.

Risc OS Open

Risc OS Open is a build of Risc OS which was originally designed for the Acorn computer and first released in 1987.  This is a complete desktop system and collection of applications to get you started. You can download the Raspberry Pi Disk image for Risc OS open here.

Sabayon Core

Sabayon is a Linux Operating system that is a derivative of Gentoo with one important difference – that is it works out of the Box without any config requirements.  This can then be converted back to Gentoo if desired for a quick start up, or kept as a running Sabayon system.  Sabayon offer an extremely stable ‘latest bleeding edge’ code base that is easy to use.  For Raspberry Pi Sabayon has both a core image and a media centre oriented image.  The images have to be uncompressed first.  Sabayon for Raspberry Pi disk images can be downloaded here.  Download the file prefixed with  ‘Sabayon_Linux_versionnumber_armv71_RPi’.

Slackware ARM

The SARPi project supports slackware ARM linux on a Raspberry Pi 1,2 o 3.  You can download the Raspbery Pi disk images for SARPi here.

Snappy Ubuntu Core

Snappy Ubuntu Core is supported on a variety of chipsets, boards, SOCs and virtual machines, including Raspberry Pi 2 and 3, Qualcomm DragonBoard 410c, Intel NUC, Intel Joule, Samsung Artik and KVM.  You can download the Raspberry Pi Disk image for Snappy Ubuntu Core here.

SolydX RPI

SolydX RPI is a Debian based distribution for the Raspberry Pi2 and 3 with the Xfce desktop.  It intends to be as light-weight as possible without giving up any of the expected functionality.  SolydX RPI supports the RemotePiBoard by default.  Not available for RPI1.  You can download the Raspberry Pi disk image for SolydX RPI here.

Ubuntu Mate

Martin Wimpress and Rohith Madhavan have made an Ubuntu MATE image for the Raspberry Pi 2 and Raspberry Pi 3 which you can download or build yourself.  You can download the Raspberry Pi disk image for Ubuntu Mate here.

Void Linux

Void is a general purpose operating system based on the monolithic kernel.  It’s package system allows you to quickly install, update and remove software.  Software is available in both binary format and also can be built from source with the XBPS source packages collection.  You can download the Raspberry Pi disk image for Void Linux here.

Windows 10 IoT Core Dashboard

You can now install a fairly comprehensive version of Windows 10, free of charge onto your raspberry Pi 3.

Windows 10 IoT Core Insider Preview

You can download Windows 10 IoT Core Dashboard and Windows 10 IoT Core Insider Preview Disk Images here.

Automation and control system Disk Images

HASSbian

HASSbian home assistant is an extensive home automation system with a large array (525 at time of writing) of integrations from various manufacturers such as Amazon Echo, Google Cast, Plex, Sonos, Z-Wave, climate, Honeywell.  The Raspberry Pi image for HASSbian can be downloaded here.

motionEyeOS

motionEyeOS is a Raspberry Pi surveillance system created from BuildRoot, using motion as a backend and motionEye as a frontend.  You can download the Raspberry Pi disk image here.

MyCroft A.I

MyCroft A.I is a Raspberry Pi based home automation system.  It is unique in that it responds to Voice Commands without using the Google, Cortana or Amazon Echo ecosystems.  It responds to your commands that can include specific movies or songs on specific platforms, perform standard home automation tasks such as locking the house and is cheap enough to have one in multiple rooms.  The project is currently in crowdfunding at indiegogo.  You can download the Raspberry Pi disk image for MyCroft here.

openHAB

openHAB is a vendor and technology agnostic, open source, software implementation for home automation.  With powerful and flexible rules, graphing, flexible web interface and Android IoS apps included, this is another powerful automation suite.  You can download the Raspberry Pi disk image for openHAB here.

Open Lighting Architecture

Open Lighting Architecture is an open source lighting control software aimed at the entertainment lighting industry.  It supports all the major DMX over Ethernet protocols including ArtNet and Streaming ACN, plut over 20 different USB DMX adapters.  You can download the Raspberry Pi disk image for Open Lighting Architecture here.

OpenSprinkler

OpenSprinkler is a control system that keeps your lawn and flowers beautiful.  It has customised programs and automated weather driven algorithms which can be controlled and monitored remotely.  It has free clients available for Android, IOS, Windows and Kindle.  It also has some other automation functionality such garage door control.  You can download the Raspberry Pi disk image for OpenSprinkler here.

PiDome

PiDome is an open source home automation platform developed especially for the Raspberry Pi.  it is a full home automation system which while is easy to use offers some quite advanced capabilities.  It is useful for Developers and Hobbyists as well as the average person.  You can download the PiDome disk image here.

Rocketshow

Rocketshow is an audio, video and DMX lighting automation system designed for performing artists, exhibitions.  It is open source and has a free version for the Raspberry Pi here.

Media Centre Disk Images

LibreElec

LibreELEC is ‘Just enough OS’ for Kodi, a Linux distribution built to run Kodi on current and popular mediacentre hardware. We are an evolution of the popular OpenELEC project. LibreELEC software will be familiar to OpenELEC users, but the project follows its own path and has intentional differences.  You can download the Raspberry Pi disk image for LibreElec here.

MP4 Museum

MP4 Museum is a minimalistic open source video player that loops all mp4 files from a USB flash drive.  It simply autoboots into a script and starts playing.  You can download the Raspberry Pi disk image for MP4 Museum here.

OSMC

OSMC is a free and open source media centre based on Debian Linux and Kodi Media Centre.  You can download the Raspberry Pi disk image for OSMC here.

OpenElec

Openelec is the original embedded XBMC / Kodi client (see Kodi below) that replaced the acclaimed XBMC live.  It took the vision of small and dedicated to new heights providing fast boot times and stable operation dedicated to it’s primary purpose and nothing else.  You can download the Raspberry Pi disk image for Openelec here.

Plex Media Player

Plex Media Player is the official client for the comprehensive Media Centre Environment  Plex.  It covers features such as Photo sharing, Movie and TV recording.  Please see our installation howto guide for official Plex Media Player here.  You can also download the official Raspberry Pi disk Image for the official Plex Media Player here.  Be sure to find it under the ‘Get an App’ button and choose the dropdown list for embedded platforms.  The official Raspberry Pi image then shows up under this final download button.

RasPlex

Rasplex is a plex client for the Raspberry Pi.  Unlike the official Plex on Raspberry Pi, RasPlex is based on the Plex Home Theater product and OpenElec.  Plex Home Theater is often considered the better choice due to it’s more mature and robust feature and code base.  You can download the Raspberry Pi disk image for RasPlex here.

Sabayon Media Centre

As mentioned above Sabayon offer a media centre Raspberry Pi build that features an optimised version of Kodi.  This could be a good option if you want to set up a Media Centre, but also want to add other features, not typically associated with a media centre such as a web browser, alternative music server such as Squeezebox or Roon or even some kind of web / file server.  The Sabayon Media Centre disk image can be downloaded here.  You will need to decompress the image first.  A lot of their other images are in the same list, make sure you download the image prefixed with  ‘Sabayon_Linux_versionnumber_armv71_RPi’.

Networking Disk Images

OpenMediaVault

OpenMediaVault is a network attached storage (NAS) solution based on Debian Linux. It contains services like SSH, (S)FTP, SMB/CIFS, DAAP media server, RSync, BitTorrent client and many more. Thanks to the modular design of the framework it can be enhanced via plugins.  Openmediavault is primarily designed to be used in small offices or home offices, but is not limited to those scenarios. It is a simple and easy to use out-of-the-box solution that will allow everyone to install and administrate a Network Attached Storage without deeper knowledge. You can download the Raspberry Pi disk image for OpenMediaVault here.

OpenWRT

OpenWRT is a linux wireless router distribution, similar to what is shipped with home routers, but with an extensive list of additional features.  You can download the Raspberry Pi image for OpenWRT here.

Pi-Point

Pi-Point is a Raspberry Pi WiFi access point, with additional features such as guest wireless, wifi monitoring, wifi hardening, temperature and weather and WiFi hotspot.  Currently you can only purchase an SD card here, or build your own with the instructions here.

PressPi

PressPi is the world’s first flash-ready WordPress server for the RaspberryPi.  You can download the Raspberry Pi disk image for PressPi here.

RasPBX

RasPBX maintains a complete install of the amazing Asterisk PBX and FreePBX for the Raspberry Pi.  It runs on Debian Jessie (Rasbian) and contains both Asterisk and FreePBX 13 pre-installed.  It is maintained with ongoing updates either through built in update system in the case of FreePBX or the RasPBX repositories in the case of Asterisk.  The disk image also includes additional pre-configured tools for improved security, a GSM VoIP gateway, backups and fax.  You can download the Raspberry Pi disk image for RasPBX here.

Thin Client Disk Images

RPiTC

RPiTC is a low cost thin client distribution for Raspberry Pi.  It supports virtually all Thin Client protocols including Citrix, VMWare, Parallels, X2GO, NoMachine, ThinLinc, RemoteViewer plus a few more.  I assume it would also support RDP, though this is not mentioned on the front page.  You can download the Rpasberry Pi disk image for RPiTC here.

TrueOS Pico

TrueOS Pico is a cost effective thin client solution that connects multiple ARM-based devices to a single Pico Server.  It is a purpose built thin client solution requiring a TrueOS server and client to work together.  You can download the Raspberry Pi disk image for  TrueOS Pico here.

Other Disk Images

Adafruit

Adafruit has a number of images, customised to it’s hardware such as the 2.8″ Touchscreen Display for Raspberry Pi.  You can download the Raspberry Pi disk image for the Adafruit Touchscreen here.

Alarm Decoder

Alarm Decoder is a control system for DSC, Ademco / Honeywell Vista alarm systems.  It allows remote control and monitoring as well as integration with home automation systems.  You can download the Raspberry Pi disk image for Alarm Decoder here.

BerryBoot

Berryboot is a simple boot selections screen for ARM computers including the Raspberry Pi.  It allows you to put multiple Linux distributions on a single SD card and in addition also allows these to be put on an external USB hard drive instead of the SD Card.  You can download the Raspberry Pi disk image for BerryBoot here.

Chilipie-kiosk

Chilipie-kiosk is an image that boots directly in a full screen Chrome browser.  It’s primary use case is stated to be for web based dashboard and build monitors.  It is optimised around this philosophy and as such has features such as automatic crash recovery and no automatic updates.  You can download the Raspberry Pi disk image for Chilipie-kiosk here.

FullPageOS

FullPageOS is a distribution aimed at displaying one webpage in full screen.  It incldues Chromium out fo the box and necessary loading scripts.  FullPageOS is a fork of OctoPi.  You can download the Raspberry Pi disk image for FullPageOS here.

Kali Linux

Kali Linux is an ethical hacking operating system used extensively by Security firms performing security testing exercises such as penetration testing.  You can download the Raspberry Pi disk image for Kali Linux here.

Screenly

Screenly is a Raspberry Pi powered digital signage application that is based on the Screenly software stack.  It supports full HD quality moving imagery, web content and static images when connected to any display device.Notably, you can set up multiple Screenly signage  systems and manage them from a single web interface, it even includes uptime monitoring.  You can download the Open Source edition, Raspberry Pi disk image for Screenly here.  The installation procedure is here.

Thingbox

Thingbox is an IoT application that allows both non-technical and technical people to graphically create new unlimited applicaitons interacting with connected objects from a simple web-browser.  It is intended to create capability that delivers beyond the normal home automation realm and create any new functionality you can think of.  You can download the Raspberry Pi disk image for Thingbox here.

ROKOS

ROKOS Core and ROKOS Flavours are bitcoin and cryptocurrency distributions respectively.  You can download the Raspberry Pi disk images for both ROKOS Core and Flavour here.

Special Mention

The special mention category is a list of cool software, that is available but without a ready made image.  Most likely you will need to compile these yourself or install in some other way.

GeNtOOBS

GeNtOOBS is a stage 4 tar ball, for raspberry Pi from Gentoo.  You can download the Raspberry Pi tarball here.

Info-beamer pi

Info-beamer pi is a digital signage solution for the Raspberry Pi.  It supports the native Raspberry Pi video acceleration and can display animations and transitions at 60 frames per second.  It is optimised for no memory leaks or slowdowns and can display ongoing content without requiring a reboot.  There is not a complete disk image available at this time, however you can download the Info-Beamer Pi software here.

Pi-Hole

Pi-Hole is a network wide ad blocking application.  It includes a monitoring and performace statistics page, a DNS server and works with any device on your network.  It has been reported that it can be downloaded as part of Diet-Pi, however the installation procedures look to be extremely easy.

Pi Presents

Pi Presents is a toolkit for producing interactive multimedia applications for museums, visitor centres and more.  There isn’t a Raspberry Pi download image for Pi Presents, but there are easy installation instructions located here.

ViewTouch

ViewTouch is a point of sale application written by Gene Mosher.  Gene created the world’s first touch oriented point of sale software in 1986 and has been writing POS systems since 1978.  The software is licenced under the Free Software foundation’s GNU public licence and used extensively in many restaurants and bars.  It includes the capability to do mobile ordering through Android tablets.  You can compile your own version of this by utilising the code here.  At this stage there is no direct download, however, he will install the Raspberry Pi disk image on any SD card you send him.

How to set up Roon Audio Bridge on PiCorePlayer with a Raspberry Pi and HiFiBerry Dac + Pro

Problem / Outcome Summary

  • This how to guide will show you how to set up and install Roon Audio Bridge to make a HiFi endpoint on PiCorePlayersqueezebox receiver using Raspberry Pi hardware and HiFiBerry Dac + Pro HAT
  • Please see the ‘Summary Overview’ tab below for a high level view of the objectives this ‘how to’ will achieve.

This guide applies to:

  • piCorePlayer on Raspberry Pi
  • Roon Bridge
  • HiFiBerry (Various)

Why might I want to do this?

  • Because the the official HiFiBerry version of RoonBridge is unnecessarily large
  • Because this enables the high quality lossless RoonBridge Audio Transport (RAAT)
  • Because this allows you to combine Apple Airplay into your RoonBridge solution
  • Because can include a high quality, low cost Squeezebox receiver
  • Because you want to combine multiple audio transport types (above) in a single hardware solution
  • Because this solution comes in at about 60MB, instead of the official HiFiBerry’s 1000MB solution
  • Because the system runs entirely in RAM and does not break due to sudden power loss
  • Because HiFiBerry do not give you access to their system via SSH, or any other means which goes against the spirit of Raspberry Pi
  • Because you want to create an AirPlay target for your iPhone, iPad or Mac
  • Because you want high quality audiophile grade sound
  • Because you have a spare Raspberry Pi
  • That’s a lot of reasons!

What do I get by combining a Raspberry Pi and piCorePlayer?

When I first looked at the HiFiBerry Roon image I was dumbfounded by the size of it.  I mean, for what it is, it’s absolutely gargantuan.  The second thing that dumbfounded me was for some unknown reason, HiFiBerry absolutely refuse to open up access to SSH.

Let’s just think about that for a minute.  HiFiBerry are selling a DIY audio board, for a DIY computer that has a core target market of DIY people doing DIY with software and won’t provide username / password to do DIY on the underlying OS.  I’m not sure what could possibly be going throught their minds, but clearly there’s something seriously wrong here.  Further, HiFiBerry apparently do not know how to make a lightweight image and when attempting to discus with them on their forums, they (quite bluntly) will not consider opening it up, and gave a signal of ‘I don’t know what I’m talking about’ when suggesting I could make a smaller image.  The contempt they have shown their customers is quite dissappointing and they clearly have either not considered who their market is, or one employee is letting the company down.

Anyway, this is Linux, so we can do what we like right?

The first and best thing I like about building our own setup are the choices. For example, you can choose to use the standard 3.5mm audio out on the Raspberry Pi and plug it into a set of cheap computer speakers for an easy Squeezebox integrated solution for a spare room, kids or otherwise. Alternatively you can go and have a look at the myriad of hifi add-on boards for the Raspberry Pi such as the HiFiBerry or the MamboBerry and connect this up to a higher end hifi system. I have mine connected to an amazing sounding original Fatman iTube amp for something a bit different, which makes a nice small audio target for an apartment with a surprising amount of grunt and spaciousness about it.  Best of all, it’s very small.

On top of that, piCorePlayer features AirPlay support so you can wirelessly connect to it from your iphone instead, completley bypassing the Squeezebox player. Also, the piCorePlayer software can run the server portion of Squeezebox making a nice all in one solution.

Pre-requisites
Skill Level – Beginner
This ‘howto’ article is classified as Beginner. There may be terminology used that is technical and concepts requiring some experience. With a bit of willingness, the guide shouldn’t be too hard to follow, provided you read it through first and understand the concepts. Some resources that may be helpful are our glossary of terms page and Wikipedia. In addition, we would encourage you to leave insights and opinions in the comments section below and questions in our forums. We do however take no responsibility for anything that goes wrong with your implementation as a result of this article.

Software Dependencies

piCorePlayer

Tools Required
Hardware Dependencies

Raspberry Pi

Optional add on HiFi board such as the HiFiBerry DAC+ or the MamboBerry HiFi DAC+

Other Dependencies

A working Internet Connection is preferred

Summary Overview

High Level Summary Steps

The below lists the high level summary of steps we’re about to take to set up a working Squeezebox Receiver using Raspberry pi and piCorePlayer.

  • Download and flash the piCorePlayer onto your SDCard
  • Boot the Raspberry Pi
  • Connect to the piCorePlayer software and configure
  • Test

Implementation

Download and flash the piCorePlayer onto your Raspberry Pi’s SD card

Download the latest piCorePlayer image from their web site here.

Flash the image to your SD card. See our how to for this here if you’re unsure how.

When complete, insert the card into your Raspberry Pi, ensure you have plugged in a network cable and the HDMI cable so you can get the IP Address.  Alternatively, you may be able to find this in your router’s DHCP table.

Boot the Raspberry Pi

Power on your Raspberry Pi. It will begin to show some linux boot screen items and may reboot once or twice. When finished you will see a line that reads IP Address on the screen that looks something like 192.168.1.21. Note this down for the next step.

Connect to the piCorePlayer software and configure

Enter the IP Address you noted above into the web browser of another computer on the same network. You should be presented with the piCorePlayer configuration screen.

In the configuration screen that comes up there are six tabs across the top.

Click the tab that says, ‘Squeezelite Settings’

In that tab, ensure you click the sound output type you want and click save. This is where you tell the system you have a MamboBerry or a HifiBerry.

Believe it or not, that’s all you need to do to set this up, with the rest being already set in the server. If you’ve not set up a server yet, be sure to check out how to do this on Ubuntu linux with our comprehensive guide here. The server is also available for Mac and Windows.

You can of course also set this up via WiFi, which is on the WiFi tab. Yes it’s as simple as it looks.

The LMS tab will allow you to set up the Logitech Media Server to run on the Raspberry Pi instead of on a separate computer.

Confirming it’s working

Connect to your squeezbox server by going to it’s IP Address on port 9000, or use your remote if you have one. e.g. http://192.168.43.30:9000

You should now be able to play your music through your own custom made Raspberry Pi Squeezebox Receiver!

Final Word

Assuming this all worked for you, you now have an amazing sounding, integrated, cheap digital music player that rivals many DAC units costing around $1000. There is the new ChromeCast Audio which is interesting, however that does not output high quality HD music, rather is more oriented around low quality phone music rather than high quality audio, plus this is a true client / server setup.

That said, there is a Chromecast Audio plugin for Squeezebox already made if you did want to go down this route. As you can see, squeezebox has quite an extensive set of features (there are probably around 100 plugins like this).

Anyway, I hope you found this guide useful and please do not hesitate to hit me up in the comments below if you have any issues or questions.

Marshalleq

How to export contacts from Mac Contacts to Outlook

0

Problem / Outcome Summary

  • This how to guide will show you how to export your contacts from Mac OS contacts application, then import them into Microsoft Outlook
  • Please see the ‘Summary Overview’ tab below for a high level view of the objectives this ‘how to’ will achieve.

This guide applies to:

  • Mac OS
    • Mac Contacts
    • Mac Outlook’s ‘People’

Why might I want to do this?

  • Because you are migrating between different contact storage mediums such as cloud to local, local to cloud or cloud1 to cloud2 (such as apple to google).
  • Because you need a backup of your local data
  • Because you want to share your contacts
  • Because you want to export them into a CRM application

Foreword

I came across this question in a forum, so I thought I’d quickly write up a ‘how to’ for it.  It’s pretty simple, so please head on over to the next tabs to see what you need and how to get this done.

How are contacts stored?

Contacts are stored in a very basic database format and this is typical across all types of contact applications.  If you’ve ever opened up Microsoft Excel or Apple’s numbers or even LibreOffice Calc, you’re basically working with the same thing.  All databases can be converted from one format / standard to another, provided you have an application that understands them, or you can put the data in a format so that an application does.  That’s exactly what we do here, we put the Mac Contacts data into a format that Outlook uses and leverage that.[/vc_column_text][/vc_tta_section][vc_tta_section title=”Pre-Requisites” tab_id=”1483656936239-1facad3b-9216e50c-cffe810b-c964″][vc_custom_heading text=”Pre-Requisites”]

Html code here! Replace this with any non empty text and that's it.

Software Dependencies

  • Mac OS
  • Mac Contacts
  • Microsoft Office for Mac

Hardware Dependencies

  • None

Tools Required

  • None

Other Dependencies

  • None

Summary Steps

The below lists the high level summary of steps we’re about to take during this howto.

  • Export the contacts from Mac Contacts
  • Import the contacts into Outlook’s ‘People’

Implementation

Before you begin just a warning, please don’t export your cloud contacts (e.g. google or apple) and import them into another application that is also connected to the same cloud system.  If you get that wrong, you will duplicate every contact you have, which will be very annoying, messy and takes a bit of work to clean up.

Export the contacts from Mac Contacts

Open the MAC contacts application on your MAC.

Ensure that you have selected, View, Show Groups

Select (by clicking on) the address book location you want to export (e.g. Google, ‘All on my Mac’ etc) which is in the left hand groups view (it will say ‘All Contacts’ at the top.

Alternatively, you can manually select the contacts you want to export in the main contacts window.

Choose File, export, vcard

Give it any name you like in the dialog box that comes up and be sure to choose a location you can remember such as ‘Documents’.

Click Save.

This saves a local file which will end in extension vcf.  By default it calls it the name of one of your contacts and affixes ‘and 24 others’ or similar.

You have now completed the export part of the exercise.

Import the contacts into Outlook’s ‘People’

Make sure outlook is installed on your mac and up to date.

Right click the newly created vcf file and choose open with Microsoft Outlook.

Voilla, magically all your contacts are now in Microsoft outlook.

If this didn’t work for you, check out the extra ideas in the Final Word section.

Final Word

(Note for this I used Outlook 2016, if your version doesn’t work there are a number of alternatives

Instead of opening with Outlook, open with Excel and then save as a csv file.  This csv file can then be imported into Outlook.

Alternatively, you could try downloading a demo of Office 2016, then exporting to pst within that version, then open the pst in your current version of outlook.  From there you can uninstall office 2016.

Let us know how that works or doesn’t work in the comments below.

After stepping through all of this, you ‘should’ have a working set of permissions. It’s a little bit tricky to get your head around it at first, however with a bit of patience you should get there with success.

If you have any issues or questions, hit me up in the comment section below, or in the forums.

Marshalleq

Mac OS network transfer speed still broken in Sierra and still in Mojave – workaround provided

8

Problem / Outcome Summary

  • MAC OS network transfer speed is still broken in OS Sierra and Mojave (Workaround Provided at the bottom).  What do we know so far?

Why might I want to read this?

  • Because you’re frustrated that Windows is nearly twice as fast than Mac OS using any protocol
  • Because you want to prove me wrong and show me what I can do to fix this problem in the comments below

What is the problem?

Mac OS (including up to Sierra) still appears to be failing miserably when it comes to network transfer speed.  It is so bad that it is nearly half the speed of windows, which in turn means Mac OS takes nearly twice as long to copy files than windows.  This isn’t fun, when you may have terrabytes of files to copy, translating into many extra hours of unnecessary copying time.

There is a lot of information out on the internet, and apple is typically quiet on the subject, one of the most frustrating aspects of Apple is that they basically never admit anything.

Also, while there are some small fixes out there, there is nothing that discusses the topic comprehensively.  So I decided to have a look and try to figure out exactly where we stand.

First up, the test bed

For these tests, we used the following hardware.

  • QNAP 669-L with 4.3.2 (beta) loaded
  • Mac Mini (Late 2012) (I7 2.8GHz, 16GB RAM), Samsung 850EVO SSD
  • GS116Ev2 – 16-Port Gigabit ProSAFE Plus Switch
  • 4x Seagate ST4000VN000-1H4168 4TB NAS drives (RAID-5)
  • 2x Hitachi HDS723020BLA642 2TB Enterprise drives (RAID-0)
  • Mac OS Sierra 10.12.2
  • Windows 10
  • CAT 5E Cable

Next up, the problem

So what actual speeds do we get in the ‘out of the box’ experience?

Unfortunately the out of the box experience for Mac OS is not good.  Basically, Mac OS tops out at about 20MB/s vs Windows 10 consistently transfers a reliable and blazing fast 110MB/s.  It goes without saying that this is quite a gap in out of the box performance.  And this is not very nice considering how much it costs to get a Mac these days.

Right, so what should we test?

For this exercise I thought we should isolate where the problem is by testing server side tweaks, how it realtes on Windows vs Mac OS, try different network protocols and isolate hardware.

Also, to eliminate differing hardware, BOOTCAMP was used (that is, Windows was installed on the same MAC hardware, dual boot).

The tests (and their results) were as follows:

Mac OS Sierra, copy from RAID-0 to local SSD using SAMBA (Jumbo Frames On) and changing NAS SMB settings as below:
  • SMB v2.0 no async 20MB/s
  • SMB v3.0 no async 17MB/s
  • SMB v2.0 async i/o 22MB/s
  • SMB v3.0 async i/o ?
Windows 10 (Bootcamp), copy from RAID-0 to local SSD disk using native samba, jumbo frames on and changing NAS SMB settings as below:
  • SMB 2.0 – 110 MB/s async
  • SMB 2.1 – 110 MB/s async
  • SMB 3.0 – 110 MB/s async
Mac OS, copy from RAID-0 to local SSD disk using native AFP
  • AFP – 50MB/s (no jumbo frames)
  • AFP – 55MB/s (jumbo frames)
Mac OS, copy from RAID-0 to local SSD disk using NFS
  • NFS 60MB/s with jumbo frames
Other tweaks

These results don’t look good for the MAC.  Around the internet, it was mentioned that if you disable the overhead of the client signing on the MAC, you can get a large speed increase.  To do this you simply place a file in the /etc directory as below.  This file does not exist and needs to be created.

File name: nsmb.conf
[default]
signing_required=no

The result was:

  • SMB 3.0 48 MB/s async

So this was a huge improvement for SMB, but still trailing behind NFS, AFP and most noteably windows 10’s impressive 110MB/s

So what does the above tell us?

  1. The issue above is 100% in software.  This is clear because Windows 10, installed on the very same Mac Mini hardware achieves a massive 110MB/s.
  2. This issue is 99% likely caused not just in software, but specifically in the Mac OS software
  3. The server side (NAS) tweaks help, but not by much
  4. The client side tweaks help the most, the best by far being to disable client signing.

What next?  What should we do about it?

Currently, there appears to be no fix, nor any recognition that an issue exists.  Since this is almost definitely in the implementation of apples software or associated kernel modules / drivers the best thing would be to let apple know.  If you are enrolled in a beta program with Apple, please log a bug for each version of the OS that this still happens in – that’s what I will be doing.  Otherwise, you’re stuck with the apple communites here.

Recommendation

If you’re planning on doing any large copies in Mac OS, I’d recommend doing them in windows instead.  It’s just faster.  If you’ve got Linux skills, you could try that too of course.

That’s what I’ll be doing.

As always, we welcome your insights and opinions in the comments section below.  And I’d be particularly pleased to be proven wrong, (given I’d like this sorted out for my Mac at home), but provided that this can be replicated in our test setup, or isolated to be a different issue I haven’t thought of.

Happy new year everyone.

Workaround (Jan 2019)

I accidentally stumbled upon a workaround for me when copying large amounts of data, which is simply to use NFS but the trick is to mount it via the command line.  So while not perfect in the sense of an everyday driver (I certainly don’t want to do this manually each time), it does work if you need to copy a lot of data as a one time thing.  Surprisingly I’m getting sustained speeds of 110MB/s which is the fastest I have ever seen on any of my Macs while running Mac OS.  Note that this is in Mac OS Mojave version 10.14.1.

Hope this helps someone out there!

Marshalleq

How to make a hifi squeezebox receiver with Raspberry Pi

Summary

  • This how to guide will show you how to set up and install a squeezebox receiver on the Raspberry Pi
  • Please see the ‘Summary Overview’ tab below for a high level view of the objectives this ‘how to’ will achieve.

This guide applies to:

  • piCorePlayer on Raspberry Pi

Why might I want to do this?

  • Because the squeezebox ecosystem is still awesome, see the foreword in our how to article here if you’re interested why
  • Because you want to create another Squeezebox receiver somewhere in your house cheaply
  • Because you want to create an AirPlay target for your iPhone, iPad or Mac
  • Because you want a high quality audiophile grade sound
  • Because you have a spare Raspberry Pi

Foreword

What do I get by combining a Raspberry Pi and piCorePlayer?

The first and best thing I like about doing this is you get choices.  For example, you can choose to use the standard 3.5mm audio out on the Raspberry Pi and plug it into a set of cheap computer speakers for an easy Squeezebox integrated solution for a spare room, kids or otherwise.  Alternatively you can go and have a look at the myriad of hifi add-on boards for the Raspberry Pi such as the HiFiBerry or the MamboBerry and connect this up to a higher end hifi system.  I have mine connected to an amazing sounding original Fatman iTube amp for something a bit different, which makes a nice small audio target for an apartment with a surprising amount of grunt and spaciousness about it.

On top of that, piCorePlayer features AirPlay support so you can wirelessly connect to it from your iphone instead, completley bypassing the Squeezebox player.  Also, the software can now run the server portion of Squeezebox making a nice all in one solution.

Pre-Requisites

Software Dependencies

  • piCorePlayer

Hardware Dependencies

  • Optional add on HiFi board such as the HiFiBerry

Tools Required

  • A computer with an internet web browser

Other Dependencies

  • A working Internet connection is preferred

Summary Steps

The below lists the high level summary of steps we’re about to take to set up a working Squeezebox Receiver using Raspberry pi and piCorePlayer.

  • Download and flash the piCorePlayer onto your SDCard
  • Boot the Raspberry Pi
  • Connect to the piCorePlayer software and configure
  • Test

Implementation

Download and flash the piCorePlayer onto your Raspberry Pi’s SD card

Download the latest piCorePlayer image from their web site here.

Flash the image to your SD card.  See our how to for this here if you’re unsure how.

When complete, insert the card into your Raspberry Pi, ensure you have plugged in a network cable and the HDMI cable so you can get the IP Address

Boot the Raspberry Pi

Power on your Raspberry Pi.  It will begin to show some linux boot screen items and may reboot once or twice.  When finished you will see a line that reads IP Address on the screen that looks something like 192.168.1.21.  Note this down for the next step.

Connect to the piCorePlayer software and configure

Enter the IP Address you noted above into the web browser of another computer on the same network.  You should be presented with the piCorePlayer configuration screen.

In the configuration screen that comes up there are six tabs across the top.

Click the tab that says, ‘Squeezelite Settings’

In that tab, ensure you click the sound output type you want and click save.  This is where you tell the system you have a MamboBerry or a HifiBerry.

Believe it or not, that’s all you need to do to set this up, with the rest being already set in the server.  If you’ve not set up a server yet, be sure to check out how to do this on Ubuntu linux with our comprehensive guide here.  The server is of course also available for Mac and Windows.

You can of course also set this up via WiFi, which is on the WiFi tab.  Yes it’s as simple as it looks.

The LMS tab will allow you to set up the Logitech Media Server to run on the Raspberry Pi instead of on a separate computer.  Guide to follow.

Test

Connect to your squeezbox server by going to it’s IP Address on port 9000, or use your remote if you have one.  e.g. http://192.168.43.30:9000

You should now be able to play your music through your own custom made Raspberry Pi Squeezebox Receiver!

Final Word

Assuming this all worked for you, you now have an amazing sounding, integrated, cheap digital music player that rivals many DAC units costing around $1000.  There is the new ChromeCast Audio which is interesting, however that does not output high quality HD music, rather is more oriented around low quality phone music rather than high quality audio, plus this is a true client / server setup.

That said, there is a Chromecast Audio plugin for Squeezebox already made if you did want to go down this route.  As you can see, squeezebox has quite an extensive set of features (there are probably around 100 plugins like this).

Anyway, I hope you found this guide useful and please do not hesitate to hit me up in the comments below if you have any issues or questions.

Marshalleq

How to make Raspberry Pi 3 Bluetooth work on Arch Linux or Rune Audio

Problem / Outcome Summary

  • This how to guide will show you how to install a working Bluetooth driver for Arch Linux on the Raspberry Pi 3
  • Please see the ‘Summary Overview’ tab below for a high level view of the objectives this ‘how to’ will achieve.

This guide applies to:

  • Arch Linux on Raspberry Pi 3

Why might I want to do this?

  • Because currently Arch Linux does not supply a working bluetooth driver for Raspberry Pi 3
  • Because you want to add Bluetooth Capability to Rune Audio, which uses Arch Linux
  • Just because

Foreword

To be clear, why do I need to do this?

Sometimes distrubutions such as Arch Linux are not able to provide drivers as quickly as the public would like, new hardware comes out all the time and sometimes there are difficulties getting things to work.  It is important to make things work in an official way, which is why this uide uses AUR, the official Arch Linux User Repository.  In this way this should work until such time as Arch makes this official.

Full credit must go to Huulivoide from the Arch Linux User Repositories for creating these modified packages.

Pre-Requisites

Software Dependencies

  • Arch Linux or a derivative

Hardware Dependencies

  • Raspberry Pi 3

Tools Required

  • SSH if you have a headless based Arch Linux system such as Rune or other Arch Linux system

Other Dependencies

  • A working Internet connection

High Level Summary Steps

The below lists the high level summary of steps we’re about to take to get the Raspberry Pi 3 Bluetooth driver working in Arch Linux

  • Install software pre-requisites
  • Install Updated drivers
  • enable updated drivers
  • Test

Implementation

Install software pre-requisites

ssh into your Raspberry Pi 3 or start up a local console

Note that Rune Audio doesn’t really have an ordinary user account which therefore must be created, if you’re doing this on a rune Audio device, please see the next steps specific to Rune Audio.  If you don’t have a rune, just skip these.

Create an ordinary User Account for Rune Audio

# useradd -G wheel -m rune
# nano /etc/sudoers (uncomment the below line by taking the hash out)
# %wheel ALL=(ALL) NOPASSWD: ALL
# passwd rune (then enter your preferred password)
# su rune
$ cd /home/rune, then perform the below steps as this new ordinary user

$ sudo pacman -Syu (Note that this mostly will break Rune Audio, on Rune just omit the u to prevent a full system upgrade)

Install the build essentials

$ sudo pacman -S kernel26-headers file base-devel abs (Press Enter to accept default=all)
Press Y to proceed with installation.  If you get any errors about missing files, sometimes the pacman -Sy command fails, just repeat it and retry.

Arch will now retrieve any necessary package updates and install them.

Get the modified Raspberry Pi files that enable bluetooth

$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/hciattach-rpi3.tar.gz
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/pi-bluetooth.tar.gz

( note watch your permissions here, for me I ended up downloading as root and doing a chown rune.rune on them to get it to work – Arch seems a bit ‘funky’ at times…

Also – check you have spare disk space ($df -h) if not, follow this disk space article here. You may also need to install the libutil-linux package if you get an fdisk error aka # pacman -Sy libutil-linux

Install updated drivers

$ tar -zxvf hciattach*
$ tar -zxvf pi-blue*
$ cd hciattach-rpi3
$makepkg -cs
Press Y to compile the package
$ sudo pacman -U hciattach-rpi3-5.38.1-armv7h.pkg.tar.xz (or your equivalent version which may change)
Press Y to install this newly compiled package

$ cd ..
$cd pi-bluetooth
$makepkg -cs
Press Y to compile the package
$ sudo pacman -U pi-bluetooth-1-1-armv7h.pkg.tar.xz
Press Y to install the package you just compiled
[spacer color=”429d4a” icon=”fa-angle-double-down” style=”3″]

Enable updated drivers

$ sudo systemctl enable brcm43438.service
$ sudo reboot

Essentially, this guide is now complete, after the reboot we will confirm that.

Test

$ hcitool dev

This command should output something like:

[rune@runeaudio pi-bluetooth]$ hcitool dev

Devices:

hci0 xx:xx:xx:xx:xx:xx

Final Word

You should now have a completely installed, automatically starting, bluetooth module.  The world is your oyster!  Enjoy.

If you have any issues or questions, hit me up in the comment section below.

Marshalleq