MakerLab
ESP32Unexpected Maker TinyS3

Unexpected Maker TinyS3: A Compact ESP32 Powerhouse for Makers

The TinyS3 is a feature-rich, ultra-compact development board built around the powerful ESP32-S3 microcontroller, ideal for portable and space-constrained projects.

Unexpected Maker TinyS3

The Unexpected Maker TinyS3 is a small yet mighty development board designed for makers who need a powerful microcontroller in a tiny form factor. It leverages the Espressif ESP32-S3 System-on-Chip (SoC), a popular choice for its robust feature set, including Wi-Fi and Bluetooth connectivity, and a dual-core processor capable of handling complex tasks. This board is particularly well-suited for projects where space is at a premium, such as wearables, compact IoT devices, or portable sensor modules.

At the heart of the TinyS3 is the ESP32-S3, an advanced variant of the ESP32 family. It features two LX7 cores running at up to 240 MHz, an integrated 2.4 GHz Wi-Fi and Bluetooth 5 (LE) radio, and a rich set of peripherals. The S3 also boasts vector instructions for AI acceleration, making it suitable for edge computing applications like voice recognition or simple image processing. Unexpected Maker has thoughtfully integrated this powerful chip onto a board that prioritizes size and ease of use, often including features like USB-C for programming and power.

Compared to other ESP32 boards, the TinyS3 distinguishes itself by its extremely small size, often comparable to a postage stamp. This makes it a go-to option when integrating intelligence into existing products or creating entirely new, miniature electronic devices. Its target audience includes hobbyists, students learning embedded systems, and professional engineers looking for a compact, cost-effective solution for rapid prototyping or even small-scale production runs where board real estate is a critical constraint. The inclusion of USB-C and often a LiPo battery connector further enhances its suitability for portable applications.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCEspressif ESP32-S3FN4R2 (Dual-core LX7)
Architecture32-bit RISC-V
Clock speedUp to 240 MHz
Flash / Storage4 MB (SPI Flash)
RAM / SRAM512 KB SRAM
Operating voltage3.3V
Digital I/O pins14 (exposed GPIOs)
Analog / ADCUp to 20 ADC channels (exposed on some GPIOs)
PWMAvailable on most GPIOs
ConnectivityWi-Fi 802.11 b/g/n (2.4 GHz), Bluetooth 5 (LE)
USBUSB-C (for programming, power, and UART access)
Power inputUSB-C (5V), LiPo battery connector (3.7V)
DimensionsApprox. 18mm x 25.5mm (actual size may vary slightly by revision)

Pinout & pin functions

PinFunction
3V33.3V Power Output
GNDGround
ENEnable (Reset)
USB_D-USB Data -
USB_D+USB Data +
IO0Boot Mode Select (Low during reset to enter bootloader)
IO1GPIO1 (UART TX0)
IO2GPIO2
IO3GPIO3 (UART RX0)
IO4GPIO4
IO5GPIO5
IO6GPIO6
IO7GPIO7
IO8GPIO8
IO9GPIO9
IO10GPIO10
IO11GPIO11
IO12GPIO12
IO13GPIO13
IO14GPIO14 (SPI HD/VSPI MISO)
IO15GPIO15 (SPI HD/VSPI MOSI)
IO16GPIO16 (SPI HD/VSPI SCK)
IO17GPIO17 (SPI HD/VSPI CS)
IO18GPIO18 (I2C SDA)
IO19GPIO19 (I2C SCL)
IO20GPIO20
IO21GPIO21
IO33GPIO33 (ADC1_CH4)
IO34GPIO34 (ADC1_CH6)
IO35GPIO35 (ADC1_CH7)
IO36GPIO36 (ADC1_CH0)
IO37GPIO37 (ADC1_CH1)
IO38GPIO38 (ADC1_CH2)
IO39GPIO39 (ADC1_CH3)

Wiring & circuit basics

Powering the TinyS3 is straightforward due to its USB-C connector, which accepts a standard 5V supply. This connection also provides power for the onboard 3.3V regulator. If powering via a LiPo battery, connect it to the dedicated JST connector; the board typically includes a charging circuit. Always ensure your power source can supply sufficient current, at least 500mA for USB, and ideally 1A or more for stable operation, especially when using Wi-Fi. The TinyS3 operates at a logic level of 3.3V, meaning all GPIO pins are 3.3V tolerant. Connecting 5V devices directly to GPIOs can damage the microcontroller; use level shifters if necessary.

