IoT and Embedded Systems Program
AFRALTI presents the IoT and Embedded Systems Program under the auspices of its OpenSource and Embedded Systems (OSES) Lab Initiative. This is an IoT-centric program.
At the heart of this program lies the IoT Maker/Manager course.
For the IoT Business Manager, the course is delivered in the context of an informative workshop with use case demos and prototype showcasing. No serious technical background is required.
For the IoT Maker, the course is delivered in a hands-on fashion with a focus on practical solutions which harness Free Libre and Open Source Software (FLOSS) infrastructure as well as commodity hardware platforms – specifically, the Embedded GNU/Linux ecosystem and generic computing devices such as the Raspberry Pi and Arduino micro-controller family. A number of auxiliary course units have also been developed to familiarize the IoT application developer with this underlying FLOSS S/W and commodity H/W infrastructure:
- Bridging Program
This program is structured for the beginner in Embedded GNU/Linux, Arduino, Coding and Programming, and Web technologies. These are the prerequisite course units for the IoT maker course.
- Embedded GNU/Linux Program
Included in this program is a series of highly technical courses on S/W development at the OS level. Application development at this level often requires fairly detailed and extensive knowledge of the underlying system’s S/W and H/W architecture. This program is the next logical step for those who have completed the IoT maker course. These courses are also intended for other advanced technical audiences, e.g. the R&D Engineer or Applied Scientist seeking to harness the Embedded GNU/Linux platform as alternative infrastructure for scientific instrumentation.
Depending on the scope and depth of the discussion, the target demographic or interested parties will range from R&D Engineers, to Business Managers, to High School Students
IoT Maker/Manager Course
This course discusses the core concepts and elements of IoT along with emerging trends such as IoT Edge Computing and the Application of AI.
- IoT Communication Protocols:
- M2M service layer implementations and APIs
- Web-based messaging for M2M
- IoT Transports and Wireless Sensor Networks (WSN):
- WiFi, Cellular, Bluetooth, ZigBee, LoRaWAN, NFC, RFID, etc
- IoT Device Managment and common 3rd party Cloud platforms
- GNU/Linux based technologies for Media Streaming and Realtime Communications
These are the prerequisite course units for the IoT Maker under the OSES Lab Program.
- Introduction to Programming/Coding: Principles, Languages, Environments
- Platform Programming:
- C++ (Arduino)
- Python (Raspberry Pi)
- C (Linux Systems-level)
- Web Technologies:
- RESTful Web Services
- Web Protocols: HTTP and WebSockets
- Introduction to GNU/Linux
- UNIX Command Line Interface (CLI)
- Basic system administration including Linux Filesystem Hierarchy Standard (FHS), network interface configuration, starting/stopping system services, GNU/Linux Distribution install, etc
- Introduction to Physical Computing and Electronics Interfacing
- Single Board Computers e.g. Raspberry Pi, BeagleBone
- Micro-controller families e.g. Arduino, ESP8266
Embedded GNU/Linux Program
The audience must already posses a good command of the UNIX CLI and Basic GNU/Linux System Administration. A decent proficiency in the C programming language is required for Linux Systems Programming and Linux Kernel Development.
- Linux Systems Programming
- System calls and Library functions
- UNIX Universal File I/O model
- IPC: Pipes/FIFOs, Message Queues, Shared Memory, Sockets
- Multitasking and Concurrent Programming: Threads, I/O models (signals and events), Inter-Process synchronization (Semaphores and Mutual exclusion), Timers and Sleeping, etc
- Virtual Memory Management: Dynamic memory allocation, Memory mappings, Memory locking
- Realtime Linux Variants
- Linux Audio: ALSA API
- Linux video: Video for Linux (V4L2) API
- Embedded System Architectures, The Linux Perspective
- Boot loaders and Device Trees
- GNU/Linux Toolchain, Instruction Set Architectures (ISA) and Application Binary Interfaces (ABI)
- Linux FileSystem Interfaces for GPIO, I2C, SPI, UART, 1wire
- Linux Kernel Development and Device Drivers: file operations, interrupt handling API, synchronization primitives API, memory mapping API, DMA API, etc
- Sotfware Development Tools and Build Systems
- Cross-Toolchain usage and Toolchain build platforms e.g. Crosstool-NG
- Embedded GNU/Linux Build Systems e.g. Buildroot
- Software Build systems: GNU Make and Autotools, CMake, Ninja build system
- Software Version Control: Git
For more information, please contact us on
Tel: +254 710 207 061, +254 733 444 421