256x64 Oled (ssd1322 SPI), 4 Buttons, Rotary - Interface

I’m building a Network Hifi Receiver from scratch.
An old Braun T2 Tuner serves as case for the player.

To keep as much as possible from the look of the device i needed an Interface for Volumio.
And especialy one that supports a 3,2" ssd1322 SPI Oled with 256x64Pixel.
After doing some research i found diehrdsk/Volumio-OledUI.
It fullfills many points on my “wishlist” but not nearly all.
As we all know, the way is the destination, i spent some time (much time…) in modifying the original code.
The project is not finished yet.
I’ll try to keep the github repository up-to-date.

planed features for the network receiver:

  • Raspberry Pi 4 with Volumio as OS
  • Hiffiberry DAC + ADC as DAC and Input
  • 4 Stereo Analog inputs digitaly switchable by Volumio (realised by seperate circuit)
  • 75W Trafo with two Lownoise PSU’s (parallel, each 5V 6A)
  • Standby Circuit, to fully cut of the Trafo
  • 2 VU-Meter
  • sd-card slot on front
  • usb on front
  • Near-Interface (Volumio-OledUI with 4Buttons + Rotary)
  • build in 5TB hdd
  • build in Wifi with external Antennas
  • build in Bluetooth 5.0 High-End Receiver wit external Antenna
  • “Master Control”-Interface (RS232 In/Out for Braun Atelier devices, to control them)

  • A wireless remote (pi zero, 18650cell, ssd1309 128x64 Oled) https://github.com/Maschine2501/OledUI-Remote/blob/master/README.md (remote project is just born, so please be patient…)





    .

Feautures of the Github Volumio-OledUI code:

  • 4 Button Interface (Button function depends on “State” of the screen, e.g. playback, menu…)
  • 1 Rotary with buttons (function also depends on “State”)
  • Playback Screen with Artist, Song, file-format, samplerate and bitdepth
  • Standby-Screen with Time, Date and IP-Adress
  • 3 Menu Screens (Media-Library, Playlists, Queue)
  • Button Layout-Icons on each Screen (depending on “State”)
  • Media-Library-Information Screen (Statistics about your Media-Library -> Artists, Albums, Songs, total Playtime)
  • Boot and Shutdown Logo
  • maybe more features will come… ^^
    Some bugs will (not often) happen. Will debug it soon.

Actual “Screenshots”




Video (in action)
https://youtu.be/1nwmKzCCoZE

Here’s the link to the repository:
https://github.com/Maschine2501/Volumio-OledUI

3 Likes

Congratulations! I follow your project, I’m interested.

1 Like

Me too

Inviato dal mio PRA-LX1 utilizzando Tapatalk

Updated project informations.

Congratulations! Great job, it looks amazing. I have in mind to do a project similar to yours with my Rpi 3b and my dac allo boss 1.2. I would like to install a display like yours, so that it shows exactly the same information. I love how it looks. It’s just what I need. I will not connect physical buttons. I am a newbie in electronics and I would be happy with being able to configure the display correctly. Could you tell me what exactly is the display you are using? It’s 4-pin, right?
Writing your github code, would it be fully configured to show the same information as in the video?
Thank you very much in advance. Cheers!!

2 Likes

I found this display, would it work?

Thanks in advance!

Hi @cuchu !
Out of tthe box, my code is compatible to ssd1322 (256x64 Pixel greyscale) and ssd1306 (128x64 monnochrome) displays.
Like this:



The ssd1306 uses i2c bus (V+, Gnd, SDA, SCL)
The ssd1322 uses spi bus (V+, Gnd, SDin, SClk, RST, DC, CS)

Personaly I would recommend to use an ssd1322 display, it jus has a lot more possibilitys for layous :wink:

The code is fairly easy to mod, so thatt it should work witth other display types, butt you need to know what you are doing!
If you want to use another display, you can send it to me, i will adapt the code to it. The only benefit for me: Free Display :wink:

