Skip to content

1. Norns 2.0 Full Build on RasPi

Steven Noreyko edited this page Apr 9, 2019 · 24 revisions

Download raspbian stretch lite

https://www.raspberrypi.org/downloads/raspbian/ (tested with 2018-11-13 release)

write to sdcard

Use balenaEtcher - https://www.balena.io/etcher/

add ssh and wpa-supplicant files to boot partition of sd card

Some details here https://caffinc.github.io/2016/12/raspberry-pi-3-headless/

PI Setup

Boot the pi and login with default user:pass - pi:raspberry

Follow new Compile instructions

There's a new set of instructions to get the same kernel setup used by pisound along with the ssd1322 oled driver.

https://github.com/okyeron/norns-linux-bits/blob/master/README.md

Follow all those instructions then come back here

package installs

follow instructions for apt-get, accept all defaults
updated to use https://package.monome.org/

curl https://keybase.io/artfwo/pgp_keys.asc | sudo apt-key add -
echo "deb https://package.monome.org/ stretch main" | sudo tee /etc/apt/sources.list.d/norns.list

sudo apt update
sudo apt install --no-install-recommends jackd2
sudo apt-get install libboost1.62-dev
sudo apt-get install libjack-jackd2-dev
sudo apt install libmonome-dev libnanomsg-dev supercollider-language supercollider-server supercollider-supernova supercollider-dev liblua5.3-dev libudev-dev libevdev-dev liblo-dev libcairo2-dev liblua5.3-dev libavahi-compat-libdnssd-dev libasound2-dev 
sudo apt install dnsmasq
sudo apt install sc3-plugins ladspalist
sudo apt install usbmount
sudo apt install network-manager

for DAC Audio

sudo apt-get install alsa-utils
sudo apt-get install libi2c-dev

sudo nano /lib/systemd/system/systemd-udevd.service
change slave to shared

Follow DAC install instructions

https://github.com/okyeron/norns-image/wiki/2.-DAC-Audio-Config-(WM3731)

USB Audio Config (if using USB audio)

https://github.com/okyeron/norns-image/wiki/3.-USB-Audio-Setup

NORNS SETUP

setup norns image

git clone https://github.com/monome/norns-image.git 
cd norns-image

do not run setup.sh YET

norns setup config

nano setup.sh

	# comment out 
	#sudo apt install network-manager dnsmasq-base midisport-firmware

	# comment out dhcp/interfaces copies so it does not hose your wifi when you install
	#sudo cp config/interfaces /etc/network/interfaces

nano config/norns-init.service

	# comment out these lines for analog gain stage (put # in front, we dont want any i2cset)
	#ExecStart=-/usr/sbin/i2cset -y 1 0x28 0x00
	#ExecStart=-/usr/sbin/i2cset -y 1 0x28 0x40

	# may need to comment out Mixer line ??

	#ADD after description
	After=raspi-config.service

nano config/norns-jack.service

	# if your using a usb soundcard, you'll may need to change this and also maybe change the buffer size (-p) 

Framebuffer setup for ssd1322 oled

nano config/norns-matron.service 
	# add -f/dev/fb1
	ExecStart=/home/we/norns/build/ws-wrapper/ws-wrapper ws://*:5555 /home/we/norns/build/matron/matron -f/dev/fb1

nano scripts/init-norns.sh

	# comment out i2cset for analog gain stages again
	#sudo i2cset -y 1 0x28 0x00
	#sudo i2cset -y 1 0x28 0x40
	
	#sudo i2cset -y 1 0x29 0x00
	#sudo i2cset -y 1 0x29 0x40
	
	# may need to comment out Mixer line depending on your DAC setup

Create norns-init.service sudo nano /etc/systemd/system/norns-init.service

[Unit]
Description=norns-init

[Service]
Type=oneshot

ExecStart=/bin/sh -c "/bin/echo -n performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

[Install]
WantedBy=norns.target

then re-add norns-init to norns.target

nano config/norns.target

#add above norns-jack.service
Requires=norns-init.service

now run setup.sh
./setup.sh

install norns

cd ~
git clone https://github.com/monome/norns.git
cd norns
git checkout dev  // PRE 2.0

./waf configure
./waf

run sclang

sclang

install sc

cd sc
./install.sh

Framebuffer setup for oled

edit matron.shto add -f/dev/fb1

sudo nano ~/norns/matron.sh

./build/ws-wrapper/ws-wrapper ws://*:5555 ./build/matron/matron -f/dev/fb1

Dust and Maiden

Copy dust from updater

Get maiden from github releases:

https://github.com/monome/maiden/releases

wget https://github.com/monome/maiden/releases/download/v0.12/maiden-v0.12.tgz
tar -xvf maiden-v0.12.tgz
rm maiden-v0.12.tgz

Compiling Overlays

compile dts files for overlays if needed (or if you're using different GPIO pins)

.dts needs to be compiled to .dtbo and then the .dtbo and copy to /boot/overlays/

norns-buttons-encoders-overlay

sudo dtc -W no-unit_address_vs_reg -@ -I dts -O dtb -o /boot/overlays/norns-buttons-encoders.dtbo norns-buttons-encoders-overlay.dts

ssd1322

sudo dtc -W no-unit_address_vs_reg -@ -I dts -O dtb -o /boot/overlays/ssd1322-fates.dtbo ssd1322-fates-overlay.dts

Add overlay to /boot/config.txt so it loads the button/encoder overlay:
sudo nano /boot/config.txt

	# Buttons and encoders
	dtoverlay=norns-buttons-encoders
	dtoverlay=ssd1322-fates

Maiden Test

test: `./maiden.arm -debug -app app/build/ -data ~/norns/lua'

check functionality from browser http://norns.local/maiden/

Network / Wifi

DO THIS AFTER YOU'RE SCREEN IS UP AND RUNNING PROPERLY

remove wlan0 reference from /etc/network/interfaces
rename /etc/wpa_supplicant/wpa_supplicant.conf to something else and reboot.
this should get network manager to take over

At this point you will want to login to your wifi from the device screen so network manager remembers your wifi info.