Hinj Quick Start

1   Introduction

Hinj is a full-featured IoT FPGA development platform powered by the Intel MAX 10 FPGA.   With integrated Ethernet and Wi-Fi plus modular interfaces that support Arduino, Pmod, and Xbee, Hinj is the most versatile development board for your FPGA IoT Solution!

The following steps will guide you through the process of getting your Hinj board up and running.

2   Connecting Hinj

2.1   Power Supply

Hinj is powered via the power supply barrel jack located on the left side of the board.  Unlike XLR8 and Snō, Hinj cannot be powered via the USB connector.

The Hinj Kit ships with a 9V, 2A power supply that has been specifically selected for its output voltage and currently supply capabilities. We recommend using this supply with your Hinj board.

If you prefer to use a different power supply or power Hinj with a lab supply, Hinj uses a standard 5.5 x 2.1mm barrel jack connector, center positive, and requires 7V-14V input at a minimum of 500mA.

2.2   USB Serial Port

All sketch/program uploads are done via the USB Serial interface.  This path uses an FTDI connection as described in Section 3 below.   A mini USB cable is included with the Hinj Kit, or you can use any existing mini USB cable you already have.

This same USB UART interface is also used for FPGA image updates via the Arduino IDE as well as our OpenXLR8 methodology. 

Back to Top

3   Install Arduino IDE and FTDI Drivers

3.1   Arduino IDE Software Installation for Microsoft Windows and macOS

The first step in setting up your computer to connect and program Hinj is to install the standard Arduino IDE software.  Follow the instructions below to install the Arduino IDE on your computer.

Microsoft Windows

  1. Click here for the official Arduino IDE installation guide for Microsoft Windows.
  2. Follow the instructions for installing the IDE.
  3. Once the IDE is installed, return here to finish installation of the Alorium Technology board specific packages and libraries.

Mac OS X

  1. Click here for the official Arduino IDE installation guide for Mac OS X.
  2. Follow the instructions for installing the IDE.
  3. Once the IDE is installed, return here to finish installation of the Alorium Technology board specific packages and libraries.

Linux

If you are running Linux, the setup steps are a bit different. Therefore, we have created one tutorial that incorporates all of the steps Linux requires to setup Arduino IDE.  Click the link below to see our Linux Setup Tutorial:

After completing this tutorial, you will be able to fast forward to Step 3!

3.2   FTDI Driver Installation

Like the SparkFun Redboard, Hinj uses a different type of USB chip than the Arduino Uno and needs to have a driver for that FTDI chip installed. A great set of instructions for installing the driver can be found here:

The SparkFun guide will tell you if you need to install the driver. You may need to reboot your computer after installation.

A note about FTDI drivers and Apple macOS:

If you are running Mac OS, you may run into issues with the usbserial port disappearing and not reconnecting.   There are known issues between the factory installed Mac OS FTDI drivers and drivers available for installation from FTDI directly.  And, unfortunately, the jury still appears to be out on which version of Mac OS will work consistently without ever seeing the lost serial port problem.

The following video on our YouTube channel provides the steps for a potential fix to this Mac related issue that has worked for several of us at Alorium Technology since the summer of 2017. It’s no iron-clad guarantee, but it seems to have solved the problem so far.

Back to Top

4  Install Alorium Board Support Package and Libraries

Support for the Hinj board is provided through the “Alorium XLR8 Boards” package. The next step is to install the Alorium Technology board support package in the Arduino IDE.

If you have already installed the board package for your XLR8 or Snō board, you may need to update your board package revision to support Hinj.   You can skip past the initial installation instructions to the “Updating Board Package” section below.

 

4.1   Add Alorium Hinj Board Support

Add board support for our products

1. For Windows and LInux: Go to File > Preferences, in your Arduino IDE menu bar.
2. For Mac: Go to Arduino > Preferences, in your Arduino IDE menu bar.
3. Locate the ‘Additional Boards Manager URLs’ input field.
4. Paste this URL into the “Additional Boards Manager URLs” input field:

