Support

The support page provides help on getting started with Haxiot products. You will find specifications, configuration guides and more.

Documentation Download Link
Haxiot LoRaWAN Basestation Guide v1.0 Download (1.4MB)
Downloads Download Link
VirtualBox Win (108MB) Mac(86MB) Linux (66MB)
VirtualBox Extension Pack

The Extension Pack is released under the VirtualBox Personal Use & Evaluation License (PUEL)

All Platforms (16MB)
Haxiot vGateway image  (v2.0, 3/20/2017) All Platforms (600MB)

How does the Haxiot gateway work?

The Haxiot Micro Basestation is a USB modem that can turn a computer into a LoRa basestation, known as a LoRa Gateway. A LoRa Gateway connects client devices such as sensors and switches to a Network Server. The gateway is a bridge that securely forwards encrypted wireless and internet data between the client and server. The basic setup of a LoRaWAN network is below. The Haxiot Gateway works with any LoRaWAN end nodes and can be connected to any  Network Servers provider.

lora-architecture

What platforms are supported?

The Haxiot USB Gateway supports the following host operating systems

  • Windows*
  • Mac OS X*
  • Linux

The Haxiot gateway is supported on the following hardware platforms:

  • Intel/AMD x86
  • Raspberry Pi
  • Atheros

Windows and Mac OS X require a Hypervisor application such as VMWare Player or Virtualbox.

What wireless protocols does the Haxiot gateway support?

The Haxiot gateway uses the Semtech LoRa™ radio technology. Any protocol that operates over a Semtech LoRa radio format can be supported in the host software. The main protocols available on the host today are;

  • LoRaWAN
  • LoRa MAC
  • LoRa No-MAC (peer to peer)
  • Custom

Do you support Mac and PC gateways?

Yes. The Haxiot gateway runs vGateway software on Mac and PC gateways running Windows, OS X or Linux

I can't see my vGateway connecting under Windows 10

Windows 10 sometimes blocks USB devices when it does not have a device driver. Delete the unknown USB device from Device Manager in Windows. The VirtualBox vGateway software can then capture the USB device. Note: Windows does not require USB device drivers for the Haxiot Gateway to work correctly, all of the required device drivers are inside the vGateway image.

Windows 10 does not allow my 64-bit vGW to run

Re-install VirtualBox with administrator privileges. Right click the VirtualBox .exe installer file and select “Run as Administrator …”. After installing, VirtualBox will allow 64-bit virtual machines.

Windows 10 Professional crashes or reboots when I start any Virtual Machine

Windows 10 professional has Microsoft Hyper-V installed, which conflicts with VirtualBox. Disable Hyper-V by opening the Windows Features page from control panel. Scroll down the list and uncheck the Hyper-V option. VirtualBox will now work correctly

How do I configure Haxiot Gateway with Loriot for Raspberry Pi?

Raspberry Pi is currently supported with the Haxiot Gateway using installation scripts for that have been tested on Raspian Linux with Raspberry Pi 2 and Raspberry Pi Zero (with OTG USB Hub adapter) devices. This method allows you to also use the Raspberry Pi  as a LoRaWAN gateway as well as other applications.

How do I configure Haxiot Gateway for TheThingsNetwork?

TheThingsNetwork is a crowdsourced LoRaWAN network built by its users. It is free to use and relies on volunteers setting up community gateways. The Haxiot LoRaWAN basestation can be connected to TheThingsNetwork using these installation scripts that will work on most popular versions of Linux.

An updated Haxiot vGateway with TheThingsNetwork support is coming soon.

The Haxiot Arduino shield provides LoRaWAN or LoRa connectivity for Arduino Uno and Mega boards. The LoRaWAN mode requires a LoRaWAN Gateway and active Network Server account. The LoRa mode is peer to peer and requires at least 2 Haxiot Arduino Shields.

To run the Arduino sketches shown below, please download the Haxiot LoRaWAN Library to your Arduino directory and extra the LoRaWAN library and Arduino Shield examples.

Documentation Download Link
Haxiot Arduino Guide (v1.0, 6/30/2016) PDF (4.3MB)
Downloads Download Link
Haxiot Arduino Library (v1.0, 6/17/2016) Arduino Library (8kB)

LoRaWAN Connect with ABP - Example

// In the below example you will need AppKey, DevAddr, Appskey & Nwkskey from the LoRaWAN Network Server provider.
// The Arduino library will by default set DevEUI to the embedded read-only value in the module unless another value is entered

#include "LoRaWAN.h"
 #include <SoftwareSerial.h>

