Ultibo core

From Free Pascal wiki
Jump to navigationJump to search

English (en) suomi (fi)

Raspberry Pi Logo.png

This article applies to Raspberry Pi only.

See also: Multiplatform Programming Guide

Ultibo core is an embedded run-time platform and development environment written specifically for creating applications with small single board computers. It is built around the Free Pascal compiler and the Lazarus integrated development environment. Ultibo core is an RTL written entirely in Free Pascal and designed to make embedded or bare metal development accessible to all.



A Windows installer is available and full source plus a large collection of examples is included.


 make distclean OS_TARGET=ultibo CPU_TARGET=arm SUBARCH=armv7a CROSSBINDIR=~/Documents/gcc-arm-none-eabi/arm-none-eabi/bin/
  • type and wait:
 make all OS_TARGET=ultibo CPU_TARGET=arm SUBARCH=armv7a CROSSBINDIR=~/Documents/gcc-arm-none-eabi/arm-none-eabi/bin/ CROSSOPT="-CpARMV7A -CfVFPV3 -CIARM -OoFASTMATH"
  • type and wait, assuming your FPC 3.1.1 is in the folder /usr/local/lib/fpc/3.1.1/ so option INSTALL_BASEDIR becomes INSTALL_BASEDIR=/usr/local/lib/fpc/3.1.1/
 sudo make crossinstall CROSSBINDIR=~/Documents/gcc-arm-none-eabi/arm-none-eabi/bin/ CROSSOPT="-CpARMV7A -CfVFPV3 -CIARM -OoFASTMATH" OS_TARGET=ultibo CPU_TARGET=arm SUBARCH=armv7a INSTALL_BASEDIR=/usr/local/lib/fpc/3.1.1/


An installation script is available for Linux, full source plus a large collection of examples is included.

Supported Devices

  • Raspberry Pi A, B, A+, B+
  • Raspberry Pi Zero, ZeroW and Zero2W
  • Raspberry Pi 2 model B
  • Raspberry Pi 3 model B
  • Raspberry Pi 3 model A+, B+
  • Raspberry Pi 4 model B
  • Raspberry Pi 400
  • QEMU emulator


Features include:

  • Support for all models of Raspberry Pi (except Pico)
  • Pre-emptive threading
  • Full range of locking and synchronization primitives
  • Multicore support on Raspberry Pi 2, 3 and 4 with all cores sharing workload
  • Thread priority, affinity and migration support
  • Complete IPv4 stack including TCP, UCP, ICMP and raw sockets as well as DNS and DHCP protocols
  • USB support with drivers for Hub, Keyboard, Mouse, Storage, Network, HID, Touch, Gamepad and Joystick
  • MMC/SD/SDIO device support including eMMC devices on Raspberry Pi Compute Modules
  • Full support for FAT12/16/32, NTFS and CDFS filesystems
  • Interrupt handling
  • Hardware exception handling (catch an exception in code not a crash)
  • Complete RTL with strings, code pages, Unicode, classes, objects and exceptions
  • Clock and Timezone support
  • Console and framebuffer support including Fonts
  • Basic Shell (Console or Telnet) with file system commands and many others
  • HTTP/SMTP/POP3/NTP/Syslog client and server modules included
  • Support for Raspberry Pi devices like Timer, Watchdog and Random
  • Full Winsock 1.1 and Winsock 2 implementation
  • Packaged with a full compiler and IDE for quick start to development
  • Includes example projects plus a full demo image
  • HTTP image update module included (No SD card dance!)

Drivers added for:

  • DMA
  • GPIO
  • UART and Serial
  • I2C
  • SPI
  • PWM
  • PL2303 and FTDI USB to Serial devices
  • USB support for the LAN7515 (LAN78XX) chip

New and enhanced features:

  • Raspberry Pi 3 and 4 support (32 bit only)
  • Additional code page support
  • Common cipher and hash algorithms for the beginning of crypto support
  • Real time clock (RTC) support (with driver for DS1307 and similar chips)
  • Static IP support with command line configuration
  • Updated Lazarus IDE with modern docked layout
  • Extra fonts plus new font creation tools
  • Support for common LCD displays like the Adafruit 16x2
  • QEMU ARM emulation support
  • Port of the Asphyre/PXL graphics library
  • Support for the FreeVision windowing package
  • Standard C library support including POSIX threads
  • Fast interrupt (FIQ) support
  • Hardware accelerated OpenGL ES and OpenVG graphics and support for the official Pi camera


Discovering Ultibo