What is Ultibo?
Ultibo core is an embedded or bare metal development environment for Raspberry Pi. It is not an operating system but provides many of the same services as an OS, things like memory management, networking, filesystems and threading plus much more. So you don’t have to start from scratch just to create your ideas.What can Ultibo be used for?
Pretty much anything, you can use Ultibo for making projects, for learning and experimenting or even for teaching. All you need is a bit of imagination to come up with endless possible uses.How much does it cost?
Ultibo core is free and open source software. You can use it without cost, you can modify it and you can share it with others.Is Ultibo based on Linux?
No, Ultibo core is a complete embedded development environment written specifically for creating applications with small single board computers. It uses many concepts from general operating system design and even borrows information from Linux, but Ultibo is not based on anything else.Can I install my favorite apps in Ultibo?
Not really, Ultibo is not a general purpose operating system. You could port your favorite apps to run under Ultibo but you cannot download an existing app and just run it.Why would I use Ultibo instead of Linux or Windows IoT?
That’s up to you but sometimes it makes sense for a particular project to not have the extra overhead of a full operating system. Just as both Linux and Windows have their place, so does Ultibo.Can I contribute to Ultibo?
Yes, there are many possible ways to contribute, share your projects so that others can learn from them, write code to support a missing feature and submit it or just answer questions in the forums. Anything you do will help make Ultibo what you want it to be.Why Raspberry Pi, why not (name of other board)?
Raspberry Pi is clearly the market leader when it comes to small single board computers for hobby and educational use. We fully intend for Ultibo to support other boards, which ones and when depends on what the community shows interest in.How do I request a new feature?
You can post new feature requests in the forum, there’s no guarantee when the feature will be added but it will go on the list.I think I found a bug, where should I report it?
All bug reports should be posted in the forum. Be sure to include as much detail as you can and, if possible, a simple example that shows the bug.
Make
When will Ultibo support (specific hardware or feature)?
At present there is no exact roadmap for when features will be added or specific hardware will be supported. Development up to now has focused on making the core feature set both functional and reliable, as we move beyond this phase we will be guided by input from the community to help us set the priority for future development.Does Ultibo support all of the Raspberry Pi models?
Yes, all Raspberry Pi models are supported including the A, B, A+, B+ and Zero as well as the Raspberry Pi 2B, 3B, 3A+, 3B+, 4B and 400.
The Raspberry Pi Pico isn’t supported because it is a microcontroller not a microprocessor so it doesn’t have enough processing power to support what Ultibo does.
Can Ultibo access my USB devices like flash drives, keyboards and mice?
Yes, Ultibo recognises many standard USB devices such as hubs, flash drives, hard drives, keyboards, mice and CD/DVD drives. This list will grow over time to include other common devices as well.Does Ultibo support networks and the internet?
Yes, in the 21st century it would seem pointless to make anything that does not have internet connectivity. Ultibo has a full range of network support including a complete winsock2 API, so many examples available online will translate without much effort at all.Is Ultibo able to use multiple CPUs?
Yes, Ultibo uses all 4 CPUs when running on a Raspberry Pi 2, 3 or 4 and distributes threads equally between them. As with most things in Ultibo you can also control precisely which threads run where if you need to.Can Ultibo be used for IoT (Internet of Things)?
Yes, since IoT is really just another term for embedded devices. The lightweight, self contained and easy to update nature of Ultibo core makes it ideal for making IoT devices.Can Ultibo access files on my USB drives and SD cards?
Yes, Ultibo includes full support for FAT, NTFS and CDFS so it can access files on most standard USB devices.Can I use an emulator (like QEMU etc) for testing apps I develop with Ultibo?
Yes, in fact the Ultibo installer for Windows includes a cut down version of QEMU so you can compile your project and launch it directly in QEMU.What if I need more detailed technical information?
The best source of detailed information on Ultibo will always be the wiki. We’re continually adding more information and if there is something you would like added let us know.Is Ultibo ready for creating real products?
Yes, we think it is. There are still some missing pieces but Ultibo is already very stable and has more features than many other projects.
How do I download Ultibo?
Simply go to the download page and click on the Ultibo core installer download. This will give you the complete package including the compiler and IDE so you can get started immediately.How do I install an Ultibo image on my Raspberry Pi?
An Ultibo image only needs to be copied to the SD card to be ready for use. You will also need to copy the Raspberry Pi firmware files onto the card, a link to those can be found on the download page.Do I need anything else to get started?
You’ll need a Raspberry Pi of course and an SD card, other than that everything you need to start creating apps is included in the download.Do you have example projects I can start with?
Yes, from within the Lazarus IDE select Tools, Example Projects from the menu. There are a selection of examples ranging from basic to advanced to help you get started.How do I get support?
The best way to get support is to post a question in the forums. Make sure you search previous posts and check the wiki to see if your question is already answered.Where do I buy a Raspberry Pi etc?
There are many great suppliers of Raspberry Pi and accessories all over the world. Take a look at the Make page for a few suggestions.
Progamming
What programming language does Ultibo use?
Ultibo is written entirely in Free Pascal and is designed to act as a unikernel or a kernel in a run time library. That means when you compile your application the necessary parts of Ultibo are automatically included by the compiler so that your program runs without needing an operating system.Why not use a language like C, Python or PHP?
There are probably more programming languages available today than you could list on a single page, we decided on Free Pascal because it is powerful, flexible and offers the range of features needed to create Ultibo. If you’ve never tried Pascal give it a go, you might be surprised.I am new to Free Pascal, how do I start learning?
There are many great resources for Free Pascal programming. Have a look at the list of resources on the Make page and also check the resources section in the wiki.I already have Free Pascal and Lazarus installed, can I just download the source code?
No, Ultibo requires a customised build of both Free Pascal and Lazarus, however you can install our build of Lazarus without affecting your existing installation because the paths have been changed to avoid any conflict.Do I need to be an experienced embedded programmer to use Ultibo?
No, Ultibo allows you to get started with minimal knowledge of embedded development by providing most of the standard features ready to use. You don’t need to study obscure compiler options or wrestle with linker scripts just to create a working application.Can I make graphical applications using forms and buttons etc?
No, not yet anyway. Even though the Lazarus IDE is designed for making graphical applications for Windows and Linux, Ultibo doesn’t currently have a windowing interface. You have access to a full 32bits per pixel frame buffer so graphics is totally possible but right now you have to do it the hard way.Does Ultibo support multiple languages?
Both Lazarus and Free Pascal have been translated into multiple languages and have excellent language support. Ultibo itself has basic unicode support built in and will continue to be enhanced over coming releases.
About
How do I pronounce Ultibo?
Sort of like Old T Bone but without the ne !What does Ultibo mean?
Nothing really, the Ultibo project originally began as a search for the ultimate box but has become more about making the kinds of things we want to buy, but are not available.Who created Ultibo?
Ultibo was created by SoftOz, an Australian software development company who believe that the future of technology lies in the incredible possibilities of embedded devices or IoT. Almost all of the code so far was written by SoftOz director and Ultibo co-creator Garry Wood.How is Ultibo funded?
Up to the point of release Ultibo was funded personally by its co-creators Garry and Annette, we are now inviting others to help sponsor the continued development of what we hope will be an important element in the future of embedded devices.How can I support Ultibo?
Like any open source project there are many ways you can help and contribute, becoming a member, writing code, sharing your knowledge or sponsoring a feature just to name a few. We’ve created a page to offer some more suggestions.Can I get commercial support for Ultibo?
Yes, we can offer a range of support services to suit your needs, please contact us to find out more.How can our organization support the Ultibo project?
Corporate support such as sponsorship, advertising or other arrangements is always welcome. Please contact us to discuss what could suit your needs.