Only this pageAll pages
Powered by GitBook
1 of 23

SensorGnome V2

Loading...

Setup and Operation

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

HARDWARE

Loading...

Loading...

Loading...

Loading...

Appendix

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Anatomy of a SensorGnome

This page has not yet been updated for the SensorGnome V2 software!

What's inside a SensorGnome?

SensorGnomes contain the following components:

  • Raspberry Pi single board computer, typ model 3B+ or 4B as of 2024. This runs the software that records the raw radio pulse data.

  • FUNcube USB dongles or other "software defined radios". These take the analog radio signals coming from the antennas and convert them into a digital format, ultimately to decode Lotek tag signals.

  • CTT Motus Adapter USB dongles containing radios for the CTT 434Mhz tags.

  • GPS. This records the precise location of the SensorGnome, as well as ensures that the precise time is always recorded in data files.

  • Associated power supply.

  • rPi 3B+ is the recommended model to use for a SensorGnome due to the fact that its USB ports can directly support multiple FUNcube dongles. The rPi 3B ("non-plus") works just as well.

  • rPi 4B also works, however its USB subsystem may cause difficulties as described in [link missing]. However, with some attention to where FCDs are plugged in it can work great. The performance advantage and USB 3.0 support over a rPi 3B don't really come to bear in the SensorGnome use-case.

  • rPi Zero 2W can be useful in portable applications or other experiments. Due to the fact that it has only one micro-USB port it is not convenient to hook up lots of radios, but it does work.

The numbering of the USB ports is very important when attaching antennas since this information is recorded along with detection data and can be used to determine the direction and time of approach or departure of a tagged animal.

To keep installers on their toes the port numbering is reversed between models 3B/3B+ and 4B!

The Micro-SD card slot is on the opposite side from the USB and Ethernet Ports. The card is inserted with the contacts facing up, and there is no click or other indicator when the card is inserted. On some cases the the Micro-SD is so deeply recessed that it cannot be removed without tweezers.

Power is supplied to a model 3B/3B+ through the a USB port. This port only supplies power and is not used to communicate with a computer. On a model 4B a USB-C connector is used.

LED lights can be useful in determining if the unit has power and if it is functioning properly.

The RPi itself has only two primary LED lights -- one red and one green. These are visible on the bottom right hand corner of the side that hosts the Micro-SD slot. The red light indicates power, while the green light should emit from 1 to 3 flashes every 2 seconds.

The attached GPS had also has an indicator light, in this case a red LED. It does not light up consistently but instead blinks occasionally. If you are having trouble connecting and the green light never illuminates, you may need a

Lastly, there are two indicator lights on the bottom of the Ethernet port. When the Ethernet cable is attached to a computer these lights should be on or flashing consistently.

a) The Raspberry Pi. The colour of the RPi case may vary between SensorGnomes’s but they will also be roughly the same size

b) FunCUBE Dongles. A Raspberry Pi SG can accommodate up to 4 dongles plugged directly into the RPi (however, an rPi 4B can only support one directly plugged in FUNcube!). In order to accommodate additional antennas, a USB hub would be required. The cables from the antennas will plug into the free end of the dongles.

c) This is the inside view of the button used to activate the WiFi hotspot.

d) GPS antenna. When deployed in the field, this end of the antenna would be outside the SG case, and attached to something that had a clear view of the sky. The other end is attached to the Raspberry Pi by way of the gold-coloured “SMA” port on the top right corner of this particular RPi.

e) Voltage converter. If powered by a solar panel and battery, as this SG is, the power coming in will be 12V. However the RPi only requires 5V, so a voltage converter is used to downgrade the current to the acceptable level. If powered directly by AC power, the wall adapter itself should output 5V, eliminating the need for a voltage converter.

