That picture is of a i2c OLED and I believe I was using an SPI OLED. i2c is 2-wires, SPI is like 4-wires (too lazy to look that up right now).

So - that little display would not work the same way.

Now - when you get the Newhaven display, the wiring to the display is quite important and you have to connect ALL the ground pins. DM me and I can send you a screen grab of my schematic for those connections.

1 Like

Which good sellers did you buy your display from? It’s quite pricey on digikey, so if there are cheaper suppliers that’d be cool to know about

That’s actually who I purchased from. All things considered, $30 so didn’t seem to be so bad. It was half of what my preferred DAC was. @tehn has always been the kind of developer to choose premium parts and design, so honestly I was not too surprised at the pricing.

Is there an ETA for the through hole kit? I know with how these things go it’s probably fuzzy and uncertain, but is it likely to be out in the next 6 months? Year?

On these builds, is it cool to use a potentiometer? Or is it encoders only? Anybody have a good pick on semi weighted endless rotaries that would work for this project?

Hey everyone. I have been attempting to follow the directions on the Norns 2.0 git install. I have been getting this response back when attempting to run Crone, after installing sc. sclang runs okay, with some issues of not opening ports. But when running crone.sh I get this returned

Summary

Client: softcut
attempting to bind socket at url ws://:5556
ws-wrapper: …/ws-wrapper/src/main.c:43: bind_sock: Assertion ( *eid = nn_bind(*sock, url) ) >= 0' failed. setting up jack clients.. unique namecrone-01’ assigned
engine sample rate: 48000
unique name `softcut-01’ assigned
engine sample rate: 48000
starting jack clients…
connecting ports…
starting OSC interface…
liblo error: 9904; cannot find free port; c^C
[2] Segmentation fault ./build/crone/crone
[3]- Aborted ./build/ws-wrapper/ws-wrapper ws://
:5556 $SCLANG
192.168.1.101 ~/norns $ touch ~.jackdrc

Summary

This text will be hidden

Any thoughts? I am attmpeting to build this with an Audio Injector Ultra card, and I’m worried this might be causing the issue but when I check aplay -l it returns this:

card 0: audioinjectorul [audioinjector-ultra], device 0: bcm2835-i2s-cs4265-dai1 cs4265-dai1-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0

Norns software expects an encoder.
So… encoders only. I can post a part number later for the Bourne’s PEC11 encoders i use.

PEC11R-4015F-N0024 (no-detent with 15mm D-shaft)

Not really. A month or two I hope.

1 Like

I’m just trying to get an SPI display hooked up to my Raspberry Pi 3, but am having a little difficulty. I have a SH1106 display that I borrowed from my ornament and crime. I followed the instructions posted here (http://www.okyeron.com/norns/sh1106.txt). The kernel modules seem to compile ok, and after loading the driver with modprobe I can see an entry under /dev/fb1, and the dmesg log shows:

[   59.385683] fbtft: loading out-of-tree module taints kernel.
[   59.385713] fbtft: module is from the staging directory, the quality is unknown, you have been warned.
[   59.392691] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[   59.394295] spidev spi0.0: spidev spi0.0 125000kHz 8 bits mode=0x00
[   59.394315] spidev spi0.1: spidev spi0.1 125000kHz 8 bits mode=0x00
[   59.394366] bcm2708_fb soc:fb: soc:fb id=-1 pdata? no
[   59.394424] spidev spi0.0: Deleting spi0.0
[   59.395670] fbtft_device: GPIOS used by 'fb_sh1106':
[   59.395682] fbtft_device: 'reset' = GPIO25
[   59.395688] fbtft_device: 'dc' = GPIO24
[   59.395706] spidev spi0.1: spidev spi0.1 125000kHz 8 bits mode=0x00
[   59.395718] spi spi0.0: fb_sh1106 spi0.0 2000kHz 8 bits mode=0x00
[   59.438243] fb_sh1106: module is from the staging directory, the quality is unknown, you have been warned.
[   59.439274] fb_sh1106 spi0.0: fbtft_request_gpios: 'reset' = GPIO25
[   59.439298] fb_sh1106 spi0.0: fbtft_request_gpios: 'dc' = GPIO24
[   59.750462] graphics fb1: fb_sh1106 frame buffer, 128x64, 16 KiB video memory, fps=20, spi0.0 at 2 MHz

however when I try con2fbmap 1 1, nothing shows up on the display. I am able to get the display working in Python using luma.oled, so my wiring seems like it is ok. Any pointers would be much appreciated.

(at this point) I cant remember many details about using the sh1106. But… your dmesg output looks good to me (assuming your dc/reset pins are what they say there).

does lsmod show fbtft and fb_sh1106 ?

Maybe the spi speed is wrong? I had used 2000000

sudo modprobe fbtft_device custom name=fb_sh1106 debug=1 speed=2000000 gpios=reset:15,dc:14

1 Like

Thanks for trying to help! I loaded the kernel module with:

sudo modprobe fbtft_device custom name=fb_sh1106 debug=1 speed=2000000 gpios=reset:25,dc:24

The output of lsmod | grep fb is:

fb_sh1106              16384  0
fbtft_device           49152  0
fbtft                  45056  2 fb_sh1106,fbtft_device
syscopyarea            16384  1 fbtft
sysfillrect            16384  1 fbtft
sysimgblt              16384  1 fbtft
fb_sys_fops            16384  1 fbtft

I also tried cat /dev/urandom > /dev/fb1 but that doesn’t show anything on the display either. I’m pretty sure the reset/dc GPIO pins are set correctly. The other pins are connected as follows:

CS (chip select) --> GPIO 8
SDA --> GPIO 10
SCK --> GPIO 11
VDD --> 3.3V
GND --> GND

¯\(ツ)

If luma.oled is working then I’d say it’s not the hardware, but probably the fb_sh1106 driver being the problem.

Unfortunately I don’t have any suggestions on how to check/fix this. I can’t remember what the failure state is with the fbtft driver modules. I thought they just wouldn’t load if they were not setup right. Could try recompiling the fb_sh1106 driver again?

Summary

I have been doing a full build of this but haven’t gotten SC to correctly install. Could someone point me in a direction of how to try properly installing SC on my Pi?

Basically I do this:

run sclang,
cd sc
./install.sh

Seemingly, nothing happens and I continue on with my install.

If anybody has some thoughts, I’d appreciate it. This is the final missing piece in my build.

The issues were on my end.

FWIW - if anyone else is running into a problem like Peter’s here, it’s not SC, but likely the networking on the pi causing the problem.

the norns software is pretty picky about how the network stuff is setup so you need to remove any wpa_supplicant or custom mods to network/interfaces and then use network manager. (specifically you must then setup your WiFi connection from the norns screen). Yeah, this is less than ideal, but I don’t have a workaround to do it from the command line yet.

Yeah, it’s strange. I hooked up a cheap Hobby Components logic analyzer to the RPi, and it seems like it is doing something. The first set of control bits set the “page address” followed by the “lower” and “higher” column address. Then it starts sending data (exactly 128 bytes which is the width of the display). Each byte fills up 8 pixels for the current column, which gets incremented automatically on each write cycle. Then it increments the page number and sends another 128 bytes, and repeats in this fashion until all 8 pages have been filled. So it is sending 128x64 bits of data, and really seems like it should be working. But alas, I get nothing on the display.

FWIW - I’m wondering about that u32 vs unsigned long thing in the driver - but no idea really
(I had found that mod thru a bunch of google searching)

I used my logic analyzer to view the SPI initialization commands sent when the modprobe command is first run and compared that to when the luma.oled initialization is run – they seem a little different. I think my next step will be to hack the fb_sh1106.c initialization code so that it issues the same sequence of commands as luma.oled.

So I guess there’s something up with the driver. I changed the initialization code in fb_sh1106.c to match the commands issued by luma.oled during start up and now it seems to work.

2 Likes

still a bit bleeding edge, but…

I have norns running on Raspberry Pi 4 and the Buster kernel

:tada:

20 Likes

Awesome. Are you experiencing any usb-c power issues?

Also, as a test, I will try using the OP-Z as the audio io woth norns in a couple of weeks. With the new sampling firmware and some adapters you have audio ins and outs on the OP-Z. And the op-z itself functions as usual with audio through the USB.

1 Like

Some undervoltage warnings here and there. I got some 3A usb power supplies, but they don’t seem to work as well as the 2.5A ones I’ve been using with my 3b+

Maybe I need different cables (I’ve been using a usb-micro cable with an adapter).

Just wanted to jump in here and say thanks so much @okyeron for your great documentation. I still haven’t heard any audio coming out of my setup, but everything seems to be installed and all the services are running. Got an order in for an 8731 soundcard and a pile of other components, hopefully will be enough.

Has anyone tried an ili9341 display with this setup? I got one kicking around that I am hoping I can use.

1 Like