norns shield

You’ll probably have to either post a picture of what kind of shield you’ve bought or try to figure the knobs out yourself. As that’s not the official shield, we don’t know what kind of knobs the builder has put on, or even which kind of shaft there is in the encoders he’s used.

There are two common types of knobs - one type has a tiny screw somewhere in the side and is removed by loosening it with a small screwdriver or hex key after which the knob comes easily off. The other is a push-fit so you can remove it just by pulling it out hard enough. There are also at least two types of shafts the Bourns encoders can be ordered with: D-shaft (half moon shape) and knurled (round, with grooves).

After you manage to remove the knobs (or a single knob at least), you can see what kind of shaft the encoder has, and order corresponding knobs from Thonk.

Ok, here goes, first really dumb question (of many): The monome website tells me to “press K1 and navigate to HOME”, then it tells me to “press E2 to select SLEEP”…but it doesn’t tell me which knob is K1 and which is E2. Can someone point me to a simple diagram somewhere that explains what is what please?!

K1 and E1 are top left, above screen
K2 and K3 are bottom left of screen
E2 and E3 are bottom right of screen

hope all’s well! there’s a diagram a few scrolls up from those instructions on play - docs.

did it not render for you? happy to help with more info!


Thanks @dan_derks and @cuberoo ! Making more sense now

somewhere in another thread i pointed to a fuse file system which could read ext3/4 file systems

haven’t personally used it but the op had success

many times have i used ext4fuse for this, fwiw


I literally just ordered a shield and joined after a few days of getting my head round whats what. This thread helped answer a few questions, thanks to all.

One impertinent question tho…

There is a link to a US retailer for the appropriate Pi, charger, and SD Card. Does anyone have a link to a reputable UK seller with the exact right kit? The charger in particular seems to be a key component I dont want to get wrong.

I got my Pi from amazon simply because i had some credit to use up, but sourced the charger from

1 Like

thanks, thats great!

Pimoroni and Pi Supply are in the UK too. (Seeing the Pi is developed in the UK there’s probably an official store somewhere as well…)

1 Like

Hi everyone,

With my norns shield on its way, I’m currently purchasing the cable adapters I’ll need to interface it correctly. I know it has a 3,5mm TRS for its audio output, but I didn’t read anywhere, so I take it it also has the same for input?


Yes, that’s correct!


norns shield has 3.5mm stereo jacks (headphones work on the output jack)

Via norns shield - docs

1 Like

Thanks guys, will go ahead with the adapters now.

Just got my long awaited Norns Shield kit but the screen seems to be dead. I’ve emailed Monome help but it’s a long wait until Monday! I’ve scoured the forum for possibilities so have tried reseating the PI, plugging into the wall, using a USB battery, different SD cards, flashing various Norns builds. Pi is not the issue as it boots via Raspberry Pi OS. It’s an official UK Pi power supply and a half decent 32gb SD card. I’ve SSH’d into Norns via Ethernet and all seems fine via dmesg, I think. I have a solid red LED and the other flashes for a while then stops. No start up tone. I’m not an experienced DIYer so think the issue is likely something I’ve done or purchased incorrectly. My screen remains resolutely black, like my heart. Any ideas on what I’m doing wrong or what I can do to further determine the cause?

what level of assembly did you perform on the shield PCB? SMT parts? headers only? or the latest fully assembled option?

we’ve seen lots of soldering issues on headers in this thread.

Ah, sorry, it was the fully assembled kit.

hm, then i’d think that assembly issues on the shield side are very unlikely.

hardware-wise, since both screen and codec are (maybe) not working, i’d still suspect the issue lies between the raspi PCB and the shield PCB - that is, in the header. if it’s possible to check continuity between the rpi pcb and the top of the shield header, that would probably be a good idea; a header breakout board makes this easier.

you can also continue checking things out on the software side: see if aplay -l lists the soundcard, post any specific dmesg output, etc.

for lookin directly at the norns software components, i do the following, with three separate ssh sessions (or screen/tmux windows); in order:

session 1:

cd /home/we/norns

session 2:


session 3:

cd /home/we/norns

