|
|
# STeC
|
|
|
|
|
|
## Software
|
|
|
|
|
|
|
|
|
|
|
|
### Get started
|
|
|
1. **Clone** the project (including submodules):
|
|
|
`git clone --recursive https://gitlab.ethz.ch/tec/public/stec/stec-code`
|
|
|
2. Follow the instructions in the [Flora Wiki](https://gitlab.ethz.ch/tec/public/flora/wiki/-/wikis/home#clone-compile-run) to compile and flash the code using the STMCubeIDE.
|
|
|
|
|
|
|
|
|
### Run Tests on FlockLab 2
|
|
|
* We provide scripts to run tests on the [FlockLab 2 testbed](https://www.flocklab.ethz.ch/).
|
|
|
* Shell script: `/code/Scripts/run_flocklab_test.sh`
|
|
|
* Python script: `/scripts/analysis/bin/stec-flocklab.py`
|
|
|
|
|
|
|
|
|
### Software Development
|
|
|
|
|
|
### STM32CubeIDE
|
|
|
* The project has been created and edited using the [**STM32CubeIDE**](https://www.st.com/en/development-tools/stm32cubeide.html) (combination of former _Atollic TrueStudio_ and _STM32CubeMX_)
|
|
|
* Based on eclipse
|
|
|
* Main config of IDE project is stored in `.cproject` file
|
|
|
* Config of architecture (GPIOs etc.) are stored in `.ioc` file.
|
|
|
|
|
|
|
|
|
## Hardware
|
|
|
* [Communication board](https://gitlab.ethz.ch/tec/public/dpp/dpp/blob/master/hardware/dpp2_sx1262/DPP2_ComBoard_SX1262_LoRa.pdf)
|
|
|
* [Application board](https://pub.tik.ee.ethz.ch/students/2017-HS/MA-2017-25.pdf)
|
|
|
|
|
|
|
|
|
## FAQ
|
|
|
|
|
|
### What does 'STeC' mean?
|
|
|
The name _STeC_ is an abbreviation of "**S**patial and **Te**mporal **C**orrelation", thereby stressing the novel design paradigm that the protocol is leveraging. Furthermore, the protocol has been designed by [TEC](https://tec.ee.ethz.ch/), the Computer Engineering Group at ETH Zurich.
|
|
|
|
|
|
### Where can I get the sensor data?
|
|
|
All data from our outdoor deployment is available through the [PermaSense GSN website](http://data.permasense.ch/data.html#data). The easiest way to access and download it is through our scripts (e.g. `scripts/analysis/data_management/data_manager.py`).
|
|
|
|
|
|
### Can I see STeC in action?
|
|
|
We have a deployment currently running at [Dirruhorn, Switzerland](https://map.geo.admin.ch/?lang=en&topic=ech&bgLayer=ch.swisstopo.pixelkarte-farbe&layers=ch.swisstopo.zeitreihen,ch.bav.haltestellen-oev,ch.swisstopo.swisstlm3d-wanderwege,ch.astra.wanderland-sperrungen_umleitungen&layers_opacity=1,1,0.8,0.8&layers_visibility=false,true,false,false&layers_timestamp=18641231,,,&E=2632951.41&N=1107234.69&zoom=6). Use the monitoring scripts (e.g. `scripts/analysis/notebooks/stec_monitoring_7d.ipynb`) to get the most up-to-date version or run the script directly online by clicking [here](). Raw sensor data can always be inspected in real-time using the [PermaSense GSN website](http://data.permasense.ch/topology.html#topology).
|
|
|
|
|
|
|
|
|
## Publications
|
|
|
|
|
|
### Software
|
|
|
* [ETH Zurich Library Entry]()
|
|
|
* BibTeX:
|
|
|
```
|
|
|
@misc{stec2021,
|
|
|
author = {Biri, Andreas and Trüb, Roman and Da Forno, Reto and Gsell, Tonio and Gatschet, Tobias and Kuonen, Tobias},
|
|
|
publisher = {ETH Zurich},
|
|
|
title = {STeC Software},
|
|
|
year = {2021},
|
|
|
doi={},
|
|
|
url={}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
### Conference publications
|
|
|
* [*STeC: Exploiting Spatial and Temporal Correlation for Event-based Communication in
|
|
|
WSNs*](https://doi.org/10.1145/3485730.3485951), ACM, 2021.
|
|
|
* BibTeX:
|
|
|
```
|
|
|
@inproceedings{biri2021stec,
|
|
|
title={STeC: Exploiting Spatial and Temporal Correlation for Event-based Communication in
|
|
|
WSNs},
|
|
|
author={Biri, Andreas and Da Forno, Reto and Gsell, Tonio and Gatschet, Tobias and Beutel, Jan and Thiele, Lothar},
|
|
|
booktitle={Proceedings of the 19th ACM Conference on Embedded Networked Sensor Systems},
|
|
|
pages={1--14},
|
|
|
doi={https://doi.org/10.1145/3485730.3485951},
|
|
|
year={2021}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
### Student theses
|
|
|
* Gatschet, Tobias: [Event-triggered multi-hop communication for wireless sensor networks](), ETH Zurich, 2020.
|
|
|
|
|
|
|
|
|
## Contact Information
|
|
|
Please contact us if you have feedback, proposals, bug reports, etc.
|
|
|
|
|
|
[Andreas Biri](https://tec.ee.ethz.ch/the-group/people/person-detail.html?persid=187635)
|
|
|
PhD Student
|
|
|
|
|
|
[Reto Da Forno](https://tec.ee.ethz.ch/the-group/people/person-detail.html?persid=147294)
|
|
|
Technical Staff
|
|
|
|
|
|
|
|
|
## Contributors
|
|
|
* _Andreas Biri_: PhD student
|
|
|
* _Roman Trüb_: PhD student
|
|
|
* _Reto Da Forno_: Technical staff
|
|
|
* _Tonio Gsell_: Technical staff
|
|
|
* _Tobias Gatschet_: Master thesis HS2019
|
|
|
* _Tobias Kuonen_: Semester thesis HS2019, Master thesis HS2020
|
|
|
* _Akos Pasztor_: Master thesis HS2017
|
|
|
|
|
|
|
|
|
## Licensing
|
|
|
See [License](LICENSE) file.
|
|
|
|
|
|
### Third-Party Software
|
|
|
|
|
|
| Component | License | Location in repo | Contained in repo |
|
|
|
|-----------------------------------------------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------------------------|------------------------------------------|
|
|
|
| [SX126x Radio Drivers](https://github.com/Lora-net/LoRaMac-node/tree/master/src/radio) (by Semtech) | BSD-3-Clause | `/code/Lib/radio/semtech` | yes |
|
|
|
| [STM32CubeIDE generated code](https://www.st.com/en/development-tools/stm32cubeide.html) | Ultimate Liberty License SLA0044/SLA0048 or BSD 3-Clause | `/code/Drivers`, `/code/Startup`, `/code/Src`, and `/code/Inc` | partially (only files in `Startup`, `Src` and `Inc`) |
|
|
|
| [FreeRTOS](https://www.freertos.org/index.html) | MIT license | `/code/Middlewares/Third_Party/` | no | |