We do not store any customer's credit card information in any form. Credit card transactions are performed using a gateway API to the card processor company without recording the information anywhere in our system.

If you create a login on the ImageCraft webshops (http://imagecraft.com or http://canusb-shop.com) or ImageCraft forums, the account data you enter is stored only on our local server in the USA or on the forum server. No data is ever stored on a cloud server such as AWS. Only the data you enter is stored, and we do not correlate the data you enter with any other information source. All data is stored in password-protected databases.

We do not share or sell your information to anyone else. No one other than ImageCraft has access to the data you give us. We may occasionally send you an email regarding our company and new product developments.

We have never had a data breach.

From a customer:

btw, I used to have -well, still have somewhere-, a license for ICCAVR6, which I used extensively for similar projects for experiments at CERN; your tools have played their part in the discovery of the Higgs boson, no kidding cool


JumpStart C/C++ for Cortex with GCC Compiler

NOTE: you can write pure C programs with this product as well.

ImageCraft’s new release (“V9”) of the JumpStart compiler addresses one of the most glaring problems with JumpStart C for Cortex-M (”V8”): how do we ensure that we can build all the third party and open source stacks, as well as examples both from silicon vendors and those found on the web? The solution is obvious: we are moving to adopt GCC as the underlying compiler in the new JumpStart C++ for Cortex product. With GCC’s dominance in the Linux and other Open Source projects, GCC is now the standard third party compiler that most (if not all) silicon vendors support in their example and library releases.

From our users’ point of view, ImageCraft’s core competencies have not changed:

  1. Support: ImageCraft has been in business supporting embedded development since 1994. Our customer base ranges from consulting engineers, to Fortune 500 companies, and to professors teaching classes at institutes of higher education. ImageCraft understands the importance of products that work “out of the box”; and when customers have an issue or questions, timely support is of utmost importance. These do not change, regardless of the compiler choice.

  2. Professional features: the IDE (Integrated Development Environment) has all the features you would expect: a code-aware editor, code browsing, workspace and project management with multiple-target support, plus compiler and debugging integration.

    In addition, unlike IDEs written in Java or other slower languages, CodeBlocks is quick to start, as it is written natively in GCC itself.

  3. Ease of use: we have fine-tuned and continue to enhance the CodeBlocks IDE to offer user-friendly features, such as generating the compiler/linker commands automatically by allowing a user to select the target device by name.

    In addition, ImageCraft’s JumpStart API (JSAPI) makes it easy to program the MCU’s peripherals at a functional level, rather than the tedium of manipulating the MCU’s I/O register level.

  4. World-class debugging: integrated with the IDE, our from-the-ground-up visual debugger JDB works with industry standard backends and debug pods. Features such as I/O register view, instruction trace etc. are highly valuable in difficult debugging situations.

  5. Sensible licensing policy and pricing: commercial embedded tools tend to be expensive. Indeed, ImageCraft pioneered the concept of “low cost professional embedded tools” back in 1994, with a professional high-quality $100 HC11 compiler. Unlike companies which still charge $7000+ for the initial license and $1000+ for annual support maintenance, our prices have remained significantly less than that.

  6. NO Single Vendor Lock-in: it is common for a silicon vendor provide their own IDE or GUI tools, targeting (of course) only their own MCU offerings. Nowadays it is also common for a silicon vendor to buy a third party compiler vendor company, and then release the vendor’s previous commercial IDE tool “for free”, again, for the vendor’s own products.

    This may sound appealing to end users, except that any support which that compiler originally provided for other silicon vendors’ products would most likely disappear in future releases.

Download the 45-day fully functional demo here!

Third Party Libraries

And now, with adopting GCC, we are adding one more major feature: the ability to use all the open source libraries and the third party stacks provided by the silicon vendors. We will implement simple-to-use-and-install schemes for downloading and building popular third party stacks, so that the users do not have to collect bits and pieces from all over the place. In addition, JumpStart C++ can import projects created by ST’s graphical CubeMX tools. We expect to support other vendors’ GUI tools in a similar fashion.

C Support Is Still Here

Of course, moving to C++ is a major step. Fortunately, GCC supports pure C, including the ISO C99 Standard and the 0x Standard, and since JumpStart C for Cortex-M (“V8”) uses our Standard C90/C99 compiler, your source code can be recompiled with minimal effort. We even include a V8 project importer command in the V9 IDE, so that you can convert your existing projects effortlessly. You can continue to write entirely in C if you wish.

Optionally, you can start with the simplest but most useful C++ enhancements such as objects for encapsulation, variable length array, literal structures etc. that are helpful for simplifying your C code, without using the more complex aspects of C++.


Major Features of JumpStart C++ Tools

  • Professional IDE with workspace/project management, syntax aware features, code browsing etc.
  • Import CubeMX projects.
  • No need to write linker command files. Select target device by name and our tools do the rest.
  • Full set of GCC compiler tools including C compiler, assembler, linker and library file manager. Industry compatibility and industry leading performance.
  • Native visual debugger, integrated with the IDE.
  • Seamless integration with Segger JLINK, SAM-ICE, and ST-LINK/V2 debug pods.
  • Support Cortex-M0, Cortex-M3, M4, and M7 series from all major vendors.
  • Easy to use JumpStart API. Get started in Cortex-M programming in minutes, not days or months.
  • Built-in flash downloader.

JumpStart C++ for Cortex Come in Two Different Editions

  • STD (Standard) - for basic commercial development. 
  • NC (Non-Commercial) - for students and hobbyists. Non-commercial use only.

More comments from a customer Patrick Cowan:

Your business model is awesome, and I think it has huge potential to sell your software by making it very easy to use and basically idiot-proof. I don't know much about software, but I was able to learn how to use an Arduino fairly easily. The idea of your software being that same level of simple/easy, but working on other processors is very appealing. In fact we found your company existed because I told [my partner] that someone HAD TO be making software like this. After doing some google searching we found you guys! 

CodeBlocks IDE

ImageCraft enhanced the Open Source CodeBlocks IDE to add user friendly features such as selecting target device via point-and-click, instead of writing complicated linker files. We integrated it with our own JumpStart Debugger including the ability to see the MCU's IO register content. More information and screenshots here.

JumpStart Debugger

The integrated debugger is described here. It requires a separate license purchase to enable all of its features.


Purchase Online

REXIS (Real-time EXecutive for Intelligent Systems) is a message passing executive kernel. Its main features are:

  1. Round robin priority based preemptive scheduling, providing fast real-time performance.
  2. Message passing primitives provide synchronizing and interprocess communication capabilities, minimizing the problem with asynchronous events and data copying.
  3. Mutex for exclusive resource access.
  4. Both message passing and mutex use priority inheritance to prevent deadlocks due to priority inversion.
  5. Efficient use of Cortex MCU resources. Kernel functions run in handler mode with the system stack, and tasks run in thread/user mode with each task having its own process stack.
  6. Includes memory allocator with resource automatically tracked by the executive, and allocated resource can be reclaimed via a single kernel call.
  7. Kernel calls done with SVC instructions.

More information will be available shortly. The API is documented here: 

REXIS API in browseable Doxygen format V0.10 2018/4/11 available here.

You can download Smart.IO related software here. Be sure to read the documentation here.

Software from ImageCraft

Smart.IO firmware upgrade instructions can be found on this page.

There are two methods to find the version number of your Smart.IO hardware:

  1. Connect to Smart.IO hardware and run the Smart.IO app, click on the system menu (the gear icon on the upper right), then click "About Us". If the firmware version is lower than the one in the table, email us at This email address is being protected from spambots. You need JavaScript enabled to view it. and we will send you the download instructions to download the latest firmware.
  2. Connect the UART port of the Smart.IO to a terminal programming running at 9600 baud (see Hardware Integration Guide here for details) and reset the module. The version will be displayed as part of the initialization message.

When searching for the Smart.IO app, use the terms "ImageCraft Smart.IO" and look for this logo:


NOTE: the Host Interface Layer now includes a port to JumpStart C++ (V9) using generic ST "low level" driver code generated by using ST CubeMX. A port using the older SPL (Standard Peripheral Library) or HAL can be made easily using this as reference.

Software Version
Smart.IO firmware (email This email address is being protected from spambots. You need JavaScript enabled to view it. to request download link) 1.02
Smart.IO iOS App at the Apple App Store
auto-update from iOS App store
Smart.IO Android App at the Google Play Store

auto-update from Google Play store

Host Interface Layer source plus demo program source (.zip archive)

ST32F4x1 reference port using

  • JumpStart C++ (V9) for Cortex using ST's LL (low level) library
  • JumpStart C (V8) for Cortex-M using JumpStart API 

AVR Mega328P port using JumpStart C for AVR



Software from ST st.com

Smart.IO uses the BlueNRG1 Bluetooth SoC. You need one of the following pieces of software to update the Smart.IO firmware. See instructions here. If a ST software link no longer works, please email us at This email address is being protected from spambots. You need JavaScript enabled to view it.m. A web search with relevant terms (e.g. "BlieNRG1 ST-LINK") should provide the proper links.

  • BlueNRG1 ST-LINK Utility requires the ST-LINK JTAG/SWD debug pod. Current version 1.0.0 as of 2017/08/30. Provides faster download if you already own the debug pod. NOTE: normal ST-LINK utility does not work with the BlueNRG1.
  • BlueNRG1 DK (development kit) software. Current version 2.50 as of 2017/08/30. In particular, you can use the BlueNRG1 flasher to update the Smart.IO firmware with just a serial connection (e.g. a FTDI based USB to serial cable, or the FTDI based connector in the Smart.IO Arduino shield).

 If you are using the ST-Nucleo as evaluation platform, you need the ST-LINK utility to program the boards. As mentioned, you must use the BlueNRG1 specific ST-LINK to program the Smart.IO and the "generic" ST-LINK utility to program the ST-Nucleos.