Install Dashing on a Raspberry Pi

After having successfully set up the Raspberry Pi it’s time to add some value.

The first project will be to have a Dashing board up and running.

To get dashing to the pi we first need to install some prerequisites and configure the pi to start up chromium in kiosk mode with a URL of our choice. Next is to install dashing and start a demo project.

Let’s start with packages. Luckily some of the required ones are already installed in the image we chose like: nodejs x11-xserver-utils ttf-mscorefonts-installer xwit sqlite3 libnss3

$ sudo apt-get install matchbox  # leightweight window manager
$ sudo ln -s /usr/lib/arm-linux-gnueabihf/nss/ /usr/lib/nss

The last command prevents the error “Failed to load NSS libraries.” you may see when you start the x-server.

Now we have to tell xinit to start what we want to see. I found this script somewhere on the web which mostly does what we need, and made some small changes.

$ vi ~/.xinitrc

and put the following lines of code into it.

while true; do

  # Clean up previously running apps, gracefully at first then harshly
  killall -TERM chromium 2>/dev/null;
  killall -TERM matchbox-window-manager 2>/dev/null;
  sleep 2;
  killall -9 chromium 2>/dev/null;
  killall -9 matchbox-window-manager 2>/dev/null;

  # Clean out existing profile information
  rm -rf /home/pi/.cache;
  rm -rf /home/pi/.config;
  rm -rf /home/pi/.pki;

  # Generate the bare minimum to keep Chromium happy!
  mkdir -p /home/pi/.config/chromium/Default
  sqlite3 /home/pi/.config/chromium/Default/Web\ Data "CREATE TABLE meta(key LONGVARCHAR NOT NULL UNIQUE PRIMARY KEY, value LONGVARCHAR); INSERT INTO meta VALUES('version','46'); CREATE TABLE keywords (foo INTEGER);";

  # Disable DPMS / Screen blanking
  xset -dpms
  xset s off

  # Reset the framebuffer's colour-depth
  fbset -depth $( cat /sys/module/*fb*/parameters/fbdepth );

  # Hide the cursor (move it to the bottom-right, comment out if you want mouse interaction)
  xwit -root -warp $( cat /sys/module/*fb*/parameters/fbwidth ) $( cat /sys/module/*fb*/parameters/fbheight )

  # Start the window manager (remove "-use_cursor no" if you actually want mouse interaction)
  matchbox-window-manager -use_titlebar no -use_cursor no &

  # Start the browser (See
  chromium  --app=http://localhost:3030/


If you now start the xserver with

$ startx

you should see a running chromium in kiosk mode pointing to a web page that doesn’t exist yet, so let’s create it.

First let’s deactivate docs for gems. This just takes time and we don’t need it on the pi.

$ cat > ~/.gemrc
gem: --no-ri --no-rdoc
install: --no-rdoc --no-ri
update: --no-rdoc --no-ri
$ cp ~/.gemrc /home/pi
$ chown pi:pi /home/pi/.gemrc

Then we install dashing and create a dashboard - be free to choose a wiser name.

$ cd
$ gem install bundler dashing
$ dashing new whatever
$ cd whatever
$ bundle
$ dashing start

To see the results we would have to reload the browser. If you have a mouse attached, right click and hit Reload. If you have a keyboard attached, hit ctrlr. You should see the demo dashboard of dashing.

Next time we will fill the dashboard with meaningful data.

No Comments