2. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
3. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
Open
Source Mainl
ining
Softwar
e Embedded Engi
neering
OUR PHILOSOPHY IS TO SHARE KNOWLEDGE
4. What does Softcrates do?
Make software and hardware talk to each other.
Develop, extend and adjust OS (Linux Kernel).
0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
5. What doesn’t Softcrates do?
0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
Work with other OS’s (Windows, QNX...).
Develop applications.
6. [ ]
*
Embedded Systems have complex software
(*)Like any complex system, it can be split in smaller pieces to separate concerns.
0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
7. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
Embedded Linux Software Stack.
Applications
Hardware
Framework
(QT, GTK, etc.)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
Bootloader
(U-boot.)
8. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
Embedded Linux Software Stack.
BSP (Board Support Package)
Applications
Hardware
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
The part of the system depending on the software is known as BSP (Board Support Packages)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
9. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
The software used by applications is known as SDK (Software Develop Kit)
SDK (Software Development Kit)
Applications
Hardware
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Embedded Linux Software Stack.
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
10. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
Different actors are interested in each layer of the Embedded Stack
Applications
Hardware
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Embedded Linux Ecosystems.
SDK developer
Application
developer
Original Equipment
Manufacturer (OEM)
Original Design
Manufacturer (ODM)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
11. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
Applications developers write applications so they are only interested in the framework provided.
Applications
Hardware
Bootloader
(U-boot.)
Embedded Linux Ecosystems.
SDK developer
Original Equipment
Manufacturer (OEM)
Original Design
Manufacturer (ODM)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
Framework
(QT, GTK, etc.)
Application
developer
Framework
(QT, GTK, etc.)
Application
developer
12. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
SDK developers are interested in writing a framework that can be used by applications developers
so only care about the middleware provided.
Applications
Hardware
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Embedded Linux Ecosystems.
Application
developer
Original Equipment
Manufacturer (OEM)
Original Design
Manufacturer (ODM)
Operating System
(Linux Kernel)
SDK developer
Middleware
( rootfs, glibc, systemd etc...)
SDK developer
Middleware
( rootfs, glibc, systemd etc...)
13. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
OEM wants to provide a base system for SDK developers so they are only interested in the BSP.
Embedded Linux Ecosystems.
Applications
Framework
(QT, GTK, etc.)
SDK developer
Application
developer
Original Design
Manufacturer (ODM)
Middleware
( rootfs, glibc, systemd etc...)
Original Equipment
Manufacturer (OEM)
Original Equipment
Manufacturer (OEM)
Hardware
Bootloader
(U-boot.)
Operating System
(Linux Kernel)
Hardware
Bootloader
(U-boot.)
Operating System
(Linux Kernel)
14. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
ODM wants to provide a hardware system that can be branded by OEM so they are interested in
providing the hardware support (BSP) .
Embedded Linux Ecosystems.
Applications
Framework
(QT, GTK, etc.)
SDK developer
Application
developer
Original Equipment
Manufacturer (OEM)
Middleware
( rootfs, glibc, systemd etc...)
Original Design
Manufacturer (ODM)
Original Design
Manufacturer (ODM)Hardware
Bootloader
(U-boot.)
Operating System
(Linux Kernel)
Hardware
Bootloader
(U-boot.)
Operating System
(Linux Kernel)
15. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
In practice this separation of concerns is not always that easy. For example, an Application
developer may need to care about all the layers if they have not been provided by the other parties.
Applications
Hardware
Embedded Linux Ecosystems.
SDK developer
Original Equipment
Manufacturer (OEM)
Original Design
Manufacturer (ODM)
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Application
developer
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Application
developer
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
16. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
On the other hand, an ODM could provide the full stack to be sure that their platforms will be
competitive and have an added value over the others.
Applications
Hardware
Embedded Linux Ecosystems.
SDK developer
Application
developer
Original Equipment
Manufacturer (OEM)
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Original Design
Manufacturer (ODM)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Original Design
Manufacturer (ODM)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
17. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
The Poky Build System can be used to provide a full stack image for Embedded Systems.
Applications
Hardware
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
18. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
It provides the infraestructure to build, maintain and distribute firmware images for embedded
Systems.
Constantly updated
Firmware Images
Softcrates FaaS Cloud: Firmware as a Service.
Demo Applications
Reference Hardware
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
Demo Applications
Reference Hardware
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
19. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
Softcrates makes sure that all the different components work correctly with the latest version
and will be consolidated in a single image release cycle.
Also there is a LTS (Long-TermSupport)
version that freezes a release and
bugfixes are backported for N years
Each Component has a different release cycle.
Demo Applications
Reference Hardware
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
Demo Applications
Reference Hardware
Framework
(QT, GTK, etc.)
Bootloader
(U-boot.)
Middleware
( rootfs, glibc, systemd etc...)
Operating System
(Linux Kernel)
20. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
Embedded Linux stack - services.
Applications
Hardware
Framework
(QT, GTK, etc.)
Base system
( rootfs )
Linux Kernel
Bootloader
(U-boot.)
Robotics, Health Care, Automotive,
Home Automation.
Robot Operating System,
QT, GTK, OpenCV.
Yocto Poky, Snappy Ubuntu Core,
Buildroot.
Linux kernel.
U-boot, Coreboot, Barebox.
Beagle Bone Black, Gumstix Overo,
Odroid XU3.
21. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
APLICATIONS
Power
Oil & Gas
Renewable Energy
Railway & ITS
Factory Automation
Medical
Building Automation
ATM POS & KIOSK
Marine & Defence
Comunication
Automotive
Control Systems
Drones
Educational Toys
Energy Systems
Gaming
Vending Machines
Videogames
USE CASES
22. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101
23. 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 w w w . s o f t c r a t e s . n e t 01010011 01001111 01010101 01010010 01000011 01000101