mirror of
https://github.com/markqvist/unsignedio
synced 2026-08-12 17:40:37 -04:00
107 lines
8.8 KiB
HTML
107 lines
8.8 KiB
HTML
|
|
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<link rel="stylesheet" href="../css/water.css?v=19">
|
|
<link rel="shortcut icon" type="image/x-icon" href="../gfx/icon.png">
|
|
<meta charset="utf-8"/>
|
|
<title>MicroAPRS | unsigned.io</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<meta property="og:title" content="MicroAPRS">
|
|
<meta name="description" content="MicroAPRS page at unsigned.io">
|
|
<meta property="og:description" content="MicroAPRS page at unsigned.io">
|
|
<meta property="og:image" content="https://unsigned.io/gfx/unsigned_logo.webp">
|
|
<meta property="og:url" content="https://unsigned.io/software/MicroAPRS.html">
|
|
<meta property="og:title" content="MicroAPRS">
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta property="twitter:domain" content="unsigned.io">
|
|
<meta property="twitter:url" content="https://unsigned.io/software/MicroAPRS.html">
|
|
<meta name="twitter:title" content="MicroAPRS">
|
|
<meta name="twitter:description" content="MicroAPRS page at unsigned.io">
|
|
<meta name="twitter:image" content="https://unsigned.io/gfx/unsigned_logo.webp">
|
|
|
|
</head>
|
|
<body>
|
|
<div id="load_overlay" style="background-color:#2a2a2f; position:absolute; top:0px; left:0px; width:100%; height:100%; z-index:2000;"></div>
|
|
<span class="logo">unsigned.io</span>
|
|
<center>
|
|
<p><span class="menu"><a href="../index.html">Home</a> | <a href="../log.html">Log</a> | <a href="../guides.html">Guides</a> | <a href="../software/index.html">Software</a> | <a href="../hardware/index.html">Hardware</a> | <a href="https://github.com/markqvist/Reticulum/discussions">Discussions</a> | <a href="../shop.html">Shop</a> | <a href="../contact.html">Contact Me</a> | <a href="../donate.html">Donate</a></span></p>
|
|
</center><hr><h1>MicroAPRS</h1>
|
|
<p><strong>Important!</strong> <em>For new projects, please consider using <a href="https://unsigned.io/openmodem">OpenModem</a> as a platform instead. It is much more powerful, and has none of the limitations of this implementation. For simple projects, MicroAPRS is absolutely still usable, and it is incredibly stable and well-tested in thousands of hours of real-life usage, but have a look at OpenModem as well, since that is what I will be maintaining from now on. No new features or updates will be added to MicroAPRS from here on. I consider it stable and feature-complete for what the hardware is capable of.</em></p>
|
|
<p>MicroAPRS is an APRS firmware for <a href="http://unsigned.io/micromodem">MicroModem</a>. It supports both normal KISS mode, and a simple serial protocol for easy communication with an Arduino, or other MCU.</p>
|
|
<p>You can buy a complete modem from <a href="http://unsigned.io/shop">my shop</a>, or you can build one yourself pretty easily. Take a look at the documentation in the <a href="https://github.com/markqvist/MicroModem">MicroModem</a> repository for information and getting started guides!</p>
|
|
<h2>Some features</h2>
|
|
<ul>
|
|
<li>Send and receive AX.25 APRS packets</li>
|
|
<li>Full modulation and demodulation in software</li>
|
|
<li>Easy configuration of callsign and path settings</li>
|
|
<li>Flexibility in how received packets are output over serial connection</li>
|
|
<li>Persistent configuration stored in EEPROM</li>
|
|
<li>Shorthand functions for sending location updates and messages, so you don't need to manually create the packets</li>
|
|
<li>Ability to send raw packets</li>
|
|
<li>Support for settings APRS symbols</li>
|
|
<li>Support for power/height/gain info in location updates</li>
|
|
<li>Ability to automatically ACK messages adressed to the modem</li>
|
|
<li>Can run with open squelch</li>
|
|
<li>Supports KISS mode for use with programs on a host computer</li>
|
|
</ul>
|
|
<h2>KISS mode</h2>
|
|
<p>When the modem is running in KISS mode, there's really not much more to it than connecting the modem to a computer, opening whatever program you want to use with it, and off you go.</p>
|
|
<p>When in KISS mode, the preamble time, tail time, persistence and slot time parameters can be configured by the default KISS commands for these. See KISS.h and KISS.c for more info on the configuration command syntax. </p>
|
|
<p>It's important to note that some programs (Xastir, for example) will reset the modem when connecting to it, and then immediately send configuration commands. Depending on your hardware, this might have the unfortunate effect that the configuration commands are sent to the bootloader, instead of the booted firmware. If your program does not allow you to disable resetting or to set a delay for sending the configuration commands, you can manually disable the reset functionality by connecting a resistor of around 100 ohms between the VCC and DTR pins. This will ensure that the modem is not reset, even if the host program sends a reset command.</p>
|
|
<h2>Modem control - SimpleSerial</h2>
|
|
<p>If you want to use the SimpleSerial protocol, here's how to control the APRS modem over a serial connection. The modem accepts a variety of commands for setting options and sending packets. Generally a command starts with one or more characters defining the command, and then whatever data is needed to set the options for that command. The full list of commands and related info is available <a href="https://github.com/markqvist/MicroAPRS">on the MicroAPRS GitHub repository</a>.</p>
|
|
<h3>Examples</h3>
|
|
<p><strong>To set your callsign to XX1YYY-5, and then save the configuration, send these three commands:</strong></p>
|
|
<pre><code>cXX1YYY
|
|
sc5
|
|
S
|
|
</code></pre>
|
|
<p><strong>To send an APRS message to ZZ5ABC-1 with the content "Hi there!", send these commands:</strong></p>
|
|
<pre><code>mcZZ5ABC
|
|
ms1
|
|
# Hi there!
|
|
</code></pre>
|
|
<p><strong>To send a location update, with the comment "MicroAPRS", you can do something like this:</strong></p>
|
|
<pre><code>lla5230.70N
|
|
llo01043.70E
|
|
@MicroAPRS
|
|
</code></pre>
|
|
<p><strong>To send an APRS message to ZZ5ABC-1 with the content "Hi there!", using a raw packet, send this command:</strong></p>
|
|
<pre><code>!:ZZ5ABC-1 :Hi there!{01
|
|
</code></pre>
|
|
<p><strong>Here's an example of how to send a location update with power, height and gain information, using a raw packet:</strong></p>
|
|
<pre><code>!=5230.70N/01043.70E-PHG2410MicroAPRS
|
|
</code></pre>
|
|
<h3>EEPROM Settings</h3>
|
|
<p>When saving the configuration, it is written to EEPROM, so it will persist between poweroffs. If a configuration has been stored, it will automatically be loaded when the modem powers up. The configuration can be cleared by sending the "clear configuration" command (<code>C</code>).</p>
|
|
<h3>Serial Connection</h3>
|
|
<p>To connect to the modem use <strong>9600 baud, 8N1</strong> serial. By default, the firmware uses time-sensitive input, which means that it will buffer serial data as it comes in, and when it has received no data for a few milliseconds, it will start interpreting whatever it has received. This means you need to set your serial terminal program to not send data for every keystroke, but only on new-line, or pressing send or whatever. If you do not want this behaviour, you can compile the firmware with the DEBUG flag set, which will make the modem wait for a new-line character before interpreting the received data. I would generally advise against this though, since it means that you cannot have newline characters in whatever data you want to send!</p>
|
|
<p><img alt="MicroModem" src="../images/A1-1024x731.jpg" /></p>
|
|
<p>The project has been implemented in your normal C with makefile style, and uses AVR Libc. The firmware is compatible with Arduino-based products, although it was not written in the Arduino IDE.</p>
|
|
<h2>Support Me</h2>
|
|
<p>If you have benefited from this project, you can help support the continued development of open, free and private communications systems by donating via one of the following channels:</p>
|
|
<ul>
|
|
<li>Monero<br/>
|
|
<code>84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w</code>
|
|
<br/><br/></li>
|
|
<li>Ethereum<br/>
|
|
<code>0xFDabC71AC4c0C78C95aDDDe3B4FA19d6273c5E73</code>
|
|
<br/><br/></li>
|
|
<li>Bitcoin<br/>
|
|
<code>35G9uWVzrpJJibzUwpNUQGQNFzLirhrYAH</code>
|
|
<br/><br/></li>
|
|
<li>Ko-Fi<br/>
|
|
<a href="https://ko-fi.com/markqvist"><code>https://ko-fi.com/markqvist</code></a></li>
|
|
</ul>
|
|
<br/><hr/><span class="no_print"><center><br/><i>This website is running on a 100% solar powered server</i><br/><br/>☀️<br/><br/><i><small>Unless otherwise noted, everything here is put into the world under a <a href="../LICENSE.txt">CC BY-NC-SA 4.0</a> license.<br/>Feel free to share and remix, just remember the attribution.
|
|
</small></i></center></span>
|
|
<div class="print_only donation_block"><br/>
|
|
Contribute to keeping information on Free & Open Communications systems available for all.<br/>
|
|
You can donate directly to <b>unsigned.io</b> by using one of the following QR codes:<br/><br/>
|
|
<span class="donate_qr"><img src="../gfx/donate_xmr.png"/><br/>Monero</span>
|
|
<span class="donate_qr"><img src="../gfx/donate_btc.png"/><br/>Bitcoin</span>
|
|
<span class="donate_qr"><img src="../gfx/donate_eth.png"/><br/>Ethereum</span>
|
|
</div>
|
|
</body></html>
|