https://raw.githubusercontent.com/AloriumTechnology/Arduino_Boards/master/package_aloriumtech_index.json

Note: multiple URLs can be added to this field by separating each URL with a comma.

Install the Alorium XLR8 Boards package

  1. Go to Tools > Board > Boards Manager.
  2. Type “alorium,” in the search field and you will see an option to install board files for Alorium Arduino compatible boards.
  3. Select the “Alorium XLR8 Boards” package – Hinj requires a board package revision 2.0.1 or higher.  Click “Install”.

 

  1. Go to Tools > Board. You should see a new section titled “Alorium XLR8 Boards” now exists. Under this new heading should be the Hinj board. You can select the Hinj board just like you would normally select the “Arduino/Genuino Uno” board.
  2. Select your new Hinj board from the Board menu.

In addition, after selecting the Hinj board, you will find a new menu item at Tools > FPGA Image, where you will find the images available to upload to the Hinj board.  

4.2   Additional  Libraries

Installing the Hinj board support will also install a default set of libraries that are needed to take advantage of the extra capabilities of Hinj. You can see the libraries listed in the Sketch>Include Library menu.

There are additional libraries available that can be installed using the Library Manager. In the Arduino IDE, go to the menu Sketch > Include Library > Manage Libraries, which will open the Library Manager in a new window. Enter Alorium in the search bar and you will find the entries for the various Alorium libraries available.

 

 

There are many libraries you can install to support a variety of our board functions and Xcelerator Blocks.  For example, if you wanted to add the XLR8Servo Xcelerator Block library, you can find  the “XLR8Info” library and click on it.

An Install button will appear for it. Click on the Install button, and when the installation is complete you will see that the library is now tagged as Installed.

After adding the library, you’ll find it in the menu Sketch > Include Library, under Contributed Libraries (You may need to re-start the IDE if you don’t see it).

You will also find some examples sketches in the File > Examples menu, under the library name.

 

4.3   Running with an Xcelerator Block (XB)

To run with the XLR8Info XB and library, do the following:

  1. Connect the Hinj to your computer with a USB cable.
  2. Go to Tools > Port and verify that Arduino IDE is connected to the Hinj USB serial port.

3. Go to Tools > Board and select the Hinj board

  1. Go to File > Examples > XLR8Info and select GetXLR8Version

  1. In the GetXLR8Version sketch window, click on the Upload button

Check the Serial Monitor window for the output, which should look like the output below.  Note that you will need to set the baud rate for the Serial Monitor to 115200 for this sketch to display output correctly.

============================================================
Board Type: Hinj
FPGA Image: 16 MHz Float Servo NeoPixel Quadrature r2753
============================================================
XLR8 Hardware Version = 2753
XLR8 CID = 0x7070D610
------------------------------------------------------------
Design Configuration = 0xC88
 Image = 1
 Clock = 16MHz
 PLL Speed = 16MHz
 FPGA Size = M50
------------------------------------------------------------
XB_ENABLE = 0xF
 Has Floating Point Add, Subtract, and Multiply
 Has Floating Point Divide
 Has Servo XB
 Has NeoPixel XB
 Has Quadrature XB
------------------------------------------------------------
Int Osc = 52.48 MHz
------------------------------------------------------------

4.4   Register

You’ll note in the output from the XLR8Version sketch there is a pre-formatted URL to submit the results of the XLR8Version sketch. Please copy this URL from your Serial Monitor window and enter it into your browser! It will take you to our Registration and Board Info page so that you can both register as an owner and also let us know what board you’re using. This will help us support you in your use of Hinj.

4.5   Congratulations!

You’ve now got the ability to use the XBs that come preinstalled on your XLR8.

Back to Top

5   Alternative FPGA Images

5.1   About Alternative FPGA Images

