Pinouts
ESP32
The star of the Yoto Players, and the entire reason why this project was attempted, is the ESP32. This classic microcontroller with WiFi is supported in so many programming languages, including CircuitPython. This particular module has 8 MB of flash.
The pinout diagram shows the GPIO number and the pin name in CircuitPython (if applicable).
The TCAL6416 IO expander is used over I2C on address 0x20. Now I2C IO expanders can be accessed natively in CircuitPython with i2cioexpander . This means that all of the peripherals connected via the IO expander can be used in CircuitPython as DigitalInOut objects.
The following peripherals are attached to the IO expander:
- Display DC (
board.DISPLAY_DC) - Display CS (
board.DISPLAY_CS) - Display reset (
board.DISPLAY_RESET) - I2S DAC headphone detection (
board.HEADPHONE_DETECT) - Rotary encoder switches (
board.ENC1_BUTTONandboard.ENC2_BUTTON) - Charge and plug status for the battery monitor (
board.CHARGE_STATUSandboard.PLUG_STATUS) - Power button [also connected directly to the battery monitor chip, more details further down on this page] (
board.POWER_BUTTON) -
board.PACTRL- related to the speaker amplifierÂ
RFID/NFC Reader
The Yoto Mini uses the CR95HF RFID reader to read its cards. It is connected via UART on IO32 (NFC_IN/RX) and IO33 (NFC_OUT/TX). Datasheet.
RTC
The real time clock is a PCF8563 RTC module. It is connected via I2C on address 0x51. Datasheet.
Speaker Amplifier
The AW88194 amplifier is connected between the I2S DAC and the speaker output. Unfortunately the proper init sequence has alluded us, so speaker output in CircuitPython is not working yet. It is connected over I2C on address 0x64 and its datasheet is available.
Of all the components, this was the trickiest one to figure out. I assumed this was a radio module based on search results from the chip markings and the fact that it was a castellated pads module. While tracing the speaker pads, the module had continuity with it and an aw881xx was mentioned in 3rd party licenses on the Yoto site and in the .ELF file dump from the stock firmware. When you search for that though, nothing really comes up and the Awinic website is unreachable. Finally, I tried searching for Awinic parts on LCSC and got a hit. The final confirmation came by noting that the chip markings on the LCSC listing matched the markings on the module.
I2S DAC
The ES8156 I2S DAC handles the audio output to the headphone jack and the speaker amplifier. It is configurable over I2C on address 0x08. Datasheet.
Battery Charger
The SGM41513 battery charger is available over I2C on address 0x1A. The power button is connected directly to it on the nQON pin. When you press the button, the BATFET is enabled over hardware and powers up the device. Datasheet.
Page last edited February 05, 2026
Text editor powered by tinymce.