To access the site you need the the user code and password.

Enter the site

ARM-based Platforms and Projects
Smart Objects - Sensors, MCU nodes, and LoRa technologies
Teaching modules on mobile and autonomous platforms (English and French content)
ETN4, ETN5


Introduction

The technology industry and academia have entered a new cycle of technology innovation and growth, which we call Smart Computing. After the mainframe computing, personal computing, and network computing Smart Computing has emerged. Smart Computing provides low-cost, low power consumption and more human-like solutions to personal computing, multi-media and communication. Smart Computing makes use of open source software more effectively. Computing devices have become smaller, more mobile, and smarter.

SmartComputerLab.org (SCLab) is a computer science laboratory aiming at the development of smart computer systems and applications built on the newest technologies related to the ARM based SoCs and open source software.
Smart computer systems are high performance and low power consumption systems running under the control of the standard Linux OS. They are built with the most recent SoCs like Samsung Exynos series 5xxx, RockChip series RK32xx, Nvidia Tegra K1, Xilinx Zynq70xx, and many others. These SoCs integrate the data multiprocessing units and high-end graphic processors.

The use of standard packages and of the most advanced open source APIs and SDKs provide us with a complete set of tools to develop almost an unlimited range of smart applications going from the wearable servers to the high performance computing clusters including thousands of processing cores.

The wearable servers or IWAPs (Intelligent Wearable Access Point) run with less than 1W and provide the full Linux functionalities allowing for the deployment of a large range of wireless services for close users. On the other hand the clusters of credit size boards like Parallella or Tegra K1 SoCs offer the possibility of building smart super-computers.

Highly efficient multimedia systems may be developed rapidly on the base of the most recent SoCs like Exynos 5 Octa, Allwinner A80 or RK3288.
The smart boards are easily inter-connectable via Ethernet/WiFi and/or optic links including Ethernet switches and the smart routers based on the same boards equipped with multiple network interfaces.

On the software side, the open source graphic, the computer vision, and the streaming APIs (openGL, openCV, Gstreamer,..) provide us with multiple standard platforms for the development of multimedia systems.
High performance computing on smart systems may be easily provided via openMP, CUDA, openCL and openMPI software platforms. Under their control hundreds or thousands processing cores may be united to provide the high operational performance required for scientific and big-data processing.

OpenCL allows for the integration of heterogeneous processing units into one computing system including high-end ARM processors with Mali-T600/T700, specific RISC processors (e.g. Epiphany) and Nvidia/AMD GPUs. OpenCL also provides the interfaces for FPGA circuits (Altera/Xilinx) liberating the designer from the painstaking coding with VHDL or Verilog HDL.

This site offers the presentations of subjects and projects developed in our laboratory.
The projects are based on different development boards with different ARM SoCs and open source software.

Training - teaching modules on mobile and autonomous platforms

The smart teaching platforms for practical classes cover a large spectrum of advanced digital technologies.
They are built around the sets of most recent development boards, associated extensions and physical interfaces.
Each set contains a lapdock integrating the screen, the keyboard, the speakers, and the battery.
The lapdock may provide the power to the development board and has a 4 hour autonomy.
The whole platform for up to twelve teaching posts may be deployed in few minutes in any room equiped with simple tables and few electrical sockets.

Cick on image.

A mobile server (specific development board) with an LTE G3/G4 dongle, WiFi access point, SDD storage and associated high luminosity micro-projector provides a complete teaching post (teaching assistant).
The teachers may also use the wearable servers or IWAPs (Intelligent Wearable Access Point) to provide locally the teaching content to the students.

Attention: For the teaching modules we provide only the "synthetic" lectures that are the introductions and the guides to the best , video lectures from most renowned universities and companies.
For example the Computer Networks are taught by David Wetherall from University of Washington (Computer Networks), Parallel Programming is taught by Tim Mattson form Intel - Berkeley, NVIDIA, and so on ..

ETN4 Computer Networks

The Books (text and exercises):
Physical layer of Computer Networks
Computer Networks and Internet
The lectures in video - by David Wetherall from University of Washington

Attention:
The on-site lectures are organized by chapters as comments to the video lectures given by David Wetherall.
The video lectures are available directly on YouTube and on the mobile server associated to the traning platform.

