{"id":23628456,"url":"https://github.com/markuslindenberg/aprspi","last_synced_at":"2025-08-08T23:16:11.174Z","repository":{"id":82866288,"uuid":"159152381","full_name":"markuslindenberg/aprspi","owner":"markuslindenberg","description":" Raspberry Pi 3 APRS Tracker/TNC based on Buildroot","archived":false,"fork":false,"pushed_at":"2019-03-17T17:34:37.000Z","size":91,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-18T18:47:30.777Z","etag":null,"topics":["aprs","buildroot","hamradio","raspberry-pi"],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/markuslindenberg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2018-11-26T10:35:37.000Z","updated_at":"2022-09-25T18:40:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"dda52c26-c81d-4c1e-a426-5816cfdc7612","html_url":"https://github.com/markuslindenberg/aprspi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/markuslindenberg/aprspi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markuslindenberg%2Faprspi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markuslindenberg%2Faprspi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markuslindenberg%2Faprspi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markuslindenberg%2Faprspi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markuslindenberg","download_url":"https://codeload.github.com/markuslindenberg/aprspi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markuslindenberg%2Faprspi/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269502610,"owners_count":24427795,"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","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["aprs","buildroot","hamradio","raspberry-pi"],"created_at":"2024-12-28T00:36:21.755Z","updated_at":"2025-08-08T23:16:11.160Z","avatar_url":"https://github.com/markuslindenberg.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"#  Raspberry Pi 3 APRS Tracker/TNC based on Buildroot\n\nThis project generates a Raspberry Pi Image for the Software \nTNC / AX.25 packet modem [Direwolf](https://github.com/wb2osz/direwolf/) using the [Buildroot](https://buildroot.org/) embedded firmware toolchain.\n\nThe goal project is to create a rock solid, ready to use and easy to upgrade firmware image containing all required components for Direwolf-based applications.\n\n## Status\n\n**This is unpolished, unfinished work in progress, prebuild images are not yet available.** Use Buildroot to build the firmware (see instructions below).\n\n## Hardware\n\nYou'll need:\n\n* Raspberry Pi 3 / 3+\n* USB audio interface (Signalink, cheap C-Media adapter ...) to the TRX\n* Optional: USB control interface for your TRX (e.g. USB-RS232 cable)\n* Optional: GPS board or USB GPS\n\n## Design\n\nThe main design goals are robustness and tight integration of all included components. The device can be switched off / lose power without filesystem corruption.\n\n* The SD card image only contains a FAT32 partition.\n* The root filesystem is run from initramfs and will be reset after each reboot.\n* All mutable configuration resides on the Raspberry Pi FAT32 partition (mounted on `/boot/`). The mount point is managed by automount and unmounted after 5 seconds of inactivity.\n\n## Included Services\n\n* [Direwolf](https://github.com/wb2osz/direwolf/): Software TNC\n* [rigctld](https://hamlib.github.io/): Rig remote control service\n* [gpsd](http://www.catb.org/gpsd/): GPS support\n\n### Infrastructure\n\n* [Chrony](https://chrony.tuxfamily.org/): Local timekeeping using GPS and NTP (if available)\n* [OpenSSH](https://www.openssh.com/): Remote access\n* [systemd-networkd](https://www.freedesktop.org/software/systemd/man/systemd.network.html): Network setup\n* [iwd](https://wiki.archlinux.org/index.php/Iwd): Wifi setup\n* [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html): In-memory logging\n* [rngd](https://www.kernel.org/doc/Documentation/hw_random.txt): Hardware RNG support\n* [watchdog](https://github.com/brgl/busybox/blob/master/miscutils/watchdog.c): Support for bcm2835 wachdog\n* [BlueZ 5](http://www.bluez.org/): Bluetooth stack\n\n## Build Instructions\n\nPlease read the excellent [Buildroot user manual](https://buildroot.org/downloads/manual/manual.html) and install all requirements listed there.\n\n```\ngit clone -b 2019.02 https://git.busybox.net/buildroot\ngit clone https://github.com/markuslindenberg/aprspi.git\n\ncd buildroot\nmake BR2_EXTERNAL=../aprspi aprspi_raspberrypi3_64_defconfig\nmake\n```\n\nThis will bootstrap and compile a cross compilation toolchain and build all software including the Linux kernel from source and generate a SD card image in `output/images`.\n\n## SSH / console access\n\n* The root password for console access is `aprspi` and currently it's hardcoded 😱.\n* To enable SSH access put a [authorized_keys](https://manpages.debian.org/stretch/openssh-server/authorized_keys.5.en.html#AUTHORIZED_KEYS_FILE_FORMAT) file on the SD card.\n  It will be used for the root account.\n\n## Configuration\n\nIt is planned to eventually implement a web interface but for now the TNC has to be set up manually using SSH or console access.\n\nAll persistent configuration files are placed on the SD card's FAT32 filesystem and can also be copied from/to the SD card manually.\n\n### Wifi / networking (optional)\n\naprspi will use DHCP to configure the ethernet and wifi interfaces.\n\nWifi is managed by `iwd`, See `iwctl help` for iwctl's usage.\n\n```\niwctl station wlan0 scan\niwctl station wlan0 get-networks\niwctl connect \"some network\"\n```\n\nReboot aprspi using `reboot` or use `systemctl restart iwd-restore.service` to save all known wifi networks on the SD card.\n\n### rigctld (optional)\n\nIf `rigctld` should be used by Direwolf for PTT, place a file `rigctld.txt` on the SD card (`/boot/rigctld.txt`):\n\n```\nOPTIONS=-m 234 -r /dev/ttyUSB0 -s 9600\n```\n\nSee `rigctld -h` and `rigctld -L` for help. By default rigctld is running on `127.0.0.1:4532` in dummy mode.\n\n### ALSA / Audio levels\n\nUse `arecord` to monitor audio level from the TRX to the TNC:\n\n```\narecord -f s16 -r 44100 -V mono /dev/null\n```\n\nPress `Ctrl+C` to interrupt.\n\nThe audio level can be adjusted using `pactl`:\n\n```\npactl set-source-volume @DEFAULT_SOURCE@ 16384\npactl set-sink-volume @DEFAULT_SINK@ 32768\n```\n\nBoth values can be put into `volume.txt` on the SD card to automatically adjust the volume:\n\n```\n# Set audio levels for input and output between 0-65536\n\nOUTPUT=32000\nINPUT=22000\n```\n\n### Direwolf\n\nCreate a file `direwolf.conf` on the SD card.\nSee the [Dire Wolf User Guide](https://github.com/wb2osz/direwolf/blob/master/doc/User-Guide.pdf) on how to configure beaconing etc.\n\n```\nADEVICE default\nCHANNEL 0\n#PTT /dev/ttyUSB0 RTS\n#GPSD\n```\n\nThe TNC can be accessed over the network on port 8000 (AGW) or 8001 (KISS).\n\n### Bluetooth\n\nBluetooth is enabled, any device can pair with `aprspi` without PIN.\n[APRSdroid](https://aprsdroid.org/) works using `TNC (KISS)` with `Bluetooth SPP` connection on channel 1.\n\nBluetooth pairings are saved in `bluetooth.tgz` on the SD card on `reboot` or by using `systemctl restart bluetooth-restore.service`.\n\n## Upgrading\n\nReplace the `Image` file on the SD card and reboot.\n\n## ToDo / Future\n\n* Automated builds\n* Webinterface for configuration/monitoring/upgrading\n* Other applications that use a soundcard\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkuslindenberg%2Faprspi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkuslindenberg%2Faprspi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkuslindenberg%2Faprspi/lists"}