- Getting Started
- Software Products
- SNAP RF Modules
- IoT Gateways
- SNAPconnect E12 Gateway
- SNAPconnect E20 Gateway
- Hardware Setup
- Getting Started
- E20 Software Specifics
- LEDs and Buttons
- Working with the SNAP Module
- Wi-Fi Setup
- Using USB Accessories
- Accessing the microSD Slot
- Factory Restore
- Mounting Instructions
- Technical Specifications
- Regulatory Information and Certifications
- E10 Migration
- Release Notes
- Legacy Products
This section covers the major high-level differences between the SNAPconnect E10 and the SNAPconnect E20 gateways.
Initial Log In¶
Depending on what version of software your SNAPconnect E10 is running, you’re probably either used to logging in as
snap. If you’re on a newer SNAPconnect E10 and log in as
snap, the first time you logged in you weren’t prompted for a
password. It was up to you to set a password.
The default on the SNAPconnect E20 gateway is to log in with the username
snap and the password
logging in the first time, you will immediately be required to provide a new password. This is a security feature to
ensure gateways are not deployed with known default passwords.
The SNAPconnect E20 gateway ships with an additional utility: SNAPtoolbelt. SNAPtoolbelt is a collection of scriptable command line tools for interacting with devices in a SNAP network. You can issue commands to SNAP devices, including your bridge node, with SNAPtoolbelt from the command line. For example, you can send a ping to the SNAP network using the command:
snap network ping
BusyBox vs. Ubuntu¶
The SNAPconnect E10 was BusyBox based and did not provide package management. The SNAPconnect E20 runs Ubuntu 14.04 LTS, which provides APT package management. This means installation of new software is as simple as running:
sudo apt-get install <package-name>
There are many APT packages available that can help you secure the SNAPconnect E20 gateway. For example, you can install the Uncomplicated Firewall package:
sudo apt-get install ufw
You can also install and update python packages via pip:
sudo -H pip install --extra-index-url https://update.synapse-wireless.com/pypi/ pycrypto
One of the most significant benefits of remote updates is the ability to address security updates quickly and efficiently. When vulnerabilities for SSL or other security packages are discovered, updates are generally available via APT within days of announcement. You can have security patches installed automatically using the unattended-upgrades package.
In addition to the packages offered by Ubuntu and the Python repositories, Synapse Wireless hosts our own APT and pip
packages specifically for the gateways. You do not have to specify any additional options to apt-get packages from
our server; however for pip you will need to add our repo as an
sudo -H pip install --extra-index-url https://update.synapse-wireless.com/pypi/ snapconnect
The SNAPconnect E20 comes with Wi-Fi and cellular support. It has integrated support for Wi-Fi and optional cell modem. Many additional USB, Wi-Fi and cell modem drivers and firmware are included on the device or available via the APT repository.
Porting SNAPconnect Applications¶
The SNAPconnect E20 comes with Python 2.7 and the latest version of SNAPconnect, so you shouldn’t have to change much to move your application over. A few things that you may have to modify are:
How to start the SNAPconnect application
What serial port to open
How to control the LEDs and read the buttons
Previously on the SNAPconnect E10, having an application start on boot and stop on shutdown or reboot was done via creating
/etc/init.d/, such as
/etc/init.d/S999snap to start and
/etc/init.d/X999snap to stop.
On the Ubuntu based SNAPconnect E20, you can continue to do this however this method is deprecated in favor of using Upstart. Upstart allows you to control your SNAPconnect application as a service. Upstart makes it easier to configure your application to do things like automatically restart if it terminates unexpectedly, or start after a particular subsystem is available.
See the /gateways/e20/common-linux section for more information.
When migrating your SNAPconnect application over, one minor change you may need to make in your script is the serial
port you open via
serial_open. On the SNAPconnect E10, you would call one of:
On the SNAPconnect E12 and SNAPconnect E20, the serial ports vary depending on which gateway you’re on, but are always symlinked to
This allows you to make your script portable:
Going forward on SNAPconnect gateways, these devices are guaranteed to point to
UART0 on the SNAP bridge