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.
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
- Click here for the official Arduino IDE installation guide for Microsoft Windows.
- Follow the instructions for installing the IDE.
- Once the IDE is installed, return here to finish installation of the Alorium Technology board specific packages and libraries.
Mac OS X
- Click here for the official Arduino IDE installation guide for Mac OS X.
- Follow the instructions for installing the IDE.
- 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.
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
- Go to Tools > Board > Boards Manager.
- Type “alorium,” in the search field and you will see an option to install board files for Alorium Arduino compatible boards.
- Select the “Alorium XLR8 Boards” package – Hinj requires a board package revision 2.0.1 or higher. Click “Install”.
- 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.
- 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:
- Connect the Hinj to your computer with a USB cable.
- 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
- Go to File > Examples > XLR8Info and select GetXLR8Version
- 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.
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 ------------------------------------------------------------
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.
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
- Click here for the official Arduino IDE installation guide for Microsoft Windows.
- Follow the instructions for installing the IDE.
- Once the IDE is installed, return here to finish installation of the Alorium Technology board specific packages and libraries.
Mac OS X
- Click here for the official Arduino IDE installation guide for Mac OS X.
- Follow the instructions for installing the IDE.
- 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.
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
- Go to Tools > Board > Boards Manager.
- Type “alorium,” in the search field and you will see an option to install board files for Alorium Arduino compatible boards.
- Select the “Alorium XLR8 Boards” package – Hinj requires a board package revision 2.0.1 or higher. Click “Install”.
- 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.
- 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:
- Connect the Hinj to your computer with a USB cable.
- 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
- Go to File > Examples > XLR8Info and select GetXLR8Version
- 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.
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 ------------------------------------------------------------