512k internal and another 8MB of (much slower) PSRAM
PSRAM is plenty fast for most things. Just sayinâŚ
I did a research prompt in a few models, and they converge on this: roon-knob/docs/decision_records/002-bridge-architecture-rationale.md at explore/bridgeless-feasibility ¡ muness/roon-knob ¡ GitHub I havenât validated it, fwiw, but any of the 3 make me abort for now.
I think some ESP chips can run micropython, and that might be worth a try.
While I agree adoption could be much higher for folks not tech-inclined, I donât see that as a direct fit for my aims for this project. If there was a market for a $200 device, Iâd look into a Pi Zero-based controller, which I think I could pull off.
Hi @Muness,
I would highly recommend getting your Docker extension available from @Jan_Koudijs Extension Manager, allowing easy deployment for less tech savvy users as well as easy upgrade management.
Good idea! And Iâll be able to move my instance to my rooExtend pi too. ![]()
1.4.1 released. This one is all about battery optimization. There are now options to reduce battery usage when the display is sleeping:
- WiFi Modem Sleep: Power down radio between polls
- CPU Frequency Scaling: Reduce CPU speed 240â80MHz
- Extended Sleep Polling: Longer poll interval when zone is stopped (configurable, default 60s)
All features are disabled by default until proven stable. Please let me know if you have issues when you enable them.
I have a 380mAh battery in mine (while I wait for the 102035 3.7V 1000mAh from AliExpress) so it has atrocious battery life.
I see some very old PRs with no comments, so not sure if thatâs enough or if I need to do something else.
Thanks for exploring this. That analysis was a good read. It would sure be nice to just deploy a knob but that doesnât seem to be in the cards.
Might also be worth a chat with Harry about RoPieee.
Just a feedback regarding rotation: after rotating the device, the swipe-up gesture to access Art Mode doesnât adapt to the new orientation and instead becomes a swipe-down gesture. Nothing I canât work around, just a minor inconsistency I noticed.
Regarding Always On mode: Ropieee turns off the display when the current zone isnât playing anything. That behavior might be a worthwhile addition to the Always On option. That said, powering the device off entirely is of course another possible solution.
By the way, I set up a hotspot and reverse proxy on my work laptop so I can use the knob at the office via vpn. Never thought Iâd say this, but Iâm actually a little hyped to get back to work after the winter vacation to try the knob there ![]()
Great catch! Iâll create a github issue and pick it up, probably over the holidays.
Ah! That would make sense as a positive signal that nothing is playing.
Love it!! Can you share a bit about your setup? You use laptop + DAC over VPN as a Roon playback node?
How so? Including the bridge in that distro as an option?
@Muness,
I was able to get it up-and-running. Thank you so much for this nice control.
I installed the Docker on a Raspberry Pi. I noticed one problem in the procedure for the Rapsberry Pi implementation as Docker on RaspiOS Lite. I was namely not able to do the command âsudo usermod -aG docker $USERâ after I installed docker. After a long time of searching, I discovered I first have to do âsudo raspi-confâ â â 1 System Configâ â âS1 Wireless LAN (Enter SSID and passphrase)â, and select my country. Even if I was not connecting the Raspberry Pi to my WiFi, the country has to be filled in, otherwise the command âsudoâ is not accepted. This is just an info, as this has nothing to do with Docker or your app.
Kind regards, Frank.
@Muness,
I have a question of the display of the âWaveshare ESP32-S3 Knobâ.
There are two circles on the display, the outer ticker circle is clearly the volume. But what is the function of the inner thinner circle? This Is not clear to me. I thought it was the progression of the song, but that doesnât seem to be the case.
And than a request. The volume is indicated in dB. But my amp is using simply a number from 0 (silence) to 96 (which is 0dB). It is very strange that, when I am increasing the volume, I see the amount of dB increasing. Is it possible to simply remove the indication âdBâ, and just present the quantity? Ex. â40â instead of â40dBâ. This could be a configurable setting of course.
And than a next request/improvement. On my network mDNS seems not to work. So I have to put it manually. But that is something which is not that easy, especially when you have already set the IP-address of the Docker in the Waveshare ESP-32-S3 Knob. Isnât it possible to add it into the settings of the knob, so that it is easier to check and/or modify the IP-address of the Docker?
Kind regards and thank you for the hard work, Frank.
It is supposed to be track progress, yes! I will investigate to see why itâs not updating.
I thought Roon supports both % and dB. Will see what the API reports and see if an option makes sense.
Did you get the "Update Bridge at:⌠" message on the knob when it failed to reach it? Or was that still unclear?
Also: Ideas as how to make it a setting? gTunes had suggested (in DM) assuming the same subnet (the first 3 octets) and a way to set the IP. That seem reasonable?
I am trying to do this first time setup simply without adding too many options that will likely only ever be used once.
At work, I connect my smartphone to my home network via VPN and listen to music through my Sennheiser bluetooth earbuds. At the same time, I connect my work laptop to my home network over VPN as well and use the Roon desktop app to browse my library and manage the playback queue.
To integrate the knob into this setup, I host a hotspot for it at my work laptop. For now, I didnât want to spend too much time tinkering with routing, so I simply run a reverse proxy on my work laptop that forwards the bridge into the knobâs hotspot network. This way, I donât have to expose much of my home network to the outside world, which makes me feel a bit more comfortable.
Seems perfect to me.
I understand that. No problem. But if mDNS is not working, than first time users will hva it much harder to implement it.
I was fighting to get everything up-and-running, so at that moment I didnât have a clue how to read messages. Sorry for that.