From here you may download the complete teaching support including the books, the exercises, and the programming codes.

Below you see the complete Computer Network teaching platform (not including lapdocs).

Click on image

The presentations for (ETN5) - ME2, M1 and M4:

Virtual Components - Reuse and Integration

ME2: lecture 1 - Reuse-Integration and ARM business model
ME2: lecture 2 - Reuse-Integration VHDL and Verilog for modeling for reuse

Multimedia Internet on ARM-based systems

M1: lecture 1 - Internet protocols
M1: lecture 2 - Internet multimedia protocols
M1: lecture 3 - Gstreamer and multimedia streaming
M1: exercises 1 - Timing delays on Internet
M1: exercises 2 - Multimedia flows and RTP protocol
M1: exercises 3 - Using GStreamer
M1: the book - Multimedia Internet - the book

M1: practical classes 1 - Introduction to GStreamer and Linux Media I/O
M1: practical classes 2 - Simple media streaming with GStreamer
M1: practical classes 3 - Complex media streaming with GStreamer
M1: Mini Project - Application development and programming with GStreamer

IoT architectures - component based approach

M1- IoT : Presentation 1 - Internet of Things - presentation 1
M1- IoT : Presentation 2 - Internet of Things - presentation 2
M1- IoT : Presentation 2 - code - Internet of Things - presentation 2
M1- IoT : the guide to practical classes - Internet of Things - the guide
M1- IoT : IoT book content - Internet of Things - the book content
M1- IoT : the book - Internet of Things - the book

Multi- and Many-core parallel programming on ARM_based systems including ARM Cortex-15 MPCore and Tegra K1

M4: lecture 1 - Parallel Processing/Programming on ARM-based systems
M4: lecture 2 - The GPU architecture and CUDA programming on ARM-based system
M4: exercises 1 - Performance architecture - exercises
M4: exercises 2 - Multi- and many-core parallel programming on Tegra K1
M4: the book - The Book on the Parrallel Programming on Multi- and Many-core ARM-based system
M4: the lectures in video - The lectures on OpenMP by Tim Mattson from Intel

Click on image.

Platforms and projects

The study subjects and the projects include:
- Embedded Linux system development (mainly based on Linaro and Ubuntu)
- Embedded Computer Networking including wired and wireless implementations
- Embedded Internet Multimedia based on open standards and GStreamer
- Embedded Parallel Programming on multi-cores and many-cores including CUDA (Tegra K1) and openCL (MALI-T628)
- Embedded Codesign with Linux and Spartan 6 FPGA on LOGI-Pi (Raspberry PI 2 with FPGA development and EDU cards)
- Smart Objects - based on smart boards with sensors and radio interfaces

link to polytech2go
The development platforms used in our laboratory include several versions of ARM and ARM based SoCs:

ARMv6 - BroadcoM1835: Raspberry-Pi and Odroid-W
ARMv7
  Cortex-A8:
    Allwinner-A10: Cubieboard, Marsboard, PCduino,..
  Cortex-A7(*2):
    Allwinner-A20: Cubieboard, CubieTruck, Banana-Pi ,Marsboard, ..
  Cortex-A9(*4):
    Exynos4412: Odroid-X2,Odroid-U2/U3, ..
    RK3128: Radxa-Rock, Rikomagic RK802IV, ..
  Cortex-A9(*2)+Epiphany(*16) - Zynq7010:
    Parallella,..
  Cortex-A15(*4)+Cortex-A7(*4):
    Exynos5420: Odroid-XU
  Cortex-A15(*4)+CUDA(*192):
    Jetson-Nvidia Tegra K1,..

ARMv8 - 64-bit architecture
  Cortex-A53 (*8)
    HiKey - 96Board
    GeekBox

All boards operate under the control of Linux (kernels: 3.6.. to 3.16..) that are completed by root file systems and different desktop environments like Xubuntu, Lubuntu Unity-Ubuntu.
In this context we use different kernel and roootfs building tools, such as cross-compilers, based on the source codes provided for specific SoCs and boards.

Different kinds of extension cards with analog interfaces (ADC,DAC,..) are available for Raspberry-Pi and Odroid platforms.

