Implement a secure ICS protocol targeting LoRa Node151 microcontroller for controlling irrigation.
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 
 
John-Mark Gurney 9d2ab93cfb Merge branch 'main' into blinkled 1 rok temu
blinkled add links on how to change camera settings on android.. 1 rok temu
board convert the irrigation project to sysinits... 2 lat temu
loramac add pin description, and use the analog pin to provide randomness.. 3 lat temu
mk convert the irrigation project to sysinits... 2 lat temu
rs485hid convert the irrigation project to sysinits... 2 lat temu
stm32 add code to do tristate led blinking... 1 rok temu
strobe add the start of the C version for the uC... 3 lat temu
.gitignore ignore my standard venv dir name.. 2 lat temu
EXCLUDEST.txt add warning about the license excluding use by ST. 2 lat temu
LICENSE.txt add warning about the license excluding use by ST. 2 lat temu
LINKS.md add some useful reference links.. 2 lat temu
LORA-IRR.md comment which pins for programming to save me looking at the pdf.. 2 lat temu
Makefile convert the irrigation project to sysinits... 2 lat temu
NOTES.md add info on how to debug irq handler issues.. 2 lat temu
PROTOCOL.md mention the specific curve/dh used.. 2 lat temu
README.md describe board directory.. 2 lat temu
RS485HID.md fix misspelling of by 1 rok temu
arch.getxt add some diagrams, and the infrastructure to make them... 3 lat temu
board-config.h get tx/rx working between two Node151's.. 3 lat temu
board.c convert the irrigation project to sysinits... 2 lat temu
box.sh add some diagrams, and the infrastructure to make them... 3 lat temu
comms.c if the pending session returns a packet, use it, might be first of neg 2 lat temu
comms.h add an include guard... 2 lat temu
conns.getxt add some diagrams, and the infrastructure to make them... 3 lat temu
dummy.py add tests for python version round trip... and minor fix for seeding 1 rok temu
hal_generic.c switch to main.h so it pulls in the correct hal headers.. 2 lat temu
irr_main.c convert the irrigation project to sysinits... 2 lat temu
linker_set.h add framework to get things started... 2 lat temu
lora.py add test for pk version of the commands... 1 rok temu
loraserv.py clean up test output, and verify that the error message is correct.. 1 rok temu
main.c convert the irrigation project to sysinits... 2 lat temu
misc.c wrap debugpos when at end of buffer.. 2 lat temu
misc.h add memory debug buffer.. Fix FreeBSD by adding a delay.. 2 lat temu
multicast.py drop debug print 2 lat temu
requirements.txt big drop adding the USB HID part of this project... 2 lat temu
si_usb.c make generic, but turns out unneeded on NODE151.. 2 lat temu
si_usb.h add wrapper, si_usb.h, clean up si_usb a little, and use wrapper 2 lat temu
strobe_rng_init.h big drop adding the USB HID part of this project... 2 lat temu
syote_comms.py support generating a private/public key pair by running this... 1 rok temu
sysIrqHandlers.h get tx/rx working between two Node151's.. 3 lat temu
sysinit.c convert the irrigation project to sysinits... 2 lat temu
sysinit.h add USB, add proper _LAST, and verify range, support void functions 2 lat temu
util.py forgot to add the copyright for this file.. 3 lat temu
util_load.py change the default to be func.. 3 lat temu

README.md

Syote: Secure IoT

This project started off as a project to control an irrigation system via a LoRa radio, but the core architecture of the communication and security can easily be reused for other projects.

The projects that make use of the core protocol are included in this repo to make development easier for now, but if/when the project gets large enough, they will be broken out into their own repositories.

Projects

LoRa Irrigation: Control over LoRa radio.

RS-485 USB HID KVM: USB Keyboard over RS-485

File Layout

Note that things are a mess as they stand right now. The first project was based upon the SemTech reference code which implemented their own HAL on top of ST’s HAL which is partly implemented on top of ARM’s HAL, and in some cases bypasses them. It was also originally written not expecting to be used for another board.

board/ - Board specific code loramac/ - SemTech reference code. Has reference code for LoRa and the Node151 based board. mk/ - Files supporting the build infrastructure. rs485hid/ - Files relating to the RS-485 HID project stm32/ - This is the HAL for ST based parts. It comtains the ARM CMSIS HAL as well, for the parts the ST chose to use. strobe/ - Crypto code that form the basis of the protocol.

Options

Default on: STROBE - This contains all the cryptography parts. SYSINIT - This contains the initalization frmae work, similar to FreeBSD.

Default off: NODE151 - Code necessary for the Heltech Node151 module. RS485FRAME - Code implementing framing tx/rx over RS-485. STM32F103 - Code for a STM32F103 based board. SX1276 - Code necessary for the LoRa Radio. USB_CDC - Code for implementing a USB CDC Endpoint.