{"id":320,"date":"2025-06-18T15:55:22","date_gmt":"2025-06-18T15:55:22","guid":{"rendered":"https:\/\/ip400.adrcs.org\/?page_id=320"},"modified":"2026-03-19T22:32:18","modified_gmt":"2026-03-19T22:32:18","slug":"user-interface","status":"publish","type":"page","link":"https:\/\/ip400.adrcs.org\/?page_id=320","title":{"rendered":"Software"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">All software for the project is open source, and is based on a Unified Firmware Platform, which utilizes the same firmware base on all hardware, so all the features are available across various platforms. The transceiver modes implemented are dependent on the hardware type.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All software has the following features:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Feature<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>Setup Menu<\/td><td>An intuitive menu to set up parameters such as frequency, mode, power, callsign, etc.<\/td><\/tr><tr><td>Beaconing<\/td><td>A station identification message sent periodically to all stations<\/td><\/tr><tr><td>Mesh table<\/td><td>A collection of all stations heard and routing information to find them.<\/td><\/tr><tr><td>AX.25 compatibility and KISS mode<\/td><td>A serial interface that accepts and generates AX.25 frames in KISS format<\/td><\/tr><tr><td>Chat mode<\/td><td>A simple chat application for sending messages between stations.<\/td><\/tr><tr><td>Ping mode<\/td><td>A dedicated message to request a response from a remote station. Manual or timed.<\/td><\/tr><tr><td>Serial Peripheral Interface (SPI)<\/td><td>A high speed serial interface to a host processor that accepts IP frames<\/td><\/tr><tr><td>Real Time Clock<\/td><td>A real time clock with accuracy of 5 seconds to timestamp mesh entries.<\/td><\/tr><tr><td>Repeat (Digipeater)<\/td><td>An ability to repeat frames based on station callsigns.<\/td><\/tr><tr><td>Status monitoring and LED display<\/td><td>A series of LEDs to indicate the node status, which can be on\/off or flashing.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The diagram below illustrates the general software architecture. Hardware platforms may implement all or a subset of the functionality.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"717\" src=\"https:\/\/ip400.adrcs.org\/wp-content\/uploads\/2026\/03\/Firmware-1024x717.jpg\" alt=\"\" class=\"wp-image-469\" srcset=\"https:\/\/ip400.adrcs.org\/wp-content\/uploads\/2026\/03\/Firmware-1024x717.jpg 1024w, https:\/\/ip400.adrcs.org\/wp-content\/uploads\/2026\/03\/Firmware-300x210.jpg 300w, https:\/\/ip400.adrcs.org\/wp-content\/uploads\/2026\/03\/Firmware-768x538.jpg 768w, https:\/\/ip400.adrcs.org\/wp-content\/uploads\/2026\/03\/Firmware.jpg 1028w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">General Node Software Architecture<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">There are four main components to the node firmware:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Serial Interface<\/strong>. The primary data interface to the node, which can either be a UAR\/T or a Serial Peripheral Interface (SPI). This module also contains the setup parameters and beacon generation. A GPS receiver and second UAR\/T can optionally be added for more accurate position generation.<\/li>\n\n\n\n<li><strong>IP400 Frame processor<\/strong>. This module creates and receives IP400 Frames for transmission, including forward error correction. Local frames,  for applications such as chat and ping, are processed in this module, and the mesh table is created and maintained here as well.<\/li>\n\n\n\n<li><strong>Modems and Physical I\/O<\/strong>. This module contains an abstraction layer for each modem type, along with interfaces for Modes A, B and C. The physical I\/O module varies depending on the modem hardware. <\/li>\n\n\n\n<li><strong>Platform Specific. <\/strong>The contents of this module varies depending on the hardware type, functions include setting up a clock generator and an analog codec.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>All software for the project is open source, and is based on a Unified Firmware [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":476,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-320","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/ip400.adrcs.org\/index.php?rest_route=\/wp\/v2\/pages\/320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ip400.adrcs.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ip400.adrcs.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ip400.adrcs.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ip400.adrcs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=320"}],"version-history":[{"count":15,"href":"https:\/\/ip400.adrcs.org\/index.php?rest_route=\/wp\/v2\/pages\/320\/revisions"}],"predecessor-version":[{"id":473,"href":"https:\/\/ip400.adrcs.org\/index.php?rest_route=\/wp\/v2\/pages\/320\/revisions\/473"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ip400.adrcs.org\/index.php?rest_route=\/wp\/v2\/media\/476"}],"wp:attachment":[{"href":"https:\/\/ip400.adrcs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}