The deployable network components include:
  - Ethernet links, Ethernet to fiber optic converters and fiber optic links, Ethernet switches,
  - WIFi - Intelligent Access Points (Odroid-X2,XU),
  - Intelligent Routers (Odroid-X2),..
  - GSM micro-boards, SDR boards, ..

A few examples of projects:
   (1) Intelligent Personal Access Point (ipap) - Personal server: Odroid-X2,U3,..
   (2) Intelligent Wearable Access Point (iwap) - Wearable server: Odroid-W,..
   (3) OpenMPI cluster for audio streaming: 4*Odroid-U3,..
   (4) OpenMPI cluster for video streaming: 4*Odroid-XU3, ..
   (5) Embedded face detection and recognition: Odroid-XU3/XU4, ..
   (6) Embedded real time body detection: Nvidia Tegra-K1, ..
   (7) 3D video streaming: Nvidia Tegra-K1,..
   (8) Graphic game development with embedded openGL and hardware acceleration (ARM-Mali): Odroid-XU3/XU4,..
   (9) Advanced Embedded graphic processing on Nvidia Tegra-K1 with openCV, openGL and GStreamer
  (10) Image processing with openCV and GPU acceleration: Nvidia Tegra-K1,..
  (11) Embedded VoIP PABX: Odroid-U3,..
  (12) Pocket speech (speech recognition) and control on Embedded Systems.
  (13) Remote house control with SMS control messaging: SIM800/9000 micro-boards + RPI-2 or Odroid-U3,..
  (14) House control - analog signals: Raspberry-Pi + Gertboard,..
  (15) Intelligent embedded router: Odroid-U3,..
  (16) Parallel processing with OpenMP on Parallela (ARM - Cortex9 plus Epiphany 16-core processor),..
  (17) Software Defined Radio - GNU openSDR: SDR kit + Odroid-U3 or Radxa Rock,..
  (18) Real Time Embedded Linux-RK: Odroid-U3,..
  (19) Embedded Codesign for game development with RPI-2 and LOGI-Pi - Logi-EDU cards (VHDL, Verilog HDL),..
  (20) Embedded Parallel Processing with OpenMP on Cortex-A53 64-bit octa-processor,..
  (21) A number of Internet of Things (IoT) projects with sensors and radio links to Smart cards,..
and many others, ..

Smart Objects

A Smart Object is an object that enhances the interaction with not only people but also with other Smart Objects.
It can not only refer to interaction with physical world objects but also to interaction with virtual (smart computing environment) objects.
In our context a smart physical object has an embedded processor with physical interfaces to work with sensors and communication links (mainly radio links).
Smart Objects are the essential components of the Internet of Things .

In our laboratory we develop Smart Objects based on ESP8266 boards.
The ESP8266 is a micro-controller from Chinese manufacturer Espressif that includes Wi-Fi capability.
This small board allows the integrated micro-controller to connect to a Wi-Fi network in station and/or access point mode and provides the complete stack of Internet Protocols allowing us to build client-server application with WEB server and many more.

ESP8266 uses the Cadence Tensilica LX106 micro-controller and the GCC toolchain.
It may be also programmed using Arduino IDE with a rich set of functionalities.

Since 2015 we have developed a number of projects based on Arduino (AVR) and ESP8266 boards.
With these projects we use many physical sensors and additional radio interfaces and we created the networks with several ESP8266 communicating with different Internet protocols and
using different communication modes.

ESP8266 based boards as well as a number of Arduino (AVR) compatible boards are the base for practical classes of the IoT module. In IoT module we are studying several connection and communication technologies including LoRa (Long Range WAN). We have developed several simple LoRa terminals and gateways running on Arduino, ESP (Wemos D1), and Raspberry Pi 3.
These LoRa devices are extensively used in our exercises and projects providing complete IoT architectures.
Click on image.

A complete teaching module is prepared to teach the students the design, the programming and the deployment of smart objects and smart networks.
For more details contact us at: bako@ieee.org send mail or
przemyslaw.bakowski@univ-nantes.fr send mail

You can also download (to your Kindle) the study and exercise texts:
A Practical Introduction to Parallel Programming on multi-core and many-core Embedded Systems
A Practical Introduction to Multimedia Internet on Raspberry-Pi-Odroid-U3

Attention: To access the site you need the the user code and password.

Enter the site