FPGA stands for Field Programmable Gate Array, which means that the functionality inside the FPGA can be overwritten with a completely new set of functions, sort of like flashing your firmware. For Hinj, we use this ability to allow you to swap out one set of XBs for another.

5.2   Selecting Alternative FPGA Images

To select an alternate FPGA image, go to the tools > FPGA Images menu in the Arduino IDE to find the list of available images. Select the images with the features you need.

5.3   Burn the Image

To write the selected image to the FPGA chip on the XLR8, go to the Tools menu in the Arduino IDE and select Burn Bootloader. You will see in your code window a notice in the message area that the image is being burned, which takes a minute or so, after which you should see a message in the text console like this:

INFO: Arduino: Using port /dev/cu.usbserial-DB00KO28
Switching FPGA configuration to existing image 1
INFO: Complete

If you get an error when burning, make sure you have closed the Serial Monitor window.

5.4   Power Cycle the Hinj Board

The last step needed to complete the FPGA image burning process is to power-cycle the Hinj board.  This will ensure that the FPGA boots up from the newly updated image.

5.5  Try It Out

Now re-run the GetXLR8Version program as described in Section 3.3 and you should see that the FPGA Image has changed:

============================================================
Board Type: Hinj
FPGA Image: 32 MHz Float Servo NeoPixel Quadrature r2766
============================================================
XLR8 Hardware Version = 2766
XLR8 CID = 0x7070D610
------------------------------------------------------------
Design Configuration = 0xC8A
 Image = 1
 Clock = 32MHz
 PLL Speed = 16MHz
 FPGA Size = M50
------------------------------------------------------------
XB_ENABLE = 0xF
 Has Floating Point Add, Subtract, and Multiply
 Has Floating Point Divide
 Has Servo XB
 Has NeoPixel XB
 Has Quadrature XB
------------------------------------------------------------
Int Osc = 52.45 MHz
------------------------------------------------------------

Back to Top

1   Introduction

Hinj is a full-featured IoT FPGA development platform powered by the Intel MAX 10 FPGA.   With integrated Ethernet and Wi-Fi plus modular interfaces that support Arduino, Pmod, and Xbee, Hinj is the most versatile development board for your FPGA IoT Solution!

The following steps will guide you through the process of getting your Hinj board up and running.

2   Connecting Hinj

2.1   Power Supply

Hinj is powered via the power supply barrel jack located on the left side of the board.  Unlike XLR8 and Snō, Hinj cannot be powered via the USB connector.

The Hinj Kit ships with a 9V, 2A power supply that has been specifically selected for its output voltage and currently supply capabilities. We recommend using this supply with your Hinj board.

If you prefer to use a different power supply or power Hinj with a lab supply, Hinj uses a standard 5.5 x 2.1mm barrel jack connector, center positive, and requires 7V-14V input at a minimum of 500mA.

2.2   USB Serial Port

All sketch/program uploads are done via the USB Serial interface.  This path uses an FTDI connection as described in Section 3 below.   A mini USB cable is included with the Hinj Kit, or you can use any existing mini USB cable you already have.

This same USB UART interface is also used for FPGA image updates via the Arduino IDE as well as our OpenXLR8 methodology. 

Back to Top

3   Install Arduino IDE and FTDI Drivers

3.1   Arduino IDE Software Installation for Microsoft Windows and macOS

The first step in setting up your computer to connect and program Hinj is to install the standard Arduino IDE software.  Follow the instructions below to install the Arduino IDE on your computer.

Microsoft Windows

  1. Click here for the official Arduino IDE installation guide for Microsoft Windows.
  2. Follow the instructions for installing the IDE.
  3. Once the IDE is installed, return here to finish installation of the Alorium Technology board specific packages and libraries.

Mac OS X

  1. Click here for the official Arduino IDE installation guide for Mac OS X.
  2. Follow the instructions for installing the IDE.
  3. Once the IDE is installed, return here to finish installation of the Alorium Technology board specific packages and libraries.

