{"id":13635170,"url":"https://github.com/aredn/aredn","last_synced_at":"2025-04-19T03:34:35.281Z","repository":{"id":37069036,"uuid":"321752707","full_name":"aredn/aredn","owner":"aredn","description":"Amateur Radio Emergency Data Network (AREDN)","archived":false,"fork":false,"pushed_at":"2025-04-15T01:01:32.000Z","size":5218,"stargazers_count":203,"open_issues_count":116,"forks_count":75,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-04-15T02:21:31.611Z","etag":null,"topics":["hacktoberfest","hacktoberfest2024"],"latest_commit_sha":null,"homepage":"https://www.arednmesh.org","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aredn.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":"SUPPORTED_DEVICES.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-15T18:20:40.000Z","updated_at":"2025-04-15T01:01:36.000Z","dependencies_parsed_at":"2023-09-25T06:17:50.148Z","dependency_job_id":"ef6b5733-72d3-4843-bd53-8b83d2005171","html_url":"https://github.com/aredn/aredn","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aredn%2Faredn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aredn%2Faredn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aredn%2Faredn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aredn%2Faredn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aredn","download_url":"https://codeload.github.com/aredn/aredn/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249600538,"owners_count":21297712,"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":["hacktoberfest","hacktoberfest2024"],"created_at":"2024-08-02T00:00:41.839Z","updated_at":"2025-04-19T03:34:35.273Z","avatar_url":"https://github.com/aredn.png","language":"Lua","funding_links":[],"categories":["Software","UnrealScript"],"sub_categories":["Firmware"],"readme":"# Amateur Radio Emergency Data Network AREDN® Firmware\n\nhttps://www.arednmesh.org\n\n## About AREDN®\n\nAREDN® wireless networks are deployed by licensed Amateur Radio operators, Technician Class or higher, under FCC Part 97 allocations adjacent to FCC part 15, unlicensed, WIFI, allocations. They are configured as adhoc nodes to form mesh networks. The firmware created below enables the effective use of valuable and dedicated frequencies for communication services to government and private relief organizations in times of disaster or other emergencies.\n\nThis firmware enables 802.11 wireless networks to be created and expanded with little to no IT expertise.  A user can deploy a 'node' anywhere to connect to and extend an AREDN® network.  Device hardware options exist to provide sector coverage, build point-to-point links, and connect end point services to the network. High speed link rates are routinely achieved over long distances, e.g. 60Mbps+ on 10MHz channels over 80km links.\n\nFor further information on obtaining an Amateur Radio Technician Class license, please refer to https://www.arrl.org/getting-your-technician-license\n\n## Usage Information\n\n### Ethernet Port usage\n\nThe standard Ethernet port of an AREDN® device uses the following vlan tags.  An 802.1Q switch is necessary to utilize the vlan tagged networks:\n\n* untagged:  LAN devices - laptop, ipcam, voip phone, etc.\n* vlan 1:  WAN - gateway to connect AREDN® network to home network and/or internet (some devices support changing this vlan to an alternate value)\n* vlan 2:  DtDLink (device to device) - AREDN® network routing between nodes, typically cross band\n\nThe following devices have enhanced Ethernet port usage.  A single cat5 to the device could be plugged into ether the 'main' or 'secondary' port with standard port functionality. Both ports can be used interchangeably and simultaneously with LAN devices on both ports at the same time.\n\nIf the device's hardware supports POE (Power Over Ethernet) pass-through from main port to secondary port, an Advanced Setting option will show to turn on/off.  This is useful to power ipCams or other mesh nodes by daisy chaining the network cable from one device to another. Then only one network cable may be needed to reach 2 or 3 devices on the tower. Be sure to check the power capacity in the vendor specifications to not exceed. The first device in the chain will provide the DHCP address to all LAN devices on all nodes (because it powers up first).\n\n* NanoStation M2 XW\n* NanoStation M5 XW\n* NanoStation M2 XM\n* NanoStation M3 XM\n* NanoStation M5 XM\n* TP-Link CPE210 v1/v1.1\n* TP-Link CPE220 v2\n* TP-Link CPE220 v3\n* TP-Link CPE510 v1/v1.1\n* TP-Link WBS210 v1\n* TP-Link WBS210 v2\n* TP-Link WBS510 v1\n* TP-Link WBS510 v2\n\nThe Mikrotik hAP AC Lite, Mikrotik hAP ac2, and Mikrotik hAP ac3 are pre-configured with the following VLANs:\n\n* Port 1: WAN Port - Packets in/out of this port are expected to be untagged. The node is (by default) configured to receive a DHCP assigned address from a home network, internet, or other foreign network.\n* Port 5: DtDLink Port Mesh Routing -- Connect to another mesh node or 8021.q switch. Packets in/out of this port must be vlan 2 tagged, other packets are ignored.\n* Ports 2-4: LAN devices -- Packets in/out of this port are expected to be untagged. The mesh node will (default) DHCP assign an IP address to your computer, ipCam, voip phone, etc. connected to these ports.\n\nThe Ubiquiti AirRouter and AirRouter HP are pre-configured with the following VLANs:\n\n* Port \"WAN\": Packets in/out of this port are expected to be untagged. The node is (by default) configured to receive a DHCP assigned address from a home network, internet, or other foreign network.\n* Port 4: DtDLink Port Mesh Routing -- Connect to another mesh node or 8021.q switch. Packets in/out of this port must be vlan 2 tagged, other packets are ignored.\n* Ports 1-3: LAN devices -- Packets in/out of this port are expected to be untagged. The mesh node will (default) DHCP assign an IP address to your computer, ipCam, voip phone, etc. connected to these ports.\n\nThe GL.iNet GL-AR150, GL-AR300M16, and the OpenWRT One are pre-configured with the following VLANS:\n\n* Port labeled \"WAN\": untagged = AREDN® WAN\n* Port labeled \"LAN\": untagged = AREDN® LAN, vlan 2 = DtDLink (device to device)\n\nThe GL.iNet GL-AR750 is pre-configured with the following ports, left to right:\n\n* Left Port with internet globe icon:  WAN (untagged)\n* Middle Port with \"\u003c..\u003e\" icon: DtDLink (vlan 2)\n* Right Port with \"\u003c..\u003e\" icon: LAN (untagged)\n\nIMPORTANT: For Gl.iNet devices, when initially installing AREDN® on OpenWRT, you *MUST* uncheck the \"Keep Settings\" checkbox.\n\n## Submitting Bug Reports\n\nPlease submit all issues to https://github.com/aredn/aredn/issues\n\n## Developer Only Information\n\nThe AREDN® firmware is based on OpenWrt with additional packages and patches. A Makefile automates the entire process to create firmware images.\n\n### Images built with the instructions below\n\nThis is the active 'main' branch with latest AREDN® code. The Amateur Radio community is encouraged to participate in loading the images produced from a \"nightly build\" and run the AREDN® firmware in a variety of environments. Given new features may not yet be documented, participants should already have a basic knowledge of Linux and networking to understand and provide useful feedback to the Developer submitting the code.\n\nThe goal of participation is to obtain confidence that new features and the overall mesh node is stable. The more participation, the earlier an issue is found, the faster an enhancement will be turned into a release.\n\nPlease refer to https://github.com/aredn/aredn/issues for a list of outstanding defects.\n\n### Building with Docker\nInstalling the Docker environment on your windows/linux/mac machine is a pre-requisite. A docker 'container' has been pre-configured with an aredn linux build environment. Alternative instructions are below if you wish to setup your linux install with the compiler pre-requisites necessary to do the build.\n\nTo build with docker:\n```\ndocker pull arednmesh/builder\ndocker run -it --name builder arednmesh/builder\n```\n\nTo pull an image (or any other file) out of the docker container:\n```\ndocker cp builder:/opt/aredn/aredn/firmware/targets/ath79/generic/\u003cimage\u003e.bin \u003clocal directory\u003e\n```\n\n### Build Prerequisites\n\nPlease take a look at the [OpenWrt documentation](https://openwrt.org/docs/guide-developer/build-system/install-buildsystem) for a complete and up to date list of packages for your operating system.\n\nOn Ubuntu/Debian:\n```\napt-get install git subversion build-essential libncurses5-dev \\\n  zlib1g-dev gawk unzip libxml-perl flex wget gettext quilt \\\n  python libssl-dev shellcheck lua5.1\n```\n\nOn openSUSE:\n```\nzypper install --type pattern devel_basis\nzypper install git subversion ncurses-devel zlib-devel gawk unzip \\\n  perl-libxml-perl flex wget gettext-runtime quilt python \\\n  libopenssl-devel shellcheck lua51\n```\n\nOn Arch:\n```\npacman -S base-devel subversion zlib unzip perl-xml-libxml wget \\\n  quilt openssl shellcheck lua51 git\n```\n\n### Building firmware images\n\nTo obtain the source and build the firmware locally use:\n\n```\nbash\ngit clone https://github.com/aredn/aredn.git\ncd aredn\nvi config.mk # enter your callsign, etc.\n# build default legacy ath79 target ubnt and tplink images\nmake  \n# build and add legacy ath79 target mikrotik images\nmake SUBTARGET=mikrotik\n# build and add ath79 target (latest linux kernel) ubnt, tplink, and gl images\nmake MAINTARGET=ath79\n```\n\nBuilding the images may take minutes or hours depending on the machine. For more details see [build options](https://openwrt.org/docs/guide-developer/build-system/use-buildsystem).  \nReview the build options in config.mk: `-j \u003cnuMBer of cores + 1\u003e`.\n`V=s` will give more verbose error messages.\n\nAn internet connection is required during the build process. A good internet connection can improve the build time.\n\nYou need approximately 10GB of space for the build.\n\n### How to build prior builds of AREDN®\n\nPrior AREDN® images can be rebuilt.  Replace one of the following after\nthe \"cd aredn\" command above:\n\nAREDN® release 3.25.2.0\n\n```\ngit checkout 3.25.2.0\n```\n\nAREDN® release 3.24.10.0\n\n```\ngit checkout 3.24.10.0\n```\n\nAREDN® release 3.24.6.0\n\n```\ngit checkout 3.24.6.0\n```\n\nAREDN® release 3.24.4.0\n\n```\ngit checkout 3.24.4.0\n```\n\nAREDN® release 3.23.12.0\n\n```\ngit checkout 3.23.12.0\n```\n\nAREDN® release 3.23.8.0\n\n```\ngit checkout 3.23.8.0\n```\n\nAREDN® release 3.23.4.0\n\n```\ngit checkout 3.23.4.0\n```\n\nAREDN® release 3.22.12.0\n\n```\ngit checkout 3.22.12.0\n```\n\nAREDN® release 3.22.8.0\n\n```\ngit checkout 3.22.8.0\n```\n\nAREDN® release 3.22.6.0\n\n```\ngit checkout 3.22.6.0\n```\n\nAREDN® release 3.22.1.0\n\n```\ngit checkout 3.22.1.0\n```\n\nAREDN® release 3.21.4.0\n\n```\ngit checkout 3.21.4.0\n```\n\nAREDN® release 3.20.3.1\n\n```\ngit checkout 3.20.3.1\n```\n\nAREDN® release 3.20.3.0\n\n```\ngit checkout 3.20.3.0\n```\n\nAREDN® release 3.19.3.0\n\n```\ngit checkout 3.19.3.0\n```\n\nAREDN® release 3.18.9.0\n\n```\ngit checkout 3.18.9.0\n```\n\nAREDN® release 3.16.2.0\n\n```\ngit checkout 3.16.2.0\n```\n\nAREDN® release 3.16.1.1\n\n```\ngit checkout 3.16.1.1-make\n```\n\nAREDN® build 176\n\n```\ngit checkout 91ee867\n```\n\nReturn to most current changes\n\n```\ngit checkout main\n```\n\n### Directory Layout\n\n```\nIncluded in the git Repo:\nconfig.mk    \u003c- build settings\nopenwrt.mk   \u003c- which openwrt repo and branch/tag/commit to use\nfeeds.conf/  \u003c- custom package feeds (edit to point to your clone of aredn_packages)\nfiles/       \u003c- file system in AREDN® created images, most customizations go here\npatches/     \u003c- patches to openwrt go here\nscripts/     \u003c- tests and other scripts called from the build\nconfigs/     \u003c- definitions of features in the devices' kernel and what packages to include\nMakefile     \u003c- the build definition\nREADME.md    \u003c- this file\n\nCreated by the build:\nopenwrt/     \u003c- cloned openwrt repository\nfirmware/    \u003c- the build will place the images here\nresults/     \u003c- code checks and other test results in jUnit xml format\n```\n\n### Patches with quilt\n\nThe patches directory contains quilt patches applied on top of the openwrt git repo defined in config.mk.\n\nIf a patch is not yet included upstream, it can be placed in the `patches` directory with\nthe `quilt` tool. Please configure `quilt` as described in [OpenWrt Quilt](https://openwrt.org/docs/guide-developer/build-system/use-patches-with-buildsystem).  \n\n#### Add, modify or delete a patch\n\nSwitch to the openwrt directory:\n\n```bash\ncd openwrt\n```\nNow you can use the `quilt` commands.\n\n##### Example: add a patch\n\n```bash\nquilt push -a                 # apply all patches\nquilt new 008-awesome.patch   # tell quilt to create a new patch\nquilt edit somedir/somefile1  # edit files\nquilt edit somedir/somefile2\nquilt refresh                 # creates/updates the patch file\n```\n\n## Submitting new features and patches to AREDN®\n\nThe high level steps to submit to this repository https://github.com/aredn/aredn are:\n\n1) create a github account and 'fork' this repo\n2) git commit a change into your fork, e.g. https://github.com/ae6xe/aredn\n3) create a pull request for https://github.com/aredn/aredn to consider your change\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faredn%2Faredn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faredn%2Faredn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faredn%2Faredn/lists"}