{"id":1671,"date":"2026-06-08T18:20:22","date_gmt":"2026-06-08T18:20:22","guid":{"rendered":"https:\/\/g1lro.uk\/?p=1671"},"modified":"2026-07-20T21:03:16","modified_gmt":"2026-07-20T21:03:16","slug":"programing-the-usb-transceiver-model-50","status":"publish","type":"post","link":"https:\/\/g1lro.uk\/?p=1671","title":{"rendered":"Programing the USB Transceiver Model 50"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The G1LRO USB Transceiver Model 50 is built around 2 discrete elements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AIOC Sound card and serial interface<\/li>\n\n\n\n<li>SA818 UHF transceiver module<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Both of these need setting up individually before use.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"359\" src=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-19-1024x359.png\" alt=\"\" class=\"wp-image-1690\" srcset=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-19-1024x359.png 1024w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-19-300x105.png 300w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-19-768x269.png 768w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-19-1536x538.png 1536w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-19-600x210.png 600w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-19.png 1820w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The setup process is :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Flash the firmware into the AIOC processor<\/li>\n\n\n\n<li>Configure the AIOC processor for COS settings<\/li>\n\n\n\n<li>Configure the SA818 for the required frequency and CTCSS settings<\/li>\n\n\n\n<li>Configure ASL3 to easily recognize the AIOC processor.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">All of these steps are executed via a PC and Web browser, no command line access is needed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1 : Flash AIOC Firmware<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Remove the Model 50 PCB (two screws at the back) from the enclosure, locate the small button on the PCB (circle on the picture below)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Connect the Model 50 PCB to the PC via a USB cable, <strong>hold the button down whilst plugging-in<\/strong>. The two small LEDs on the main board will <strong>not <\/strong>light when this is done (these are in the square in the picture below).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"789\" src=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-14-1024x789.png\" alt=\"\" class=\"wp-image-1673\" srcset=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-14-1024x789.png 1024w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-14-300x231.png 300w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-14-768x592.png 768w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-14-600x462.png 600w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-14.png 1067w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Download AIOC Firmware file:<br>&nbsp;<a href=\"https:\/\/github.com\/skuep\/AIOC\/releases\/download\/v1.4.1\/aioc-fw-1.4.1.bin\">https:\/\/github.com\/skuep\/AIOC\/releases\/download\/v1.4.1\/aioc-fw-1.4.1.bin<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Browse to web-based software loader:<br>&nbsp;<a href=\"https:\/\/devanlai.github.io\/webdfu\/dfu-util\/\">https:\/\/devanlai.github.io\/webdfu\/dfu-util\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Click connect in the browser<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"387\" src=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-10-1024x387.png\" alt=\"\" class=\"wp-image-1618\" srcset=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-10-1024x387.png 1024w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-10-300x113.png 300w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-10-768x290.png 768w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-10-600x227.png 600w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-10.png 1487w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Select the device&nbsp;<strong>STM32 Bootloader&nbsp;<\/strong>then&nbsp;<strong>Internal Flash<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"846\" height=\"214\" src=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-11.png\" alt=\"\" class=\"wp-image-1619\" srcset=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-11.png 846w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-11-300x76.png 300w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-11-768x194.png 768w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-11-600x152.png 600w\" sizes=\"auto, (max-width: 846px) 100vw, 846px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Choose the AIOC firmware file previously downloaded and click download<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"668\" src=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-12.png\" alt=\"\" class=\"wp-image-1620\" srcset=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-12.png 900w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-12-300x223.png 300w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-12-768x570.png 768w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-12-600x445.png 600w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Disconnect Model 50 PCB from USB after flashing<\/strong>. <strong> <\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Plug the USB back into the PC and the two LEDs on the board will <strong>blink <\/strong>to show the firmware is property loaded.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2 : Configure the AIOC CPU<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Model 50 needs to use hardware  COS, here we tell the AIOC firmware which COS method to use.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>With the Model 50 PCB plugged into your <strong>PC or laptop<\/strong>&nbsp;<\/li>\n\n\n\n<li>Browse to:\u00a0<a href=\"https:\/\/g1lro.github.io\/aioc-util\/\">https:\/\/g1lro.github.io\/aioc-util\/<\/a> <\/li>\n\n\n\n<li>Click&nbsp;<strong>Connect<\/strong>&nbsp;and select the AIOC device.<\/li>\n\n\n\n<li>Enable&nbsp;<strong>Hardware COS<\/strong>&nbsp;and click&nbsp;<strong>Apply<\/strong>.<\/li>\n\n\n\n<li>Scroll down past the status pane and click&nbsp;<strong>Store to Flash<\/strong>.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"311\" src=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-7-1024x311.png\" alt=\"\" class=\"wp-image-1613\" srcset=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-7-1024x311.png 1024w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-7-300x91.png 300w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-7-768x233.png 768w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-7-600x182.png 600w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-7.png 1177w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"155\" src=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-8-1024x155.png\" alt=\"\" class=\"wp-image-1615\" srcset=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-8-1024x155.png 1024w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-8-300x46.png 300w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-8-768x116.png 768w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-8-600x91.png 600w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-8.png 1167w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Don\u2019t miss Store to Flash!<\/strong>&nbsp;It\u2019s tucked below the status display and easy to overlook. Settings that are only applied but not stored will be lost the moment the AIOC is unplugged.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">You can now reassemble the Model 50.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3 : Configure the SA818 radio module<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Model 50 is plugged into your PC<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Browse to: <a href=\"https:\/\/f8asb.github.io\/sa818\/\">https:\/\/f8asb.github.io\/sa818\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then click on &#8220;<strong>Choose a COM port<\/strong>&#8221; and select the AIOC in the list.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"836\" height=\"603\" src=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-15.png\" alt=\"\" class=\"wp-image-1676\" srcset=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-15.png 836w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-15-300x216.png 300w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-15-768x554.png 768w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-15-600x433.png 600w\" sizes=\"auto, (max-width: 836px) 100vw, 836px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Click the <strong>Read Configuration<\/strong> button to load the config from the radio module:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"281\" src=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-16.png\" alt=\"\" class=\"wp-image-1678\" srcset=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-16.png 758w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-16-300x111.png 300w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-16-600x222.png 600w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Next set the frequency and CTCSS settings you wish to use. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note <\/strong>you need to enter the 4 digits after the decimal point for the setting to work so for 433.625MHz you need to enter 433.6250.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Set the squelch to a low level and the volume to the max level.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"741\" height=\"594\" src=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-17.png\" alt=\"\" class=\"wp-image-1679\" srcset=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-17.png 741w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-17-300x240.png 300w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-17-600x481.png 600w\" sizes=\"auto, (max-width: 741px) 100vw, 741px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Click <strong>Apply <\/strong>after making changes in each section.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A log at the bottom of the screen shows success for each &#8216;Apply&#8217;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"888\" height=\"240\" src=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-18.png\" alt=\"\" class=\"wp-image-1680\" srcset=\"https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-18.png 888w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-18-300x81.png 300w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-18-768x208.png 768w, https:\/\/g1lro.uk\/wp-content\/uploads\/2026\/06\/image-18-600x162.png 600w\" sizes=\"auto, (max-width: 888px) 100vw, 888px\" \/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Your HT and SA818 settings must match<\/strong><br>When you key the HT, the COS LED will light on the Model 50 if frequency and CTCSS settings on the HT and the SA818 match. If the COS  LED does not illuminate,  check the HT settings and the SA818 config as described above.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4 : Configure ASL3 for the AIOC CPU<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Assuming you have a fully configured ASL3 node, log in to the ASL3 terminal on the ASL3 server (via the web admin portal or SSH) and (copy\/paste) run these two commands:<\/p>\n\n\n\n<pre class=\"wp-block-code has-tertiary-background-color has-background has-small-font-size\"><code>\nwget -O customize.sh https:\/\/raw.githubusercontent.com\/G1LRO\/AIOC-ASL3-Config\/main\/customize.sh\n\nsudo bash customize.sh\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s it. The script handles everything, here is a list of the changes made:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Step<\/th><th>File<\/th><th>What it does<\/th><\/tr><\/thead><tbody><tr><td>1<\/td><td><code>res_usbradio.conf<\/code><\/td><td>Enables the AIOC USB device (<code>1209:7388<\/code>)<\/td><\/tr><tr><td>2<\/td><td>Asterisk<\/td><td>Restarts so the AIOC is recognised immediately<\/td><\/tr><tr><td>3<\/td><td><code>simpleusb.conf<\/code><\/td><td>Sets correct PTT, COS, and CTCSS settings<\/td><\/tr><tr><td>4<\/td><td><code>rpt.conf<\/code><\/td><td>Sets half duplex mode<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Timestamped backups of all modified config files are created before any changes are made.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Full details of this script are at:&nbsp;<a href=\"https:\/\/github.com\/G1LRO\/AIOC-ASL3-Config\">https:\/\/github.com\/G1LRO\/AIOC-ASL3-Config<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5 : Tune the ASL3<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Have an HT or other radio tuned to the same frequency and CTCSS as the Model 50 settings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On the ASL3 server, open a terminal (or use SSH) and run the followng command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\nsudo simpleusb-tune-menu\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Work through the tune menu:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Option<\/th><th>What to do<\/th><\/tr><\/thead><tbody><tr><td><strong>V<\/strong><\/td><td>Verify COS \u2014 key the node HT and confirm COS opens; unkey and confirm it closes<\/td><\/tr><tr><td><strong>e<\/strong><\/td><td>Echo test \u2014 transmit to the Model 50, you should hear yourself played back<\/td><\/tr><tr><td><strong>2<\/strong><\/td><td>Set audio levels <\/td><\/tr><tr><td><strong>W<\/strong><\/td><td>Write settings when everything sounds good<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Audio level tip:<\/strong>&nbsp;The SA818 should be on max volume and experiment with the Filters settings to get a level you are happy with.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s it. the Model 50 Transceiver is ready for use!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The G1LRO USB Transceiver Model 50 is built around 2 discrete elements: Both of these need setting up individually before use. The setup process is : All of these steps are executed via a PC and Web browser, no command line access is needed. Step 1 : Flash AIOC Firmware Remove the Model 50 PCB [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1673,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1671","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/g1lro.uk\/index.php?rest_route=\/wp\/v2\/posts\/1671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/g1lro.uk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/g1lro.uk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/g1lro.uk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/g1lro.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1671"}],"version-history":[{"count":10,"href":"https:\/\/g1lro.uk\/index.php?rest_route=\/wp\/v2\/posts\/1671\/revisions"}],"predecessor-version":[{"id":1880,"href":"https:\/\/g1lro.uk\/index.php?rest_route=\/wp\/v2\/posts\/1671\/revisions\/1880"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/g1lro.uk\/index.php?rest_route=\/wp\/v2\/media\/1673"}],"wp:attachment":[{"href":"https:\/\/g1lro.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/g1lro.uk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/g1lro.uk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}