Skip to content

Physical user interface for Volumio music player: 256x64 OLED display + 1x rotary encoder + 4 Buttons

License

Notifications You must be signed in to change notification settings

Maschine2501/Volumio-OledUI

 
 

Repository files navigation

Inspired by: https://github.com/diehardsk/Volumio-OledUI

14.04.2020 End of this Project


luma.oled is not compatible with python 2.7 anymore. migrated to python 3.5.2 -> Maschine2501/NR1-UI

Volumio-OledUI MK2

Im 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...

Features of Maschine2501/Volumio-OledUI:

  • 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.

To-Do:

  • Tune the whole UI (fonts, positions... etc. / will be done when everything else is running properly)
  • Maybe integrate "CAVA" to display a bargraph spectrum? (hot topic!!!)

Allready Done:

  • Standby-Screen (when Playback is stoped, Time, Date and IP is Displayed)
  • Automatic stop when playback is paused (value could be defined / declared)
  • display Fileformat/Samplerate/Bitdepth in the NowPlayingScreen
  • Scroll Text stops before shown completly -> text was defined as scrollText, which makes "black"-boxes arround the text
  • one rotary removed
  • 4 more Buttons via GPIO (needs some fine tuning)
  • MediaInformationScreen (volumio.local/api/v1/collectionstats)

Demo Video from nightly-build (05.03.2020):

Video-Sample

"Screenshots":

Standby-Screen Now-Playing-Screen Playlist-Menu Queue-Menu Media-Library-Info

Why is the first part of the display empty?

The cutout in the front of the device is smaller as the ssd1322 display -> so the display actually don't use the first 42 pixels.

hifi-tuner case

But you want it on the whole Display?

Simply change the value's from "42" to "0" (self.text1Pos = (42, 2))... that's it! (Tutorials/Guides will follow...)

Check the logs

for the stable build

sudo journalctl -fu oledui.service

for the nightly build:

sudo journalctl -fu oledui-nightly.service

About

Physical user interface for Volumio music player: 256x64 OLED display + 1x rotary encoder + 4 Buttons

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.1%
  • Shell 0.9%