JeVois  1.20
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
Flashing to microSD card

Because JeVois-Pro runs a full Ubuntu operating system, with Debian package manager, re-flashing the microSD should be very rate and only if you have corrupted it badly.

On JeVois-A33, re-flashing is more common as it is the only way to update core software, since the JeVois-A33 operating system is barebones and does not have a package manager.

Procedure for JeVois-Pro

Procedure for JeVois-A33

When you run ./rebuild-platform.sh in jevois and ./rebuild-platform.sh --staging in jevoisbase, compiled files get installed into the staging area (see Organization of JeVois files on host and platform).

The last step to run them on the JeVois smart camera is to flash the whole Linux OS, kernel, JeVois framework (including jevois-daemon), and jevoisbase modules to microSD.

To do this, run

jevois-flash-card

and answer the questions interactively.

jevois-flash-card is instaled in /usr/bin/ when you install the JeVois Ubuntu packages or when you run jevois-build.sh to rebuild the entire buildroot from source. Its source is in jevois-sdk/jevois-build/jevois-flash-card.

Once you have done this a few times and you are confident that you know what you are doing, you can instruct jevois-flash-card to not ask any questions. Just be absolutely certain that you are using the right device for your SD card, so that you do not destroy your main hard drive because of a small typo:

jevois-flash-card -y /dev/sdX

where you replace /dev/sdX by the device that gets assigned to your microSD card. On some laptops, the device is called /dev/mmcblkX instead.

Note
If you do a lot of development that requires re-flashing (e.g., developing kernel code for JeVois), it may be worth investing in a super-fast microSD card. While it can take about 5 minutes to run jevois-flash-card with a regular class 10 microSD card, we have been able to get this time down to less than 40 seconds using 1800x, 1900x, or V30, V60, or V90, UHS-II microSD cards.

Re-flashing after some code update - full recompilation

cd ~/jevois && ./rebuild-platform.sh
cd ~/jevoisbase && ./rebuild-platform.sh --staging
cd ~/mymodule && ./rebuild-platform.sh --staging     # optional: for your own modules
jevois-flash-card -y /dev/sdX

Re-flashing after some code update - partial recompilation

cd ~/jevois/pbuild && make -j
cd ~/jevoisbase/pbuild && make -j
cd ~/mymodule && make -j     # optional: for your own modules
jevois-flash-card -y /dev/sdX

Pulling the latest from github and re-flashing - full recompilation

cd ~/jevois && git pull && ./rebuild-platform.sh
cd ~/jevoisbase && git pull && ./rebuild-platform.sh --staging
cd ~/mymodule && ./rebuild-platform.sh --staging     # optional: for your own modules
jevois-flash-card -y /dev/sdX

Pulling the latest from github and re-flashing - partial recompilation

cd ~/jevois && git pull && cd pbuild && make -j
cd ~/jevoisbase && git pull && cd pbuild && maje -j
cd ~/mymodule/pbuild && make -j     # optional: for your own modules
jevois-flash-card -y /dev/sdX

Updating a module directly to live microSD inside JeVois - full recompilation

With JeVois v1.3 or later, you can directly install your new modules to the microSD card inside JeVois, without having to eject the card and connect it to your host computer.

The JeVois smart camera should be connected to your host computer, booted up, and not streaming video.

cd ~/mymodule && ./rebuild-platform.sh --live
Note
This internally just uses jevois-usbsd start to tell JeVois to export its microSD as a virtual flash drive, then copies the module files, and finally issues a jevois-usbsd stop to eject the virtual flash drive and reboot JeVois. This assumes that the JeVois microSD will appear on your host as /media/username/JEVOIS/ where username is your Linux user name. You may want to confirm this by just typing jevois-usbsd start and then checking in /media where the virtual flash drive appeared.
Once you select a destination in ./rebuild-platform.sh (none, staging, or microsd), that will remain for subsequent make install commands, until you change it by re-running ./rebuild-platform.sh with another destination.

Updating a module directly to live microSD inside JeVois - partial recompilation

You must have done at least one ./rebuild-platform.sh --live which sets the live microSD inside JeVois as install target.

Make sure JeVois is connected, booted up, and not streaming video.

cd ~/mymodule/pbuild && make -j && sudo make install
Note
Once you select a destination in ./rebuild-platform.sh (none, staging, or microsd), that will remain for subsequent make install commands, until you change it by re-running ./rebuild-platform.sh with another destination.

Updating a module directly to microSD inserted into host - full recompilation

The microSD should either inserted into your host using some microSD flash reader, or already exported by JeVois using the usbsd command in the JeVois command-line interface (see Compiling JeVoisBase software from source and Command-line interface user guide), or the jevois-usbsd start command from any Linux terminal on your host.

It must be mounted and available under /media/username/JEVOIS/ where username is your Linux user name.

cd ~/mymodule && ./rebuild-platform.sh --microsd
Note
Once you select a destination in ./rebuild-platform.sh (none, staging, or microsd), that will remain for subsequent make install commands, until you change it by re-running ./rebuild-platform.sh with another destination.

Updating a module directly to microSD inserted into host - partial recompilation

The microSD should either inserted into your host using some microSD flash reader, or already exported by JeVois using the usbsd command in the JeVois command-line interface (see Compiling JeVoisBase software from source and Command-line interface user guide), or the jevois-usbsd start command from any Linux terminal on your host.

It must be mounted and available under /media/username/JEVOIS/ where username is your Linux user name.

You must have done at least one ./rebuild-platform.sh --microsd which sets the mounted microSD as install target.

cd ~/mymodule/pbuild && make -j && sudo make install
Note
Once you select a destination in ./rebuild-platform.sh (none, staging, or microsd), that will remain for subsequent make install commands, until you change it by re-running ./rebuild-platform.sh with another destination.