Implement a secure ICS protocol targeting LoRa Node151 microcontroller for controlling irrigation.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
John-Mark Gurney a4f76dc0bb add code to do tristate led blinking... 1 年之前
blinkled add code to do tristate led blinking... 1 年之前
board convert the irrigation project to sysinits... 2 年之前
loramac add pin description, and use the analog pin to provide randomness.. 3 年之前
mk convert the irrigation project to sysinits... 2 年之前
rs485hid convert the irrigation project to sysinits... 2 年之前
stm32 add code to do tristate led blinking... 1 年之前
strobe add the start of the C version for the uC... 3 年之前
.gitignore ignore my standard venv dir name.. 2 年之前
EXCLUDEST.txt add warning about the license excluding use by ST. 2 年之前
LICENSE.txt add warning about the license excluding use by ST. 2 年之前
LINKS.md add some useful reference links.. 2 年之前
LORA-IRR.md comment which pins for programming to save me looking at the pdf.. 2 年之前
Makefile convert the irrigation project to sysinits... 2 年之前
NOTES.md add info on how to debug irq handler issues.. 2 年之前
PROTOCOL.md mention the specific curve/dh used.. 2 年之前
README.md describe board directory.. 2 年之前
RS485HID.md big drop adding the USB HID part of this project... 2 年之前
arch.getxt add some diagrams, and the infrastructure to make them... 3 年之前
board-config.h get tx/rx working between two Node151's.. 3 年之前
board.c convert the irrigation project to sysinits... 2 年之前
box.sh add some diagrams, and the infrastructure to make them... 3 年之前
comms.c if the pending session returns a packet, use it, might be first of neg 2 年之前
comms.h add an include guard... 2 年之前
conns.getxt add some diagrams, and the infrastructure to make them... 3 年之前
hal_generic.c switch to main.h so it pulls in the correct hal headers.. 2 年之前
irr_main.c convert the irrigation project to sysinits... 2 年之前
linker_set.h add framework to get things started... 2 年之前
lora.py big drop adding the USB HID part of this project... 2 年之前
loraserv.py make sure we don't buffer the serial port, we need the packets to 3 年之前
main.c convert the irrigation project to sysinits... 2 年之前
misc.c wrap debugpos when at end of buffer.. 2 年之前
misc.h add memory debug buffer.. Fix FreeBSD by adding a delay.. 2 年之前
multicast.py drop debug print 2 年之前
requirements.txt big drop adding the USB HID part of this project... 2 年之前
si_usb.c make generic, but turns out unneeded on NODE151.. 2 年之前
si_usb.h add wrapper, si_usb.h, clean up si_usb a little, and use wrapper 2 年之前
strobe_rng_init.h big drop adding the USB HID part of this project... 2 年之前
syote_comms.py s/liblora/libsyote/ s/lora_comms/syote_comms/ 2 年之前
sysIrqHandlers.h get tx/rx working between two Node151's.. 3 年之前
sysinit.c convert the irrigation project to sysinits... 2 年之前
sysinit.h add USB, add proper _LAST, and verify range, support void functions 2 年之前
util.py forgot to add the copyright for this file.. 3 年之前
util_load.py change the default to be func.. 3 年之前

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.