that will show you all the output, and in particular the sclang session will tell you more about why supercollider is (most likely) failing to boot. for me, the theory of a single point of HW failure is pretty strong.

also i’m sure dan will be happy to help you through the official support channels, but it is nice to not make him work on the weekend. :slight_smile:

Cheers for the assistance, very very much appreciated. I’ve run all those commands and there are no obvious (to me) errors although I’m not too aware of what I’m doing. Hopefully I’ve attached the lengthy results below -

aplay ~ $ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: sndrpimonome [snd_rpi_monome], device 0: monome cs4270 cs4270-hifi-0 [monome cs4270 cs4270-hifi-0] Subdevices: 0/1 Subdevice #0: subdevice #0
dmesg | grep snd ~ $ dmesg | grep snd [ 0.959958] snd-rpi-monome soc:sound: ASoC: CPU DAI (null) not registered - will retry [ 0.959979] snd-rpi-monome soc:sound: snd_soc_register_card() failed (-517) [ 1.244422] snd-rpi-monome soc:sound: cs4270-hifi <-> 3f203000.i2s mapping ok [ 1.246002] #0: snd_rpi_monome
dmesg | grep fb ~ $ dmesg | grep fb [ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 bcm2708_fb.fbwidth=720 bcm2708_fb.fbheight=480 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=ttyS0,115200 consoleblank=0 fbcon=map:1 root=/dev/mmcblk0p2 rootwait console=tty1 [ 0.965516] fbtft_of_value: buswidth = 8 [ 0.965531] fbtft_of_value: debug = 3 [ 0.965543] fbtft_of_value: rotate = 180 [ 0.965556] fbtft_of_value: fps = 20 [ 0.965590] fb_ssd1322 spi0.0: fbtft_gamma_parse_str() str= [ 0.965605] fb_ssd1322 spi0.0: 1 1 1 1 1 2 2 3 3 4 4 5 5 6 6 [ 0.965661] fb_ssd1322 spi0.0: fbtft_request_one_gpio: 'reset-gpios' = GPIO6 [ 0.965690] fb_ssd1322 spi0.0: fbtft_request_one_gpio: 'dc-gpios' = GPIO5 [ 0.965728] fb_ssd1322 spi0.0: fbtft_verify_gpios() [ 0.965742] fb_ssd1322 spi0.0: init_display() [ 0.965754] fb_ssd1322 spi0.0: fbtft_reset() [ 1.107680] fb_ssd1322 spi0.0: Display update: 3577 kB/s, fps=0 [ 1.107696] fb_ssd1322 spi0.0: set_gamma() [ 1.107842] graphics fb0: fb_ssd1322 frame buffer, 128x64, 16 KiB video memory, 8 KiB buffer memory, fps=20, spi0.0 at 16 MHz
crone ~ $ cd /home/we/norns ~/norns $ ./ ~/norns $ ./build/crone/crone constructed Client: crone constructed Client: softcut initializing buffer management worker.. setting up jack clients.. engine sample rate: 48000 engine sample rate: 48000 starting jack clients.. connecting ports... starting OSC interface... osc methods: /hello [] /goodbye [] /quit [] /poll/start/vu [] /poll/stop/vu [] /set/level/adc [f] /set/level/dac [f] /set/level/ext [f] /set/level/cut_master [f] /set/level/ext_rev [f] /set/level/rev_dac [f] /set/level/monitor [f] /set/level/monitor_mix [if] /set/level/monitor_rev [f] /set/level/compressor_mix [f] /set/enabled/compressor [f] /set/enabled/reverb [f] /set/param/compressor/ratio [f] /set/param/compressor/threshold [f] /set/param/compressor/attack [f] /set/param/compressor/release [f] /set/param/compressor/gain_pre [f] /set/param/compressor/gain_post [f] /set/param/reverb/pre_del [f] /set/param/reverb/lf_fc [f] /set/param/reverb/low_rt60 [f] /set/param/reverb/mid_rt60 [f] /set/param/reverb/hf_damp [f] /set/enabled/cut [if] /set/level/cut [if] /set/pan/cut [if] /set/level/adc_cut [f] /set/level/ext_cut [f] /set/level/tape_cut [f] /set/level/cut_rev [f] /set/level/in_cut [iif] /set/level/cut_cut [iif] /set/param/cut/rate [if] /set/param/cut/loop_start [if] /set/param/cut/loop_end [if] /set/param/cut/loop_flag [if] /set/param/cut/fade_time [if] /set/param/cut/rec_level [if] /set/param/cut/pre_level [if] /set/param/cut/rec_flag [if] /set/param/cut/play_flag [if] /set/param/cut/rec_offset [if] /set/param/cut/position [if] /set/param/cut/pre_filter_fc [if] /set/param/cut/pre_filter_fc_mod [if] /set/param/cut/pre_filter_rq [if] /set/param/cut/pre_filter_lp [if] /set/param/cut/pre_filter_hp [if] /set/param/cut/pre_filter_bp [if] /set/param/cut/pre_filter_br [if] /set/param/cut/pre_filter_dry [if] /set/param/cut/post_filter_fc [if] /set/param/cut/post_filter_rq [if] /set/param/cut/post_filter_lp [if] /set/param/cut/post_filter_hp [if] /set/param/cut/post_filter_bp [if] /set/param/cut/post_filter_br [if] /set/param/cut/post_filter_dry [if] /set/param/cut/voice_sync [iif] /set/param/cut/level_slew_time [if] /set/param/cut/pan_slew_time [if] /set/param/cut/recpre_slew_time [if] /set/param/cut/rate_slew_time [if] /set/param/cut/buffer [ii] /softcut/buffer/read_mono [sfffii] /softcut/buffer/read_stereo [sfff] /softcut/buffer/write_mono [sffi] /softcut/buffer/write_stereo [sff] /softcut/buffer/clear [] /softcut/buffer/clear_channel [i] /softcut/buffer/clear_region [ff] /softcut/buffer/clear_region_channel [iff] /softcut/buffer/clear_fade_region [ffff] /softcut/buffer/clear_fade_region_channel [iffff] /softcut/buffer/copy_mono [iifffffi] /softcut/buffer/copy_stereo [fffffi] /softcut/buffer/render [iffi] /softcut/reset [] /set/param/cut/phase_quant [if] /set/param/cut/phase_offset [if] /poll/start/cut/phase [] /poll/stop/cut/phase [] /tape/record/open [s] /tape/record/start [] /tape/record/stop [] /tape/play/open [s] /tape/play/start [] /tape/play/stop [] /set/level/tape [f] /set/level/tape_rev [f] entering main loop...
sclang ~ $ sclang compiling class library... Found 716 primitives. Compiling directory '/usr/share/SuperCollider/SCClassLibrary' Compiling directory '/usr/share/SuperCollider/Extensions' Compiling directory '/home/we/.local/share/SuperCollider/Extensions' Compiling directory '/home/we/norns/sc/core' Compiling directory '/home/we/norns/sc/engines' Compiling directory '/home/we/norns/sc/ugens' Compiling directory '/home/we/dust' Open ended comment started on line 142 of file '/home/we/dust/code/lissadron/lib/' numentries = 1034394 / 12281344 = 0.084 4352 method selectors, 2822 classes method table size 7725644 bytes, big table size 49125376 Number of Symbols 12225 Byte Code Size 344332 compiled 385 files in 1.05 seconds

Info: 4 methods are currently overwritten by extensions. To see which, execute:

compile done
localhost : setting clientID to 0.
internal : setting clientID to 0.
Class tree inited in 1.1 seconds

Crone startup

OSC rx port: 57120
OSC tx port: 8888
server port: 57122
server port: 9999

*** Welcome to SuperCollider 3.10.0. *** For help type ctrl-c ctrl-h (Emacs) or :SChelp (vim) or ctrl-U (sced/gedit).
Booting server ‘localhost’ on address
sc3> Found 0 LADSPA plugins
JackDriver: client name is ‘SuperCollider’
SC_AudioDriver: sample rate = 48000.000000, driver’s block size = 128
SuperCollider 3 server ready.
Requested notification messages from server ‘localhost’
localhost: server process’s maxLogins (1) matches with my options.
localhost: keeping clientID (0) as confirmed by server process.
Shared memory server interface initialized
JackDriver: max output latency 8.0 ms
CroneDefs: sending defs
AudioContext: in_b[0] index: 4
AudioContext: in_b[1] index: 5
AudioContext: out_b index (stereo): 0
AudioContext: initPolls

engines: [ Glut, Showers, PolySub, Greyhole, KarplusRings, Ack, Phyllis, MGlut, Decimatec, SimplePassThru, Dronecaster, MollyThePoly, Decimator, R, PolyPerc, Benjolis, Timber, Passersby, Pools, TestSine, PrimitiveString, Why, None, Lissadron ]

matron ~/norns $ ./build/matron/matron MATRON norns version: 0.0.0 git hash: 3b4d7da

platform: 3
0: 04B_03__.TTF
1: liquid.ttf
2: Roboto-Thin.ttf
3: Roboto-Light.ttf
4: Roboto-Regular.ttf
5: Roboto-Medium.ttf
6: Roboto-Bold.ttf
7: Roboto-Black.ttf
8: Roboto-ThinItalic.ttf
9: Roboto-LightItalic.ttf
10: Roboto-Italic.ttf
11: Roboto-MediumItalic.ttf
12: Roboto-BoldItalic.ttf
13: Roboto-BlackItalic.ttf
14: VeraBd.ttf
15: VeraBI.ttf
16: VeraIt.ttf
17: VeraMoBd.ttf
18: VeraMoBI.ttf
19: VeraMoIt.ttf
20: VeraMono.ttf
21: VeraSeBd.ttf
22: VeraSe.ttf
23: Vera.ttf
24: bmp/tom-thumb.bdf
25: bmp/creep.bdf
26: bmp/ctrld-fixed-10b.bdf
27: bmp/ctrld-fixed-10r.bdf
28: bmp/ctrld-fixed-13b.bdf
29: bmp/ctrld-fixed-13b-i.bdf
30: bmp/ctrld-fixed-13r.bdf
31: bmp/ctrld-fixed-13r-i.bdf
32: bmp/ctrld-fixed-16b.bdf
33: bmp/ctrld-fixed-16b-i.bdf
34: bmp/ctrld-fixed-16r.bdf
35: bmp/ctrld-fixed-16r-i.bdf
36: bmp/scientifica-11.bdf
37: bmp/scientificaBold-11.bdf
38: bmp/scientificaItalic-11.bdf
39: bmp/ter-u12b.bdf
40: bmp/ter-u12n.bdf
41: bmp/ter-u14b.bdf
42: bmp/ter-u14n.bdf
43: bmp/ter-u14v.bdf
44: bmp/ter-u16b.bdf
45: bmp/ter-u16n.bdf
46: bmp/ter-u16v.bdf
47: bmp/ter-u18b.bdf
48: bmp/ter-u18n.bdf
49: bmp/ter-u20b.bdf
50: bmp/ter-u20n.bdf
51: bmp/ter-u22b.bdf
52: bmp/ter-u22n.bdf
53: bmp/ter-u24b.bdf
54: bmp/ter-u24n.bdf
55: bmp/ter-u28b.bdf
56: bmp/ter-u28n.bdf
57: bmp/ter-u32b.bdf
58: bmp/ter-u32n.bdf
59: bmp/unscii-16-full.pcf
60: bmp/unscii-16.pcf
61: bmp/unscii-8-alt.pcf
62: bmp/unscii-8-fantasy.pcf
63: bmp/unscii-8-mcr.pcf
64: bmp/unscii-8.pcf
65: bmp/unscii-8-tall.pcf
66: bmp/unscii-8-thin.pcf
*** WARNING *** The program ‘matron’ uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see
OSC rx port: 8888
OSC crone port: 9999
OSC ext port: 57120
starting lua vm
running lua config file: dofile(’/home/we/norns/lua/core/config.lua’)
running startup

script clear


network connections:

1 Wired connection 1
2 halfhidden
3 halfhidden 1
4 nnnnnnnn
5 nnnnnnnn 1
6 nnnnnnnn 2
available engines (24):

Any ideas?