Tinytosh

Meet Tinytosh: The ultimate open-source desktop companion that brings your workspace to life. Whether functioning as a standalone smart display or a real-time PC hardware monitor, it delivers critical data at a glance. Best of all, it relies on 100% free public APIs — no API keys, no accounts, and no authorization required.

Available Screens & Services

  • 🕒 Internet Clock: Auto-syncs time and date based on your location.
  • 📅 Calendar: Displays the current date, monthly grid, and national holidays.
  • đŸŒ¤ī¸ Weather Station: Live Temperature, Humidity, and Forecasts (via Open-Meteo).
  • 🍃 Air Quality: Monitor local AQI levels (US & EU Standards).
  • â˜€ī¸ Daylight Info: Tracks sunrise, sunset, solar noon, and day length.
  • 🌑 Moon Info: Tracks the current lunar phase, illumination, and moonrise/moonset times.
  • đŸ›°ī¸ ISS Tracker: Follow the International Space Station live on a world map with its orbit path, or as a minimalistic text dashboard.
  • đŸ›Šī¸ Flight Radar: Track nearby aircraft by callsign, altitude, speed, and route, either as a live multi-aircraft radar or a single closest-aircraft dashboard.
  • 🌍 Population Info: A live, second-by-second population ticker for the world and your country.
  • 📊 Stock Tracker: Track market data for up to 5 global assets and ETFs at once.
  • 📈 Crypto Tracker: Track up to 5 top global cryptos with price and trend indicators.
  • 💱 Currency Tracker: Track exchange rates for up to 5 fiat currency pairs with custom multipliers.
  • đŸ–Ĩī¸ PC Hardware Monitor: Connects via USB or Wirelessly to your computer to show CPU Load, RAM, and Network Speeds!
  • đŸŽĩ PC Media: Displays currently playing track, artist, album, and playback status from your connected computer.
  • đŸ–¨ī¸ Bambu 3D Printer: Local network telemetry for your Bambu Lab printer (progress, temperatures, fans, and print status).
đŸ•šī¸ Not ready to build one yet?
Try Tinytosh right in your browser first — no wiring, no printing, no assembly. Tinytosh Simulator Screenshot âš ī¸ Preview only: the simulator runs on mock data. There's no Wi-Fi, no location, no live APIs, no settings panel, and no PC connection — every value you see is hardcoded. It's a separate demo build, so don't flash it onto a real device: use the Web Installer below to get the complete firmware. â–ļī¸ Try the Simulator

Step 1: Hardware & Wiring

Components Required

  • ESP32-C3 SuperMini (Microcontroller)
  • 0.96" OLED Display (I2C 128x64)
  • Silicone Wires (30AWG recommended) or Jumper Wires
  • TTP223 Touch Sensor or a momentary Switch/Button (Optional, for navigation)
ESP32-C3 SuperMini
ESP32-C3 SuperMini
Find Online
0.96 OLED
0.96" OLED I2C
Find Online
Wires
Silicone Wires
Find Online
TTP223
TTP223 (Optional)
Find Online

Wiring Notes:

  • For a Basic Setup (Screen only), standard female-female jumper wires work perfectly. Soldering is optional but recommended for a cleaner, more durable build.
  • For the Full Setup (Screen + Button), soldering is required to share the limited power pins and ensure a reliable connection.
Tinytosh Wiring Diagram
Component Pin Name ESP32 Connection Notes
OLED Display VCC 3.3V or 5V Power
GND G (GND) Ground
SCL GPIO 9 I2C Clock (Can be reassigned in Web Panel)
SDA GPIO 8 I2C Data (Can be reassigned in Web Panel)
Button (Optional) VCC 3.3V Do not use 5V for button
I/O (SIG) GPIO 10 Input Signal (Can be reassigned in Web Panel)
GND G (GND) Use Y-splitter or solder to share ground

đŸ› ī¸ Assembly in 5 Steps

