
Relay
Servacek/tinytus
Tiny C99 library which allows you to use existing audio channels for digital transmission. The project was presented and defended at the national round of the SOČ competition and at the TMR UNIZA competition.

Tiny C99 library which allows you to use existing audio channels for digital transmission. The project was presented and defended at the national round of the SOČ competition and at the TMR UNIZA competition.
Relay is an open-source printed circuit board by Servacek, from the Servacek/tinytus repository on GitHub. It is a 2-layer board of 71.5 × 23 mm with 23 parts on 19 nets, routed with 75 tracks and 0 vias.
It is built around the ATTINY85-20PU and SRD-05VDC-SL-C. Its parts include 9 resistors, 4 capacitors, 4 diodes, 3 connectors and 1 IC. It belongs with the home automation and IoT boards and the AVR (ATmega, ATtiny) boards of this library.
Small, modular C99 library for transmitting digital data over acoustic channels using FSK modulation. Targets desktop (Windows, Linux), WebAssembly, and embedded platforms.
Since this library is compilable also for the web (using WebAssembly), I have built a small static website which shows it's capabilities. You can check it out here: https://servacek.github.io/audiomodem/
In order to use an radio transceiver for digital communication using this library a special piece of hardware has to be made, which enables the computer to control the PTT circuit of the radio. Here is the schematic of such hardware, I have designed and used during testing with my Allamat 47 handhold CB radios.
Note that the value of the resistor R4 depends on the specific radio type used. Or in case you need flexibility, it can be replaced with a suitable trimmer.
Requirements: clang, llvm-lib (Windows), make. PortAudio and libusb prebuilt libraries are included under libs/.
make run # build and run the main executable
make lib # build as static library -> bin/tinytus/lib/tinytus.lib
make dll # build as DLL -> bin/tinytus.dll
make web # build for WebAssembly (requires emsdk, set EMSDK_PATH in Makefile)Compiler flags can be overridden via dev.config in the repo root (gitignored):
# dev.config
CFLAGS = -O0 -gmake tests # build and run all tests
make test <name> # build and run one test, e.g. make test gfsk
make clean # remove all build artifactsEach test is compiled from tests/test_.c against the full source tree. Output goes directly to stdout/stderr.
Available tests:
make test gfsk - full modulate/demodulate round-trip
make test ber - BER at various SNR levels
make test fsk - basic FSK / Goertzel demodulation
make test hamming - Hamming ECC encode/decode
make test frame - frame packing and unpacking
make test goertzel - Goertzel frequency detection
make test dss - data scrambling
make test sync_detector - sync word detection
make test wav - WAV file I/O
make test tlv - modem profile TLV encode/decode
make test modem_profile - default profile singleton and field checksNew test files dropped into tests/test_*.c are picked up automatically. See tests/helper.h for ok()/fail() helpers, ASSERT macros and section headers.
#include <tinytus.h>
void on_received(const uint8_t *bytes, uint8_t n) {
for (uint8_t i = 0; i < n; i++) putchar(bytes[i]);
putchar('\n');
}
int main(void) {
start_listening(NULL, on_received);
send_payload(NULL, (const uint8_t *)"Hello!", 6);
while (1) {}
stop_listening();
return 0;
}A more complete example is in examples/simplechat.c.
Compile-time knobs are in src/const.h:
SAMPLE_BIT_DEPTH 16 sample depth (8 / 16 / 32)
SQUELCH_THRESHOLD 0.01 minimum signal power to attempt decode
MARKER_DETECTION_THRESHOLD 0.4 marker confidence threshold
LIB_PORTAUDIO_ENABLED 1 set to 0 to drop PortAudio
LIB_LIBUSB_ENABLED 1 set to 0 to drop libusb
LIB_WAV_ENABLED 1 set to 0 to drop the WAV helper| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 100nF | Capacitor_THT:C_Disc_D3.0mm_W2.0mm_P2.50mm | C1, C3 |
| 2 | 3V6 | Diode_THT:D_DO-41_SOD81_P7.62mm_Horizontal | D1, D2 |
| 2 | 68R | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_Vertical | R3, R5 |
| 1 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1 |
| 1 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_Vertical | R6 |
| 1 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P5.08mm_Vertical | R7 |
| 1 | 10uF | Capacitor_THT:C_Disc_D3.0mm_W2.0mm_P2.50mm | C2 |
| 1 | 12K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_Vertical | R4 |
| 1 | 1K5 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R2 |
| 1 | 1K5 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P2.54mm_Vertical | R9 |
| 1 | 1N5819 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D5 |
| 1 | 1uF | Capacitor_THT:C_Disc_D3.0mm_W2.0mm_P2.50mm | C5 |
| 1 | 220R | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P5.08mm_Vertical | R8 |
| 1 | 2N7000 | Package_TO_SOT_THT:TO-92_Inline | Q1 |
| 1 | ATtiny85-20P | Package_DIP:DIP-8_W7.62mm_Socket | U1 |
| 1 | LED | LED_THT:LED_D5.0mm | D6 |
| 1 | SRD-05VDC-SL-C | ProjectSpecific:RELAY | K1 |
| 1 | USB-A Samec | ProjectSpecific:USB-A-2.0 | J1 |
| 1 | Vstup | ProjectSpecific:AudioJackPort3.5mmStereo | J3 |
| 1 | Výstup | ProjectSpecific:AudioJackPort3.5mmStereo | J2 |
It measures 71.5 × 23 mm and has 2 copper layers, 1.6 mm thick.
23 parts, built around the ATTINY85-20PU and SRD-05VDC-SL-C. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the Servacek/tinytus repository on GitHub, at the commit this page was made from: the board is hardware/usb-relay-audio-switch/rev00/relay.kicad_pcb and its schematic hardware/usb-adc-dac-converter-switch/tinnitus.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask Servacek before reusing the design.

Servacek/tinytus
Tiny C99 library which allows you to use existing audio channels for digital transmission. The project was presented and defended at the national round of the SOČ competition and at the TMR UNIZA competition.

Servacek/tinytus
Tiny C99 library which allows you to use existing audio channels for digital transmission. The project was presented and defended at the national round of the SOČ competition and at the TMR UNIZA competition.



rigidus/rigidus.ru
Contacts: email: i.am.rigidus טּ gmail.com jabber: rigidus@jabber.ru

IdahoLabResearch/AcCCS
A collection of tools and scripts used to communicate and emulate Electric Vehicle Communication Controllers (EVCC) and Supply Equipment Communication Controllers (SECC).

phfbertoleti/placa_lorawan
Repositório oficial da placa LoRaWAN, um kit de desenvolvimento para protótipos IoT.

fellettigiacomo/esp32-WLED-4ch-controller
Open source 4 Channel esp32-powered WLED controller with 4 relays and built in level shifter

mikenorgate/3d-printer-power-hat
A Raspberry PI HAT for controlling power to your 3D printer

William-Souza-Santos/ADAPTIVE_FUZZY_LOGIC_CONTROL_FOUR_SWITCH_BIDIRECTIONAL_BUCK_BOOST_DC_DC_CONVERTER
Final Year Project by Electronic Engineering