Skip to content
EyesOfThings edited this page Mar 1, 2017 · 100 revisions

Index

  1. Overview

  2. Myriad

    1. Libraries

    2. Applications

    3. Unittests

  3. Desktop

    1. Libraries

    2. Applications

    3. Unittests

  4. Documents

    1. MQTT API
  5. Android

    1. Applications

Overview

Welcome to the software wiki of "Eyes of Things", an international project focused on building an open embedded computer vision platform. See more information about EoT in the website.

After more than a year of development we are gradually migrating to this public repository. Expect more software in the upcoming weeks. We are doing likewise with the hardware boards.

The repository is essentially organized according to platform. 'Myriad' is the platform used by EoT. There are also folders for Android and desktop platforms.

Unless stated otherwise, this code is released under the MIT License.

We encourage you to contribute (e.g. new features, bug fixes, a great idea, etc.) to the project. All contributions are welcome and greatly appreciated!

Myriad

Libraries

OpenCV

OpenCV is a widely-used computer vision library with thousands of functions. OpenCV 1.0 has been ported to the EoT board. Additionally, functionality has been added so that later OpenCV versions can be executed in an external server.

Read more

libccv

libccv is a minimalist open-source computer vision library for embedded devices. It has been ported to the EoT board with some limitations.

Read more

Quirc

Quirc is a library for extracting and decoding QR codes from images. It is fast enough to be used with real time video.

Read more

Crypto

Crypto is a library for file system encryption. It uses the symmetric key block cipher algorithm "Advanced Encryption Standard" (AES) with the Counter Mode (CTR) in order to provide data confidentiality. The cryptographic functionality is applied on the file system in the SD card (see SDCardIO).

It is used in:

  • OpenCV Examples
  • libccv Examples

SDCardIO

SDCardIO is a library for file system management. It is used to develop applications that interact with the SD card in the EoT board.

Read more

cblas

cblas is a combination of CBLAS and CLAPACK libraries ported to the Myriad 2 SoC.

It is used in:

  • libccv

Read more on cblas/README.md

embUnit

Embedded Unit is unit testing framework for Embedded C System.

It is used in:

  • crypto unittests
  • sdcard unittests

Read more on embUnit/readme_en.txt

libpng

libpng is the official PNG reference library ported to the Myriad 2 SoC. It supports almost all PNG features, is extensible, and has been extensively tested for over 20 years.

It is used in:

  • OpenCV
  • libccv
  • Quirc examples

Read more on libpng/README.md

zlib

zlib is a general purpose data compression library ported to the Myriad 2 SoC. All the code is thread safe. The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952.

It is used in:

  • OpenCV
  • libccv
  • libpng

Read more on zlib/README.md

Audio

Audio library provides functions for playing and recording audio in the Myriad 2.

Read more

HistogramMatching

HistogramMatching library provides functions to:

  • Convert images into different colour spaces.
  • Compute colour histograms.
  • Compute histogram matching scores.

Read more

timeFunctions

timeFunctions library provides common time functions.

ElfLoader

ElfLoader library provides functionality to load ELF files from the flash into the memory (ELF files are the binary application files).

FlashIO

FlashIO library provides functions for read/write file access from/to the EoT Flash-EEPROM. It provides a minimal filesystem for the flash memory to manage the placement and retrieval of the individual applications (bootloader, control mode and user apps) in the EoT flash memory.

WifiFunctions

WiFiFunctions library provides common wifi functions such as handling WLAN events, generating an Access Point or changing the operation mode of the device.

Read more

JsonParser

JsonParser library provides structures for JSON parsing using only fixed-extent memory. This implementation is based on MircoJSON 1.3, which can be found unmodified here.

Applications

OpenCV Examples

This application runs several examples using the OpenCV library.

See a demo video here

Read more

libccv Examples

This application runs several examples using the libccv library.

Read more

Quirc Examples

This application runs several examples using the Quirc library.

See a demo video here

Read more

sdcard Example

This application runs an example using the SDCardIO library.

audio Example

This application runs an example using the Audio library.

HistogramMatching Example

This application runs an example using the HistogramMatching library.

Controller Example

This application runs an example using the following libraries:

  • FlashIO
  • Crypto
  • SDCardIO

WiFi Examples

This application runs several examples using the WiFi library.

Read more

Pulga Control Application

This application is the proposed tiny MQTT broker implementation for EoT devices.

Read more

MicroPython

This application implements a MicroPython interpreter using the MQTT_API on myriad site.

Read more

MicroPython Examples

This application runs several commands using MicroPython port for Myriad 2.

Read more

JsonParser Example

This application runs an example using the JsonParser library.

Unittests

crypto

This application runs several tests using the Crypto library.

sdcard

This application runs several tests using the SDCardIO library.

Read more

HistogramMatching

This application runs several tests using the HistogramMatching library.

timeFunctions

This application runs several tests using the timeFunctions library.

flash

This application runs several tests using the FlashIO library.

flash rtems

This application runs several tests using the FlashIO library with RTEMS components.

wifiFunctions unittests

This application runs several tests using the WiFiFunctions library.

Read more

Desktop

Libraries

Paho

Paho Java Client is an MQTT client library written in Java for developing applications that runs on the Java Virtual Machine, JVM. Moreover, it can be used under Android through the Paho Android Service.

Read more

Applications

EoT control mode java

This is an example application that connects and interacts with the EoT control mode (pulga_control_app). It provides a way to use the basic device access and configuration functionalities available in that mode. Communication is done through a specific API used via MQTT messages.

Read more

EoT python desktop

This application runs several examples using MicroPython application and EoT control mode java application.

Read more

Unittests

pulga

This application runs several tests using the Pulga Control Application.

Read more

Documents

MQTT API

This document shows useful information about MQTT commands.

Read more

Android

Applications

Control Application

This is an example application that connects and interacts with the EoT control mode (pulga_control_app). It provides a way to use the basic device access and configuration functionalities available in that mode. Communication is done through a specific API used via MQTT messages.

Read more

Google Play Skeleton Application

This is an example application that uploads an executable file to the Myriad 2. It uses Pulga.

Read more

Clone this wiki locally