The 3D-printed case is designed for a tool-free, screwless assembly:

  1. Print the Case: It consists of two parts (Main Body & Cover) designed with precise rails for a secure snap-fit.
  2. Prepare Hardware: Solder or wire your components according to the table above.
  3. Slide in Display: Insert the OLED into the dedicated guide slot from the top. Internal stoppers ensure it sits perfectly level at the bottom.
  4. Insert Electronics: Place the microcontroller inside the case.
    Touch Button Tip: If installed, position the sensor against the top of the case. If your wires are rigid, it will naturally rest against the roof; otherwise, use a drop of glue or a piece of tape to secure it.
    Design Note: The ESP32 floats freely inside the case without a tight mount. This is done deliberately to provide ample space for you to add extra sensors, batteries, or peripherals for your own projects. Despite this, the board hardly moves once the case is closed, ensuring no issues when inserting the USB cable.
    Align the Cover with the rails on the Main Body and snap it shut.
  5. Connect: Plug a USB-C cable into the port cutout on the back.
    Troubleshooting: If the device constantly connects and disconnects (boot loop) when plugged in, unplug it, hold the button labeled BOOT on the board, plug it back in while holding, and wait 2 seconds before releasing. This forces "Download Mode" so you can flash it.
đŸ–¨ī¸ 3D Printed Case

You can download the STL/3MF files for the case on MakerWorld. Includes a ready-to-print profile with optimized settings.

Download STL/3MF
📸 Assembly Images
3D Printed Case Parts
1. The 3D printed case parts
Snap Fit Mechanism
2. Case parts designed for snap-fit
Wiring with Jumpers
3. Option A: Wired with jumpers
Soldered Wiring
4. Option B: Soldered connection with button
Fitting Jumpers
5. Installing components (Jumpers)
Fitting Soldered
6. Installing components (Soldered + Button)
Final Result Front
7. Final Result
Back View USB
8. Rear view with USB-C connected

Step 2: Flash Firmware

Web Installer

The easiest way to get started. Connect your ESP32-C3 to your computer via USB and click the button below. Note: Requires a Chromium-based browser (Chrome, Edge, Opera).


Manual Installation

If the web installer doesn't work for you, or if you prefer to customize the firmware using Arduino IDE or PlatformIO, you can download the source code directly.

âš ī¸ Compilation Requirement
The source code requires specific external libraries (WiFiManager, ArduinoJson, Adafruit SSD1306, Adafruit GFX Library, OneButton, PubSubClient) to compile successfully.
Please ensure you install all dependencies listed in the "Build & Compile Guide" section of the GitHub README.
đŸ“Ļ Source Code
Get the latest code from the GitHub repository.
★ Download on GitHub

Step 3: Initial WiFi Setup

  1. Connect to Device: On your Phone or PC, search for the WiFi network named Tinytosh and connect.
    🔑 Password: Tinytosh
  2. Configure Credentials: A "Captive Portal" page should open automatically.
    (If it doesn't open, type 192.168.4.1 into your browser).
    Click the Configure WiFi button, select your home network, and enter your password.
  3. Catch the IP & Name: The device will attempt to connect. Watch the OLED screen closely!
    Upon success, it will display "Connected!" followed by its IP Address (e.g., 192.168.0.100) and its unique Device Name (e.g., tinytosh-ab12).
    âš ī¸ Note: This screen is displayed for only 3 seconds. If you miss it, simply unplug and replug the device to see it again.
  4. Access Panel: Connect your Phone/PC back to your Home WiFi (the same one Tinytosh is on). Type the IP address OR the unique local address (e.g., http://tinytosh-ab12.local) into your browser to open the Web Panel.
📸 Connection Walkthrough
OLED showing AP Mode
1. Screen shows "Not Connected"
WiFi Settings on Phone
2. Connect to "Tinytosh" Network
WiFi Manager Portal
3. Click "Configure WiFi"
Entering Credentials
4. Enter Home WiFi Details
OLED showing IP
5. Success! Note the IP Address & Name
Web Panel Open
6. Open Local Name or IP in Browser

Step 4: Web Panel Configuration

Access the Web Panel by entering the device's IP address (or .local name) into your browser. Configure your device using the sections below:

✨ Core Concept: Modular Dashboard

Tinytosh is designed to be fully customizable, powerful, and incredibly smooth.

Modular Dashboard & Drag & Drop

How it works: Each section in the Web Panel has a main Enable Checkbox.
â€ĸ Uncheck it: The screen is completely removed from the rotation and the settings collapse.
â€ĸ Check it: The settings expand, and the screen is added to the cycle.

Example: Disable everything except "PC Monitor" to turn Tinytosh into a dedicated hardware tracker, or enable everything for a complete smart hub.

Drag & Drop Reordering

Take full control of your device's flow using the Screen Display Order panel.

Every screen (Time, Weather, PC, etc.) acts as a standalone module. Uncheck a screen to remove it from your device completely. Grab the ☰ handle on the Screen Display Order panel to drag and drop your active screens into any sequence you like!

đŸŽĨ Interface Demo
Web Panel Interaction Demo
🔌 Hardware Setup

Customize your pinout without touching the code!

  • Custom I2C Pins: Assign the SDA and SCL pins to match your specific ESP32 board version or custom PCB.
  • Button Type & Pin: Choose whether you wired a Touch Sensor or a physical Switch, and assign the GPIO pin used for it.
  • Safety Net: The firmware automatically validates pin assignments to prevent accidental short-circuits.
âš™ī¸ Global Settings
🎨 OLED Theme Engine

Tinytosh uses an advanced procedural design system for its Web and PC UI. You only need to pick 4 base colors:

  • App Background: The absolute darkest canvas layer.
  • Surface / Panels: The elevated card layer.
  • Primary Accent: Used exclusively for active buttons, data highlights, and glowing shadows.
  • Main Text: Your standard reading color.

The Web Panel and PC App automatically calculate all hover states, borders, and muted text tones to maintain a perfect, consistent UI based on those 4 colors.

📸 Theme Examples
Theme Example 1
Theme Example 2
Theme Example 3
Visual Effects

Customize how the device transitions between different screens:

  • Active Animations: Select exactly which effects you want to enable (Slide, Dissolve, Curtain, Blinds). If multiple are checked, the device will randomly cycle through your specific selection.
  • Time Format: Toggle between 12-hour (AM/PM) and 24-hour clock formats for both the device and web panel.
đŸŽĨ Animation Demo
Screen Transitions Demo
Control Logic
  • Switch Screens Automatically: If checked, screens rotate automatically. If unchecked, the screen stays static until you press the hardware button.
  • Screen Cycle Interval: Time (in seconds) each screen stays visible before rotating.
  • Data Sync Interval: Frequency (in minutes) of data fetches for Weather, Air Quality, Crypto, Stocks, and Currencies. Need one screen to refresh faster (or slower) than the rest? Each of these screens also has its own optional Custom Sync Interval override, right in its settings section.
🌙 Night Mode & Power Saving

Set a quiet schedule to minimize sleep distractions and conserve API quotas.

  • Action Modes: Choose what happens during the scheduled hours: No Visual Change, Dim Display (minimum hardware contrast), Turn Display Off (completely black), or Dim then Turn Off (gradually steps down).
  • Dim Start Time: If you select "Dim then Turn Off," an extra time picker will appear. This lets you set exactly when the screen dims before fully turning off later in the night.
  • Smart Latching: Night Mode won't interrupt your reading. It waits patiently until the rotation naturally lands on your first (primary) screen before applying the dark settings and pausing the screen cycle.
  • Background Optimization: Background data fetches (Weather, Crypto, etc.) automatically slow down 10x during Night Mode to save power.
  • Temporary Wake: If the screen is Off, pressing the physical button will temporarily wake the device at minimum brightness for 30 seconds so you can check the time in the dark!
Location & Timezone

Tinytosh uses these settings to provide accurate Clock, Weather, Air Quality, and Holiday data.

  • Auto-Detect: Uses your IP address to automatically determine location, country, and timezone.
  • Manual Entry: Override with specific City names, Latitude/Longitude coordinates, precise Country selection, and native Timezones.
Source: ip-api.com
👆 Button Controls

Whether you wired the TTP223 touch sensor or a physical switch (just set the matching Button Type in Hardware Setup), you can control Tinytosh directly:

  • Single Tap: Instantly skips to the next active screen in your rotation. If the display was turned off by Night Mode, this temporarily wakes it up.
  • Double Tap: Jumps back to the previous active screen, so you can navigate your rotation in either direction.
  • Long Press (Hold): Locks or unlocks the current screen. Disables the auto-cycle rotation so you can keep a specific screen visible as long as you want.
🕒 Simple Clock
Function

Displays the current time and date, automatically synchronized via the internet based on your local timezone.

Settings

While location and timezone are managed in Global Settings, this screen offers specific customization:

  • Date Toggle: Choose to display the full date or hide it for a cleaner look.
Layout

Standard: A balanced view showing time at the top (Size 3) and the date/day below.
Minimalist: If the date is disabled, the clock switches to Jumbo Mode (Size 4), perfectly centered on both axes for maximum readability.

📸 Screen Preview
Clock Layout Render
Layout Render
Clock Real Photo
Real Photo
📅 Calendar & Holidays
Function

Displays the current date alongside a full monthly grid and tracks national public holidays based on your country.

Settings
  • Start Week On: Choose whether the calendar grid starts on Monday or Sunday.
  • National Holidays: Toggle the display of public holidays. When a holiday occurs, it replaces the weekday text and highlights the day on the grid.
  • Minimalistic Mode: Hides the monthly grid entirely and beautifully centers the current day, month, and year on the screen.
Layout

Standard: Left side displays a large day, current month, year, and weekday/holiday name. Right side displays a full month calendar with the current day boxed and holidays inverted.
Minimalist: The grid is hidden, and the date column expands to fill the screen for a clean, highly readable layout.

Source: date.nager.at (Public Holidays)
📸 Screen Preview
Calendar Layout Render
Layout Render
Calendar Real Photo
Real Photo
đŸŒ¤ī¸ Weather Station
Function

Fetches and displays real-time weather conditions and daily forecasts based on your location.

Settings
  • Temperature Unit: Toggle between Celsius (°C) and Fahrenheit (°F).
  • Round Values: Choose between rounded integers (22°) or precise decimals (21.8°).
  • Layout: "With Header" keeps the City/Time bar and up to 3 extra values. "No Header" drops the bar for a bigger centered temperature and up to 6 extra values.
  • Extra Values: Pick which readings fill the footer (or grid, in No Header mode): Feels Like, Humidity, Wind Speed, Precipitation Chance, Pressure, and Visibility.
  • Custom Sync Interval: Optionally set a refresh rate for this screen that's independent of the global Data Sync Interval.
Layout

With Header: Top: City and Time. Center: Big Temperature and condition icon/desc. Bottom: your 3 chosen values.
No Header: Temperature, icon, and description centered on the left. Right: a vertical list of your chosen values (up to 6), evenly spaced.

Source: api.open-meteo.com
📸 Screen Preview
Weather Layout Render
With Header - Layout Render
Weather Real Photo
With Header - Real Photo
Weather No Header Layout Render
No Header - Layout Render
Weather No Header Real Photo
No Header - Real Photo
🍃 Air Quality
Function

Monitors local Air Quality Index (AQI) and specific pollutant levels to keep you informed about your environment.

Settings

Choose your preferred AQI standard (US or EU).

Standard Difference: US AQI (0-500) focuses on health risk thresholds. European AQI (0-100+) tracks specific pollutant concentrations (PM2.5, PM10, NO2).
  • Layout: "With Header" keeps the City/Time bar and up to 3 extra values. "No Header" drops the bar for a bigger centered AQI value and up to 6 extra values.
  • Extra Values: Pick which pollutants fill the footer (or grid, in No Header mode): PM2.5, PM10, Nitrogen Dioxide, Carbon Monoxide, Carbon Dioxide, Sulphur Dioxide, Ozone, Dust, UV Index, and Methane.
  • Custom Sync Interval: Optionally set a refresh rate for this screen that's independent of the global Data Sync Interval.
Layout

With Header: Top: City and Time. Center: AQI Value, Standard Type, and Status Icon. Bottom: your 3 chosen pollutant readings.
No Header: AQI Value, type, and status centered on the left. Right: a vertical list of your chosen pollutants (up to 6), evenly spaced.

Source: air-quality-api.open-meteo.com
📸 Screen Preview
AQI Layout Render
With Header - Layout Render
AQI Real Photo
With Header - Real Photo
AQI No Header Layout Render
No Header - Layout Render
AQI No Header Real Photo
No Header - Real Photo
â˜€ī¸ Daylight Info
Function

Tracks the sun's position throughout the day, providing precise times for sunrise, sunset, solar noon, and total day length based on your location.

Settings
  • Minimalistic Mode: Hides the progress timeline to cleanly centralize the core daily schedule.
Layout

A dynamic UI that switches icons and math based on whether it is currently daytime or nighttime. Includes a live progress bar tracking the sun's journey.

Source: api.sunrise-sunset.org
📸 Screen Preview
Daylight Layout Render
Layout Render
Daylight Real Photo
Real Photo
🌑 Moon Info
Function

Tracks the moon's position and appearance, providing precise times for moonrise and moonset, illumination percentage, and the current lunar phase.

Settings
  • Minimalistic Mode: Hides the rise/set times and illumination percentage to cleanly centralize a much larger moon graphic.
Layout

Instead of static bitmaps, this screen features a mathematically rendered moon that dynamically simulates the exact shadow terminator line based on real-time illumination data.

Source: aa.usno.navy.mil
📸 Screen Preview
Moon Layout Render
Layout Render
Moon Real Photo
Real Photo
đŸ›°ī¸ ISS Tracker
Function

Tracks the International Space Station in real time: where it is right now, the country or ocean it's flying over, its altitude and speed, and how far away it is from you. Between syncs, the position keeps moving along the predicted orbit, so the station never sits still on screen.

Settings
  • Display Mode: Map (world map with the live orbit path) or Text (a minimalistic dashboard).
  • Display Units: Kilometers (km / km/h) or Miles (mi / mph).
  • Custom Sync Interval: Defaults to every minute; optionally set your own refresh rate independent of the global Data Sync Interval.
Layout

Map: A world map with the ISS marker and one full pass of its orbit drawn across it, the country or ocean below as a header, coordinates underneath, and altitude, speed, and distance from you on the side. The marker shows a center cross while the station is sunlit and an empty ring while it's in Earth's shadow.
Text: The country or ocean as a headline, latitude and longitude around an ISS icon, and altitude, speed, and distance from you below.

Source: wheretheiss.at
📸 Screen Preview
ISS Map Layout Render
Map Mode - Layout Render
ISS Map Real Photo
Map Mode - Real Photo
ISS Text Layout Render
Text Mode - Layout Render
ISS Text Real Photo
Text Mode - Real Photo
đŸ›Šī¸ Flight Radar
Function

Tracks live aircraft flying near your location, either as a multi-aircraft radar view or a single closest-aircraft dashboard.

Tip: This screen is only as good as your coordinates. For the most accurate radar and distance readings, head into Global Settings → Location & Timezone and enter your precise Latitude/Longitude manually instead of relying on Auto-Detect.
Settings
  • Radar Mode: Displays every aircraft within your search radius on a live radar, each labeled with your choice of info.
  • Closest Aircraft Mode: Dedicates the full screen to a dashboard for the single nearest aircraft, including its route when available.
  • Search Radius: How far out (in nautical miles) to look for aircraft.
  • Display Units: Aviation (knots / feet) or Metric (km/h / meters).
  • Primary & Secondary Info: In Radar Mode, choose what's shown under each aircraft: Callsign, Altitude, Velocity, Distance, Track, Type, or Route.
  • Custom Sync Interval: Optionally set a refresh rate for this screen that's independent of the global Data Sync Interval.
Layout

Radar: A scaled top-down view centered on you, with a heading arrow, badge, and label for each aircraft, and a distance scale bar along the top.
Closest Aircraft: A large callsign and route readout alongside altitude, speed, distance, and track.

Source: api.adsb.lol
📸 Screen Preview
Flight Radar Layout Render
Radar Mode - Layout Render
Flight Radar Real Photo
Radar Mode - Real Photo
Flight Closest Layout Render
Closest Aircraft - Layout Render
Flight Closest Real Photo
Closest Aircraft - Real Photo
🌍 Population Info
Function

Displays a live, second-by-second population ticker for the globe and your selected country, dynamically projected from official census data and annual growth rates.

Settings
  • Trackers: Choose to track World Population, your Country's Population, or both simultaneously.
Layout

Split-Screen: When both are enabled, the screen divides horizontally to show world data on top and country data below.
Fullscreen: When only one is selected, it expands into a large, centered layout.

Source: data.worldbank.org
📸 Screen Preview
Population Layout Render
Layout Render
Population Real Photo
Real Photo
📊 Stock Tracker
Function

Tracks live market data for ~100 top global assets, including US Mega-Cap Tech, broad market ETFs, and international ADRs.

Settings
  • Asset Selection: Track up to 5 stocks/ETFs at once. The screen will automatically paginate through them during its rotation cycle!
  • Display Format: Toggle between showing the minimalist Ticker (e.g., AAPL) or the Full Company Name (e.g., Apple Inc.).
  • Custom Sync Interval: Optionally set a refresh rate for this screen that's independent of the global Data Sync Interval.
Layout

Shows the stock ticker/name, current price in USD, a daily trend icon, and the percentage change since the previous close.

Source: query1.finance.yahoo.com
📸 Screen Preview
Stock Layout Render
Layout Render
Stock Real Photo
Real Photo
📈 Crypto Tracker
Function

Tracks live market prices and 24-hour trends for the top 75 global cryptocurrencies.

Settings
  • Coin Selection: Track up to 5 coins at once. The screen will smoothly rotate through them.
  • Display Format: Toggle between the clean, standard Ticker (e.g., BTC) or displaying the Full Coin Name (e.g., Bitcoin).
  • Custom Sync Interval: Optionally set a refresh rate for this screen that's independent of the global Data Sync Interval.
Layout

Shows the coin ticker/name, current price in USD, a daily trend icon, and the 24h percentage change.

Source: api.coinlore.net
📸 Screen Preview
Crypto Layout Render
Layout Render
Crypto Real Photo
Real Photo
💱 Currency Tracker
Function

Tracks live exchange rates between over 150 global fiat currencies.

Settings
  • Base & Target: Track up to 5 currency pairs at once (e.g., USD to EUR).
  • Multiplier Amount: Essential for viewing exchange rates with large differences. Instead of viewing the tiny fraction for 1 unit, you can track the rate for 10, 100, 1,000, or 10,000 units for better readability.
  • Display Format: Toggle between the Base Currency Code (e.g., USD) or displaying the Full Currency Name (e.g., US Dollar).
  • Custom Sync Interval: Optionally set a refresh rate for this screen that's independent of the global Data Sync Interval.
Layout

Top Left: Base Currency (Large). Bottom Left: Target Rate. Right Side: Multiplier context aligned to the edge (e.g., "1 USD =", "1000 ARS =").

Source: cdn.jsdelivr.net/@fawazahmed0/currency-api
📸 Screen Preview
Currency Layout Render
Layout Render
Currency Real Photo
Real Photo
đŸ–Ĩī¸ PC Monitor
Function

Connects to the Tinytosh PC software on your computer to stream hardware telemetry via USB or Wirelessly.

Settings
  • Auto-hide: Choose to automatically hide this screen from your rotation when the PC is disconnected or turned off.
Layout

Displays four horizontal bars: CPU Load (%), RAM Usage (%), Disk Capacity (%), and Network Download Speed (KB/s or MB/s).

Source: Tinytosh PC
📸 Screen Preview
PC Layout Render
Layout Render
PC Real Photo
Real Photo
đŸŽĩ PC Media
Function

Streams current media playback info from your PC via the Tinytosh PC software (Spotify, Browsers, Apple Music, etc.).

Settings
  • Auto-hide: Choose to automatically hide this screen from your rotation when no media is currently playing.
Layout

Displays a media icon, playback status (Playing/Paused/Stopped), Track Name, Artist, and Album.

Source: Tinytosh PC
📸 Screen Preview
Media Layout Render
Layout Render
Media Real Photo
Real Photo
đŸ–¨ī¸ BambuLab 3D Printer
Function

Connects directly to your BambuLab 3D printer over your local network to stream live printing telemetry.

Settings
  • Required Credentials: You will need your printer's Serial Number and Access Code. You can easily find these on your printer's physical screen under Settings > Network (or WLAN).
  • Printer IP Address: This field is optional. Tinytosh features an auto-discovery scanner that will actively hunt for your printer on the network. If your router assigns a new IP to your printer every restart, simply leave this blank!
  • Connection Time: After entering your settings, please allow up to a minute for Tinytosh to negotiate the secure connection. The data will start populating on the Web Panel and your OLED display once connected.
  • Auto-hide: Choose to automatically hide this screen from your rotation when the printer is offline or disconnected.
Layout

This module dynamically changes its screen layout based on what the printer is doing:

  • Idle Mode: When the printer is resting, displaying a cluttered screen full of zeros makes no sense. The UI shifts to a minimalist layout showing just a large printer icon, the "Idle" status, and the current bed and nozzle temperatures.
  • Printing Mode: When a print starts, the UI expands into a dense telemetry dashboard showing: Print Progress (%), Time Left (mins), Current vs Total Layers, the File Name, Target & Actual Temperatures for Bed/Nozzle, and Part/Auxiliary Fan speeds (%).
Source: BambuLab Printer (MQTT)
📸 Screen Previews
Bambu Idle Layout Render
Layout Render
Bambu Idle Real Photo
Real Photo
Bambu Active Layout Render
Layout Render
Bambu Active Real Photo
Real Photo

Step 5: PC Software

To enable PC Monitor and PC Media modes, you need the PC software running on your computer. This lightweight app reads your system stats and sends them to Tinytosh over USB or Wi-Fi.

Tinytosh App Main Tinytosh App Settings
Key Features
  • Native Hardware & Media Monitoring: Reads system stats (CPU, RAM, Network) directly and streams your active media playback (Track, Artist, Album) — no AIDA64, HWiNFO, or third-party bloatware required.
  • Wireless Telemetry & Auto-Connect: Automatically discovers Tinytosh devices on your network (mDNS) and connects on startup to broadcast stats via USB or completely wirelessly!
  • Smart Connection Fallback: Prioritizes USB for stability. Yank the cable? It instantly and silently falls back to Wi-Fi.
  • Live USB Device Logs Terminal: Streams real-time debug logs from the ESP32 over USB, so you can watch API fetches and system status right from your desktop.
  • Hardware Pairing Lock: Tinytosh securely pairs to the active PC to ensure multiple computers don't fight over the display.
  • Smart Auto-Hide: Automatically hides the PC Monitor, PC Media, or Bambu Printer screens from the rotation whenever there's nothing to show — no PC connected, nothing playing, or the printer offline.
  • Unified Configuration Sync: Instant, stutter-free 2-way sync keeps your PC app and device settings always in step.
  • Dynamic UI & Complete Control: The PC app dashboard mirrors your device! Configuration panels automatically reorder in real-time, letting you manage all settings directly from the desktop.
  • Real-time Dashboard: See exactly what telemetry data is being sent to your device at a glance.
  • Manual Control: Override port/IP selection and toggle data streaming instantly.
  • System Tray & Boot: Minimizes quietly to the background; accessible anytime via the tray icon, with an optional setting to launch automatically on login.
Fetching latest version...
âš ī¸ A Note on Security Warnings

I am a hobbyist developer, not a corporation. I do not have expensive code-signing certificates from Microsoft or Apple. Because of this, your OS or browser may flag the app as "Unknown" or "Potentially Dangerous." This is standard behavior for unsigned open-source software.

If you have concerns, the entire project is open-source. You are welcome (and encouraged!) to review the code on GitHub to verify it is safe.

Windows Users:
Browser may block the download. Click "Keep" or "More actions > Keep anyway". SmartScreen may also appear; click "More Info > Run Anyway".
macOS Users:
If you see "App is damaged" or "Can't be opened", move it to Applications, open Terminal, and run:
xattr -cr /Applications/TinytoshPC.app

Step 6: Enjoy & Innovate

Congratulations! Your Tinytosh is now up and running.

Success!

Tinytosh is Open Source for a reason — it is designed to be a playground for your creativity. You are not limited to the features provided out of the box.

Make it Yours

  • Modify the Code: Hack the source, tweak fonts, or adjust animation speeds.
  • Build New Modules: Create your screen, design new animation, or add customization.
  • Share Your Work: Show off your build, remix the case, or contribute new features.
💡 Have an idea?
The best features come from user suggestions. If you have an idea for a new screen, found a bug, or just want to show off your build, join the conversation on your preferred platform.