For a simple LED project, connect an LED's anode (longer leg) to a digital GPIO pin (e.g., GPIO2) and the cathode (shorter leg) to a current-limiting resistor (typically 220-330 ohms for standard LEDs). The other end of the resistor connects to a GND pin. This setup allows the microcontroller to control the flow of current to the LED. When the GPIO pin is HIGH (3.3V), current flows, and the LED lights up; when LOW (0V), the LED turns off.

When connecting I2C devices, like many sensors, use the dedicated I2C pins. For the TinyS3, these are typically GPIO18 for SDA (Serial Data) and GPIO19 for SCL (Serial Clock). Ensure the I2C device is also powered by 3.3V from the TinyS3's 3V3 pin. Some I2C devices may require pull-up resistors on both SDA and SCL lines; check the sensor's datasheet. The ESP32-S3 has internal pull-ups that can often be enabled in software, but external resistors (e.g., 4.7k Ohm) might be needed for reliable communication, especially with multiple devices or longer wires.

Programming & getting started

The Unexpected Maker TinyS3 is highly versatile in its programming options. The most common and beginner-friendly approach is using the Arduino IDE with the ESP32 Arduino Core installed. This allows you to write C++ code using familiar Arduino functions. For Python enthusiasts, MicroPython or CircuitPython are excellent choices, offering a more dynamic development experience. Advanced users can leverage Espressif's ESP-IDF (Espressif IoT Development Framework) for maximum control and performance, or use PlatformIO, an integrated development environment that supports multiple frameworks including Arduino, ESP-IDF, and MicroPython.

To upload your first sketch (e.g., a Blink sketch) using the Arduino IDE: 1. Install the ESP32 board support package via the Board Manager. 2. Select the correct board (usually 'ESP32-S3 Dev Module' or similar, though specific TinyS3 support might be available via a custom URL). 3. Connect the TinyS3 to your computer via USB-C. 4. Select the correct COM port. 5. Hold down the BOOT button (if present, or use IO0) while clicking the RESET button (or briefly shorting EN to GND), then release BOOT when the IDE indicates it's trying to connect to the port. 6. Upload the sketch. For MicroPython/CircuitPython, you'll typically flash a firmware image first using tools like `esptool.py` or Thonny IDE, then upload code via the REPL.

Project ideas

Ultra-Compact Weather StationMonitor temperature, humidity, and pressure using an I2C sensor (e.g., BME280) connected to GPIO18/19. The TinyS3 can then transmit data wirelessly via Wi-Fi to a web server or cloud platform, teaching data acquisition, sensor interfacing, and wireless communication.
Wearable Bluetooth Heart Rate MonitorIntegrate a pulse sensor and transmit readings over Bluetooth Low Energy (BLE) to a smartphone app. This project utilizes the ESP32-S3's BLE capabilities and GPIOs for sensor input, demonstrating low-power wireless communication and real-time data streaming.
Tiny Voice AssistantUtilize the ESP32-S3's AI acceleration features for basic keyword spotting or voice command recognition. Connect a small microphone and process audio locally, controlling an LED or other output. This project explores edge AI and audio processing on microcontrollers.
Portable USB-to-Serial AdapterConfigure the TinyS3 to act as a USB-to-UART bridge, allowing communication between a PC and other serial devices. This leverages the board's native USB-serial capabilities and requires minimal external components, teaching about serial protocols and USB enumeration.
ESP32-S3 Powered Handheld Game ConsoleCombine the TinyS3 with a small TFT display (SPI interface) and tactile buttons connected to GPIOs. Develop a simple game using MicroPython or Arduino, learning about graphics, input handling, and embedded game development in a compact form factor.
Smart IoT Light ControllerUse the TinyS3 to control a relay or MOSFET for a mains-powered light. Connect it to Wi-Fi to enable remote on/off control via a web interface or mobile app, teaching about IoT integration, web servers on microcontrollers, and safe high-voltage handling practices (with appropriate precautions).

Buying tips & gotchas

When purchasing the TinyS3, be aware that 'TinyS3' can sometimes refer to slightly different board revisions or kits from Unexpected Maker, so check the specific product listing for details like included accessories (e.g., battery, headers). Due to its small size, it might lack onboard voltage regulators or battery charging circuits on the absolute smallest variants; ensure your chosen model meets your power needs. Common pitfalls include accidentally connecting 5V logic to the 3.3V GPIOs, insufficient power supply current (especially during Wi-Fi transmission), and incorrect boot mode selection when flashing firmware. Consider investing in a small breadboard or perfboard adapter for easier prototyping, as the tiny form factor can be challenging to work with directly. Always check the pinout diagram for the specific revision you purchase, as minor changes can occur.