Getting Started

These directions provide the steps for terminal access to your SNAPconnect E12 from Windows, Linux or macOS.


  • DC power; the SNAPconnect E12 requires 12 to 24 volts nominal, 7 to 36 volts absolute, via the terminal blocks on the side of the unit.

  • A standard USB to Micro-USB cable, such as might be used for charging a cell phone.

  • Terminal emulation software such as Tera Term, PuTTY, cu, screen, etc.

Connect USB to Host PC

You will need to connect the USB cable to the SNAPconnect E12 and determine which serial port was assigned. This process is different based on the OS.


If you find that your host PC cannot connect to the SNAPconnect E12 over the USB connection, you may need to install the FTDI virtual COM port driver.


Check under “Ports” in the Device Manager and look for “USB Serial Port (COMxx)”. The “COMxx” will indicate the serial port assigned (e.g., COM3, COM88).


The USB connection will be in the /dev directory. Check the directory before and after connecting the USB cable to identify the new ttyUSBx where x indicates the USB connection assigned (e.g., ttyUSB0). For example:

$ ls /dev/ttyUSB*

  /dev/ttyUSB1  # <- new device


The USB connection will be in the /dev directory. Check the directory before and after connecting the USB cable to identify the new device. It is typically /dev/tty.usbserial-xxxxxxxx.

$ ls /dev/tty.*

  /dev/tty.usbserial-xxxxxxx # <- new device

Terminal Access

Use a terminal emulator to communicate to the SNAPconnect E12’s serial port using the following serial port settings:

  • 115200 baud

  • 8 bits

  • No parity

  • 1 stop bit

  • No flow control

For example, using cu in Linux:

$ sudo cu –l /dev/ttyUSB0 –s 115200

Another example, using screen in macOS:

$ sudo screen /dev/tty.usbserial-xxxxxxx 115200


Login to your SNAPconnect E12 gateway the first time using the default credentials:

  • Username: snap

  • Password: synapse


You must change your password the first time you log in.

Connect to the Internet

The easiest way to do this is to make a wired connection to an Internet-connected router that supports DHCP. If you wish to configure your device for a static IP address or configure your Wi-Fi at this point, you may do so via the serial connection before making your Internet connection.

Update Python Development Libraries

Before starting work with the SNAPconnect E12, you’ll want to make sure you have the latest versions of the software installed on the unit. The gateway makes use of Python Development Libraries that are sometimes updated to add new functionality and correct bugs. You can update the version installed on your unit by running the command:

sudo apt-get update
sudo apt-get upgrade

Depending on your use case, you may also want to install development dependencies for Python 2:

sudo apt-get install python2-dev

Set the Clock

First, you should specify the timezone in which your device will reside. An easy way to do this is to use tzdata, which allows you to select the general region, and then select the specific zone for your location. You can run it with the command:

sudo dpkg-reconfigure tzdata

Next, and only if the gateway’s date is not set (i.e. it is not connected to a network, so it does not set the date from an NTP server, and the hardware clock has never been set), set the date manually. The following example sets the date to April 20, 2017, at 12:30:59 p.m.

sudo date --set "2017-04-30 12:30:59"
Sat Apr 30 12:30:59 CDT 2017

You can set the hardware clock from the system clock using the hwclock command.

sudo hwclock -wu

Update SNAPconnect

The SNAPconnect software enables the connection from your SNAPconnect E12 device to the rest of your SNAP-powered network.

To update SNAPconnect, type the command:

sudo –H python2 -m pip install --extra-index-url --upgrade snapconnect

Update PyCrypto

The PyCrypto project is required for using AES128 encryption on your radio network.

To update PyCrypto type the command:

sudo –H python2 -m pip install --extra-index-url --upgrade pycrypto

That’s it! Your SNAPconnect E12 is now ready to work with your SNAP-powered network. Your Python program, using the SNAPconnect library, or the SNAPtoolbelt utilities, interfaces with the gateway’s SNAP module directly, and the rest of your nodes through that. You can also have full Internet access (either through a wired connection or a Wi-Fi connection).

You can find examples of other people’s efforts on the Synapse Wireless repository at GitHub:

The site includes sample projects for things like sending data collected by SNAP-powered nodes to cloud services, or a gateway-hosted web server. Download the code there, or fork it for your own projects. Better yet, contribute to the code base for other users.