rPi 5 is not currently supported due to the fact that it requires a 64-bit operating system build and corresponding 64-bit application builds, which are not currently set-up. The rPi 5 hardware does not offer any benefits (at least none we know of) and it's more expensive and uses more power.
  • rPi 1 and rPi 2 versions are not supported due to the fact that their processors cannot run the operating system version used for SensorGnomes V2.

  • Raspberry Pi

    Models

    Ports

    Raspberry Pi 3B/3B+

    Raspberry Pi 4B

    SD-card slot

    Power

    LED Lights

    There are many different cases used to house the Raspberry Pi. Not all of them permit a clear view of the lights.

    GPS

    Fully assembled RPi SensorGnome

    Micro-SD card is inserted with the gold contacts facing up
    Micro USB port on a Raspberry Pi 3B
    The red light will be solid as long as adequate power is supplied; the green light will flash with CPU activity
    The red LED on top of the GPS hat will blink with long gaps between
    The primary components inside a typical Raspberry Pi SensorGnome
    fresh software card.

    SensorGnome power

    Providing good power to SensorGnomes and to the radios can be more challenging that it may seem and can result in difficult to troubleshoot issues.

    When providing power to a SensorGnome there are multiple aspects to consider:

    • Powering the Raspberry Pi, which typically also powers the radios attached via USB.

    • Ensuring that the Raspberry Pi can indeed power everything attached to the USB ports.

    • Dealing with power when using Solar and battery systems.

    Powering USB devices

    While the USB specs have a lot of rules about how much power each device may use there is a simple rule for Raspberry Pis (at least for the 3B and 4B models):

    Once the power limit is exceeded the USB power is cut and devices misbehave. FUNcube dongles consume 100mA-200mA, CTT radios less than 30mA. This means that 4 FCDs and 4 CTT radios can be powered by the rPi directly. A USB GPS can also be added. The majority of cellular modems have power consumption spikes that exceed 1.2A or at least come close to it, so they cannot be powered reliably from the rPi ports. To connect a cellular modem use a HAT (printed circuit board that mounts on the rPi's 40-pin connector) or attach the dell modem to a powered USB hub.

    The power consumption of rPis is very spiky, consuming 1A-2A at peak. All the devices attached to the USB ports and potentially a cellular HAT must be powered as well. The result is that you need to use a power adaptor that can deliver more than the typical 2.1A claimed by many power adapters. Most el-cheapo "2A" or "2.1A" adapters lead to problems sooner rather than later.

    When a SensorGnome isn't receiving enough power -- that is, the voltage and/or current is lower than the device is rated for -- it can result in a malfunctioning station that doesn't collect data.

    While Raspberry Pis don't have power-over-ethernet (PoE) built-in it is possible to use PoE with "splitters" that separate the power and ethernet at the device end. For reference, a good page about PoE is https://en.wikipedia.org/wiki/Power_over_Ethernet and it's ... confusing... The table at the end of the page in the Pinouts section is a good summary.

    The recommended set-up with PoE is to use a PoE switch (which will most likely use "gigabit mode A" in the table) and a splitter with a built-in voltage converter. The splitter to use depends on the rPi model: for an rPi3 get a splitter that provides 5V on a micro-USB connector (example ), for an rPi4 get a USB-C splitter (example ), for a SensorStation get a splitter that provides 12V (example ). For a rPi4 it may be advantageous to use a splitter that supports PD (power delivery) so it outputs 5.1V, but those are more pricey and possibly overkill. The above links are intended as suggestions not recommendations as the longevity of these devices has not been tested, there are definitely more "industrial" versions available.

    Overall, the important part is to ensure that the switch/injector and splitter match. Virtually all PoE switches in 2024 are Gigabit 802.3af (48V) compliant (or more advanced 803.2at/bt) and use "mode A" (see Wikipedia table). Using a "gigabit" and/or "802.3af" splitter ensures compatibility assuming it's properly made.

    A common alternative that historically predates 802.3af is to use 2 wire pairs for 100Mbit ethernet and 2 pairs for 24V. This is still common in Ubiquiti equipment as well as that of other vendors, which perpetuates the confusion. In addition, this mode of operation is "covered" by 802.3af mode B, except that 802.3af requires 48V, not 24V. But 802.3af splitters as mentioned above should work fine with 24V too.

    One catch with non-gigabit splitters (e.g. the 24V set-up) is that if they are used to connect two gigabit devices (switch and rPi) then it is often necessary to force the use of 100Mbps at one of the two ends, i.e. either using the switch web interface (in the case of a managed switch) or ethtool on the rPi.

    Underpowered SensorGnomes typically work fine when set-up and it's later that problem crop up. Sometimes they reboot but more often some peripheral malfunctions. Often USB-attached devices restart on their own. In some situations the SensorGnome just seems "flaky" and a different problem crops up every time.

    The easy cases to troubleshoot are due to inadequate components and installation problems because they tend to show up quickly. Check components, have spares to swap-in to verify against, check all connections and connectors.

    The troublesome cases are when general wear and tear triggers the problem. This is because USB cables and power cables experience a fair bit of strain over their lifetime from repeated bending. The following problems have been identified at Motus stations in the past:

    • The connection to the screw terminals on the DC-DC voltage converter is loose

    • Individual copper strands within the USB cable are broken. This can occur from repeated bending of the cable.

    • The microUSB port of the Raspberry Pi is damaged (lifts from the circuit board slightly when force is applied).

    • Due to nightly deep discharges the off-grid battery can no longer reliably power the SensorGnome through the night.

    The behaviour of underpowered devices can be inconsistent and hard to diagnose. In some cases, it is not possible to connect to the device because both Ethernet and Wi-Fi are malfunctioning, however it may still appear as though the device is on as the indicator LEDs will be blinking. This can also be due to corrupted data on the SD card or a physical connection problem with the SD card, so it's not always obvious.

    In most cases, fixing the issue is as simple as replacing the Micro USB cable which plugs into the Raspberry Pi. It is also possible to swap out the DC-DC voltage converter to a device that is rated for more current and/or voltage (no more than 5.1 V, however!), but these have not been tested. See: .

    Currently available (as of Nov 3, 2021) cables are listed below:

    Retailer
    Price
    Gauge
    Link

    Currently available (as of Nov 3, 2021) DC-DC converters are listed below. Please note that these models have not been tested, but are expected to perform better the default model.

    Retailer
    Price
    Volts (V)
    Watts (W)
    Link
  • Due to humidity and heat-cycling connectors become unreliable.

  • $0.99 USD (0.5 ft)

    22 AWG

    DigiKey

    $38.5 USD

    5.0 V

    20 W

    DigiKey

    $51 USD

    5.1 V

    10 W

    DigiKey

    $6.21 CAD

    20 AWG

    Product page

    DigiKey

    $60 USD

    5.1 V

    20 W

    All USB devices attached to and powered by an rPi 3B or 4B may draw a total of 1.2A (5V) max.

    This is fine for most configurations. However, the majority of cellular modems cannot be powered from the Raspberry Pi's USB ports. Use a cellular HAT instead or a powered USB hub.

    Powering the Raspberry Pi

    rPi 3B+: use a power adaptor made for it that provides 5.1V >2.5A

    rPi 4B: use a power adapter made for it or a 15W min. USB-PD (power delivery) adapter to provide 5.1V >2.5A

    If using a cell modem look for 20W min.

    In battery powered installs ensure you use a 20W min. voltage regulator / converter (to regulate down from the approx 12V of a typ. battery to 5V) and if the voltage is adjustable (typ. it's not) then tune it up to 5.1V-5.2V.

    I all cases use a quality cable that is as short as practical: cheap cables with undersized conductors and connectors with poor strain relief end up costing a fortune in headaches and site visits.

    Check for "undervoltage condition" in the system log (/var/log/syslog)

    Using Power over Ethernet (PoE)

    Underpowered SensorGnome - how does it occur?

    Identifying an underpowered SensorGnome

    In our experience, on remote field trips it's always best to have a complete spare SensorGnome available so that components can be swapped out and tested.

    While it might seem like it's helpful to use a voltmeter to determine whether the power supply is the issue, it's often that the USB cable is the culprit which hard to measure. Also, the power consumption has significant spikes that last only a few milliseconds and a voltmeter does not show resulting power sag issues.

    Fixing power supply issues

    This section has not been updated in a number of years. In short:

    • First focus on cables and replace cables, focus on quality and on not bending too tightly. Possibly rearrange components in the enclosure to avoid squishing cables into tight bends.

    • Then check power adapters, perhaps it's time to use a (specially made) 5.1V adapter for an rPi 3B or to ensure you have at least a 20W USB-PD (power delivery) adapter for an rPi 4B (without cell modem 15W should be enough if the adapter can actually deliver them).

    • For off-grid installs there is the added complication of ensuring the battery can still deliver power peaks, especially if in service for over a year. Also, there are more ad-hoc cables and connectors in play offering more points of subtle failure.

    In terms of sources:

    • Shops that sell Raspberry Pis have power adapters, including original Raspberry Pi ones.

    • Anker cables and adapters are generally of decent quality, found on Amazon among other sources.

    • Digikey has fancy cables and a huge selection of power adapters (DC-DC converters).

    Always keep a spare micro USB cable handy, one that has at least 22 gauge power delivery. See USB Micro B Male cables for power delivery.

    USB Micro B Male cables for power delivery

    DC-DC Voltage Converters for Raspberry Pi (not tested)

    https://www.amazon.com/gp/product/B07CNKX14C
    https://www.amazon.com/UCTRONICS-PoE-Splitter-USB-C-Compliant/dp/B087F4QCTR
    https://www.amazon.com/gp/product/B0CL2CBS75/
    DC-DC Voltage Converters for Raspberry Pi (not tested)

    MonoPrice

    Product page
    Product page
    Product page
    Product page

    Software History and why V2

    • The original SensorGnome software was written and maintained by John Brzustowski from 2016 to 2018 and was designed for Beaglebone and Raspberry Pi models 1 and 2 single board computers. It used an ingenious but very non-standard "liwixi" filesystem organization and was based on Linux Debian Buster. Communication with Motus servers used SSH tunnels in an effective but unconventional configuration.

    • The SensorGnome V2 software is a complete rewrite of the system with the goal of supporting current Raspberry Pi models and using standard filesystem and communication methods.

    • The V2 software:

      • uses a standard current Raspberry Pi OS image (based on Debian Bullseye as of 2023) that has SensorGnome software pre-installed

      • runs on Raspberry Pi3, Pi4, Zero-2W, and SensorStation V1 (more coming)

      • exclusively uses HTTPS for Internet communication (SSH commandline access over the LAN is also supported),

      • implements a new automatic upload mechanism that uploads data files directly to motus.org,

      • implements a new web UI with more functionality and security to manage the SensorGnome,

      • the new web UI provide easy options to download data files to a laptop or phone,

      • implements remote monitoring and management,

    • The V2 software uses unmodified software to process radio data and detect tags in the local tag database, thus the data processing path is unchanged.

    Introduction and Overview

    In this document you will find how to:

    • assemble SensorGnome hardware

    • install the SensorGnome V2 software

    • connect to a running SensorGnome and perform maintenance tasks

    • troubleshoot when things don't work

    • Avoid getting frustrated: if it doesn't work, double-check, try again, perhaps try an alternative, but then ask for help! Don't waste hours of time.

    • If you can, connect your SensorGnome to the internet and leave it running & connected: most of time the best troubleshooting happens using the log files it uploads.

    • To get help:

    A SensorGnome is an automated radio receiver, designed to detect and record radio signals transmitted by wildlife tracking tags, without the need for any person to be present.

    At its core, a SensorGnome is powered by a Raspberry Pi (RPi). The RPi runs the software that listens for and records the radio data picked up by the antennas. In addition to the RPi, a SensorGnome will have one or more USB dongles -- "software-defined radios" -- that take the raw radio signals from the antennas and convert it into a digital form that can be recognized and recorded by the RPi. Finally, the SensorGnome will include a GPS and power supply, all of which is typically housed in a heavy-duty plastic case.

    This guide is divided into three sections:

    • Setup and operation: Initial software installation, configuration, data downloading, etc

    • Hardware components: misc information about radios, USB, HATs, how to assemble an SG

    • Appendix with additional information, resources, and troubleshooting tips

    1. Install the software and configure the SensorGnome password

    2. Connect to your SensorGnome

      1. verify GPS and time source

      2. Configure radios and their ports, verify operation using test tags.

    Software installation

    The SensorGnome software runs off a MicroSD card. In order to install the software, it is "flashed" to the SD card using an imaging software such as Raspberry Pi Imager. After it is booted for the first time, it needs to be "initialized" by setting a password. The basic sequence is:

    • Flashing the MicroSD card with the SensorGnome software

    • Initial configuration, where you boot up the SG and set a password

    • Connect to the SG and access its web interface, where you can confirm that it's running and configured properly. This last step is described in the

    How to build a SensorGnome

    For now, refer to . The content there will eventually be migrated over to this guide.

    This page has not yet been updated for the SensorGnome V2 software!

    https://www.instructables.com/Raspberry-Pi-SensorGnome/#solder
    Search or post on the Motus Community Forum
  • Post in the Motus slack (sensorgnome channel)

  • Email tve at voneicken point com

  • Things that really help us help you:

    • Screen shots

    • Info about your hardware

    • Having your SG connected to the internet

    • SensorGnome ID (or the hostname used during configuration)

    • Motus project number and station ID and/or deployment ID (if applicable)

    • Log files using the web UI or /var/log/syslog and /var/log/sg-control.log grabbed via SSH

  • Configure / verify network configuration

  • Create new station on Motus.org and associate this SG with it. (See for more about station metadata management.)

  • Perform an end-to-end check from test tags to uploaded data.

  • This version of the SensorGnome user guide is for the "new V2 software" available starting in 2022, that runs on Raspberry Pi4, Pi3, Zero-2W and SensorStation V1.

    If the "Web UI" of your SensorGnome has multiple tabs with a red accent color it uses the new software. If it is a single web page with little formatting it is the old software.

    If you are using the V1 software, refer to the SensorGnome user guide for the V1 software or upgrade to V2.

    For updates on the status please refer to the Motus Community Forum

    Getting help

    What is a SensorGnome?

    Throughout this document, we will often refer to a SensorGnome as an SG, and to the Raspberry Pi as RPi.

    About this guide

    Initial deployment checklist

    since it's an important step
    whenever
    you visit a station with a SensorGnome, and not just after the software installation.
    • MicroSD card with at least 16 GB. Try to avoid low quality or old SD cards, and instead spend a bit more money (~$20) to buy a high quality card such as SanDisk Extreme Pro or Samsung Pro/High Endurance as these will reduce the likelihood of data loss or corruption.

    • A computer AND a method of reading and writing to a MicroSD card. Most computers do not have MicroSD slots, so a USB adapter is usually the best option.

    • The latest SensorGnome software release downloaded from https://www.sensorgnome.net/download.

    • Raspberry Pi Imager installed on your computer, the latest version can be downloaded from . Other imaging sftware, such as WinDiskImager or Balena Etcher, work as well.

    • Raspberry Pi 4B, 3B+, 3B, Zero-2W, or SensorStation V1.

    The process of flashing the MicroSD card is the same if you are installing the SG software for the very first time, or if you are upgrading an existing SG with a fresh software card (as opposed to upgrading over the Internet).

    1

    Launch Raspberry Pi Imager

    Download from here if you don't yet have it.

    2

    Select Use custom on the right hand side of the OS tab

    3

    Select the SensorGnome software image

    Browse to where you saved the SensorGnome software on your computer, select the file, then click NEXT. Download the latest SG software from here if you don't yet have it.

    It's best to always have the latest software version on your computer in the event that you need to flash a new SD card. Though you can load the compressed .zip file directly into Raspberry Pi Imager, the process will go faster the next time if you extract the file and use the .img file.

    4

    5
    6

    There is both a writing and verification stage and together the entire process can take 10-15 minutes.

    7

    Once the writing and verification is completed, you're now ready for the .

    Usually the flashing process is straightforward, but if you have issues or the verification fails, you can try the following:

    • Try again with no changes. Sometimes this works if, for instance, the MicroSD card reader was jostled while the process was running

    • Try a different USB port, or a different laptop if you have one

    • Try a different MicroSD card reader.

    • Try a different MicroSD card. Older cards in particular can be prone to failing

      • If you only have one card, sometimes it helps to delete all partitions and/or format the card before proceeding with the flashing

    • If verification fails and you have no alternative, try it in the SG anyway. Sometimes it still works.

    It is possible to flash the SG software to a SensorStation V1 (though not V2 or V3). In order to do this, follow the CTT documentation to flash the compute module, but use the SG software image instead of the CTT software image. You will need a WiFi adapter or Ethernet adapter plugged into your SensorStation for the initial configuration.

    When the SG boots up for the first time after creating a new software SD card, it needs to be initialized by setting a password for it.

    1

    Insert the microSD card into the Raspberry Pi and power it up

    Make sure you use a suitable power supply — at least 2.4 amps for Raspberry Pi 3 and 3 amps for Raspberry Pi 4.

    2

    Connect to the SG's WiFi hotspot

    After a minute or so, use your laptop or smartphone, look for the WiFi hotspot that the SG broadcasts. The WiFi network name will be the same as the SG serial number, e.g. SG-B156RPI3EDBA. If the SG has not yet been initialized, the WiFi network name will be appended with -init as in the example below, and will not be protected by a password.

    This network uses a captive portal, like many airport and hotel WiFi networks, and this is how the password is set.

    If your browser didn't automatically launch to a "login" page or you don't see any prompt or message directing you to the captive portal, you may need to visit it directly. You can access it at either of the links below.

    Once at the page above, click on either of the two links to access the Initial Configuration page.

    3

    Make sure you remember the password as this will be used for the SG's WiFi hotspot going forward and the SensorGnome's web interface.

    4

    After hitting Submit, the initial configuration is complete. The WiFi hotspot you were connected to will disconnect and disappear, and after a minute or two, a new hotspot will appear. This will have the SG serial number as its name, but will lack the -init suffix. This will be the primary method of and accessing the Web Interface going forward.

    It's possible to configure your SG with a password during the flashing process. This feature has been deprecated in the newer Raspberry Pi Imager software, so if you wish to configure with this method, you'll need to download and use Version 1.9.6, which is the last version to support this.

    1. Plug the microSD card into your laptop/computer.

    2. Launch Raspberry Pi Imager and:

      • click on operating system, choose use custom (it's the last option), locate the SensorGnome software ZIP you downloaded

    • click on storage and locate the microSD card to flash

    • Important and easy to overlook: click on the gear icon at the bottom right

    • Focus on the settings outlined in green

      • Set a hostname you will use to recognize your SG during the initial set-up (not used after that so use your initials, for example).

      • Set gnome as username and select a good password: it is used for all access to your SensorGnome (web UI, hotspot, remote management, SSH).

      • If you will use your local WiFi to give the SensorGnome internet access configure it here, if you will use Ethernet then skip this portion.

      • Uncheck "enable SSH" unless you have an SSH key you'd like to use, in which case you can enter it here (note that SSH is always enabled regardless of the setting here).

      • The locale setting is ignored.

    • Save the settings and click on 'write', wait for the microSD card to be written

    • you will see a few erratic blinks the first 40 seconds

    • 2 flashes should start after 1 minute

    • 3 flashes should start after 1:20 to 2 minutes

    • it can take 3 minutes 'til the 3 flashes show up (e.g. due to lost DHCP packets), but after 2 minutes you're probably best off starting to pull out your phone and looking for the hot-spot.

    Raspberry Pi 3B/4B (here with a cellular HAT)
    Raspberry Pi Zero-2W
    SensorStation V1
    next page

    Prerequisites

    Flashing the MicroSD card

    Troubleshooting

    SensorStation V1

    Initial configuration

    Troubleshooting

    Alternate method of configuring during the flashing process

    Timing

    Locating the green LED

    GPS options

    SensorGnomes support the Adafruit GPS HAT, cell modem GPSs, and discrete GPS units.

    The SensorGnome is best equipped with a GPS although this is not a hard requirement. The GPS performs two functions:

    • it provides accurate time to timestamp tag detections

    • it provides accurate station location even if the SG is relocated and no-one updates the metadata manually (common...)

    If no GPS unit is present the SensorGnome can obtain the time from the network using NTP (network time protocol). This assumes an always-on internet connection. If neither GPS nor NTP are available the date&time will be completely unusable at the first reboot as the Raspberry Pi hardware does not have any real-time clock.

    Cell modem GPS

    If the SensorGnome is equipped with a cell modem then in the vast majority of cases it uses the generally built-in GPS unit. This does require connecting a GPS antenna to the cell modem and ensuring it has good sky view (and is not inside of a metal enclosure).

    If the SensorGnome does not detect the GPS (check the Web UI overview tab) please post on the forum (ensure the SG is connected to the internet so it can upload log files).

    If the SensorGnome detects the GPS unit but does not get a fix the problem most likely is the antenna or its placement. Note that some GPS units require an "active" antenna which has an amplifier (LNA) built-in and some don't.

    The hardware installation of the Adafruit GPS should be documented in the "How to build a Sensorgtnome" section (which is empty at the moment).

    From the point of view of making the GPS work: the GPS HAT contains a small eeprom chip that identifies the HAT to the operating system and the SensorGnome software sets everything up automatically. Note that stacking two HATs is not supported by the rPi as it breaks the HAT detection.

    It is possible to connect a "generic" GPS breakout board to the SensorGnome. Please purchase from a reputable seller as many "U-Blox" GPS breakouts are fake and contain knock-off devices. A (genuine) U-Blox GPS is a good choice because it supports a fast binary protocol which gives good time synchronization without PPS (pulse per second) signal.

    You can connect a GPS either via USB or serial. Connecting via USB is recommended and "it should just work", although if the web UI shows "no-dev" 5 minutes after boot then post for help on the forum. (It does sometimes take a couple of minutes for gpsd to detect and configure the GPS device and then the Web UI to figure that out, use gpsmon on the commandline to get quicker feedback.)

    You can also connect via serial using 4 jumper wires. You will need to connect to the Raspberry Pi's GND, 5V, Uart-TX/gpio14, and Uart-RX/gpio15. Search for "raspberry pinout" and you will find many pictures that show the rPi connector pin assignment. The 4 pins you need to connect to are all next to each other on the outer row. Note that TX on the rPi goes to RX on the GPS module and RX on the rPi to TX on the GPS. In addition, if the GPS provides a PPS pin (Pulse Per Second) it can be connected to pin 7 / GPIO4.

    After hooking up the GPS hardware you need to boot your rPi and SSH in. Then issue the commands (this will reboot the SG!):

    To troubleshoot the GPS log in via SSH and run gpsmon, if you just get a couple of lines then gpsd (the GPS management daemon) is not talking to the GPS. Double-check your connections (especially RX-TX cross-over), ensure the SensorGnome is connected to the internet so it can upload its log files and contact the sensorgnomads mailing list with the ID of your SensorGnome. If gpsmon shows lots of GPS info that updates every second or two then your GPS is working fine.

    Another troubleshooting avenue is /var/log/syslog: restart gpsd (sudo systemctl restart gpsd) and look at what it prints in /var/log/syslog. It goes through a number of devices, including /dev/ttyUSB0 and /dev/serial0. If you see an error for the device your GPS is using that may provide clues about what is going wrong.

    For USB-connected GPS modules the tty device created may not be in the list scanned by GPSD. Use lsusb to verify the presence of your GPS device and ls -l /dev/serial/by-id to glean which ttyXXX port is used. Then edit /etc/default/gpsd to make sure it's in the list and restart gpsd (sudo systemctl restart gpsd).

    In the US, the author has been successful with 2 purchases of the following GPS module available on Amazon: https://www.amazon.com/gp/product/B07P8YMVNT and the serial connection looks something like this (please use pinout diagrams! and oops, should have connected the PPS pin as well...):

    sudo tee /etc/sensorgnome/force-hat <<<"Ultimate GPS HAT"
    sudo reboot

    Adafruit GPS HAT

    Discrete GPS unit

    GPS connected to rPi3 using serial cable for illustration (this is not a permanent install...)

    Select the MicroSD as the Storage Device, and click NEXT

    Click WRITE and then click confirm on the warning dialog

    Wait for the process to complete

    Move on to

    Enter the password you wish to use and click Submit

    with its new WiFi hotspot

    https://www.raspberrypi.com/software/
    initial configuration as described below
    http://192.168.7.2
    http://sgpi.local
    connecting to your SensorGnome
    initial configuration
    Connect to your SensorGnome

    SSH into a SensorGnome

    Occasionally it's useful to "SSH into" your SensorGnome so you can run commands directly against the operating system, copy files and logs, and perform other tasks not possible from the SG web interface. Below are two examples for Windows.

    Option 1: Using PuTTY

    1

    Connect to your SensorGnome

    Refer to the instructions here if you need a refresher.

    2

    Open PuTTY

    PuTTY is a free and open source SSH client that can be downloaded on their website or at the Microsoft Store.

    3

    In the example above we accessing the IP address 192.168.7.2 and specifying the username gnome. These are the same credentials used to access the SG's web interface. Alternatively, you could use gnome@sgpi.local. Leave everything else as default and click Open to create a new SSH Session.

    4

    The host key is a unique "fingerprint" that identifies each device. The first time you connect to an SG, you'll be prompted whether or not you accept this key. If you then connect to a different SG, you'll then be prompted again since the host key saved for this IP address won't match what you already saved.

    5

    The interface will not display any of the characters you type so it's important to keep track in your head.

    6

    Most, but not all, newer versions of Windows include SSH capabilities without the need for additional software installation (technically, this is because it often comes with OpenSSH preinstalled.)

    1

    Refer to the if you need a refresher.

    2

    Windows Terminal is the newer "umbrella" program that contains the older Command Prompt and PowerShell. Any of these will do. Just search for and run Terminal, Command Prompt, or Terminal.

    3

    With this command, we are initiating an SSH session at the IP address

    Additional information

    Why a disk image for the software?

    The reason the SensorGnome release is distributed as disk images is that the system requires 2 disk partitions (two filesystems). One small FAT32 partition which the boot loader understands and can load the initial program from. And then one large partition that has a proper Linux filesystem that is way too complex for a bootloader and that the entire system runs from (and that "gets started" by that "initial program"). The image packs everything together (and is the standard way of doing these things).

    Previous versions of SensorGnome had only one large FAT32 partition occupying the entire SDcard and instead of having a second partition for the linux filesystem they put that inside one big file within the FAT32 partition. So it was a bit like nested dolls. Technically that works, but the performance suffers because every filesystem access requires two levels of mapping and access, and it's very unconventional though creative.

    Why does flashing require root/admin/superuser permissions?

    In order to write an image to a disk one has to read/write to the raw disk, which inherently provides access to all the data that may be on the disk. That's a security issue in that it circumvents all the access controls that the operating system normally imposes on disk access. For this reason the operating system only allows the super-user/root/admin to access raw disk. And that's why Etcher (and any program that writes an image) has to ask for this permission.

    Does the hot-spot turn on at boot time?

    Currently the hot-spot always turns on at boot time. It can be turned on/off on the network tab of the web UI. It is planned to provide a switch to enable/disable it at boot, but for the moment to facilitate debugging the hot-spot is always on at boot.

    What are hostnames of the form 192-168-0-18.my.local-ip.co for?

    The local-ip.co host names have to do with HTTPS. A host name of the form A-B-C-D.my.local-ip.co resolves to the IP address A.B.C.D, this is how the connection is routed to the SensorGnome. The SensorGnome's web server holds a wildcard TLS certificate for *.my.local-ip.co which allows the user's web server to connect without warning or issues.

    The wildcard certificate is issued by Lets Encrypt and has a validity duration of 3 months. This means that the certificate needs to be updated by some means, this is not currently implemented.

    Browser support for self-signed certificates has been steadily shrinking. The warnings have been getting more dire and some browsers on some operating systems have eliminated support entirely. Initial testing with self-signed certificates resulted in lots of difficulties and confusion.

    When the SDcard is initially flashed from the image there are two partitions/filesystems:

    • a 256MB boot partition holding a FAT32 filesystem that is used in the initial boot stage.

    • an approx 4GB rootfs partition holding an EXT4 Linux filesystem with the operating system, this partition cannot (easily) be mounted on a Windows system and may show up as empty or unused, but it certainly isn't!

    • the rest of the SDcard is empty/unpartitioned.

    When the SDcard is first booted a third partition is created:

    • a large data partition filling the rest of the SDcard (e.g. about 26GB on a 32GB card) holding a FAT32 filesystem that is used to store the SensorGnome's config and data.

    The Raspberry Pis do not have a real-time clock (RTC) chip that retains the time between system reboots or power cycles. Time is only kept while the operating system is running. The operating system writes the current time to a file every 11 minutes. At boot time, time is initialized to the last thus saved timestamp. As a result, until a fresh time synchronization happens (whether Network Time Protocol NTP or GPS) the SensorGnome thinks it did a quick reboot right after saving the time.

    There are three ways the SensorGnome can synchronize time: NTP, GPS, or RTC chip. If the SG has internet connection it will start trying to synchronize via NTP. If the SG has a GPS (such as the Adafruit GPS HAT) it will synchronize as soon as the GPS signals a fix. If the SG has an Adafruit GPS HAT and the RTC built into that HAT's GPS module has the time (i.e. power was not lost or the battery is functioning) then the RTC time will be used.

    Radio tag/pulse detections occur independently of time synchronization, i.e., the SG does not wait for time sync before starting the radios. For any detections that are made the name of the file in which the detections are save has a letter that indicates the time sync state. Specifically, if the letter at he end of the ISO timestamp in the filename is the std 'Z' then the time is synchronized, if the letter is a 'P' then it is not.

    Note that in older versions of the software the timestamps of a SensorGnome without time syn were way in the past, such as pre-2010. This is no longer the case because it prevents HTTPS communication due to the fact that all certificates are flagged as invalid.

    Uploading a local tag database

    You can view live detections of your project's Lotek tags on the SensorGnomes web interface by following these steps.

    If you are trying to upload a tag database to a SensorStation, or a V1 SensorGnome, refer to the .

    Introduction

    If you are installing a station that detects Lotek tags, it is often useful to know whether it is able to detect tags in real time, particularly if you are deploying tags in the vicinity. Thankfully this is possible by loading a local tag database on to the internal storage of the device. When the SensorGnome boots up, it checks for a tag database and will display any of those tags it "hears" on its web interface.

    Viewing your live tag detections can also be useful when deploying tags or as a make-shift manual tracking device when a Lotek receiver is unavailable.

    This works by using a local version of the tag finder algorithm (find_tags_unifile) in comparison with the tag recordings provided during registration.

    There are some very important differences to be aware of between the tagfinder that runs on a SG and the one that runs on the Motus Server.

    The local tagfinder differs from the version found on Motus, in some key respects:

    • It is only aware of the tags that you have provided, so its candidate list is minimal. It might therefore assign raw data to one of your tags even if a more suitable candidate exists in the Motus database

    • It does not use deployment period or estimated battery life to assign data to candidate tags so it might "detect" a tag that has been dead for many years

    • It uses none of the on the Motus website (and in the R data)

    All of this means that you will very often get different results on the local tagfinder as with data processed by the Motus server. Despite this, uploading a local tag database is recommended any time you are deploying tags.

    1. Navigate to your and click the "Download tag database" button

    2. Download the first option. This will contain all the tags currently registered to your project.

    1. Connect to your SensorGnome via the WiFi hotspot and navigate to the "Radios" tab. Click "Upload new tag database" and select the .sqlite file you just downloaded. You should now see an updated summary including the new project and the number of tags you added.

    Software upgrade

    Notes on upgrading SensorGnomes

    In order to upgrade a SensorGnome an Internet connection is required as the SensorGnome pulls packages from a server on the Internet. Some thoughts about upgrades:

    • if it ain't broke, don't fix it

    • the standard upgrade process only updates SensorGnome software, almost all system software is left unchanged, this avoids ending up with a completely non-functional system due to a problem during the upgrade

    • it is possible to perform a full system upgrade, but perhaps swapping in an SD-card with a fresh clean image is a better option, in any case, unless there is a specific problem this is supposed to fix see the first bullet point...

    CTT Motus dongles

    In order to detect CTT 434 MHz tags on a SensorGnome, you will need the appropriate dongle as FunCubes will not work for these tags. These are often referred to as "CTT Motus dongles."

    1) Acquire the necessary components and files

    • (2-3) (or similar), for securing Feather to case

    Checking a SensorGnome in the field

    A checklist of items and software to have on hand when working with a SensorGnome in the field.

    Before you visit a SensorGnome, it's important to have a few key items and software on hand or on your computer. Some of these are absolutely essential while others can save you time and headaches in the future if you already have them with you.

    1. A web browser device: either a laptop with WiFi or a smartphone (or laptop with Ethernet and cable)

    2. The SensorGnome's password (SensorGnomes have one single password)

    Why doesn't the SensorGnome use a self-signed certificate?

    What are all the partitions on the SDcard for?

    What time is reported for detections that occur before time synchronization?

    Steps

    The additional options seen above are an earlier, depcreated, format that was summarized by yearly quarter. These will only be visible for older projects, and will almost never be needed.

    You can add .sqlite files from multiple projects without needing to merge them into one.

    filters that are applied
    project's tag management pages
    V1 SG guide
    192.168.7.2
    and specifying the username
    gnome
    . These are the same credentials used to access the SG's web interface. Alternatively, you could use
    ssh gnome@sgpi.local
    .
    4

    Accept the host key

    You may be prompted for a host key. The host key is a unique "fingerprint" that identifies each device. The first time you connect to an SG, you'll be prompted whether or not you accept this key. Type yes and you'll be prompted for the password.

    If the host key has changed...

    If you have already connected to an SG at 192.168.7.2 this new host key will not match the key that's been saved and you'll see an error message like the one below.

    Unlike a dedicated SSH client that will prompt you to click whether or not you wish to accept the new key, in Command Prompt and PowerShell, you need to clear the old keys for this IP address using a command:

    ssh-keygen -R 192.168.7.2

    If you were trying to access the SG at sgpi.local you would modify that command to ssh-keygen -R sgpi.local.

    Now that the existing key have been cleared, you can return to Step 1 and initiate the SSH session with ssh gnome@192.168.7.2

    5

    Enter the password

    You'll be prompted for the SG's password, which is the same as the password set during the initial configuration and which is used when accessing the SG's web interface. You can copy and paste the password using the standard Windows shortcut CTRL-X but note that you will not see any of the digits, whether you paste or type.

    6

    Your SSH session should now be active

    Enter the SG's hostname or address in PuTTY

    Accept the host key

    Enter the SG password

    Your SSH session is now active

    Option 2: Using Windows Terminal

    Connect to your SensorGnome

    Open Windows Terminal

    Type ssh gnome@192.168.7.2 at the prompt

    instructions here
  • If updating with a fresh image, be sure to update the boot number to maintain the proper sequence.

  • The upgrade process is managed using the SG Web UI's software tab shown below. The functionality first needs to be enabled with the enable buttons toggle. The next step is to run a software update check (red check button). In the situation shown one SensorGnome package can be updated and many operating system packages. The red sg upgrade button starts the upgrade of just the SensorGnome packages, which is the recommended action. Upgrading all the OS packages can have unintended issues.

    Due to the expiration of the software repository signing key manual intervention is required in order to upgrade from V2.0-RC12 or prior (version 2023-XXX on the software tab) to the latest versions. In order to update the repository key the following command must be executed on the SensorGnome (i.e. SSH to the SensorGnome):

    sudo curl -L -o /etc/apt/trusted.gpg.d/sensorgnome.gpg https://sensorgnome.s3.amazonaws.com/sensorgnome.gpg

    Note that this command is one line even though it may appear wrapped in this manual!

    After issuing this command (you should see messages showing the key being downloaded) the regular upgrade procedure will work.

    This upgrade requires patience because the code in those versions could not deal with some of the changes that are required and thus a "double-upgrade" happens under the covers. Please follow this process:

    1. On the software tab, "enable changes"

    2. Run "check", have a minute of patience and you should see available updates. If it doesn't seem to complete run "check" again

    3. Run "sg-upgrade" and monitor the log (or get a tea/coffee for 2-3 minutes), after a couple of minutes the log will seem to be done (scroll down in the widget), showing:

    4. Wait another minute and you may notice the green LED on the rPi stop blinking for a bit as it reboots, then reload your browser tab (you may have to reconnect to the hot-spot if you're using that to access the SensorGnome), you should see a prompt to verify the SG password, if not, wait another minute and reload the browser tab again:

    5. After entering the password the web UI should load, however, it may take a while (20-30 secs) and you may have to reconnect to the hot-spot again (sorry). On the software tab confirm that you are now running version 2023-115 or later

    The boot number is an incremental marker of how many times a SG has rebooted. It is represented in the file name as well as the web interface in the V2 SensorGnome.

    The current boot number displayed in the V2 SG web interface
    The boot number is embedded in the detection data file name (on both V1 and V2 SG)

    The boot number is an essential component when processing detection data as it can account for bad timestamps (when the GPS reports an incorrect date/time) and for stringing together long detection runs that overlap multiple uploaded batches. Because the tagfinder algorithm works under the assumption that the boot number always increments, issues can arise when the boot number is reset.

    When upgrading a SensorGnome's software with a newly flashed SD card, the boot number in the file names will be reset to 0. This applies to V2 SG with a card that's been flashed with the software, V1 SG where the software files have copied to a new card, and SG running on BeagleBones. Since this will violate the assumption that the boot number always increments, this may result in missing or false detections until the receiver data is reprocessed.

    1. Before updating the software, connect to the SensorGnome and visit the web interface. From the landing page, you should be able to see the current boot number (as the screenshot above shows). Write this number down or otherwise commit it to memory.

    2. After you have upgraded and initiated the new software, connect to the SG and navigate to the "Software" tab to update the boot number. Recalling the previous value, set the new number higher higher than necessary then reboot the SG and confirm that the change has persisted when you connect again.

    3. Reboot the SG and connect to it to confirm that the change is persistent.

    Upgrade Process

    Upgrading from V2.0-RC12 or prior to later versions

    Upgrading from v2.0-RC8 or v2.0-RC6

    Updating the boot number

    What is the boot number?

    When is the boot number reset?

    If updating a V2 SG over the internet using the web interface, the proper boot number sequence is retained.

    How to update the boot number

    Updating the boot number is only possible on the V2 SensorGnome software running on a Raspberry Pi.

    If you cannot, or prefer not to, run V2 SG on a Raspberry Pi, the boot number will only be corrected after the receiver data is reprocessed. You can read more about reprocessing receiver data .

    When a receiver’s data is reprocessed (also referred to as re-running), the correct boot number sequence is restored and any spurious or missing detections resolved – assuming all tag deployment metadata is up-to-date. You can read more about receiver data reprocessing .

  • uFL to SMA bulkhead adapter (a shorter, more flexible cable is preferred)

  • USB-A to microUSB cable or USB-C to microUSB cable, depending on your computer's USB port availability. If you can use a USB-A cable with your computer, and get a short one similar to the example linked, you can use it later when installing the CTT Dongle as part of the SensorGnome.

  • Arduino Feather Programmer and CTT Dongle firmware bundle below. NOTE: The firmware currently included in the below bundle is the last commercially-used firmware on the CTT dongle. Thus it does NOT require the jumper wire described and referenced elsewhere in Motus mailing list to function properly. If the firmware provided here is updated to the newest release requiring the jumper wire, these instructions will be modified to reflect that change.

  • 2) Connect the AdaFruit Feather board to a USB port on your computer. The Feather board has a microUSB connection, so you'll need the USB cable.

    3) Unzip the Arduino Feather Programmer and CTT Dongle firmware bundle to your computer. You will have to extract or copy the entire CTT_dongle_Feather_programmer_w_firmware folder contained in the zip file to a new, physical location on your computer. You cannot run the firmware installation program from within the zipped file.

    4) Within the newly unzipped directory, run the Feather32u4Programmer.exe program. It should look something like this:

    CTT Dongle programming window

    5) Once the program window opens, from the drop-down box, select the COM port that the Feather device is connected to. If you have multiple COM ports listed, you can identify the correct port by (a) noting which COM ports are listed, (b) unplugging the device, (c) pressing theRefresh button, (d) see which port has disappeared from the list of COM ports, (e) plugging the device back in, and (f) refreshing again and selecting the new COM port.

    6) Press the Select File button and navigate to the station_radio_last_commercial.hex file located in the Firmware directory of the bundle you unzipped in Step 2.

    7) Press the Program button at the bottom of the window and wait until the program indicates the firmware installation is done. You may then close the program and disconnect the Feather device.

    8) Solder the uFL surface mount connector to the underside of the Feather (see here for tips).

    9) Print the body and lid of the CTT dongle case with your 3D printer.

    10) Install the SMA bulkhead first, tightening it securely and helping the bulkhead to fit into the hexagonal opening that fits its base.

    SMA bulkhead installed and tightened securely.

    11) Attach the uFL connector to the newly-installed uFL surface mount connector on the bottom of the Feather. This connection can easily come undone, so secure with some liquid electrical tape or high temperature hot glue.

    uFL connector secured with liquid electrical tape.

    12) Insert the Feather into the case, carefully maneuvering the SMA to uFL cable under the board and around the 3D printed board support, aligning the corner mounting holes with the screw mounts in the bottom of the case. Install 2-3 of the M1 screws in the corner, securing the board to the base.

    M1 screws in and secure. Install at least one on each end of the Feather board.

    13) Attach the case lid. It may be easiest to insert one long side in first and then press firmly on the opposite side until the lid snaps into place.

    Completed CTT Motus dongle, ready for installation in a SensorGnome.

    14) To use with a SensorGnome, you will need a USB-A to microUSB cable, preferably 25cm or less. This may be the same one you used above during firmware installation. Connect to a USB port on the SensorGnome via the USB-A to microUSB cable. The antenna connects to the SMA connector, similarly to a FUNcube dongle.

    CTT stopped manufacturing these dongles in early 2023. However, they have generously provided the firmware and 3D printing schematics that make it possible to build and assemble your own.

    AdaFruit Feather 32u4 Radio (RFM69HCW)
    uFL surface mount antenna connector
    M1-0.25 x 2mm screws
    CTT_dongle_Feather_programmer_w_firmware.zip
    archive · 360KB
    Open
    CTT_dongle_case_STL_files.zip
    archive · 145KB
    Open
    Location of any hotspot-enable button
  • Network information to connect to the SensorGnome if you will not be using the hotspot (hostname or IP address and local Wifi password, etc)

  • Information about antennas, cables, dongles/radios, and ports: which antenna corresponds to which cable, which dongle it should be connected to, and which port it should be plugged into

    • A Lotek test tag and a CTT test tag to perform an end-to-end verification of the system

    • An SD-card prepared with the latest version of the SensorGnome software

    The SensorGnome is managed through its web interface which is generally accessed using the SensorGnome's hotspot. Alternatively, it is possible to use an Ethernet cable or to connect to the building's WiFi if the SensorGnome is connected to it as well.

    If you can see the Raspberry Pi board it is helpful to first check its two LEDs. These are near the power connector (USB cable) and diagonally opposite the Ethernet jack: a red one and a green one. The red LED should be solid on indicating that power is on. The green LED should be flashing 1x, 2x, or 3x every 2 seconds:

    • 1x: operating, hotspot off, and no internet access

    • 2x: operating, hotspot ON, no internet access

    • 3x: operating, internet access OK (hotspot may be on or off)

    Many SensorGnomes keep the Hotspot on 24x7. Open the internet or wifi settings on you laptop or phone where it scans for available networks and locate one with the SensorGnome's ID, i.e. something of the form SG-1234RPI4ABCD.

    Some SensorGnomes turn the hotspot off and have a button to press to enable the hotspot. Typically this button is accessible from outside the enclosure.

    Connect to that network, enter the password, and use the web browser that typically pops-up.

    The hot-spot acts as a "captive portal", which means that it looks to your computer/phone like a WiFi network typical of airports or hotels where you have to enter credentials or accept an agreement to get internet access. However, the SensorGnome never actually provides internet access...

    Some of the issues users have encountered are:

    • a web browser automatically opens to show the SensorGnome's web UI, but it may be a special system browser and not your regular browser (on iOS that browser seems not to show certain charts)

    • your computer/phone may become "impatient" about not getting internet access and decide to switch back to your regular WiFi

    • if using Android, your phone may use the cellular network instead of the Hot-Spot and you most likely have to turn cellular/mobile off

    In many cases the hot-spot "just works" but being aware of the potential issues helps.

    If you get stuck first check that your laptop/phone is still connected to the hot-spot and once it is connect to the SensorGnome using your favorite browser at http://192.168.7.2 to avoid the system browser.

    Some SensorGnomes may be connected to the local building/campus WiFi or Ethernet in which case you will need to connect your laptop/phone to that network too. You may then be able to access the SensorGnome at http://sgpi.local but in many cases you will need to know the SensorGnome's IP address (like http://192.168.1.1).

    Over a WiFi network or Ethernet the SensorGnome uses HTTPS, i.e. encryption. If you access it using HTTP you will see a redirect page that shows a link like:

    SensorGnome redirect page when accessed using HTTP

    This link, using my.local-ip.co is there to make the certificate check used by HTTPS work. However, if you r SensorGnome is not regularly updated the certificate may be out of date and you may have to jump through hoops to make your browser proceed. (This is why it's typically easier to use the hotspot.)

    • check that the time source is as expected, e.g. NTP (network time protocol) or GPS

    • check that the boot time makes sense (some SensorGnomes reboot daily in winter due to power constraints but generally they should remain on all the time)

    • check the SD-card usage

    • check that the GPS has a fix, unless the SensorGnome doesn't have a GPS. "No-sat" means there is a GPS but it has no fix: that's often a problem

    • Check that the radio number match up with what's installed and that there are no invalid ports

    • Check that the ports (in the port mapping, e.g. 1, 5, 6, 7 in this screen shot) are as expected

    • If you have test tags with you observe their detection in the panel on the right, here port 5 detects Lotek pulses

    • If devices are missing, e.g. GPS shows no-dev or radios that are evidently plugged in are not showing up the first step should be a reboot (on the Software tab).

    • ...

    What to bring

    In addition...

    Connecting to a SensorGnome

    Blinking LEDs

    Hotspot connection

    Using a WiFi or Ethernet network

    Checking the SensorGnome's health

    On the home (leftmost) tab:

    On the Radios tab

    Troubleshooting

    Internet configuration

    Wherever possible, SG's should be connected to the Internet for three benefits:

    • Automatically upload data to Motus, resulting in more up-to-date data, fewer trips to visit a station, and more timely identification (and resolution) of any issues with the receiver.

    • Remote monitoring of the SG's operation, including radio operation, SD-card usage, upload progress, detections, etc.

    • Remote administration of the SG to perform necessary upgrades, enable/disable the hot-spot, reboot, etc.

    The SensorGnome can connect to any standard WiFi network using the Raspberry Pi's built-in WiFi client. This is accessed and configured on the SG's web interface.

    1

    See if you need a refresher.

    2
    3

    Enter the WiFi's SSID (the WiFi network name) and passphrase (password) and click the green check-mark to save.

    If there is no password, leave that field blank (you will still see the *******

    The simplest method of syncing data over the internet is to plug the RPi into the Internet via an Ethernet cable. If the internet is not password-protected and the SG can obtain an address via DHCP the SensorGnome should connect to the Motus server within minutes and begin syncing data.

    1
    2

    then access the NETWORK tab to check the current status

    Cellular connectivity is supported using the as well as the Waveshare SIM7600 series USB dongles.

    Simply installing the HAT or plugging the SIM7600 device in should cause everything to magically function, provided the SIM you are using is activated and has a valid data plan. The SixFab modem kit has an integrated GPS, though in the case of the Waveshare device you'll need to purchase a simple (passive) GPS antenna with a u.Fl connector and plug it into the GPS port (you have to open the device as shown in the instructions provided by Waveshare).

    If you are experiencing issues with cell connectivity, please refer to the section.

    SG Hub, at , provides a convenient way to check on an internet-connected SensorGnome. Along with the most recent check-in time, there are a variety of other diagnostic and status plots to help asses the "health" of the various SensorGnomes.

    Generally, within a minute or two of connecting for the first time, a SensorGnome will show up in the "Recently installed Sensorgnomes" list. You can sort this list by any of the columns, and click on any of the SGs for more detailed info about that particular SG.

    When the SensorGnome connects to a WiFi, Ethernet, or cellular network it expects to obtain an IP address for itself and the address of a default gateway via DHCP. This is standard DHCP configuration but of course can be disabled/changed by the administrator of the local network.

    Whenever the SensorGnome has a default gateway it:

    • displays "internet via xxx" in the "internet via" widget on the network tab, where xxx designates the type of interface

    • checks general internet connectivity and displays the result in the "Internet" widget

    • checks connectivity to motus.org and displays the result in the "Motus.org" widget

    • obtains an upload authentication token from a SensorGnome server

    here
    here
    placeholder when it's blank). Changing the country code from 00 to your country's two letter ISO code, e.g. US, CA, DE, et. is optional and unlikely to change anything; code 00 is a "lowest common denominator".
    4

    After several seconds, the Network Connectivity widget should indicate connectivity

    This web interface will confirm if you are connected

    On the RPi3 and RPi4 the WiFi hotspot functionality is independent of the WiFi client functionality and both can be active at the same time. However, the hot-spot may temporarily disconnect and reconnect when configuring the WiFi client because it may have to switch channel as it must use the channel dictated by the WiFi client connection.

    uploads data files to motus.org as soon as they are complete, i.e., the next file is started, which typically. happens once an hour

  • uploads any old data files that have not been previously uploaded

  • Option 1: WiFi

    The RPi 3 only supports the 2.4 Ghz band, not the 5 Ghz band. The RPi 4 supports both bands.

    Connect to the SensorGnome's web interface

    On the NETWORK tab, click on the "pencil" icon in the WiFi Client widget to edit the configuration

    Enter the WiFi network name and password

    Option 2: Wired internet over Ethernet

    Connect an Ethernet cable that is non-password-protected to the SG

    Confirm that the SG has connectivity in its Web UI

    Option 3: Cellular

    SG Hub

    Automatic upload process

    Connecting to your SensorGnome
    Connect to your SensorGnome
    SixFab 4G/LTE cellular modem kit/HAT
    Troubleshooting
    www.sensorgnome.net
    The SG web interface will indicate whether an internet connection exists, as well as the particular type, in this case Ethernet.
    SG Hub will show recently connected SG

    Radio configuration

    Once the SensorGnome operating system is up and running the various radio dongles need to be plugged in, configured, and their proper operation verified.

    The configuration consists of mapping each radio to a "port" such that Motus can exactly identify which antenna received a tag transmission.

    The verification consists of validating that a test tag transmission is detected, sent to Motus, and classified correctly.

    Radio port configuration

    The purpose of USB port mapping is to establish a clean correspondence between (human-readable) labels on USB ports, port numbers reported to Motus, and the port designations used by the SensorGnome software.

    While establishing the port mapping may seem like a detail it is actually extremely important because it is the most critical link in communicating antenna orientation to Motus. When detection data is evaluated, the antenna information is often used to determine animal travel direction. If antennas, radios or ports are misidentified the result is bad science!

    Background

    Motus identifies ports using single digit integers from P1 through P9 and P0 (which stands for 10). It is recommended to physically label the ports on a SensorGnome in the same way from 1 through 10 (e.g. using marker pen, sticky labels, etc).

    The Operating System uses an entirely different port numbering, which consists of the path through ports and hubs to reach a device. For example, a radio plugged into port 3 of a hub, itself plugged into port 4 of an rPi ends up with the path 1.4.3 (the leading 1 refers to the first root hub). We need to establish a mapping from these paths to port numbers 1..10.

    The Motus conventions for the ports depend on the device:

    • rPi3B: port 1 is the upper port next to the Ethernet jack, port 2 is below, 3 is the upper outer port, and 4 is the lower outer port. Typically a SensorGnome uses a USB hub plugged into port 4 (bottom outer port) and the hub's ports are numbered 4 through 7 or 4 through 10 depending on whether it's a 4-port or a 7-port hub.

    • rPi4B: the numbering should be reversed so the USB hub is plugged into a USB3 port (the blue ports): port 1 is the lower outer port, port 2 above it, port 3 the lower port next to the ethernet jack, and port 4 above it. Plug a hub into this last port, i.e. top blue USB3 port.

    • rPi Zero-2W: there is only one micro-USB port and the port numbering will depend on the type of hub used.

    To perform the mapping follow these steps:

    • Ensure all USB ports are labeled and all devices to be plugged in are also labeled.

    • Bring up the SensorGnome's web UI and locate the "Port Mapping" section on the Radios tab.

    • Unplug all USB devices (leaving any hub plugged in).

    • Plug one device into the desired port,

    The port mappings are deterministic when using the same model rPi and the same hub models, so the port mapping can be copied between identical devices.

    In the end it is highly recommended to double check the correct port mappings:

    • Verify in the Web UI "Devices" that all devices are assigned a port 1 through 10 (no port should be shown in red)

    • Unplug each device in turn, watch the correct line disappear, plug it back in and watch the correct line with the correct port number reappear.

    There are three frequencies worldwide that Motus-compatible Lotek tags broadcast on. The default configuration is set to the Western Hemisphere frequency so any SG or SensorStation deployed elsewhere needs to be configured to listen to the appropriate frequency for that region if listening for Lotek tags.

    Region
    Lotek tag frequency

    The frequency can easily be set via the Radios tab in the UI. Following the change, you can reboot using the buttons in the UI to confirm that the setting change is persistent.

    To verify the correct end-to-end operation of radios some test tags are necessary. For Lotek tags a tag database with the test tags is recommended but not essential.

    • Ensure at least one FunCube or RTLSDR radio is plugged in and shows in the Web UI Devices section with a port numbered 1 through 10 (i.e. not shown in red).

    • Ensure the test tag is activated.

    • On Web UI's radio tab watch the "Detection log" widget in the Web UI, when the tag transmits next you should see 3-4 lines of the form PLS: p5,1665900923.5965,3.96,-48.31,-60.86 PLS: p5,1665900923.6185,3.948,-48.76,-60.92 PLS: p5,1665900923.6380,3.986,-47.99,-60.94

    • Ensure at least one CTT MOTUS adapter or equivalent is plugged in and shows in the Web UI Devices section with a port numbered 1 through 10 (i.e. not shown in red).

    • Ensure the test tag is activated, or in the case of a solar LifeTag that it has bright light shining on it.

    • On Web UI's radio tab watch the "Detection log" widget and you should see tag transmissions appear of the form TAG: T6,1665900910.226,78664C33,-95 The T6 refers to CTT radio on port 6, 1665900910.226 is the timestamp (seconds since 1970-1-1) 78664C33 is the CTT tag ID and -95 is the RSSI (dBm).

    • As you plug radios into USB ports they should appear in the Web UI Devices section within 2-3 seconds. If they don't, reboot the SensorGnome. If that doesn't make them show up there is a software or hardware problem. Compare with what happens as you plug/unplug other identical devices if you have any.

    • If a FUNcube is shown in the Devices section with a frequency other than the expected one (166.376 for north America) press the "Refresh Devices List" button. If that doesn't fix it TBD

    • If the Devices look correct but the Live Pulses do not show anything first ensure your test tag is active. Some test tag intervals are long, e.g. 25 seconds, so have some patience. If nothing happens, reboot the SensorGnome.

    SensorStation V1: the built-in CTT radios at the bottom of the board are ports 1-5, the USB connectors labeled USB1 through USB5 are ports 6-10, USB6 & USB7 should not be used for radios (plug the WiFi dongle into one of them and a cellular modem into the other).

    Watch the device appearing in the Web UI's "Devices" widget, note the port path shown as well as the port selected. If it's not red, then it's probably OK.

  • To change the port selected, edit the Port Mapping (pencil icon at the top), edit the mapping and save it.

  • Plug each remaining USB device in one at a time and repeat.

  • PLS: p5,1665900923.6625,3.989,-47.62,-61.01
    PLS stands for pulse, p5 refers to "pulse on port 5", this is followed by the time-stamp, the frequency offset in kHz from the nominal frequency, the RSSI (dBm) and the noise (dBm).
  • It takes 2 bursts of 4 pulses to detect a tag if the tag is found in the local tag database. A tag detection is hown as follows: TAG: 00:01:14.346 p3 2.812 kHz -39.57 / -53.8 dB where the p3 refers to USB port 3

  • If you loaded a tag database and the tag is in that database then after 2 radio bursts (i.e. 8 PLS lines) you should see a tag detection in the log: L5,1665900923.5965,TestTags#1.1@166.38:25.1,3.971,0.02,-48.1,11.1,-60.9,3223,95,1.97e-07,-4.96e-05,166.38 The L5 refers to a Lotek tag detected by the radio on port 5. This is followed by the tag name and ID, the nominal frequency, the pulse interval (25.1s in this case), the freq offset in kHz, and further details about the pulse burst.

  • Note that if you have multiple radios plugged in you should see live pulses and live known tags from all of them, so you should see more than 4 lines appear at once.

  • If you see pulses but no tag detections re-upload your tag database and reboot.

    Western Hemisphere

    166.380

    Europe and UK

    150.100

    Australia

    Steps

    Setting the correct frequency for Lotek radios

    This is a critical step for any SensorGnome (or SensorStation) listening for Lotek tags outside the Western Hemisphere. This only affects Lotek compatible radios (e.g. FunCube, RTL-SDR, etc) and tags.

    The frequency saved in the SG is not actually the true frequency of the tag which is displayed in the UI, but rather that value minus 4 kHz. This is because the FunCubes actually resolve the tag signals better if tuned slightly below the actual frequency. The nominal tag frequency value can be viewed in the Config tab in the Acquisition Configuration section. This is the equivalent of the deployment.txt file in V1 SG. For example, you'll notice that if the frequency is set for 166.380, the value here will be 166.374 and if the frequency set in the UI is 150.1, the value here will be 150.096. Not only is this expected, it is actually crucial to the proper functioning of the SG.

    Verifying successful reception

    Verify the reception of Lotek tags

    Verify the reception of CTT tags

    Troubleshooting

    151.500

    Connecting to your SensorGnome

    In order to check the status of a SensorGnome, download data, or modify the configuration, you must first connect to it using a laptop or phone. The primary method is by connecting to a WiFi hotspot that the SG broadcasts (Option 1).

    Before you start, look at the LED lights on the Raspberry Pi. The green LED should display a characteristic flashing pattern.

    • Green LED flashing once. Booted up and operating normally. Hotspot has been turned off [this is uncommon].

    • Green LED flashing twice. Booted up and operating normally. Hotspot should be on.

    Option 1: Connect via WiFi hotspot

    By default, a SensorGnome broadcasts a WiFi hotspot whenever it is powered on, assuming it is functioning normally. The WiFi hotspot only serves to establish a connection between the SG and your computer or phone; it does not connect the SG to the internet.

    You can use either a laptop of smartphone to connect to a SensorGnome. However, due to the larger screen for working, ease of downloading files, taking full-page screenshots, and other benefits, a laptop is usually preferred if available.

    1

    Connect to the SG's hotspot

    The WiFi network name corresponds to the SensorGnome's unique serial number, e.g. SG-3BEERPI36FDA. The WiFi password is set when the SensorGnome is configured immediately after a fresh software installation. If the SG's WiFi hotspot name ends with a -init suffix, it has not been initialized and does not yet have a password.

    2

    Once connected to the SG's WiFi hotspot, you will still need to log in to view the web interface. The SG uses what's referred to as a captive portal for this, which will be familiar to anyone who has accessed WiFi in an airport or hotel that has required them to log in first. Your browser might automatically open up this page for you, or you may need to click on the "Open browser and connect" option in your WiFi network settings (the appearance of which will vary depending on your computer or phone operating system. Or your browser might display a banner prompting you to log in to the network.

    If you don't see any prompt or message directing you to the captive portal, you may need to visit it directly. You can access it at either of the links below.

    3

    Having clicked on either of the two links in the captive portal, you should now see the web interface log in page. The username is already prepopulated as gnome. The password is the same as the WiFi password you just used to connect to the hotspot.

    4

    Once logged in, you'll see something like this. You are now in the web interface and can continue to configuring the SG, downloading data, or just checking its status.

    The hot-spot acts as a "captive portal", which means that it looks to your computer/phone like a WiFi network typical of airports or hotels where you have to enter credentials or accept an agreement to get internet access. However, the SensorGnome never actually provides internet access...

    Some of the issues users have encountered are:

    • a web browser automatically opens to show the SensorGnome's web UI, but it may be a special system browser and not your regular browser (on iOS that browser seems not to show certain charts)

    • your computer/phone may become "impatient" about not getting internet access and decide to switch back to your regular WiFi

    • if using Android, your phone may use the cellular network instead of the hotspot and you most likely have to turn cellular/mobile off

    In many cases the hot-spot "just works" but being aware of the potential issues helps.

    If you get stuck and "it doesn't work" check that your computer/phone is still connected to the hot-spot. You can also connect to the SensorGnome using your favorite browser at http://192.168.7.2 to avoid the system browser.

    When a device connects to the hot-spot it detects that there is no internet connection (because the hot-spot only provides access to the SensorGnome ). It then assumes that this is a "captive portal", which means that the user has to connect to a specific web site to log in or agree to some legal terms before getting internet access. This is typical of WiFi in public locations, e.g. airport, hotel, or coffee shop.

    In order to facilitate the required login or acceptance of terms your device starts a web browser which connects to the SensorGnome's web UI. This usually works well and allows you to use the UI. However, depending on the device and on other available WiFi networks you may run into issues. The main cause for issues is that your device expects to eventually get internet access but the SensorGnome will never provide that, so your device may take actions in an effort to restore internet access. Specifically, your device may decide to disconnect from the SensorGnome hot-spot and connect to some other network, such as a previously working one.

    Tips:

    • If your device prompts you with a message stating that this network does not provide internet access and whether you want to stay connected anyway choose the option to stay connected.

    • If the web UI stops working, check whether your device disconnected from the hot-spot and connected to a different network. If so, reconnect to the hot-spot.

    • Ensure you have no VPN active

    • The web browser used in the captive portal mode (i.e. to allow you to log-in or accept terms) may not be the regular web browser you use on your device. If it does not work well or is closed on you open your standard browser and try

    With a computer, you can connect directly to your SensorGnome with an Ethernet cable. This can be helpful if you are having difficulties with the WiFi hotspot, but the SG itself still seems to be running properly based on the green LED pattern.

    1

    Wait a minute or so for the connection to be established. The lights on the Ethernet port on the RPi and/or your computer should start flashing to indicate activity. It nothing happens here, that's an indication that something else is wrong (bad Ethernet cable,

    2

    For an Ethernet connection, sgpi.local is likely to be the only method of accessing the web interface (192.168.7.2 will probably not work).

    3

    If your computer and/or smartphone are connected to the same local network as your SG (e.g. connected to the same router, whether by WiFi or Ethernet) you should be able to access your SensorGnome by the hostname sgpi.local.

    1

    After navigating to sgpi.local, follow the prompts to access the Web Interface.

    2
    3
    4

    If your SensorGnome and your laptop/phone are both connected to the internet and on the same WiFi or Ethernet network, you can connect to it this way. This can be helpful in cases where the WiFi hotspot method described above is not working.

    1. First: verify that your SG's green LED shows 3 flashes every 2 seconds. If it doesn't, your RPi SG does not have internet access.

    2. Open the SensorGnome Hub (SGhub) website at , logging in with your Motus user name and password when prompted.

    3. The table at the top shows the most recently initialized SensorGnomes: yours may already be at the top! You can identify it using the label column which should show the hostname you entered.

    1. Click on the row with your SensorGnome, this switches to the station tab; at the top-right is a link to the web UI:

    1. If you have already configured your SG with a password, enter it when prompted. If this SG has not yet been initialized, you'll have the opportunity to set its password here.

    You are now connected to the web UI

    Motus data file formats

    This page describes the information contained in the file name and contents for the three receivers supported by the Motus system

    This page has not yet been updated for the SensorGnome V2 software!

    1. File types

    1a. SensorGnome format

    This format is the default for units running the SensorGnome software (including for the SensorGnome component of the SensorStation). Each file contains individual pulses, gps readings, etc. The data can also be separated for each antenna, as well as for LifeTag detections only (type = ctt).

    Filename format: <site_label>-<receiver_number>-<boot_num>-<datetime><prec>-<type>-<ext>.gz
    
    Example:    changeMe-3114BBBK2178-000074-2018-01-22T00-29-13.3300T-all.txt.gz
            changeMe-3114BBBK2178-000074-2018-01-22T00-29-13.3300T-ctt.txt.gz
    
    site_label: user-entered site label (default: changeMe)
    receiver_number: for SensorGnomes, receiver serial number (without the SG prefix, e.g. 3114BBBK2178)
             for SensorStation, receiver serial number (with the CTT prefix, e.g. CTT-123456789012345)
    boot_num: boot number
    datetime: yyyy-mm-ddTHH:MM:ss.ssss
    prec: single digit representing the clock precision:
        P: clock not set by GPS
        Z: 1 second
        Y: 0.1 second
        X: 0.01 second
        W: 0.001 second
        V: 0.0001 second
        U: 0.00001 second
        T: 0.000001 second
    type:     all (for all antennae), specific antenna number or ctt (ctt and gps data only)
    ext: extension (typically txt)            
    gz: indicates compressed files (other types of compressions are also supported: bz2, etc.)

    1b. SensorStation format

    This format is the default for units running the SensorStation software. Data components are divided separate files: data, node data and gps. Data contains the 32-bit codes interpreted by the CTT dongles, node data contains detections from external node units and gps includes gps readings (only for the base station so far, not for nodes).

    File format: CTT-<serial>-<data_type>.<datetime>.<ext>.gz
    
    Example :    CTT-867459049219777-data.2019-07-18_191832.csv.gz
            CTT-867459049219777-node-data.2019-07-18_191832.csv.gz
            CTT-867459049219777-gps.2019-07-18_191832.csv.gz
    
    serial : 15 digit numeric (old) or 12  digit alphanumeric value (new)
    data_type : one of data, raw-data (same as data), data-node or gps
    datetime : <yyyy-MM-dd_HHmmss>
    ext : csv only so far
    gz : indicates compressed files

    1c. Lotek format

    This is the default format used by Lotek units. Each file contains a header and individual tag detections (not pulses, only putative tags). There are other formats available for export from the Lotek units (e.g. binary), but we require the DTA format.

    Filename format: <filename>.DTA
    
    Example : OldCut0001.DAT
    
    filename : any arbitrary value provided by the user

    Filename: the file name is entirely determined by the user and doesn't contain useful information about its content.

    2. File content

    2a. SensorGnome format

    The following prefix can be found in SensorGnome files. Files of type ctt will only contain T and G prefix.

    C : (GPS clock setting precision record: outlines the time the GPS was set (ts), the precision it was set to (prec), and the time elapsed in running the time (elapsed))

    G : GPS data entry

    p : individual pulse on FunCube Dongles

    S : frequency setting record (see fields below for possible name values)

    T : LifeTag hit on CTT/CVRX dongle or SensorStation

    Fields:

    SensorStation (LifeTag) files will contain headers specifying their content. No assumptions should be made about the order or the list of fields included within those files. The formats below are those currently in use at the time of this document.

    data (or raw-data) files:

    node-data files: meta information about the nodes

    gps files: gps readings of the base station

    Data segment: individual tag detections. We request that users export their DTA file using GMT times, but there is no guarantee. Hopefully, newer versions will format dates as ISO 8601 to include the time zone.

    2b. SensorStation (LifeTag) format

    2c. Lotek format

    Format : C,<ts>,<prec>,<elapsed>
    Example : C,1528750333.246,1,0.399892479
    Example : C,1561257097.681,6,8.6e-7
    Format : G,<ts>,<lat>,<lon>,<alt>
    Example : G,1526683597,-23.002083333,118.931118333,736.4
    Format : p<port_num>,<ts>,<dfreq>,<sig>,<noise>
    Example : p3,1526683680.8316,0.4,-35.4,-42.56
    Format : S,<ts>,<port_num>,<name>,<value>,<rc>,<err>
    Example : S,1366227448.192,5,-m,166.376,0,
    Example : S,946684811.244,3,frequency,151.496,0,
    Example : S,946684811.249,3,gain_mode,1,0,
    Example : S,946684811.25,3,tuner_gain,40.2,0,
    Example : S,946684811.25,3,test_mode,0,0,
    Example : S,946684811.251,3,agc_mode,0,0,
    Format : T<port_num>,<ts>,<tag_code>
    Example : T4,1557450282.889,04452182
    -m : antenna listening frequency (FunCube and FunCubePro)
    -w : FunCube and FunCubePro parameter settings
    (see https://github.com/sensorgnome-org/sensorgnome-control/blob/77d8ba9b2cf1ba6d3eef895fe7e2155c3f6ccd73/master/usbaudio.js#L32)
    alt : altitude (m)
    dfreq : frequency offset (KHz)
    err : blank on success, else error message (frequency setting)
    freq : nominal frequency
    lat : latitude (degrees)
    lon : longitude (degrees)
    name : arbitrary parameter name
    noise : noise level (dB?)
    port_num : port number (antenna)
    rc : response code (?). E.g. zero if frequency setting succeeded, else non-zero error code
    sig : signal strength (dB)
    tag_code : 32-bit tag code (e.g. LifeTag)
    ts : Unix timestamp (seconds)
    value : arbitrary parameter value
    Format : <Time>,<RadioId>,<TagId>,<TagRSSI>,<NodeId>
    Format : <Time>,<RadioId>,<TagId>,<TagRSSI>,<NodeId>,<Validated>
    
    Example : 2019-07-16 20:18:39.845,3,6161527F,-96,
    
    Time : datetime (UTC) yyyy-MM-dd HH:mm:ss.sss
    RadioId : Port number (numeric). Those ports are saved with a L prefix in the metadata and the data tables
    TagId : tag number (e.g. AF7709D3)
    TagRSSI : Received Signal Strenght Indication
    NodeId : hex ID of the node that originally captured the signal (3-digit for old models. Should be unique in more recent models)
    Validated : 0 or 1 to indicate whether the tag was considered valid by CTT algorithms (details unknown).
    Format : <Time>,<RadioId>,<NodeId>,<NodeRSSI>,<Battery>,<Celcius>
    Format : <Time>,<RadioId>,<NodeId>,<NodeRSSI>,<Battery>,<Celcius>,<RecordedAt>,<Firmware>,<SolarVolts>,<SolarCurrent>,<CumulativeSolarCurrent>,<Latitude>,<Longitude>
    
    Time : datetime (UTC) yyyy-MM-dd HH:mm:ss.sss when the data was received at the base station
    RadioId : Port number (numeric). Those ports are saved with a L prefix in the metadata and the data tables
    NodeRSSI : Received Signal Strenght Indication (node signal on the base station)
    Battery : battery power level
    Celcius : node temperature
    RecordedAt : datetime (UTC) when the data was recorded on the node
    Firmware : node firmware
    SolarVolts : solar voltage
    SolarCurrent : solar current
    CumulativeSolarCurrent :  cumulative solar current
    Latitude : node latitude
    Longitude : node longitude
    Format : <recorded at>,<gps at>,<latitude>,<longitude>,<altitude>,<quality>
    Format : <recorded at>,<gps at>,<latitude>,<longitude>,<altitude>,<quality>,<mean lat>,<mean lon>,<n fixes>
    
    Example : 2019-08-17T03:09:27.458Z,2019-08-17T03:09:26.000Z,38.240977833,-75.1360325,2.7,3
    
    recorded at : datetime (UTC) yyyy-MM-ddTHH:mm:ss.sssZ
    gps at :  datetime of gps clock (UTC) yyyy-MM-ddTHH:mm:ss.sssZ
    latitude : latitude (degrees)
    longitude : longitude (degrees)
    altitude : altitude (m)
    quality : signal quality (units?)
    mean lat : mean latitude
    mean lon : mean longitude
    n fixes : number of fixes used to calculate mean
    Format: <Date> <Time>    <Channel>  <Tag ID>    <Antenna>   <Power>
    Example: 06/05/15  12:43:10.6489         0     393    A1+A2+A3+A4     131

    You should now see a webpage with something like the page below. This is the captive portal, and is directing you to the actual web interface page. Click on either of the two links.

    http://192.168.7.2
    or
    http://sgpi.local
    .
  • If the captive portal ends up being broken or too confusing turn it off on the landing page at http://192.168.7.2, http://sgpi.local. Then possibly disconnect and reconnect to the hot-spot and navigate to one of the those two URLs explicitly by bringing up a browser. Your device operating system will warn about "no internet access" and some "stay connected anyway" setting may be necessary.

  • If your laptop is struggling to connect to the WiFi hotspot, try a smartphone; or vice versa.

  • If nothing works, try connecting via Ethernet

  • If you get a security warning about an insecure site, click "Advanced" option, and "Proceed to sgpi.local".

    Select the appropriate link from the options presented. If you see an option for Ethernet, choose this. Otherwise try the WiFi Client option, or sgpi.local. Anything beginning with 192.168.7.2 is unlikely to work if you are not connected to the WiFi hotspot.

    4
  • Green LED flashing three times. Booted up, operating normally, and connected to the internet. Hotspot should be on.

  • If, a few minutes after booting up, you see anything other than this pattern, there is likely something wrong with the software card, a faulty power supply, or bad hardware.

    Open a web browser and follow the prompts to log in to the network

    Enter the credentials for the web interface

    You should now be connected to the web interface

    Troubleshooting and tips

    Option 2: Connect via Ethernet

    Connect an Ethernet cable to both the RPi and your computer

    Open a browser and visit sgpi.local

    Option 3: Connect via LAN (Local Area Network)

    Open a web browser and visit sgpi.local

    Enter the credentials for the web interface

    You should now be connected to the web interface

    Connect to your SensorGnome via Internet

    http://192.168.7.2
    https://www.sensorgnome.net
    Several SensorGnomes are running and within WiFi range of this location. The last SG, with the -init suffix following the serial number, has not yet been initialized.
    The hotspot doesn't provide access to the internet, but the "login" page (the captive portal) is how you access the SG web interface.
    Your browser may display a prompt like this to direct you to the captive portal
    SG login dialog. The username is always gnome, and the password is the same as the WiFi hotspot password.
    The SensorGnome Web Interface

    Bookmark these links in your web browser so that you can easily navigate to them in the future.

    Follow the instructions in the browser to access the web interface

    You should now be connected to the web interface

    When connected via Ethernet, you should use the hostname sgpi.local any time you need to specify it, such as establishing a connection or session.

    http://sgpi.local
    The captive portal provides two options for accessing the web interface, along with an option to disable the captive portal itself
    If you get a notice about an insecure site, proceed to spgi.local anyway
    FTP
    SSH

    Cell modem troubleshooting

    Cell modem power

    Almost all cell modems compatible with SensorGnomes use a lot of peak power and they exceed the power capabilities of RPi 3B and 4B USB ports. You must:

    • use a cell HAT or a USB cell modem plugged into a powered USB hub, never attempt to power the cell modem from the RPi USB ports (a cell HAT needs to be plugged into USB for data, it doesn't receive power through the cable, however)

    • use a 20W power adapter (a good 15W may work)

    • use short, quality USB power cables

    If the cell modem does not have enough power it will seem to work fine but not connect to the network. This is because it has plenty of power while idle but experiences voltage sags when trying to transmit causing the output signal to drop or fail to modulate correctly.

    If you use a cell HAT it is easy to overlook that it came with a short USB cable. The 40-pin connector of the RPi provides power and some low-level controls (e.g. to detect that a cell HAT is installed). However, the cell modem is fundamentally a USB device: all the data goes over USB. Thus you must use the USB cable to connect the HAT to one of the USB ports.

    You can reset all the software on the SensorGnome by rebooting, however, this has only a minor impact on the cell modem. It can help if there are errors at the USB level in communicating with the cell modem. The only way to fully reset a cell modem is to power cycle it, which in the case of a HAT means power cycling the rPi.

    Most problems occur when starting cell service, i.e., placing a fresh SIM card into a cell modem and powering it up. When a connection does not get established quickly there may be a problem or you may simply be underestimating how slow things can be. Have enough coffee or tea handy to keep you awake, or better, plan on a couple of brief testing sessions per day over a couple of days. Or at least plan your day so you can let the modem do its thing for an hour a couple of times. Letting it noodle away over-night when it's in an enabled/registering or enabled/searching loop is not an unreasonable strategy...

    • Many SIMs sold for SensorGnome type of usage work globally or continent-wide across many providers and many frequencies. This is a large space for the modem to scan and attempt to get service, either from "native" networks or via roaming.

    • The cell modems used for SensorGnomes and the software are not as sophisticated as cell phones. Things take more time.

    • The "Super SIM" made by Twilio (and resold by SixFab among others) has multiple personalities used for different regions of the world. It switches personality after failing to connect for a number of minutes. You may be waiting for it to fail using the AsiaPac personality, then the China personality, then the South America personality, then...

    In order to properly cycle between the various regional profiles (IMSI) the modem requires SIM Toolkit (STK) to be enabled. This is the service that "listens" for when the SIM requests a new IMSI after failing to with the previous one. If Sim Toolkit is not enabled, a cell modem may indefinitely try to connect with the same unsupported IMSI. For many modems, Sim Toolkit is disabled by default.

    The command differs somewhat depending if you are using a Quectel or Telit modem. If you can see the SG and the modem, you'll be able to see the name of the modem manufacturer printed on it.

    The following commands are made via an SSH session. Copy and paste the code as needed into the terminal, entering the SG password when prompted.

    For information SSH'ing into your SensorGnome, visit .

    Quectel EG25 modems

    If you can physically reach the SG in order to unplug it and plug it back in after running a shutdown command, then copy and paste the following into your SSH session.

    If you cannot reach the SG then run this modified set of commands. It doesn't as effectively reset the modem, but since you can't reach the SG to turn it back on it's the next best option.

    Telit LE910C4 modems

    If you can physically reach the SG in order to unplug it and plug it back in after running a shutdown command, then copy and paste the following into your SSH session.

    If you cannot reach the SG then run this modified set of commands. It doesn't as effectively reset the modem, but since you can't reach the SG to turn it back on it's the next best option.

    If your cell phone uses a physical SIM (as opposed to an eSIM) and your SensorGnome cell modem is in a enabled-searching-registering endless loop (i.e. doesn't manage to connect) you can try your cell phone's SIM in the SensorGnome. You probably need one of those cut-out SIM size adapters because your phone most likely uses the nano size while the modem uses the micro size. If your phone's SIM provides service you know that the SIM or it's service is the issue (or the carriers it has access to don't cover your spot).

    Note that in the US the phone SIM may not work or only work briefly if it uses the Verizon network 'cause of "approved devices" nonsense. AT&T may have some such issues too.

    You did activate your SIM, right? Most SIMs used for data-only service as typically used in SensorGnomes have some form of activation performed on some web site.

    The SensorGnome software does not interact with the cell modem a whole lot. The sg-control service, which is the main data processor and also provides the web-ui, primarily queries the ModemManager every few seconds to update the state of the cell modem in the web ui.

    A check-modem service also checks on the modem state and if it is not connected asks it to connect every few minutes. It tries to balance the need to let the modem "do its thing" trying to find a cell provider vs. ensuring that the cell modem doesn't give up and just sits there idle. Unfortunately there is no status indication for when it's still trying vs. has given up.

    Once the cell modem connects everything happens automagically through a set of standard Linux services and the ModemManager. An IP address is acquired, a route to the internet is established, and its priority is such that Ethernet and then WiFi take precedence if they're available.

    The Web UI has fairly simple info about the cellular connection. It does not allow any actions to be taken. The reason is that there isn't much that can be done without a lot of information and knowledge. Cell modems are very complex (they run a full Linux operating system) and do their thing on their own. For the SensorGnome use-case they either work, or take time to work, or don't work and when they don't work it's very difficult to figure out where the problem lies.

    The SensorGnome Web UI's network tab has a panel for cellular connections:

    This screen shot shows a modem that is successfully connected. The first item to look at is that state: the (i) brings up a brief explanation of common states. If the modem doesn't connect it often says "enabled" but then cycles through "registering" or "searching" over the course of a minute or two.

    When connected ensure that the SensorGnome got an IP address:

    In some situations the modem may also show a list of providers at the bottom of the panel. This at least indicates that "something is working".

    Ensure that the config box has the correct APN for your SIM provider. You should have gotten the APN when you purchased the SIM or it may be available on the SIM provider's web site.

    The cell modem initially connects to a cell network and then it needs to tell the network where to route the packets so they can be billed before they enter the internet at large. This is what the APN does. For example, you may have a French Orange SIM and use it in the US. The modem may connect to AT&T's cell network on roaming and AT&T needs to be told to route packets to/from Orange in France. Orange will count the bytes for billing before forwarding to the internet and may apply rate limiting depending on the contract. Often, however, the SIM works even if an incorrect APN is specified because it has a default APN built-in...

    The roaming flag should be on in almost all cases. It is only useful if you need to ensure the SIM doesn't roam due to cost ramifications.

    The ip-type should be ipv4v6 in almost all cases, allowing both IPv4 and IPv6. There are some budget IPv4-only SIMs that may need an "ipv4" setting.

    Some more detailed information can be obtained via the command line through SSH. (From bitter experience, it is also easy to get lost in undecipherable LTE details and not accomplish much of anything...)

    The modem is managed by the Linux ModemManager. The first step is to list the modems (there should be only one) to get the numeric ID of the one installed (typ. zero but can be other if it gets reset or the USB cable is messed with):

    The number of interest is after /Modem/. The general info and state of the modem can be queried using its id:

    Other than info like the specific cell modem model the status section reveals whether it thinks its connected:

    Also of interest is the operator info as well as whether a bearer is connected. The bearer "carries the internet packets" over the cell connection:

    The bearer can then be queried for specifics (the bearer ID increments each time the cell modem looses service and reconnects):

    To check that Linux has hooked everything up the best is to check that it has a route and then try it out:

    This means linux thinks it can route to the internet at large (the "default") via the cellular network device (wwan0, or for some modems usb0). You can now try it out by pinging 1.1.1.1 (cloudflare dns service) using that device/interface:

    The GPS in most cell modems has to be explicitly activated. This is something done at boot time by a SensorGnome script, which also finds out which USB serial device corresponds to the GPS and then allows gpsd, the GPS daemon, to listen to it.

    Warning: due to a mis-feature in ModemManager it is not possible to activate the cell phone's GPS if no SIM is present in the cell modem. A cell connection is not required but a SIM is.

    The ModemManager can provide info on the GPS status and activation from the modem's perspective:

    The key is to see gps-nmea as enabled. It is unclear what "signals: no" means as in this case the GPS has a 3D fix...

    In the status result of the mmcli -m 0 command mentioned above there is a section System > ports which lists all the serial ports provided by the modem and one of them should say gps, often it's /dev/ttyUSB2. If all went well then /dev/ttyGPS should be a symlink to that serial port:

    The best way to check further is to run the gpsmon utility which connects to gpsd to query GPS data:

    This shows that the GPS has a fix and the lines with a $GPG prefix scroll by as the GPS reports position and time updates. If gpsmon just shows some cryptic info (JSON) and stops it may be worthwhile to restart gpsd using sudo systemctl restart gpsd.service

    Note that the GPS info in the web interface is entirely dependent on gpsd so if gpsd (e.g. observed via gpsmon) doesn't know about the GPS then the web UI can't show anything. Gpsd only knows about a GPS after it receives and can parse some stanzas.

    Downloading data

    If the SensorGnome is connected to the internet, it automatically uploads data to Motus and manual downloads are not required. For non-internet-connected SGs, there are two main methods of manually downloading the data to your computer in order to upload it to Motus.

    Both methods are possible on either a computer or smartphone. You must first connect to SG via its WiFi hotspot.

    On the SG web interface, navigate to the Files tab. The SensorGnome keeps track of which files have been uploaded to Motus servers and which files have been downloaded to a computer using the web UI.

    • the red Download button produces a ZIP archive with all files that have not been previously downloaded

    • the All button produces a ZIP with all files

    Cell HATs and USB

    Resetting the cell modem

    SIM-o-rama

    Why initiating cell service can be very slow

    Ensure that the SIM Toolkit is enabled

    This has not been widely tested

    Try your cell phone's SIM!

    SIM activation

    What the SensorGnome software does

    What to look for in the Web UI

    Cellular Panel

    When asking for help a screen capture of the cellular panel is very helpful! Also mention if it cycles through several states.

    APN, ip-type, and roaming

    Command-line troubleshooting

    Checking the cell phone's GPS

    here
    Cellular panel on the network tab of the SensorGnome Web UI
    sudo systemctl stop sg-control check-modem.timer check-modem ModemManager
    sudo atcom AT+QSTK?            # check current SIM Tookit status
    sudo atcom AT+QSTK=1,0,300     # explicitly enable SIM Toolkit
    sudo atcom AT+QSTK?            # confirm the change. Should be QSTK=1,0,300
    sudo shutdown now
    sudo systemctl stop sg-control check-modem.timer check-modem ModemManager
    sudo atcom AT+QSTK?            # check current SIM Tookit status
    sudo atcom AT+QSTK=1,0,300     # explicitly enable SIM Toolkit
    sudo atcom AT+QSTK?            # confirm the change. Should be QSTK=1,0,300
    sudo atcom AT+CFUN=4           # RF off (airplane mode)
    sleep 60                       # give the SIM time to give up
    sudo atcom AT+CFUN=1           # RF back on
    sleep 30                       # rest again
    sudo atcom AT+QSTK?            # Double check the change. Should be QSTK=1,0,300
    sudo reboot now
    sudo systemctl stop sg-control check-modem.timer check-modem ModemManager
    sudo atcom AT#STIA?            
    sudo atcom AT#STIA=1           
    sudo shutdown now
    
    sudo systemctl stop sg-control check-modem.timer check-modem ModemManager
    sudo atcom AT#STIA?            
    sudo atcom AT#STIA=1           
    sudo shutdown now
    sudo atcom AT+QSTK?            
    sudo atcom AT+CFUN=4           # RF off (airplane mode)
    sleep 60                       # give the SIM time to give up
    sudo atcom AT+CFUN=1           # RF back on
    sleep 30                       # rest again
    sudo atcom AT+QSTK?            # Double check the change. Should be QSTK=1,0,300
    sudo reboot now
    gnome@SG-7F5ERPI46977 ~> mmcli -L                                                              
        /org/freedesktop/ModemManager1/Modem/0 [Telit] LE910C4-NF                                  
    gnome@SG-7F5ERPI46977 ~> mmcli -m 0                                  
      ----------------------------------
      General  |                   path: /org/freedesktop/ModemManager1/Modem/0
               |              device id: 69b580f5cb29c45e584c21118098565c831ab3a6
      ----------------------------------
      Hardware |           manufacturer: Telit
               |                  model: LE910C4-NF
               |      firmware revision: 25.21.660  1  [Mar 04 2021 12:00:00]
               |         carrier config: default
    
    [... about 30-40 lines ...]                                                
      Status   |                   lock: sim-pin2
               |         unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
               |                  state: connected
               |            power state: on
               |            access tech: lte
               |         signal quality: 92% (recent)
    
      Bearer   |                  paths: /org/freedesktop/ModemManager1/Bearer/1
    ...
      ------------------------------------
      Status             |      connected: yes
                         |      suspended: no
                         |    multiplexed: no
                         |      interface: wwan0
                         |     ip timeout: 20
    ...
      ------------------------------------
      IPv4 configuration |         method: static
                         |        address: 100.64.0.2
                         |         prefix: 30
                         |        gateway: 100.64.0.1
                         |            dns: 8.8.8.8, 8.8.4.4
                         |            mtu: 1430
      ------------------------------------
      Statistics         |     start date: 2024-11-27T00:17:26Z
                         |       duration: 19949
    ...
    
    gnome@SG-7F5ERPI46977 ~> ip route
    ...
    default via 100.64.0.1 dev wwan0 proto dhcp src 100.64.0.2 metric 10001 mtu 1430 
    ...
    gnome@SG-7F5ERPI46977 ~> ping -I wwan0 1.1.1.1
    PING 1.1.1.1 (1.1.1.1) from 100.64.0.2 wwan0: 56(84) bytes of data.
    64 bytes from 1.1.1.1: icmp_seq=1 ttl=58 time=324 ms
    64 bytes from 1.1.1.1: icmp_seq=2 ttl=58 time=212 ms
    gnome@SG-7F5ERPI46977 ~> mmcli -m 0 --location-status                                       
      ------------------------
      Location | capabilities: 3gpp-lac-ci, gps-raw, gps-nmea, agps-msa, agps-msb
               |      enabled: 3gpp-lac-ci, gps-nmea
               |      signals: no
      ------------------------
      GPS      | refresh rate: 30 seconds
    
    gnome@SG-7F5ERPI46977 ~> ls -ls /dev/ttyGPS
    0 lrwxrwxrwx 1 root root 12 Nov 27 00:17 /dev/ttyGPS -> /dev/ttyUSB2
    gnome@SG-7F5ERPI46977 ~> gpsmon
    tcp://localhost:2947          NMEA0183>
    ┌──────────────────────────────────────────────────────────────────────────────┐
    │Time: 2024-11-26T23:03:52.000Z   Lat: 34 29.940000' N   Lon: 119 49.070000' W │
    └───────────────────────────────── Cooked TPV ─────────────────────────────────┘
    ┌──────────────────────────────────────────────────────────────────────────────┐
    │ GPGSV GPGGA GPGLL GPRMC GPGSA                                                │
    └───────────────────────────────── Sentences ──────────────────────────────────┘
    ┌───────────────────────┌─────────────────────────┌────────────────────────────┐
    │ SVID  PRN  Az El SN HU│Time:     230352.00      │Time:      230352.00        │
    │GP  2    2  94 13 22  Y│Latitude:  3429.940000 N │Latitude:  3429.940000      │
    │GP  5    5 271  7 34  Y│Longitude:11949.070000 W │Longitude: 11949.070000     │
    │GP  7    7  91 45 32  Y│Speed:    0.0            │Altitude:  636.6            │
    │GP  8    8  40 13 36  Y│Course:   308.2          │Quality:   1   Sats: 12     │
    │GP  9    9 158 10 33  Y│Status:   A        FAA:A │HDOP:      0.5              │
    │GP 13   13 312 35 36  Y│MagVar:   14.1 E         │Geoid:     -22.0            │
    │GP 14   14 296 66 33  Y└───────── RMC ───────────└─────────── GGA ────────────┘
    │GP 17   17 180 37 36  Y┌─────────────────────────┌────────────────────────────┐
    │GP 19   19 194 11 36  Y│Mode: A3 Sats: 2 5 7 8 + │UTC:           RMS:         │
    │GP 21   21  75 11 36  Y│DOP H=0.5  V=0.6  P=0.8  │MAJ:           MIN:         │
    │GP 22   22 264 50 37  Y│TOFF:  0.025676591       │ORI:           LAT:         │
    │GP 30   30  32 70 33  Y│PPS: N/A                 │LON:           ALT:         │
    └───↓──── GSV ──────────└────── GSA + PPS ────────└─────────── GST ────────────┘
    (82) {"class":"VERSION","release":"3.22","rev":"3.22","proto_major":3,"proto_min
    or":14}
    (293) {"class":"DEVICES","devices":[{"class":"DEVICE","path":"/dev/ttyGPS","driv
    er":"NMEA0183","activated":"2024-11-26T23:03:49.023Z","flags":1,"native":0,"bps"
    :9600,"parity":"N","stopbits":1,"cycle":1.00},{"class":"DEVICE","path":"/dev/pps
    0","driver":"PPS","activated":"2024-11-26T23:03:10.224Z"}]}
    (122) {"class":"WATCH","enable":true,"json":false,"nmea":false,"raw":2,"scaled":
    false,"timing":false,"split24":false,"pps":true}
    (72) $GPGSV,4,1,15,02,13,094,23,05,07,271,34,07,45,091,31,08,13,040,36,1*6F
    (72) $GPGSV,4,2,15,09,10,158,33,13,35,312,36,14,66,296,33,15,05,320,21,1*68
    (72) $GPGSV,4,3,15,17,37,180,36,19,11,194,36,21,11,075,36,22,50,264,37,1*6D
    (52) $GPGSV,4,4,15,30,70,032,32,20,00,241,,46,,,37,1*67
    (77) $GPGGA,230350.00,3429.940000,N,11949.070000,W,1,12,0.5,636.6,M,-22.0,M,,*56
    ...

    the Repeat button re-downloads the previous download (in case an error occurred)

  • the Upload button kicks-off an upload to Motus, useful if the SensorGnome has temporary internet access through your phone, for example

  • Web UI for upload/download: upload=to Motus, download=to laptop/phone

    The downloaded ZIP files can and should be uploaded as-is to Motus using the Motus web site. If the SensorGnome uploads directly then manual uploads are redundant but not harmful.

    An FTP client with a graphical user interface can be a more efficient method of downloading data since it bypasses the process of creating a ZIP archive of the files to be downloaded and allows you to view and choose just the files you want to download.

    There are multiple programs to you can use but the most populate cross-platform option is FileZilla.

    After connecting to the SensorGnome's WiFi hotspot, open up FileZilla and fill in the information for the host at the top

    • sftp://192.168.7.2 (or sftp://sgpi.local) as the host.

    • gnome for the username. This is the default when configuring a SG for the first time

    • whatever password you assigned when configuring the SG

    • port number is 22

    • click "Quickconnect"

    After clicking Quickconnect, you should see 4 panels populate. The left hand side is your computer, and the right hand side is the SensorGnome. On the right hand side, navigate to /data/SGdata to view the detection data. Select the folders you need and copy them to you a folder on your computer on the right side.

    The two panels on the right hand side of a FileZilla session present files on the SensorGnome

    Either of the methods described above will also work on a smartphone if needed. It can be more difficult to connect to the SG's hotspot with a smartphone because many phones will ignore a WiFi connection without internet access if you still have internet by other means. For this reason, it's best to turn off your phone's cell network and disconnect from or forget other WiFi if they are within range. Additionally, you may need to select the "Use this network without internet" option if your phone has that option.

    Once connected, the process is more or less the same as downloading via the web browser. If downloading with the FTP method, you will likely need a dedicated app. Since the FTP method allows you more control and transparency over what you download, it's worth investing a bit of time to find a suitable FTP client app if you will frequently not have access to a laptop when conducting remote site visits. Below are a some free suggestions, though there are many others.

    • Android

      • CX Explorer. Simple interface and very user friendly. Go to Network > New Location > Remote > SFTP and then enter the credentials above. This app requires a password so any time you connect to a new SG you will need to re-enter the credentials with this process.

      • Total Commander. Very powerful file manager with SFTP capability via a free plugin. From the home page, go to Add plugins > SFTP and follow the prompts. From there, you "Add a connection" and enter the same credentials. Leave any existing default settings as they are. This app has the added advantage of not requiring a password when saving the connection profile, so you can more easily use it on multiple SG's without having to recreate the entire profile.

    • Apple

      • . Easy to use app with SFTP options. You can either save the password or enter it each time, and additionally you can save the detection data path /data/SGdata so that it opens to the correct folder every time.

    The SensorGnome web interface

    The SensorGnome has no way of knowing if a download actually succeeded and will update the "Last Download" field as soon as the download begins. If the download via the web interface was unsuccessful or interrupted, it will still appear as if all files up to that date were downloaded. If there

    The process of collecting the files to be downloaded into a ZIP archive can take a long time and your browser may feel like it's unresponsive for several seconds or minutes.

    Using an FTP client

    If this is the first time connecting to the SG with this computer, you'll get a message asking you whether to trust the server's host key. Click yes.

    Using a smartphone

    FTPManager
    here

    SensorGnome security and networking

    This document is intended for security/network admins to provide an overview of the security and communication methods employed by a SensorGnome device.

    The SensorGnome (SG) software is open source and available for audit at:

    • https://github.com/tve/sensorgnome-control (web interface and uploader)

    • https://github.com/tve/sensorgnome-support (system services)

    • https://github.com/tve/sensorgnome-build (system image build)

    The overall strategy employed can be summarized as follows:

    • leverage as standard an OS image as possible

    • limit protocols to SSH and HTTPS

    • enforce the selection of a reasonably strong password at configuration time

    • use a single password for the system to avoid "password fatigue"

    • The SG base image is a standard Raspberry Pi OS image, i.e. Debiean Bullseye as of 2022.

    • The image uses the standard repositories, plus and additional repository for the SensorGnome software.

    • The Raspberry Pi foundation does not publish security updates like Ubuntu does, for example. Thus it is not possible to auto-install just security updates. However, security fixes are promptly made available in the general repo. It is thus possible to enable automatic "full" updates, but the system stability of doing so is unknown.

    • SensorGnomes use a non-standard 'gnome' linux user and users are forced to provide a password when first deploying a SensorGnome (the software does not work unless a password is set).

    • The password is checked against a "top 100k passwords" list.

    • It is possible to use SSH keys and disable password login using standard linux procedures.

    • The SensorGnome supports or four network interfaces: ethernet, wifi client, wifi hot-spot (access point), and, if installed, cellular.

    • The SG never forwards (routes) packets between the interfaces.

    • The ethernet interface uses DHCP and is the preferred interface for internet access.

    • The SG uploads new data automatically approximately every hour via HTTPS to a Motus server (port 443). This assumes internet connectivity via one of the ethernet, wifi client, or cellular interfaces.

    • Network connectivity (when a default route is provided via DHCP) is probed by connecting to http://connectivitycheck.gstatic.com/generate_204, which is one of the standard Android connectivity check addresses.

    • Users can manually trigger an upload using the web interface.

    • port 22 (SSH): SSH access, root login disabled, only user 'gnome' access.

    • port 80 (HTTP): redirect to port 443 (HTTPS), except on the hot-spot interface where the Web UI is accessible via HTTP (security being provided by WiFi WPA2).

    • port 443 (HTTPS): web interface to monitor SensorGnome status and perform configuration changes.

    • Due to the fact that a SensorGnome needs to operate without having a public DNS name it cannot use "normal" public HTTPS certificates (e.g. from Let's Encrypt). Instead a wild-card certificate *.my.local-ip.co is used and HTTPS links have the form https://1-2-3-4.my.local-ip.co where 1.2.3.4 is the SG's local IP address. See for details and rationale.

    The same password is used to log in as user gnome and to access the web interface (the web interface uses a PAM plugin to auth)
    The wifi client interface can be configured through the SG web interface and supports WPA2 PSK. It should be possible to configure WPA2 EAP or WPA3, but not through the web interface. The interface expects a DHCP server for configuration.
  • The wifi hot-spot can be enabled/disabled through the web interface or by pressing a button on the SG. It runs a WPA2 secured network, the password is configured when first deploying a SensorGnome.

  • The cellular interface currently supports only the Sixfab LTE HAT.

  • Users can also manually download data to their laptop/phone via the web interface.
  • It is planned for the SensorGnome to connect to a Motus server to send status and monitoring data and to present a portion of the web interface through a Motus web site.

  • Operating system image and updates

    Passwords

    Network interfaces

    Data upload

    Open ports

    HTTPS certificates

    http://local-ip.co