Welcome to Open Source Embedded Systems

This support provides the preparations for teaching and developing low cost computing systems based on ARM technologies.

The preparations and labolatories deal with ARM architecture and are based on Raspberry Pi platform. Raspberry Pi platform allows us the development of mixed hardware-software systems based on ARMv6 architecture and open source software.
Raspberry Pi is driven by a number of operating systems compatible with ARMv6 architecture. This includes several LINUX distributions such as: Debian ("wheezy"), Raspbian, RiscOS, and many others.
More specific distributions implement target applications such as: Xbmc (multimedia)) or Asterisk (IP PBX), ..

Introduction to Raspberry-Pi

Applications on Raspbian:
  - omxplayer (video player compatible with GPU - (VideoCore IV)
  - geany (programming platform for C, Python and Java)
  - openCV (Computer Vision programming interfaces)
  - openGL, openVG, openMAX (direct GPU programming)

Services:
  - ssh (secure shell: port 22)
  - ftp (file transfer: port 21))
  - scp (secure distant copy)
  - lighttpd (light Web server:80)
  - mjpg-streamer (webcam streamer: 8080)
  - hostapd (soft Access Point)


Lectures and Labs - each module contains one lecture (1.5 hours) and one lab (3 hours)


1. Embedded open source system programming with C language
This module teaches how to program and exploit system resources (IOs, files, processes,threads, IPC, ..)


2. Embedded open source network programming with C language
This module shows how to program with "socket" interface. The programming classes includes the use of RAW sockets and SSL sockets.


3. Embedded Java programming
This module teaches how to program Java applications on open source embedded Java platform (compiler and virtual machine).


4. Embedded open source multimedia networks
In this module we teach how to configure and program network applications for multimedia streaming using video/audio sources.
This lab is based on 6 RPi with Webcam, one switch and 6 traditional PC (FR)

5. Embedded open source multimedia programming
This module teaches how to use openCV programming interface to read/create and transform images and video clips.


6. Embedded open source graphic programming
This module teaches how to use openGL, openVG, openMAX to create images and animations directly on GPU circuit.


7. Embedded open source communication services
In this module we show how to exploit wired and wireless communication interfaces and how to build services on these facilities.


8. Open source hardware and physical programming
Physical programming deals with open source hardware interfaces and extensions available on Raspberry Pi. It includes the introduction of real time processing and control of external devices through GPIO and associated protocols. The development/programming is also based on additional circuits (ADCs,DACs,..) and extension boards (e.g.Gerthboard)