Skip to content

Repository files navigation

tinyStudio Examples

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.

Three ways in

  1. 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.
  2. Edit it — the green pencil Edit in tinyStudio button opens the same sketch in tinyStudio.
  3. 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

Layout

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.

The tinyHATs stay in their own repos

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.

Prebuilt firmware

python3 tools/build-firmware.py          # compile everything, ~30s per sketch
python3 tools/build-firmware.py --only blink-basic

Images 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.

Regenerating

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 image

Edit 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.


The collection

Basics (51)

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

Advanced (5)

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

tinyHATs (13 — sources linked from the HAT repos, firmware built here)

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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages