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.
Wiring Notes:
| Component | Pin Name | ESP32 Connection | Notes |
|---|---|---|---|
| OLED Display | VCC | 3.3V or 5V | Power |
| GND | G (GND) | Ground | |
| SCL | GPIO 9 | I2C Clock | |
| SDA | GPIO 8 | I2C Data | |
| Button (Optional) | VCC | 3.3V | Do not use 5V for button |
| I/O (SIG) | GPIO 10 | Input Signal | |
| GND | G (GND) | Use Y-splitter or solder to share ground |
The 3D-printed case is designed for a tool-free, screwless assembly:
You can download the STL/3MF files for the case on MakerWorld. Includes a ready-to-print profile with optimized settings.
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).
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.
Tinytosh and connect.
Tinytosh
192.168.4.1 into your browser).
192.168.0.100) and its unique Device Name (e.g., tinytosh-ab12).
http://tinytosh-ab12.local) into your browser to open the Web Panel.
Access the Web Panel by entering the device's IP address (or .local name) into your browser. Configure your device using the sections below:
Tinytosh is designed to be fully customizable. Every screen listed below (Time, Weather, PC, etc.) acts as a standalone module.
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.
Take full control of your device's flow using the Screen Display Order panel.
How it works:
โข Grab the โฐ handle to drag and drop your active screens into any sequence you like.
โข Disabled screens are automatically pushed to the bottom and locked out of the rotation.
โข Dynamic UI: When you click Save, the configuration panels on this web page will physically rearrange themselves to perfectly match your new custom layout!
Customize how the device transitions between different screens:
Tinytosh uses these settings to provide accurate Clock, Weather, Air Quality, and Holiday data.
Set a quiet schedule to minimize sleep distractions and conserve API quotas.
If you installed the optional TTP223 touch sensor, you can control Tinytosh directly:
Displays the current time and date, automatically synchronized via the internet based on your local timezone.
While location and timezone are managed in Global Settings, this screen offers specific customization:
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.
Fetches and displays real-time weather conditions and daily forecasts based on your location.
Top: City and Time. Center: Big Temperature and condition icon/desc. Bottom: Feels like, Humidity (%), and Wind Speed (km/h).
Source: api.open-meteo.com
Displays the current date alongside a full monthly grid and tracks national public holidays based on your country.
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.
Monitors local Air Quality Index (AQI) and specific pollutant levels to keep you informed about your environment.
Choose your preferred AQI standard (US or EU).
Top: City and Time. Center: AQI Value, Standard Type, and Status Icon. Bottom: Real-time PM2.5, PM10, and NO2 levels in ยตg/mยณ.
Source: air-quality-api.open-meteo.com
Tracks live market data for ~100 top global assets, including US Mega-Cap Tech, broad market ETFs, and international ADRs.
Shows the stock ticker/name, current price in USD, a daily trend icon, and the percentage change since the previous close.
Source: stooq.com
Tracks live market prices and 24-hour trends for the top 75 global cryptocurrencies.
Shows the coin ticker/name, current price in USD, a daily trend icon, and the 24h percentage change.
Source: api.coinlore.net
Tracks live exchange rates between over 150 global fiat currencies.
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
Connects to the Tinytosh PC software on your computer to stream hardware telemetry via USB or Wirelessly.
Displays four horizontal bars: CPU Load (%), RAM Usage (%), Disk Capacity (%), and Network Download Speed (KB/s or MB/s).
Source: Tinytosh PC
Streams current media playback info from your PC via the Tinytosh PC software (Spotify, Browsers, Apple Music, etc.).
Displays a media icon, playback status (Playing/Paused/Stopped), Track Name, Artist, and Album.
Source: Tinytosh PC
Connects directly to your BambuLab 3D printer over your local network to stream live printing telemetry.
This module dynamically changes its screen layout based on what the printer is doing:
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.
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.
xattr -cr /Applications/TinytoshPC.app
Congratulations! Your Tinytosh is now up and running.
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.