Skip to content

Instantly share code, notes, and snippets.

@Girgitt
Girgitt / PJON_,ultidrop_rs485_auto_tx_strategy
Last active August 21, 2016 00:23
A draft implementation of a multi-master strategy over RS485 "auto-tx" PHY for PJON protocol stack
/* ThroughHardwareSerialRs485AutoTx enables PJON multi-master communication through the Serial port with auto-tx RS485 PHY.
Work based on ThroughHardwareSerial by Giovanni Blu Mitolo and Fred Larsen
Copyright (c) 2016 by Zbigniew Zasieczny All rights reserved.
With rs485 "auto-tx" PHY the hardware serial port reads everything sent to the bus
The "self-reading" property could be used in this strategy to detect colisions at a byte-level in a similar way the CAN network works on a bit-level to silelntly drop-off lower priority nodes; feature not implemented yet
A naive timeout-based collision avoidance is used: bus is assumed clear for tx within specified time window after empty rx buffer was detected. The receive(<timeout_us>) function must be called often - transimission would occur only within 1ms after last receive call on empty rx buffer; within this time window the update() function must be called to transmit packets.
@Girgitt
Girgitt / PJON_test_receiver.ino
Created August 17, 2016 14:45
PJON_test_receiver
#include <PJON.h>
// <Strategy name> bus(selected device id)
//PJON<SoftwareBitBang> bus(44);
PJON<OverSampling> bus(44);
void setup() {
pinModeFast(13, OUTPUT);
digitalWriteFast(13, LOW); // Initialize LED 13 to be off
@Girgitt
Girgitt / PJON_test_transmitter.ino
Created August 17, 2016 14:43
PJON_test_transmitter
#include <PJON.h>
// <Strategy name> bus(selected device id)
//PJON<SoftwareBitBang> bus(45);
PJON<OverSampling> bus(45);
long start_ts;
void setup() {
@Girgitt
Girgitt / sftpserver_main.py
Created July 13, 2016 20:34
multithreaded sftp server in python based on https://github.com/rspivak/sftpserver
import time
import socket
import optparse
import sys
import textwrap
import paramiko
from sftpserver.stub_sftp import StubServer, StubSFTPServer