{"id":20579275,"url":"https://github.com/sh123/esp32_loradv","last_synced_at":"2025-04-14T19:21:52.797Z","repository":{"id":65015766,"uuid":"580782055","full_name":"sh123/esp32_loradv","owner":"sh123","description":"ESP32 based Codec2/OPUS DV hobby UHF 3d printed handheld transceiver aka walkie-talkie","archived":false,"fork":false,"pushed_at":"2025-04-11T06:58:27.000Z","size":16782,"stargazers_count":49,"open_issues_count":0,"forks_count":9,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-14T19:21:38.056Z","etag":null,"topics":["amateur-radio","codec2","digital-voice","dv","esp32","esp32-arduino","fsk","hamradio","handheld-transceiver","lora","opus","opus-codec","radio","sx1268","sx1278","uhf","uhf-transceiver","vhf","walkie-talkie"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sh123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-21T12:41:28.000Z","updated_at":"2025-04-11T06:58:30.000Z","dependencies_parsed_at":"2024-12-20T08:21:35.734Z","dependency_job_id":"75c45d76-a18c-4c10-87d6-9c6b80fa67b7","html_url":"https://github.com/sh123/esp32_loradv","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sh123%2Fesp32_loradv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sh123%2Fesp32_loradv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sh123%2Fesp32_loradv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sh123%2Fesp32_loradv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sh123","download_url":"https://codeload.github.com/sh123/esp32_loradv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248943415,"owners_count":21186958,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amateur-radio","codec2","digital-voice","dv","esp32","esp32-arduino","fsk","hamradio","handheld-transceiver","lora","opus","opus-codec","radio","sx1268","sx1278","uhf","uhf-transceiver","vhf","walkie-talkie"],"created_at":"2024-11-16T06:16:30.082Z","updated_at":"2025-04-14T19:21:52.784Z","avatar_url":"https://github.com/sh123.png","language":"C++","funding_links":[],"categories":["Hardware"],"sub_categories":["Simulation"],"readme":"# ESP32 Codec2/OPUS DV Handheld Transceiver\n\n## Introduction\nThis project is a hobby/amateur/toy/educational radio ESP32 based LoRa/FSK Codec2/OPUS DV 3d printed handheld trasceiver a.k.a. walkie-talkie, which is using 1W/2W E22-400M30S/E22-400M33S (SX1268) radio module (UHF, 70cm band) or optionally 100mW RA-01/RA-02 (SX1278) module. \n\nIt mimics ordinary FM walkie-talkie, does not use any protocol for simplicity, just sends audio codec frames with pre-configured radio digital modulation.\n\nOverall components cost for this project is about 15-20$.\n\nSchematics for new board design with integrated components on the board is available under `extras/schematics`. Pinouts are compatible with first prototype version. There is place for GPS module, but do not solder it as there is no support for it, it just there for future experiments.\n\nFirst prototype is based on https://github.com/sh123/esp32_loraprs modem, but uses additional peripherals:\n- I2S speaker module MAX98357A + 4ohm 3w speaker (40mm diameter)\n- I2S microphone INMP441\n- PTT button\n- Rotary encoder with push button\n- Small OLED display SSD1306 128x32\n- Battery voltage monitoring (just voltage divider fed into ADC pin, see schematics)\n- Powered from a single commonly avaialble 18650 cell (for example from old laptop battery)\n- Uses combined charge + 5v boost controller based on Hotchip HT4928S (it is usually used in low capacity single cell USB power banks).\n\nSupports next features:\n- Supports LoRa and FSK modulation with configurable modulation parameters from settings\n- Supports Codec2 (low bit rate, 700-3200 bps) and OPUS (medium/high bit rate, 2400-512000 bps) audio codecs, codec could be selected from settings\n- Goes into ESP32 light sleep when no activity, so all power consumption is around 30-40mA when in sleep RX, wakes up on new data from radio module or when user starts transmitting, consumes about 90-100mA in active receive and about 700-800mA in full power 1W transmit\n- Settings menu on long encoder button click, allows to change frequency and other parameters\n- Output power tunable from settings from ~1mW (for ISM toy usage) up to 2W (for amateur radio experiments)\n- Experimental no warranty privacy option for ISM low power usage (check your country regulations if it is allowed by the ISM band plan before experimenting as it might be illegal in some countries), it is based on [ChaCha/Salsa20](https://en.wikipedia.org/wiki/Salsa20#ChaCha_variant) stream cypher provided by [rwheater/Crypto](https://github.com/rweather/arduinolibs) library, it is comparable to AES256, uses 256 bits key, but should have lower CPU requirements and power usage.\n\n## Build instructions\n- Modify `include/config.h` if needed\n- Install platformio\n- Build with platformio\n- Upload with platformio\n\n## Pictures\n\nTwo fully 3d printed prototypes were built based on `esp32_loraprs` modem board.\n\n![Device](extras/images/device.png)\n\nList of peripherals used.\n\n![Device](extras/images/peripherals.png)\n\nNew board design with all components integrated into the board (except battery and charging circuit).\n\n![Device](extras/schematics/images/board.png)\n\nCase for the new board version with battery compartment.\n\n![CAD](extras/cad/images/base.png)\n\nAssembled board with new design.\n\n![Device](extras/schematics/images/board_assembled.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsh123%2Fesp32_loradv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsh123%2Fesp32_loradv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsh123%2Fesp32_loradv/lists"}