Inspired by: https://github.com/diehardsk/Volumio-OledUI
luma.oled is not compatible with python 2.7 anymore. migrated to python 3.5.2 -> Maschine2501/NR1-UI
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...
-
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.
- 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!!!)
- 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)
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.
Simply change the value's from "42" to "0" (self.text1Pos = (42, 2))... that's it! (Tutorials/Guides will follow...)
sudo journalctl -fu oledui.service
sudo journalctl -fu oledui-nightly.service