Ready-to-open, ready-to-flash Arduino projects for the tinyCore (ESP32-S3) and the tinyHAT expansion boards, from MR.INDUSTRIES.
Every project is generated from the code published on tinyDocs and compiled here, so the code in the tutorial, the project you open in the IDE, and the binary you flash are all the same bytes. The docs page is the source of truth; this repo is its machine-readable mirror.
- Flash it — the green Flash tinyCore button on any tinyDocs code block writes the prebuilt image over Web Serial. No IDE, no tinyStudio, no tinyService, nothing to install.
- Edit it — the green pencil Edit in tinyStudio button opens the same sketch in tinyStudio.
- Browse it — the Examples tab in tinyStudio lists everything in
examples.json, grouped by category. Desktop can download the whole set to Documents/tinyStudio Examples.
Direct URLs work too: https://app.tinystudio.cc/<owner>/<repo>/<path>, e.g.
…/tinyStudio-examples/basics/blink-basic
basics/<name>/<name>.ino tinyCore fundamentals — LEDs, buttons, sensors, SD, WiFi, BLE
basics/<name>/README.md the tutorial text that goes with the sketch
basics/<name>/visual.js optional p5 sketch (Visual view), with diagram.json (Circuit view)
advanced/<name>/… peripheral-level reference sketches — ADC, DAC, PWM
firmware/<cat>/<name>/ prebuilt firmware.bin + manifest.json for browser flashing
examples.json the manifest tinyStudio reads
examples.pending.json entries waiting on a HAT repo push
_hat-updates/ docs-current copies of the tinyHAT sketches
tools/ the generators that build this repo from tinyDocs
docs/PIPELINE.md how sources are generated
docs/FIRMWARE.md how firmware is built and served
Each project is a standard Arduino sketch folder — folder name matches the
.ino name — so it opens in tinyStudio, the Arduino IDE, or arduino-cli with
no conversion.
HAT examples are not copied here. Each HAT repo already uses the layout
tinyStudio loads, so examples.json points straight at it:
| HAT | Repo | Linked examples |
|---|---|---|
| tinySniff | Mister-Industries/tinySniff |
4 |
| tinySpeak | Mister-Industries/tinySpeak |
9 |
Push a HAT sketch to its own repo and everyone gets it, with nothing to re-sync
here. _hat-updates/ exists to make drift between a HAT repo and the docs
visible — see docs/PIPELINE.md. Their firmware is built
here, under firmware/hats/, because that is where the flasher looks.
python3 tools/build-firmware.py # compile everything, ~30s per sketch
python3 tools/build-firmware.py --only blink-basicImages are merged without the ESP32 core's 8 MB flash padding, so a blink build is ~360 KB rather than 8 MB — 23x smaller, and the flash starts immediately. docs/FIRMWARE.md covers the flash layout, how a docs page resolves a firmware URL, and what currently doesn't build.
python3 tools/extract-blocks.py # parse every code block out of tinyDocs
python3 tools/build-examples.py # write basics/ + advanced/ projects
python3 tools/build-manifest.py # link the HATs, write examples.json
python3 tools/inject-docs-links.py # write studioPath + firmwarePath back into the .mdx
python3 tools/verify.py # check the whole thing lines up
python3 tools/build-firmware.py # compile every sketch to a flashable imageEdit the docs page, not the .ino. The generators delete and rewrite the
output tree on every run. Circuit/Visual files added beside a generated sketch,
and the hand-authored basics/qwiic-joystick, are copied back in — see
docs/PIPELINE.md.
| Example | Board | Open |
|---|---|---|
| Alternating Blink Pattern Hint: Try changing the values of the delay() functions to create different speeds. |
tinyCore (ESP32-S3) | open |
| Appending to a File Appending to a File — from the tinyDocs “How to use SD Cards on the tinyCore” guide. |
tinyCore (ESP32-S3) | open |
| Basic beeping code But don't worry - the ESP32's PWM system is actually way more powerful and flexible than the… |
tinyCore (ESP32-S3) | open |
| Basic BLE Server Example Basic BLE Server Example — from the tinyDocs “Bluetooth Low Energy (BLE)” guide. |
tinyCore (ESP32-S3) | open |
| Basic Blink Program Both LEDs on your tinyCore should now be flashing On and Off like the GIF above. |
tinyCore (ESP32-S3) | open |
| Basic button reading You'll see it constantly telling you whether the button is pressed or not. |
tinyCore (ESP32-S3) | open |
| Basic Code: Write and Read a File Basic Code: Write and Read a File — from the tinyDocs “What is an SD Card?” guide. |
tinyCore (ESP32-S3) | open |
| Basic output example Make sure the baud rate dropdown (bottom right) is set to 115200 to match your code. |
tinyCore (ESP32-S3) | open |
| Basic Web Server Basic Web Server — from the tinyDocs “WiFi” guide. |
tinyCore (ESP32-S3) | open |
| Basic WiFi Connection Basic WiFi Connection — from the tinyDocs “WiFi” guide. |
tinyCore (ESP32-S3) | open |
| Code for External LED Code for External LED — from the tinyDocs “How to Control LEDs with the tinyCore” guide. |
tinyCore (ESP32-S3) | open |
| CSV Data Logging CSV Data Logging — from the tinyDocs “How to use SD Cards on the tinyCore” guide. |
tinyCore (ESP32-S3) | open |
| Debugging with timestamps This creates professional-looking debug logs with timestamps, making it easier to understand… |
tinyCore (ESP32-S3) | open |
| Delete and List Files Delete and List Files — from the tinyDocs “How to use SD Cards on the tinyCore” guide. |
tinyCore (ESP32-S3) | open |
| Detecting button events Constantly checking if a button is pressed gets annoying fast. |
tinyCore (ESP32-S3) | open |
| Flash the tinyCore Our IMU example demonstrates how to initialize the IMU and view it’s data graphed out via th… |
tinyCore (ESP32-S3) | open |
| Flash the tinyCore Our IMU example demonstrates how to initialize the IMU and view it’s data graphed out via th… |
tinyCore (ESP32-S3) | open |
| Hello World (Text on Screen!) The tinyCore does all the math in its own memory first, and then blasts the entire finished… |
tinyCore (ESP32-S3) | open |
| Initializing the SD Card Initializing the SD Card — from the tinyDocs “How to use SD Cards on the tinyCore” guide. |
tinyCore (ESP32-S3) | open |
| Interactive buzzer Interactive buzzer — from the tinyDocs “How to Control a Buzzer (Analog Output)” guide. |
tinyCore (ESP32-S3) | open |
| Interactive Physics: The IMU Digital Hourglass Displaying static text is great, but your tinyCore has a built-in 6DOF IMU! |
tinyCore (ESP32-S3) | open |
| Light sensor (photoresistor) An LDR (Light Dependent Resistor) changes its resistance based on how much light hits it. |
tinyCore (ESP32-S3) | open |
| Manual Brightness Control Manual Brightness Control — from the tinyDocs “How to Control LEDs with the tinyCore” guide. |
tinyCore (ESP32-S3) | open |
| Memory and performance monitoring Memory and performance monitoring — from the tinyDocs “How to use the Serial Monitor and Ser… |
tinyCore (ESP32-S3) | open |
| MQTT Client MQTT Client — from the tinyDocs “WiFi” guide. |
tinyCore (ESP32-S3) | open |
| Multiple buttons, multiple behaviors This gives you two different interaction modes: button 1 toggles the LED state permanently,… |
tinyCore (ESP32-S3) | open |
| Multiple sensors at once Multiple sensors at once — from the tinyDocs “How to Read Sensor Values (Analog Input)” guide. |
tinyCore (ESP32-S3) | open |
| Multiple variable plotting This creates four different colored lines on the plotter. |
tinyCore (ESP32-S3) | open |
| On the tinyCore ESP-NOW is built into the ESP32-S3 — no libraries to install, no extra hardware. |
tinyCore (ESP32-S3) | open |
| OTA (Over-the-Air) Updates OTA (Over-the-Air) Updates — from the tinyDocs “WiFi” guide. |
tinyCore (ESP32-S3) | open |
| Play a real song Play a real song — from the tinyDocs “How to Control a Buzzer (Analog Output)” guide. |
tinyCore (ESP32-S3) | open |
| Playing different tones Playing different tones — from the tinyDocs “How to Control a Buzzer (Analog Output)” guide. |
tinyCore (ESP32-S3) | open |
| PWM Control for All Three LEDs PWM Control for All Three LEDs — from the tinyDocs “How to Control LEDs with the tinyCore” g… |
tinyCore (ESP32-S3) | open |
| Qwiic Joystick Read a Qwiic joystick and play Asteroids or Pong with it in the Visual view. |
tinyCore + Qwiic Joystick | open |
| Reading a potentiometer Middle pin of potentiometer → GPIO 1 on tinyCore 3. |
tinyCore (ESP32-S3) | open |
| Reading from a File Reading from a File — from the tinyDocs “How to use SD Cards on the tinyCore” guide. |
tinyCore (ESP32-S3) | open |
| Reading input from Serial Monitor The Serial Monitor isn't just for output - you can send commands to your tinyCore too. |
tinyCore (ESP32-S3) | open |
| Real sensor data visualization This example shows how to plot real sensor data alongside simulated signals. |
tinyCore (ESP32-S3) | open |
| RGB Mood Light Controller RGB Mood Light Controller — from the tinyDocs “Bluetooth Low Energy (BLE)” guide. |
tinyCore (ESP32-S3) | open |
| Single variable plotting You'll see a beautiful sine wave scrolling across the screen in real-time. |
tinyCore (ESP32-S3) | open |
| Smart LED control Cover the sensor to make it "dark" and watch the LED turn on. |
tinyCore (ESP32-S3) | open |
| Smooth Breathing Effect You should see your LEDs fading off and on smoothly, almost like two fireflies! |
tinyCore (ESP32-S3) | open |
| SOS Signal SOS Signal — from the tinyDocs “How to Control LEDs with the tinyCore” guide. |
tinyCore (ESP32-S3) | open |
| The Complete Motion Tracker Code The Complete Motion Tracker Code — from the tinyDocs “Building Your First Project: A Smart M… |
tinyCore (ESP32-S3) | open |
| The I2C Scanner: Your Best Debugging Tool An I2C scanner is a short program that checks every possible address (1–127) and reports whi… |
tinyCore (ESP32-S3) | open |
| Toggle behavior vs direct control This is like a light switch in your house - press once for on, press again for off. |
tinyCore (ESP32-S3) | open |
| Understanding NOT logic The LED should be glowing when you're not touching the button, and turn off the moment you p… |
tinyCore (ESP32-S3) | open |
| Using It in Code The tinyCore reads the LSM6DSOX via I2C using the Adafruit LSM6DS Arduino library. |
tinyCore (ESP32-S3) | open |
| Visualizing with Serial Plotter Reading numbers is okay, but seeing the data as a graph is way cooler. |
tinyCore (ESP32-S3) | open |
| WebSocket Server WebSocket Server — from the tinyDocs “WiFi” guide. |
tinyCore (ESP32-S3) | open |
| Writing to a File Writing to a File — from the tinyDocs “How to use SD Cards on the tinyCore” guide. |
tinyCore (ESP32-S3) | open |
| Example | Board | Open |
|---|---|---|
| Basic Connection Code That IP is what you type into a browser to reach a web server running on the tinyCore. |
tinyCore (ESP32-S3) | open |
| Fade an LED Fade an LED — from the tinyDocs “What is PWM?” guide. |
tinyCore (ESP32-S3) | open |
| MCP4725 (I2C, 12-bit) One output channel, 4,096 voltage steps, dead-simple I2C interface. |
tinyCore (ESP32-S3) | open |
| Play a Tone on a Buzzer The Arduino analogWrite() and tone() functions don't work on ESP32. |
tinyCore (ESP32-S3) | open |
| Reading an Analog Value The ESP32-S3 stores factory calibration data in its eFuse memory, and analogReadMilliVolts()… |
tinyCore (ESP32-S3) | open |
| Example | Board | Open |
|---|---|---|
| tinySniff: Basic Demo Reads all three tinySniff MEMS gas sensors and streams them out as a graph. |
tinyCore + tinySniff HAT | open |
| tinySniff: Google Sheets Logs all three tinySniff gas sensors to a Google Sheet in real time over WiFi. |
tinyCore + tinySniff HAT | open |
| tinySniff: SD Card Logger Logs all three tinySniff MEMS gas sensors to a timestamped CSV file on the SD card. |
tinyCore + tinySniff HAT | open |
| tinySniff: Text Notifications Monitors all three tinySniff gas sensors against configurable thresholds and sends an email… |
tinyCore + tinySniff HAT | open |
| tinySpeak: tinyAIText A text-based AI assistant. |
tinyCore + tinySpeak HAT | open |
| tinySpeak: tinyAIVoice Full Voice Assistant Pipeline. |
tinyCore + tinySpeak HAT | open |
| tinySpeak: tinyAIVoice (ElevenLabs) Premium Voice Assistant Pipeline using ElevenLabs TTS. |
tinyCore + tinySpeak HAT | open |
| tinySpeak: tinyMP3Player Plays MP3 files from the SD card. |
tinyCore + tinySpeak HAT | open |
| tinySpeak: tinyRecorder A standalone voice recorder. |
tinyCore + tinySpeak HAT | open |
| tinySpeak: tinySoundboard A motion-triggered soundboard. |
tinyCore + tinySpeak HAT | open |
| tinySpeak: tinyTheremin A motion-controlled musical instrument. |
tinyCore + tinySpeak HAT | open |
| tinySpeak: tinyWalkieTalkie Push-to-Talk Intercom using ESP-NOW. |
tinyCore + tinySpeak HAT | open |
| tinySpeak: tinyWebSynth Chiptune synthesizer: live piano, 2-track melodic step sequencer, 3-track drum machine (Kick… |
tinyCore + tinySpeak HAT | open |
GPL-3.0, same as tinyStudio. Questions → support@mr.industries or Discord.