Linux

If you are running Linux, the setup steps are a bit different. Therefore, we have created one tutorial that incorporates all of the steps Linux requires to setup Arduino IDE.  Click the link below to see our Linux Setup Tutorial:

After completing this tutorial, you will be able to fast forward to Step 3!

3.2   FTDI Driver Installation

Like the SparkFun Redboard, Hinj uses a different type of USB chip than the Arduino Uno and needs to have a driver for that FTDI chip installed. A great set of instructions for installing the driver can be found here:

The SparkFun guide will tell you if you need to install the driver. You may need to reboot your computer after installation.

A note about FTDI drivers and Apple macOS:

If you are running Mac OS, you may run into issues with the usbserial port disappearing and not reconnecting.   There are known issues between the factory installed Mac OS FTDI drivers and drivers available for installation from FTDI directly.  And, unfortunately, the jury still appears to be out on which version of Mac OS will work consistently without ever seeing the lost serial port problem.

The following video on our YouTube channel provides the steps for a potential fix to this Mac related issue that has worked for several of us at Alorium Technology since the summer of 2017. It’s no iron-clad guarantee, but it seems to have solved the problem so far.

Back to Top

4  Install Alorium Board Support Package and Libraries

Support for the Hinj board is provided through the “Alorium XLR8 Boards” package. The next step is to install the Alorium Technology board support package in the Arduino IDE.

If you have already installed the board package for your XLR8 or Snō board, you may need to update your board package revision to support Hinj.   You can skip past the initial installation instructions to the “Updating Board Package” section below.

 

4.1   Add Alorium Hinj Board Support

Add board support for our products

1. For Windows and LInux: Go to File > Preferences, in your Arduino IDE menu bar.
2. For Mac: Go to Arduino > Preferences, in your Arduino IDE menu bar.
3. Locate the ‘Additional Boards Manager URLs’ input field.
4. Paste this URL into the “Additional Boards Manager URLs” input field:

https://raw.githubusercontent.com/AloriumTechnology/Arduino_Boards/master/package_aloriumtech_index.json

Note: multiple URLs can be added to this field by separating each URL with a comma.

Install the Alorium XLR8 Boards package

  1. Go to Tools > Board > Boards Manager.
  2. Type “alorium,” in the search field and you will see an option to install board files for Alorium Arduino compatible boards.
  3. Select the “Alorium XLR8 Boards” package – Hinj requires a board package revision 2.0.1 or higher.  Click “Install”.

 

  1. Go to Tools > Board. You should see a new section titled “Alorium XLR8 Boards” now exists. Under this new heading should be the Hinj board. You can select the Hinj board just like you would normally select the “Arduino/Genuino Uno” board.
  2. Select your new Hinj board from the Board menu.

In addition, after selecting the Hinj board, you will find a new menu item at Tools > FPGA Image, where you will find the images available to upload to the Hinj board.  

4.2   Additional  Libraries

Installing the Hinj board support will also install a default set of libraries that are needed to take advantage of the extra capabilities of Hinj. You can see the libraries listed in the Sketch>Include Library menu.

There are additional libraries available that can be installed using the Library Manager. In the Arduino IDE, go to the menu Sketch > Include Library > Manage Libraries, which will open the Library Manager in a new window. Enter Alorium in the search bar and you will find the entries for the various Alorium libraries available.

 

 

There are many libraries you can install to support a variety of our board functions and Xcelerator Blocks.  For example, if you wanted to add the XLR8Servo Xcelerator Block library, you can find  the “XLR8Info” library and click on it.

An Install button will appear for it. Click on the Install button, and when the installation is complete you will see that the library is now tagged as Installed.

After adding the library, you’ll find it in the menu Sketch > Include Library, under Contributed Libraries (You may need to re-start the IDE if you don’t see it).