#define ON 1
 #define OFF 0

//************** Device parameters for registration *****************
 char DEVICE_ADDR[] = "00610942";  //4 bytes required
 char NWK_SESSION_KEY[] = "45767E9BE417A7829FAC4CFDD96627C3"; // 16 bytes required
 char APP_SESSION_KEY[] = "BC5DD8F86361CB1CFFE69E8585BFE9DA"; //16 bytes required
 char APP_KEY[] = "0AA5AF9F0B74FF519D7FB0FF57D3EB9C"; //16 bytes required
 char APP_EUI[] =  "0000000000000000";  //8 bytes required

char txData[]="01020304050";      //sample data to be transmitted - must be hexadecimal values

LoRaWAN LoRaWAN(4,5); // Software Serial RX, TX   ** Set to 10, 11 for Mega2560 boards, Set to 4,5 for Uno
 void setup() {

delay(1000);                //startup delay - gives Lora module time to reset if cold start
 Serial.begin(9600);        //terminal serial port, 9600 = Default, 57600 = Haxiot shield

//LoRaWAN.LoRaResetModule();                          //restore module to factory default settings and reset device
 LoRaWAN.LoRaDeviceEUI();                            //retrieves EUI from module and auto sets
 LoRaWAN.LoRaDevAddr(DEVICE_ADDR);                   //sets device addresss
 LoRaWAN.LoRaNetworkSessionKey(NWK_SESSION_KEY);     //sets network session key
 LoRaWAN.LoRaApplicationSessionKey(APP_SESSION_KEY); //sets application session key
 LoRaWAN.LoRaApplicationKey(APP_KEY);                //sets application key
 LoRaWAN.LoRaAdaptiveDataRate(ON);      //set to ON to enable, OFF to disable
 LoRaWAN.LoRaTXPower(20);                //dBM 10(Min), 12, 14, 16, 18, 20(Max)
 LoRaWAN.LoRaChannelPlan(0,7);          //(start channel, end channel) - channel range 0 to 63
 LoRaWAN.LoRaSaveConfig();                           //save configuration settings to module eeprom

//************* Connect to LoRaWAN Network Server****************//
 // Comment out
 LoRaWAN.LoRaJoinABP ();       //Connect with Access By Personalization (ABP) networks

LoRaWAN.LoRaShowConfig();             //display current module configuration for debugging only

}

void loop() {

//*************** Display received data from LoRaWAN
 while (LoRaWAN.loraSerial.available()) {
 Serial.write(LoRaWAN.loraSerial.read());
 }

{
 //*************** Display then transmit data to LoRaWAN
 Serial.print("Sending: ");Serial.println(txData);
 LoRaWAN.LoRaTransmit(0, 30, txData);   //type 0 = Confirmed, 1 = Unconfirmed / port number 1 to 223 / data payload
 delay(20000);
 }
 }

LoRaWAN Connect with ABP - Output

Device EUI Set To: 0004A30B001A7A3E
Device Address Set To: 00610942
Application EUI Set To: 0000000000000000
Application Session Key Set To: BC5DD8F86361CB1CFFE69E8585BFE9DA
Application Key Set To: 0AA5AF9F0B74FF519D7FB0FF57D3EB9C
ADR is enabled
TX Power Set To: 20dBM
Joined ABP
Module Version: RN2903 0.9.5 Sep 02 2015 17:19:55
Device EUI Set To: 0004A30B001A7A3E
Application EUI Set To: 0000000000000000
Device Address Set To: 00610942
TX Power Set To: 20dBM
Channel 0: Frequency = 902.30Mhz, DataRate = 125kHz
Channel 1: Frequency = 902.50Mhz, DataRate = 125kHz
Channel 2: Frequency = 902.70Mhz, DataRate = 125kHz
Channel 3: Frequency = 902.90Mhz, DataRate = 125kHz
Channel 4: Frequency = 903.10Mhz, DataRate = 125kHz
Channel 5: Frequency = 903.30Mhz, DataRate = 125kHz
Channel 6: Frequency = 903.50Mhz, DataRate = 125kHz
Channel 7: Frequency = 903.70Mhz, DataRate = 125kHz

Sending: 01020304050
mac_tx_ok
Sending: 01020304050
mac_tx_ok
Sending: 01020304050
mac_tx_ok

LoRaWAN Connect with OTAA - Example

#include "LoRaWAN.h"
#include <SoftwareSerial.h>

#define ON 1
#define OFF 0

