JeVois Tutorials  1.15
JeVois Smart Embedded Machine Vision Tutorials
Share this page:
Setting up for programming JeVois

This tutorial will help you get setup for programming JeVois.

If all you want to do is use existing bundled machine vision algorithms, and possibly develop new modules in Python only, then simply get and flash a microSD image from http://jevois.org/start and check out:

The programming environment is Ubuntu 64-bit, version 20.04 (focal) or 18.04 (bionic). Support for 16.04 LTS (xenial) has ended as of JeVois v1.12.0 as it is becoming increasingly difficult to compile recent code (e.g., OpenCV 4.0.1) on this older Ubuntu release.

As of JeVois v1.15.0 the official JeVois development platform is Ubuntu 20.04 (focal).

It is generally ok to setup the programming environment in a virtual machine (e.g., VirtualBox). Just beware that you may have to resolve issues having to do with granting proper access to either the video camera or the microSD card to the virtual machine. See Using Virtualbox to setup jevois-sdk in a virtual machine and Using the pre-installed jevois-sdk VirtualBox for development for more info.

The video above gets you through the steps of:

  • installing Ubuntu 18.04 (bionic) on VirtualBox; steps are similar for newer Ubuntu 20.04.
  • installing the jevois ubuntu (.deb) packages
  • installing jevois-inventor and trying it out
  • getting the latest jevois source code from github
  • compiling that source code, both for host (your Intel computer) and platform (the ARM CPU inside JeVois)
  • flashing the freshly compiled code to microSD

Choose your approach depending on your goals

Not all the steps shown in the video above may be required, depending on your goals.

A quick overview of the JeVois software development packages (see JeVois Ubuntu packages and source code repositories for more details):

  • jevois-opencv: OpenCV 4.4.0 compiled for host computer with settings that match those used by the JeVois platform hardware. We install this package into /usr/share/jevois-opencv-4.4.0 so that it will not interfere with any other OpenCV install you might have on your host system and that might be required by some other software.
  • jevois-host: JeVois core software compiled for execution on a host computer
  • jevois-platform: JeVois core software cross-compiled for execution on the JeVois platform hardware
  • jevoisbase-host: JeVois base modules compiled for execution on a host computer
  • jevoisbase-platform: JeVois base modules cross-compiled for execution on the JeVois platform hardware
  • jevois-sdk: Compiled bootloaders, root filesystem, and other config files.
  • jevois-sdk-dev: Compiled cross-compilers and cross-compiled libraries for the JeVois platform architecture.

Keeping that in mind:

  • If you just want to compile a new module: You do not need to re-compile jevois and jevoisbase, just use the pre-compiled versions provided by the JeVois Ubuntu packages. You only need to:
    • Install Ubuntu package jevois-sdk-dev
    • Either get samplemodule from github as a starting point for your source code, or use script jevois-create-module provided by jevois-sdk-dev to create a new module from scratch.
    • Compile your module using rebuild-host.sh and rebuild-platform.sh scripts that are in your module's directory.
  • If you want to update to the latest jevois and jevoisbase, and possibly modify them, then make new machine vision modules:
    • Follow all the steps in the above video (also further explained below), precisely and in order.
    • Make sure you update from github and compile both jevois and jevoisbase, and in this order (first jevois, then jevoisbase).
  • If you want to hack the Linux kernel that runs on JeVois or add software to its operating system:
    • This only recommended for advanced programmers! Kernel hacking knowledge and buildroot workflow knowledge required.
    • Download and installation instructions are in the INSTALL file of the jevois repository.

Upgrading the Debian packages

Skip to the next section if installing the JeVois Debian packages for the first time.

  • When upgrading to a new version of JeVois, we recommend deleting all previous generated files and rebuilding both /jevois for host and the staging area for platform in /var/lib/jevois-build and /var/lib/jevois-microsd as follows:
sudo apt purge jevois-sdk-dev jevois-sdk jevoisbase-platform jevoisbase-host jevois-platform jevois-host jevois-opencv
sudo rm -rf /jevois /var/lib/jevois-build /var/lib/jevois-microsd
  • Then re-install as detailed below.
  • To get out of Debian dependency hell:

    If something went wrong during a previous installation of VeVois packages (e.g., interrupted by user, power failure, etc), you may have entered Debian dependency hell, where you cannot install packages anymore because of broken dependencies or pending installs. Try this:

sudo apt -f install
sudo apt purge jevois-sdk-dev jevois-sdk jevoisbase-platform jevoisbase-host jevois-platform jevois-host jevois-opencv
dpkg --remove jevois-sdk-dev jevois-sdk jevoisbase-platform jevoisbase-host jevois-platform jevois-host jevois-opencv

You should end up in a state where dpkg --list | grep jevois returns no hits and sudo apt -f update has nothing to update. Then try again from the beginning.

Installing Debian packages the first time

Getting the latest source code from GitHub

You only need to do this if you want to update to the latest version of JeVois from github. If you just want to create your own machine vision module, all you need is to install jevois-sdk-dev as explained above. The use script jevois-create-module to create a new module. See how we do it in the Hello JeVois tutorial.

cd
git clone https://github.com/jevois/jevois.git
git clone https://github.com/jevois/jevoisbase.git
git clone https://github.com/jevois/jevois-sdk.git
git clone https://github.com/jevois/samplemodule.git
git clone https://github.com/jevois/samplepythonmodule.git
git clone https://github.com/jevois/jevois-tutorials.git
git clone https://github.com/jevois/jevoisextra.git
Note
If upgrading, cd to each directory instead and run a git pull command to bring your copy up to date with the master repository.

Before compiling for the first time: Getting the contributed packages

This step is automatic as of JeVois v1.5 and can be skipped for that version and later.

The directory jevoisbase/Contrib is for a collection of contributed source code packages.

Before you attempt to compile jevoisbase the first time, you should download and patch those contributed packages, as follows:

cd ~/jevoisbase/Contrib
./reinstall.sh

Compiling JeVois, JeVoisBase, samplemodule

Note
If you recompile jevois and jevoisbase from the latest version from GitHub, then you should also flash those versions to microSD before you proceed with compiling and installing your own modules to microSD. Otherwise, you may end up with older versions of jevois and jevoisbase on your microSD (if it was installed from a microSD image from http://jevois.org/start) which may not work with your new module compiled against the latest version of jevois from GitHub. See Flashing to microSD card for details, especially the section: Pulling the latest from github and re-flashing - full recompilation.