During the setup of the code you’ll be asked for your favors (Layout, displaytype etc…) I guess this should be easy to use even if you’re not so deep into electronics.

If you have further questions, or need more informations I would recommend you to join my discord chanel: https://discord.gg/GJ4ED3F

Anyway, i’m lucky that you like my work!
Have some nice Winter days!

PS: The video is pretty old, the code looks much bettter now (need to make some new videos…))

1 Like

Hi! Thank you very much for your quick response and help offerings!
I would like to use an ssd1322 display, but I have several doubts about the pin connection.
My setup is a Rpi 3b + Allo Boss dac 1.2.
The gpio pins available on my allo boss are limited. I dont know if I have all of the spi bus (V+, Gnd, SDin, SClk, RST, DC, CS) pins to connect the display properly.
I will show you a few pictures



Maybe, I need a gpio expansion card like this to solve it.

€ 1,84 24%OFF | GPIO-Placa de extensión Raspberry Pi, módulo GPIO de 1 a 3 de 40 pines para Orange Pi PC Raspberry Pi 4B/3B +/3B Raspberry Pi Zero W/1,3

Thanks again for your help.

People like you make the community richer by creating and spreading knowledge.
Happy winter days!

1 Like

Hi, I guess that an expansion board won’t do the trick. On tthe pinout, there’s only i2c aviable… So the DAC will probaply use SPI for itself.

I think with the ALLO BOSS only an ssd1306 will work.

I use a HifiBerry DAC Plus ADC…
Maybe this is an option for you?

great project, thanks for sharing!

I will try later on my BassFly-uHAT

1 Like

quick question before starting with testing it, is the rotary encoder mandatory?

2 Likes

Hi! The Rotary is not a mandatory.
Only display is a mandatoty!
Cheers!

1 Like

many thanks!

Hi!
Ít is well !

How I can drive dac with i2c for select all input
In chip dac and volume off dac??

You can shown me the way ??
Thanks your advice

Mac

Hi Mac,
to answer this correctly, i need to know the Manufacturer-name and Model-Name of the DAC.
In my Project I use a “Hifiberry DAC Plus ADC” without any issues…
Best regards,
Christoph

Hi Maschine2501!

i use ES9018 Km, have 3 input: Spdif , Torxl, I2S

So i want control it by volumio with your LCD , ES9018 have i2c Pin
thank your advcie!

@mac sorry, i did not receive a notification, therfore the late answer…
To make it clear, you have this (Input only) Board: ES9018K2M ES9018 I2S IIS-32bit 384K / DSD64 I2S Eingang DAC Decodierboard | eBay
?
i2s bus should work, i use different pins.
But: You need Volumio Superstar to use the (ADC) input function from volumio! And I’m not sure if Volumio supports ADC-only boards… (ADC = Analog to Digital = Input)
In the NR1-UI Code is no Library/Source Selection Screen (yet…), so you won’t be able to select an Input from the Oled-UI.
(PS: I’m working on that since a few weeks, it’s a really complex process… But i’m sure I will provide a complete “Menu” with source/Library-selection in my code this year…)

Also I’m waiting for the official Buster release, cause it would make things a lot more comfortable…
I Hope I could help you, otherwise please contact me by mail or discord.
Regards,
Christoph

1 Like

Thank you very much!
Mac

1 Like

@Maschine2501 Greetings!
Please, describe to which contacts (R-rotary BTN, R-rotary A, R-rotary B) is the encoder (SW, DT, CLK) connected in your version?

:sunglasses: Just for info: :sunglasses:

Raspberry 3 (not plus) + Volumio 2.907 + NR1-UI/install-buildfix.sh = Display didn’t show any info & no
nr1ui.service

Raspberry 3 (not plus) + Volumiobuster-3.083 & 3.101 + NR1-UI/installbuster.sh = display worked correctly.

1 Like