Trouble storing continuous VAS (EVA) ratings during thermal stimulation in PsychoPy

Hey guys!

I’m working on a PsychoPy experiment with a thermal stimulator (thermode) and I’m really stuck with storing a continuous VAS (EVA) rating properly. I’d really appreciate some help or advice.

My protocol is the following:

  • PsychoPy controls a thermode

  • Baseline temperature (32°C)

  • Ramp up at 3°C/s

  • Reach target temperature (pain or control)

  • Plateau at target temperature for 30 seconds

  • Ramp down at 8°C/s

  • Baseline for 30 seconds

  • Repeat with different temperatures

  • Stimulations are pain vs control, presented in a pseudo-random order

VAS / EVA details:

  • Horizontal VAS from 0 to 100

  • Cursor starts at 50

  • Participant moves the cursor with left/right arrow keys

  • Each key press should move the cursor by 5 points

  • The participant can change their rating at any time during the 30 s plateau

  • The VAS is displayed ONLY during the plateau phase (not during ramp-up or ramp-down)

What I want to store:

  • Condition (pain vs control)

  • Target temperature

  • Continuous VAS ratings during the 30 s plateau
    (ideally 1 value per second, so 30 values per trial)

What I currently have:

  • The thermode triggering works

  • The VAS displays correctly during the plateau

  • The cursor moves correctly by steps of 5 using arrow keys

The problem: I cannot reliably store the VAS continuously during the plateau.

At this point I’m honestly exhausted and I’m probably missing something simple.
If anyone has:

  • a clean example of storing continuous VAS ratings in PsychoPy, or

  • advice on the best practice for logging 1 Hz VAS data during a fixed-duration plateau,

I would be extremely grateful.

Thanks a lot in advance!