Why to choose us?
All of our trainings are based on hard real-life work of the
trainer. Most of the added value comes from our personal experience and
corresponds with our previous and present work.
Training materials are provided to you in paper copies. All examples and code
snippets are in an electronic form which makes them very easy to use as
references and work-base. You also automatically get updates and newer versions
whenever they become available.
Our trainings and corresponding materials are as
much vendor-independent as possible. Obviously there are some aspects where the
training has to be based on a specific board. In order to give you a perspective
and a sense of as many boards and architectures as possible, we are providing a
prepared board emulation software. So some hardware-related development and
debugging is prepared in universal fashion, in spite of the problems with
Learn by practising
Practical exercises are constructed so that they are not like ‘un-comment the
following line’ ones. Instead, instructions indicate precisely the goal you are
supposed to achieve. You have to revisit the lecture, sometimes ask the trainer,
and think about the ways of achieving the objective yourself. And this means
learning by practice! Our proposition of problem solving is always attached to
What will you gain?
We believe that an increasing need to deliver products quickly and
cost-effectively while still providing a rich human-centered design are critical
for contemporary embedded devices in a wide range of application areas which
include: medical, industrial control, and consumer-electronic devices. Our
trainings provide you, your development team, and your customers with the
portfolio of ready-made, experience-based solutions. You gain the ability to
develop and manufacture complex embedded Linux hardware and software solutions
in a fraction of the time and cost of traditional embedded and real-time os'es
We provide our evaluation forms or, upon request, your organization's forms can
be used instead. If you choose our evaluation, we will provide you a detailed
report up to one week after the completed training.
All aspects of embedded Linux development are included and described thoroughly.
We are utilizing virtualization technology to speed up development and separate
ourselves from hardware failures but most hands-on excercises are done using
real ARM9 and Corex-A based hardware, including: Atmel AT91 family, BeagleBoard,
Freescale i.MX, RaspberryPi, and other platforms.
- Linux kernel
Materials are always up-to-date with current Linux version as well as
longterm versions and those provided with popular vendor BSPs.
We cover all of the real-time aspects of Linux system. Especially, the process
of converting it into fully responsive hard real-time environment for POSIX
RT-API based applications. We use PREEMPT-RT to achieve determinism in standard
system and also discuss and practice microkernel based approaches: Xenomai and
- ROOT filesystem
Training covers quite a few methods of creating ROOT-fs. We start from doing it
ourselves from scratch, then we heavily utilize Buildroot, as
easily maintainable vendor-independent solution. Other methods are introduced
to (as they are used in vendor's BSPs): LTIB, OpenWRT, OpenEmbedded,
Scratchbox, Debian/ARM, Fedora/ARM.
- In-system programming using QT and POSIX API
We are using QT in our projects and we strongly advise you to apply them as
well. Our in-depth QT course will let you.
- BSP-s and more...
We strongly recommend to automate common and the most error-proning development tasks.
We use BSP-s for this. Vendor-specific, or self-developed one.
Our trainings cover various methods of debugging (code errors, memory leaks,
race conditions and more) while developing kernel as well as userspace code. We
focus on open-source solutions (GDB and its various frontends).
During training, we will be using standard UNIX text editor as our development
environment. Eclipse will be used for larger projects.
Each lecture in our course is followed by a practical hands-on exercises, representing 50% to 60% of the whole course time. Labs are performed on a read embedded board, on which you will progressively implement drivers in the Linux kernel.
Used during public training sessions.
Vast amount of available documentation, many variants of SoC and variety of SoMs makes this board a great platform to learn skills currently needed in on-going projects.
- NXP i.MX6 DualLite ARM® Cortex-A9 Dual Core
- RAM 1GB DDR3
- SD card
- RS232 - USB converter with null-modem cable
For additional fee, Wandboard Dual can be exchanged for more powerful Wandboard Quad.
Raspberry Pi 3
Offered as a platform for on-site trainings.
Great educational platform to learn advanced skills. Features ARMv8 architecture including many advanced features (TrustZone, virtualization etc.).
Many opensource projects available, assures use of the board in many hobby and professional project.
- Broadcom 1200MHz quad-core ARM Cortex-A53
- RAM 1024 MB
- SD card
- Serial console: TTL - USB converter
During on-site trainings, many other platforms can be also used to fulfill team's needs: i.MX6: Wandboard, MarS Board, UDOO; AM335X: BeagleBone Black SBC8600, Atmel SAMA5-Xplained, Raspberry Pi, Intel Edison and others.
The electronic board is yours to keep at the end of the session. Even long after the course, this allows you to continue to learn and experiment using a well known working base. You can even use your board and what you created during the course to develop your own prototypes.
All examples and applications developed during the training, can be easily ported to other development boards.
Frequently Asked Questions
Q: What is a public training session?
A: Public training session is, quite simply, a course where places ('seats') are
open to individuals.
Events are scheduled at training centers in given locations. We provide all
We do not provide an accommodation, but we can send you our
recommendations regarding various hotel price tags.
If your organization needs flexible timeline and terms, we offer
group registration and on-site trainings.
Q: Do I have to pay for the training in advance?
A: No, we just need a formal commitment from you (a purchase order), no
advance payment is required.
Q: The session is in just few days, is it too late to register?
A: No, it is not too late. Your commitment can be processed and confirmed very
quickly, provided that there are free seats. However, we may ask the participant
to bring his/her own laptop for the session, as we may not be able to rent one
Q: How many participants are there in a session?
A: For best quality of training, we try to minimize number of participants in
one session. Maximum 12 persons (laptops), typical: 4-8.
Q: What time do the sessions start?
A: Sessions typically start at 9 A.M. and we will keep you busy until 5
Last hour is usually devoted to lighter topics, Q&A session, and solving individual
problems. Agenda ensures that most important topics are covered by 3 p.m. of the
last day. We provide you with coffee breaks and dinner during the seminar day.
Q: Will I get lost during the training if I am not an expert in Linux?
A: No. Our courses require basic skills in the UNIX/Linux environment
(command line). Some self-training with our Linux introduction slides and video
will definitely make you more efficient.
Q: What is a time proportion of lecture to exercises?
A: Every topic is supported with lots of exercises. Most of the programming
exercises rely on finding information, debugging problem, discovering, and coding
a solution. Boring parts of coding are already typed in (as a clean and
commented code snippets), so your energy is spent only on most important
parts. We believe that step-by-step exercises are essential part of our
training, so typical ratio is about 50% of time spent on lecture and 50% on
All code snippets are covered by GPL code, so you can use everything, from
simple module stubs, to advanced Real-Time application in your own projects.
Q: What is the language of the classes?
A: Materials, excersises and lectures are provided in English.
Polish is also available on demand.
Q: Do I get a cerificate?
After the training you will receive Certifiacte of completion
Your certificate can be added to your LinkedIn profile
1. Scan QR code printed on your certificate.
It encodes validation service link. You will be able to verify authenticity of your certificate.
2. Certificate validation.
Unique ID allows validation.
We do not gather any personal information.
3. Add certificate to your LinkedIn profile.
You have to enter data manually. LinkedIn does not allow auto-filling.
All the information will be found on our site.
4. Certificate will appear in your LinkedIn profile.
Validation link will also be shown.
The Modular training gives you an opportunity to create a
seminar which will meet your expectations and fulfil the needs.
You can compile any topic which appears in our standard courses or ask for
completely different ones. We will help you to compose a set of subjects which
best suit your needs.
Various customizations can be made:
- ARM, MIPS, X86, other embedded solutions
- Atmel, NXP, TI, ST, Broadcom ... and many more
- Maybe your applications need accelerated 2D/3D graphics, specialized DSP or other similar IP-core?
Do not hesitate to: contact us