You will also find some examples sketches in the File > Examples menu, under the library name.

 

4.3   Running with an Xcelerator Block (XB)

To run with the XLR8Info XB and library, do the following:

  1. Connect the Hinj to your computer with a USB cable.
  2. Go to Tools > Port and verify that Arduino IDE is connected to the Hinj USB serial port.

3. Go to Tools > Board and select the Hinj board

  1. Go to File > Examples > XLR8Info and select GetXLR8Version

  1. In the GetXLR8Version sketch window, click on the Upload button

Check the Serial Monitor window for the output, which should look like the output below.  Note that you will need to set the baud rate for the Serial Monitor to 115200 for this sketch to display output correctly.

============================================================
Board Type: Hinj
FPGA Image: 16 MHz Float Servo NeoPixel Quadrature r2753
============================================================
XLR8 Hardware Version = 2753
XLR8 CID = 0x7070D610
------------------------------------------------------------
Design Configuration = 0xC88
 Image = 1
 Clock = 16MHz
 PLL Speed = 16MHz
 FPGA Size = M50
------------------------------------------------------------
XB_ENABLE = 0xF
 Has Floating Point Add, Subtract, and Multiply
 Has Floating Point Divide
 Has Servo XB
 Has NeoPixel XB
 Has Quadrature XB
------------------------------------------------------------
Int Osc = 52.48 MHz
------------------------------------------------------------

4.4   Register

You’ll note in the output from the XLR8Version sketch there is a pre-formatted URL to submit the results of the XLR8Version sketch. Please copy this URL from your Serial Monitor window and enter it into your browser! It will take you to our Registration and Board Info page so that you can both register as an owner and also let us know what board you’re using. This will help us support you in your use of Hinj.

4.5   Congratulations!

You’ve now got the ability to use the XBs that come preinstalled on your XLR8.

Back to Top

5   Alternative FPGA Images

5.1   About Alternative FPGA Images

FPGA stands for Field Programmable Gate Array, which means that the functionality inside the FPGA can be overwritten with a completely new set of functions, sort of like flashing your firmware. For Hinj, we use this ability to allow you to swap out one set of XBs for another.

5.2   Selecting Alternative FPGA Images

To select an alternate FPGA image, go to the tools > FPGA Images menu in the Arduino IDE to find the list of available images. Select the images with the features you need.

5.3   Burn the Image

To write the selected image to the FPGA chip on the XLR8, go to the Tools menu in the Arduino IDE and select Burn Bootloader. You will see in your code window a notice in the message area that the image is being burned, which takes a minute or so, after which you should see a message in the text console like this:

INFO: Arduino: Using port /dev/cu.usbserial-DB00KO28
Switching FPGA configuration to existing image 1
INFO: Complete

If you get an error when burning, make sure you have closed the Serial Monitor window.

5.4   Power Cycle the Hinj Board

The last step needed to complete the FPGA image burning process is to power-cycle the Hinj board.  This will ensure that the FPGA boots up from the newly updated image.

5.5  Try It Out

Now re-run the GetXLR8Version program as described in Section 3.3 and you should see that the FPGA Image has changed:

============================================================
Board Type: Hinj
FPGA Image: 32 MHz Float Servo NeoPixel Quadrature r2766
============================================================
XLR8 Hardware Version = 2766
XLR8 CID = 0x7070D610
------------------------------------------------------------
Design Configuration = 0xC8A
 Image = 1
 Clock = 32MHz
 PLL Speed = 16MHz
 FPGA Size = M50
------------------------------------------------------------
XB_ENABLE = 0xF
 Has Floating Point Add, Subtract, and Multiply
 Has Floating Point Divide
 Has Servo XB
 Has NeoPixel XB
 Has Quadrature XB
------------------------------------------------------------
Int Osc = 52.45 MHz
------------------------------------------------------------

Back to Top

Improve Your Project!