How do I disable energy saving / screen blanking functionality?

I am using Zynthian with an external controller, and the problem is that the screen won’t switch on again when I do send CUIA commands. Ideally I would like to switch the screen blanking off, but how ?

The screen should wake on activity so it sounds like a bug that should be reported in the issue tracker.

You can disable power saver in webconf INTERFACE->UI Options by setting “Power Save Delay (minutes):” to zero.

Thanks for the quick response. I will file a bug report.

I have an RBPi4 in my v3 kit. I didn’t even know that it could shut the screen off for power saving and to avoid screen burn-in. Mine never shuts off even when I set the Power Save Delay to a short timeout like 5 minutes.

Update:
It works fine. I didn’t realize that MIDI input would wake the screen and my Korg SQ-64 was sequencing into the Zynthian. When I stopped the sequencer the screen did timeout.

It seems like a useful option for the power save feature to ignore MIDI input. Once I have the Zynthian setup I’d rather the screen stayed off while I’m controlling it externally.

Update 2:
I did run into the black screen bug. The backlight remained on but the screen was blank. I tried rotating the encoders and starting and stopping the SQ-64 but the screen remained blank. I held the selection encoder down for a couple seconds and then pressed it again. The Zynthian powered down as expected but the screen never showed anything during shutdown.

2 Likes

Could you try to touch the screen to see if the zynthian wakes up? I experienced this bug before Xmas holidays (yes, i’m still in kind of Xmas holidays!) I suspect of X11 screen saver “feature”.

Regards,

1 Like

I’ve tried a few times this morning with MIDI and control input and everything is working normally so far, blanking at 5 minutes and turning back on in response to input.

It does not turn the screen back on with touch input even when it’s correctly turning back on in response to MIDI and encoder inputs. Yes, my touch screen works correctly on active Zynthian UI screens.

I will leave it on today with a timeout of 5 minutes and to see if I can duplicate the blank screen in which case I will try touch panel input first to see if it turns the display back on.

Update:
I have awakened my Zynthian this morning using MIDI or encoder input at least 10 times so it appears the locked blank screen problem is not so easy to reproduce. Touch input does not cause wake.

Update 2:
It’s been on all day and I haven’t seen it get stuck in the blank screen mode once. I have turned the sequencer on and off, played and stopped sequences, used the touch screen, etc, etc. Problems like these are always so easy to debug. :roll_eyes:

@jofemodo maybe we need to disable X screensaver which may require some of the following:

xset s off
xset s noblank
xset -dpms

I tended to use these commands during development.

Update 3:
Today the behavior was opposite. I let the SQ-64 loop a sequence for a while. The screen eventually blanked. In this case, stopping and restarting the SQ-64 did NOT wake the screen nor did encoder input, but touch panel input did. I reproduced this multiple times.

I believe this is the “stuck” blank screen behavior I saw the first time when I failed to test touch input.

Strange.

Update 4:
Okay so if the sequencer is allowed to run long enough, the screen shuts down and then only awakes in response to touch input. If the sequencer is stopped for a while until the screen blanks then the screen ignores touch input and will only wake to MIDI or encoder input.

It’s already there:

so perhaps, @Dithered42 , your stable is not updated to the last??

Regards,

I updated successfully 3 days ago so I should be current.

What version of modules? These are shown on the webconf dashboard. You could paste a screenshot.

zyncoder: stable (98c3df2)
zynthian-ui: stable (51fa6e7)
zynthian-sys: stable (e31b706)
zynthian-data: stable (9180393)
zynthian-webconf: stable (4081a95)

After another update just now…

zyncoder: stable (98c3df2)
zynthian-ui: stable (51fa6e7)
zynthian-sys: stable (e31b706)
zynthian-data: stable (9180393)
zynthian-webconf: stable (4081a95)

So it would appear I am fully up to date.

Sorry, I should have posted this info in the first place.

What I thought was changing behavior, was just inadequate testing on my part.

As far as I can tell this is the complete picture of the blanking behavior.

If the sequencer is allowed to run long enough, the screen shuts down eventually (requires longer than the normal timeout) and then only awakes in response to touch input. Even stopping and restarting the sequencer at that point does not wake the screen nor does any encoder input. Only the touch panel works.

If the screen is awake and the sequencer is stopped for a while until the screen blanks then the screen ignores touch input and will only wake to MIDI or encoder input.

Try updating now. I just added a fix. I hope it works!

Will do… done. Now testing.

If the screen is awake and the sequencer is stopped or turned off until the screen blanks then the screen will only wake to MIDI or encoder input. Touch panel input is ignored.

The screen now stays on with continuous MIDI input from the sequencer so it no longer goes into the “stuck” mode where only touch input would wake it.

This is a workable state for me though some users may expect the unit to wake to touch panel input.

@jofemodo we need an activity trigger from the touch interface. We need this to be captured and triggered before any other control and be discarded if waking from power saving, i.e. not to trigger a hidden control. We could probably do this by a global touch capture at the highest GUI level that checks for power save mode and passes the signal down to lower levels if not active. I don’t recall how tkinter handles this but most GUI toolkits allow for this behaviour. (An off-topic note that angers me is that wxWidgets handles its input stack in the opposite direction as its display stack so this is possible but the display of overlapping windows is wrong and they point-blank refuse to fix it. Nothing to do with us but it still annoys me enough to have a little rant!!!)