//************** Device parameters for registration *****************
char APP_KEY[] = "0AA5AF9F0B74FF519D7FB0FF57D3EB9C"; //16 bytes required
char APP_EUI[] =  "0102030405060708";  //8 bytes required

char txData[]="01020304050";      //sample data to be transmitted - must be hexadecimal values

LoRaWAN LoRaWAN(4,5); // Software Serial RX, TX   ** Set to 10, 11 for Mega2560 boards, Set to 4,5 for Uno 
void setup() {

delay(1000);                //startup delay - gives Lora module time to reset if cold start
Serial.begin(9600);        //terminal serial port, 9600 = Default, 57600 = Haxiot shield

//LoRaWAN.LoRaResetModule();                          //restore module to factory default settings and reset device
LoRaWAN.LoRaDeviceEUI();                            //retrieves EUI from module and auto sets 
LoRaWAN.LoraApplicationEUI(APP_EUI);                //sets application EUI
LoRaWAN.LoRaApplicationKey(APP_KEY);                //sets application key
LoRaWAN.LoRaAdaptiveDataRate(ON);      //set to ON to enable, OFF to disable
LoRaWAN.LoRaTXPower(20);                //dBM 10(Min), 12, 14, 16, 18, 20(Max)
LoRaWAN.LoRaChannelPlan(0,7);          //(start channel, end channel) - channel range 0 to 63
LoRaWAN.LoRaSaveConfig();                           //save configuration settings to module eeprom

//************* Connect to LoRaWAN Network Server****************//

LoRaWAN.LoRaJoinOTAA ();    //Connect with Over The Air Activation (OTAA) networks 

LoRaWAN.LoRaShowConfig();             //display current module configuration for debugging only

}

void loop() {

  //*************** Display received data from LoRaWAN 
  while (LoRaWAN.loraSerial.available()) {
    Serial.write(LoRaWAN.loraSerial.read());
  }

  {
      //*************** Display then transmit data to LoRaWAN
    Serial.print("Sending: ");Serial.println(txData);
    LoRaWAN.LoRaTransmit(0, 30, txData);   //type 0 = Confirmed, 1 = Unconfirmed / port number 1 to 223 / data payload
    delay(20000);
  }
}

LoRaWAN Connect with OTAA - Output

Device EUI Set To: 0004A30B001A7A3E
Device Address Set To: 00000000
Application EUI Set To:0102030405060708

Application Session Key Set To: 00000000000000000000000000000000
Application Key Set To: 0AA5AF9F0B74FF519D7FB0FF57D3EB9C
ADR is enabled
TX Power Set To: 20dBM
Joined OTAA
Module Version: RN2903 0.9.5 Sep 02 2015 17:19:55
Device EUI Set To: 0004A30B001A7A3E
Application EUI Set To: 0102030405060708
Device Address Set To: 00000000
TX Power Set To: 20dBM
Channel 0: Frequency = 902.30Mhz, DataRate = 125kHz
Channel 1: Frequency = 902.50Mhz, DataRate = 125kHz
Channel 2: Frequency = 902.70Mhz, DataRate = 125kHz
Channel 3: Frequency = 902.90Mhz, DataRate = 125kHz
Channel 4: Frequency = 903.10Mhz, DataRate = 125kHz
Channel 5: Frequency = 903.30Mhz, DataRate = 125kHz
Channel 6: Frequency = 903.50Mhz, DataRate = 125kHz
Channel 7: Frequency = 903.70Mhz, DataRate = 125kHz

The USB Client is a USB attached LoRaWAN modem for developing Internet of Things devices that have USB ports. It is designed to work on multiple operating systems and will work on many popular embedded Linux systems such as Raspberry Pi.

Downloads Download Link
FTDI USB-Serial Device Driver (various versions) Win32 (1.3MB)
Win64(1.3MB)
MacOS 10.9+(83kB)
Linux32 (122kB)
Android Java (4.4MB)
For a complete list of all supported platforms go to FTDI Download page.

What operating systems connect to the USB Client?

The USB client is designed for Windows, MacOS, Linux and Android.

linuxMac_Finder_icon_(OS_X_Yosemite)MetroUI_OS_AndroidWindows_7_logo

What programming tools interface to the USB Client?

The USB client is connects the LoRaWAN modem to the host operating system as Serial over USB. Direct communication to the serial port is supported on all good programming tools. You may also use the D2xx FTDI API libraries to communicate directly with the LoRaWAN stack on the module

What commands does the USB Client support?

The USB Client is based on the Microchip RN2903 and uses the Microchip serial command line interface.

Loriot

Orbiwise

The Things Network

Semtech