A desktop, apps and your own code on the board itself - no Linux underneath.
What it is
A desktop and its apps, all Pascal, on a board with no operating system under it.
Everything is Pascal
The desktop, its bar, the task manager, the settings and every driver are one TruePascal project built with the IDE. No kernel from elsewhere, nothing to link, nothing to install on the board but a card.
Apps are projects
An app is a TruePascal project built with Build for Board and sent to the board over SSH. It runs as a thread on lent devices - the screen, the USB, the network, the card - while the bar stays the OS's.
Its own drivers
USB host (xHCI and DWC2) with keyboards, mice, hubs and disks; Ethernet with its own TCP/IP, DHCP, DNS and SNTP; SD card with FAT32 and several volumes; the display, the headphone jack; GPIO, I2C, SPI, UART, PWM and 1-Wire.
The hardware's engines
On the Raspberry Pi 4 a film is decoded by the VideoCore: 1080p H.264 at 30 frames a second takes 5-6 % of the CPU. The pointer over it is the firmware's own cursor; the player's controls are a layer above the picture.
Reachable from your PC
An SSH server from the first second: log in, send an app, read the log, take a screenshot, update the OS with a signed image that boots once on trial before it takes over. The IDE does it with one click.
Measured, every turn
Every turn of the loop is timed and a stall is logged with its name. The media player drops no frames; a toggle of its info panel costs 7 ms; the desktop is up 1.8 s after power-on.
The boards so far
Three boards run it today. The gates run it in QEMU on every version.
Board
Processor
Boot
What runs
LattePanda Iota
Intel N150, x64
a UEFI app from the SD card (-Tefi-x64)
the first board: desktop, apps, USB, network, its SSD and USB disks
Raspberry Pi 3B+
Cortex-A53, 64-bit
its own boot: kernel8.img on the card (-Tpi-a64)
desktop at 7 s; the browser app read its first pages here
Raspberry Pi 4B
Cortex-A72, 64-bit
its own boot: kernel8.img on the card (-Tpi-a64)
the main board: 1.8 s to the desktop, hardware video, the jack
Next: the Raspberry Pi 5 and the Compute Module 4. The same base runs on all of them - a board is a driver set, not a port.
How it boots
One file on a card. The board's own firmware starts it; from then on everything is the OS's.
Raspberry Pi 3B+ and 4B - its own boot
The Pi's firmware reads config.txt - three lines - and starts kernel8.img: the whole OS, 8.3 MB on the Pi 4. It enters at EL2, sets up its own MMU, vectors and timer, and runs at EL1. No Linux, no bootloader of ours.
Apps - UEFI programs
An app is an ARM64 UEFI program (-Tefi-a64) on the card: the OS reads it and runs it as a thread on lent devices. The same build also starts on the community UEFI firmware - proven in QEMU so far.
PC - LattePanda Iota (Intel N150)
The BIOS starts EFI/BOOT/BOOTX64.EFI from the SD card: the OS as an x64 UEFI app of 2.8 MB. It brings its own USB host, network card and card drivers rather than the firmware's.
Updates
A new OS image is signed (Ed25519) and sent over SSH. It boots once on trial; only when it comes up does it take over, and the one before is kept beside it.
Built in
All of it ships in the one image - written in Pascal, measured on the boards.
Display
the firmware's frame or UEFI GOP; the panel's size from its EDID; a desktop with wallpaper, icons and a bar; windows and full screen
Video
H.264 decoded by the VideoCore on the Pi 4; picture layers above the desktop; the firmware's own cursor over a film
Keyboard
USB HID keyboards with layouts, AltGr and dead keys; an on-screen keyboard
Mouse
USB HID mice with the wheel and double click; the pointer keeps moving while an app computes
USB host
its own xHCI (the Pi 4's VL805 over PCIe, the Iota) and DWC2 (the Pi 3B+); hubs, USB disks, USB serial
Network
Ethernet - the Pi 4's GENET, the Iota's Realtek, USB adapters; its own TCP/IP with DHCP, DNS and SNTP
SSH
a server from the first second: Ed25519 host key, key login; commands, files, sending apps, the IDE's one-click flash
For apps
HTTP client and server, WebSocket, MQTT, a MySQL client with TLS, SQLite on the card
Storage
the SD card with FAT32 and long names; USB disks and an SSD as more volumes
Sound
the headphone jack at 48 kHz by DMA; MP3 and AAC decoders
Apps
run as threads on lent devices, with a manifest and grants (screen, network, card); threads inside an app
Pins
GPIO, I2C, SPI, UART, PWM and 1-Wire
Tools
Task Manager, the system log with times, settings, time zone and locale, a PIN lock, the watchdog, screenshots and a profiler over SSH
SQLite on the board
A real database in every app: a file on the card, no server, nothing to install.
The engine is Pascal
tpsqlite, TruePascal's own SQLite engine, is compiled into the app. It writes the standard SQLite file: Python's sqlite3 reads what it writes, and the other way round.
Your PC's files as they are
A database made on the PC is copied to the card and opened unchanged: the tables, the indexes and the data as they were.
The same components
TSqlite3Dataset, data grids, edits, images and the appointment calendar bind to it on the board as they do on the PC.
Safe on a card
Only the pages a statement changed are written back. A failed statement puts its pages back; a transaction stands or falls whole.
On a microcontroller too
The same engine runs on a Raspberry Pi Pico 2 with an SD card, in 54 KB of memory.
Apps that use it
Pictures keeps its pictures in it, the calendar example its appointments; a ported PC program brings its databases along.
How lean it runs
Nothing between your program and the hardware.
1.8 s
from power-on to the desktop on a Raspberry Pi 4
8.3 MB
the whole OS image on the Pi 4 - 2.8 MB as a UEFI app on the Iota
5-6 %
of the CPU for a 1080p H.264 film at 30 frames a second
Measured on a 1 GB Raspberry Pi 4: the OS's heap 37 MB in use, its deepest stack 768 KB, the screen's frame 2.3 MB. The firmware gives the ARM 948 MB and the GPU 76 MB; an app gets up to 80 MB. Idle, the CPU rests until a frame, a key or a packet comes: 3 % with the desktop up.
Apps made for it
The OS's own apps, and real programs ported as they are.
Disk Explorer
the card, USB disks and an SSD - copy, move, delete, long names
Pictures
JPEG and PNG, with a database of them (SQLite on the card)
Notes
a text editor
Browser
HTML and CSS without JavaScript; images on request
Player
MP3, WAV and MP4 - H.264 by the hardware, full screen with the controls over the film
Calc
a calculator
Defrag
the card's FAT, put in order
Task Manager
the CPU, every module's memory, the running app (part of the OS)
VKontroll
an industrial control panel - the PC program, ported
Included with Pro and Max
The bare-metal OS, its apps and the board targets - LattePanda Iota, Raspberry Pi 3B+ and Raspberry Pi 4B - come with the Pro and Max plans at no extra cost. The Basic plan covers the microcontrollers: Raspberry Pi Pico and Pico 2, ESP32-C3, -C6, -S3, -P4 and the original ESP32, the Arduino Due and the Raspberry Pi Zero W.