1. Norns 2.0 Full Build on RasPi
This information is from April 2019 and may now be out of date.
Proceed at your own risk.
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
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
Network Manager
Make a quick change to network interfaces so network-manager does not take over wifi
NOTE - At the end of the network-manager install you will get kicked of off wifi and will be assigned a new IP address. You will want to have a keyboard and monitor attached here to login directly and get your IP address with ifconfig - or you can fake it by checking a tool like LanScan to find the device on your network.
Also - the IP address will likely change each time you reboot.
We will fix this at the very end of the install.
sudo nano /etc/network/interfaces
#add this
auto wlan0
Then install network-manager and reboot
sudo apt install network-manager
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-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
# replace the line that starts with ExecStart with this one
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
./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
Get dust from updater and push to device over SFTP
Or... trying another way - included with the other linux bits...
cd ~
cp ~/norns-linux-bits/dust.tar .
tar -xvf dust.tar
rm dust.tar
Get maiden from github releases: https://github.com/monome/maiden/releases
cd ~
wget https://github.com/monome/maiden/releases/download/v0.13/maiden-v0.13.tgz
tar -xvf maiden-v0.13.tgz
rm maiden-v0.13.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
THIS SECTION IS SUPER IMPORTANT
reset /etc/network/interfaces to norns default. This means removing any custom setup you might have used to connect via SSH so far.
NOTE - If you don't do this step, supercollider might not get a proper network address and might not be able to talk to the other norns software - resulting in an ERROR: AUDIO ENGINE situation.
sudo cp ~/norns-linux-bits/interfaces /etc/network/interfaces
rename /etc/wpa_supplicant/wpa_supplicant.conf to something else and reboot.
this should get network manager to take over
mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant_bak.conf
sudo reboot
At this point you will need use the norns screen (not SSH) to login to your WiFi network. This is at SYSTEM>WIFI in the norns menu. ADD to your WiFi network and then CONNECT and you should be good. This is all using Network Manager behind the scenes.