Test an accessible OLED menu
Change contrast, text size, sound, and brightness in an ESP32 menu and compare each stored setting with its visible or audible effect.

UX Uma: I want you to test what each preference actually changes and record where the visible result falls short of its label.
Predict the reading, then compare it with the measurement.
Wokwi ESP32
Third party ToolChange contrast, text size, sound, and brightness in an ESP32 menu and compare each stored setting with its visible or audible effect.
Open the ESP32 editor, paste diagram.json, then paste sketch.ino.
Open Wokwi to paste in the files (new tab)Get the files
Use both prepared files. This is a paste-in setup; saving a project requires a Wokwi account.
sketch.ino
- Use the launch button above to open the ESP32 editor in Wokwi.
- Select the editor’s diagram.json tab and replace all its text with the supplied diagram.json.
- Select the sketch.ino tab, replace all its text with the supplied sketch.ino, then click Start Simulation.
Steps
Step 1
- Do
- Paste the diagram and sketch into Wokwi ESP32. Install Adafruit GFX Library and Adafruit SSD1306. Inspect the OLED and button wiring.
- You will see
- The OLED uses address 0x3C on GPIO 21/22; four active-low buttons use GPIO 25/26/27/14 and the buzzer uses GPIO 13.
- Why it matters
- A usable interface depends on consistent input and feedback paths, as well as its visual arrangement.

Step 1 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 2
- Do
- Start at 115200 baud, read the startup settings, and tap SELECT to open the main menu.
- You will see
- Fresh settings are High Contrast OFF, Large Text OFF, Sound ON, Brightness 100%. Main menu entries are Home, Settings, and System Info.
- Why it matters
- Explicit initial state makes later changes testable. Saved NVS preferences may produce different startup values.

Step 2 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 3
- Do
- Tap DOWN once to Settings and SELECT. With High Contrast selected, tap SELECT again.
- You will see
- Serial prints Settings saved to NVS and High Contrast: ON from a fresh baseline; the display reverses its light and dark areas.
- Why it matters
- The host prioritizes important status that users can find and interpret. A contrast preference should have an observable display effect.

Step 3 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 4
- Do
- Tap DOWN to Large Text and SELECT, then use BACK to inspect the main menu.
- You will see
- Serial reports Large Text: ON and the main menu uses larger text. The accessibility settings list itself remains small and can look crowded.
- Why it matters
- Test every relevant screen rather than accepting a preference flag as proof of readable layout.

Step 4 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 5
- Do
- Return to Settings, navigate to Sound, and toggle it OFF; then navigate once.
- You will see
- Serial reports Sound: OFF; subsequent navigation is silent while the display and status LED still provide feedback.
- Why it matters
- The host’s alert-fatigue principle applies to feedback too: sound should be controllable without removing all indication of state.

Step 5 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 6
- Do
- Select Brightness repeatedly and compare the printed values with the display.
- You will see
- Starting at 100%, values cycle through 25%, 50%, 75%, and 100%. Only 25% uses the dim mode; the source does not implement four proportional intensity levels.
- Why it matters
- A numeric label can imply more precision than the device implements. Compare the setting’s meaning with actual behavior.

Step 6 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab) Step 7
- Do
- Restore High Contrast OFF, Large Text OFF, Sound ON, and Brightness 100%; return to the home screen.
- You will see
- Serial confirms each restored value and NVS saves. The home screen returns to its small-text baseline with navigation sound enabled.
- Why it matters
- Restoring a known baseline makes the next usability comparison repeatable. Persistent preference writes alone do not establish cross-session simulator storage behavior.

Step 7 · Wokwi ESP32; numbered callout added to a real capture. Enlarge screenshot (new tab)
Chapter checks
These questions refer to the chapter’s examples. Use the return links to review their answers.
You're designing a dashboard for a factory floor monitoring system. The operator needs to see: (1) machine status (running/stopped/error), (2) production count, (3) temperature readings, and (4) 7-day production trends. Where should you place the machine status indicator?
Return to the chapter’s knowledge checkA smart building dashboard monitors HVAC systems. Temperature thresholds are set to: Normal (18-24 C), Warning (15-18 or 24-28 C), Critical (<15 or >28 C). During testing, operators complain about 'alert fatigue' - too many warnings. Analysis shows 85% of warnings occur briefly during HVAC startup. What's the BEST solution?
Return to the chapter’s knowledge check