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 hardware suppliers.
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 materials.
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 development.
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.
Each lecture in our course is followed by a practical hands-on exercises, representing about 50% of the whole course time. If possible (and beneficial to the learning process), Labs are performed on a real embedded board, on which you will progressively implement drivers in the Linux kernel.
The development board is a part of training materials. Participants keep the board after the training. This allows them to get back to exercises in their own time and experiment on their own. It is even possible to start a new project using the development board.
Utilized in most of our public training sessions.
Single Board Computer parameters:
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.
Offered as a platform for on-site and remote trainings.
Allows participants to fully focus on a training subject. Removes all the hassle of hardware handling (power issues, PC compatibility issues, cables etc.).
Provided as a ready-to-use Docker container image (including build instructions).
Virtual development board is compatible with most of the boards available, including SoMLabs and RaspberryPi. It can be reconfigured on-the fly to test not only a different architecture (ARM, AARCH64, MIPS, RiscV or event x86), but also different amounts of memory, set of devices, number of CPU Cores.
For on-site training, many more hardware platforms can be used in order to fulfill the needs of the team. Including, and not limited to: i.MX8, i.MX6, ST, TI, Wandboard, Compulab, PHYTEC, TQ, BeagleBone Black, SBC8600, Atmel SAMA5-Xplained, RaspbrryPi, Intel, AMD, NVIDIA and many more.
The pace of the training can be adapted to the specific needs of the group. The trainer may omit some sections if requested by the group.
Some topics can be further explored and more time can be spend on them on request.
The on-site training can be fine tuned to fulfill the group's specific needs. Do not hesitate to ask for specific subjects and/or problems to solve. The trainer has an extended experience in all the topics and can share his knowledge!
For participants convenience, the important parts of training - usually milestones that has to be completed for next exercises, are provided in a form of Docker containers (including the full build documentation).
Container can be executed and immediately used on participant's machine, or even in a cloud.
All aspects of Embedded Linux development are included and described thoroughly.
Hardware
We are utilizing virtualization technology to speed up development and separate ourselves from hardware failures but most hands-on exercises 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 long term versions and those provided with popular vendor BSPs.
Real-Time
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 micro-kernel based approaches: Xenomai and RTAI.
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): OpenWRT, OpenEmbedded, Debian/ARM, Fedora/ARM.
In-system programming
We are using QT and POSIX API 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-prone 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 user-space code. We focus on open-source solutions (GDB and its frontend).
During training, we will be using standard UNIX text editor as our development environment. Eclipse QT Creator and VSCode will be used for larger projects.
Some of our trainings are organized as a remote sessions (Google Meets or similar platform).
Remote training session can be organized as a on-demand training for your team!
Usually we have more dates available fot remote trainings than for stationary ones.
Moreover, the remote training can be split into multiple one-day sessions eg. every week, or even during weekend.
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 training facilities.
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.
A: No, we just need a formal commitment from you (a purchase order), no advance payment is required.
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 on time.
A: For best quality of training, we try to minimize number of participants in one session. Maximum 12 persons (laptops), typical: 4-8.
A: Sessions typically start at 9 A.M. and we will keep you busy until 5 P.M. 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.
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.
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 exercises.
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.
A: Materials, exercises and lectures are provided in English. Polish is also available on demand.
After the training you will receive Certificate of completion.
Your certificate can be added to your LinkedIn profile.
It encodes validation service link. You will be able to verify authenticity of your certificate.
Unique ID allows validation.
We do not gather any personal information.
You have to enter data manually. LinkedIn does not allow auto-filling.
All the information will be found on our site.
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:
Architectures:
ARM, MIPS, X86, other embedded solutions
Boards:
Atmel, NXP, TI, ST, Broadcom ... and many more
Variants:
Maybe your applications need accelerated 2D/3D graphics, specialized DSP or other similar IP-core?
Do not hesitate to: contact us