- Accounts with the following providers:
- Resin.io
- Github
- Access to the following services (See Service configuration for more information)
- Logstash
- Vault
- SITCH feed. See https://github.com/sitch-io/feed_builder for more information.
- Hardware
- Raspberry Pi 2
- Fona SIM808 GSM modem w/ USB TTY cable
- RTL-SDR device. Tested with NooElec NESDR Mini and NooElec NESDR XTR
- GlobalSat USB GPS dongle
- Create an application in Resin.
- Fork this project and clone it on your workstation. Or clone it directly... but forking makes modifications and PRs easier to deal with.
- Add the Resin application as a remote repo (
git remote add resin [email protected]/myusername/myapplicationname.git
) - Push to your Resin application:
git push resin master
We expect the following environment variables to be set in Resin:
Variable | Purpose |
---|---|
FEED_URL_BASE | Base URL for feed data retrieval |
GSM_MODEM_BAND | Band to scan with SIM808 (try GSM850_MODE) |
KAL_BAND | Band to scan with Kalibrate (try GSM850) |
KAL_GAIN | Gain setting for Kalibrate (try 60-80) |
KAL_THRESHOLD | Threshold for alerting on Kalibrate ARFCN power |
LOCATION_NAME | Override the default device name (Resin UUID) |
LOG_HOST | hostname:port |
MCC_LIST | Comma-separated list of MCCs to retrieve feed files for |
MODE | Set to 'clutch' to go into a wait loop (for debugging) |
STATE_LIST | List of states (in caps) for FCC feed. ex: "CA,TX" |
GSM_MODEM_PORT | Override GSM modem autodetect |
VAULT_PATH | Path to logstash cert/keys in Vault |
VAULT_TOKEN | Token for accessing credentials in vault |
VAULT_URL | URL for accessing Vault. ex: https://v.example.com:port |
Testing is done with pytest. Coverage module optional.
- Navigate to the base directory of the repository.
- Set the environment variable to reach your SITCH feed:
export SITCH_FEED_BASE=https://MY.FEED.URL/base
- Run
py.test --cov sitchlib
.
If you're using a GSM modem that's not recognized by the device detector, please
add the output from running the ATI
command against your GSM modem in the
variable named positive_match
in the is_a_gsm_modem()
method, in the
sensor/sitch/sitchlib/device_detector.py
file. Then send a pull request so
that everyone can get the benefit of your discovery.
- Please do PRs against the
test
branch. - To add an ID string to the device detector for GSM modems, add part of the ID string to the
positive_match
variable in theDeviceDetector.is_a_gsm_modem()
function