MODEM@groups.io | Please help me configure my Winlink Gateway (2024)

Likes

" ); } else { wrap = '

Attachments:

    '; count = 0; for (i = 0; i < response.length; i++) { if (response[i].Inline == false) { wrap += '
  • ' + response[i].Name + ' (' + response[i].HumanSize + ')
  • "; count++; } } wrap += '

'; if (count > 0) { $('#attachments' + id).replaceWith(wrap); } else { $('#attachments' + id).replaceWith( "

" ); } } }); } var modTimeoutId; function modOnFormChange(id, draftid, groupurl, csrf) { clearTimeout(modTimeoutId); if (modSaving == true) { modTimeoutId = setTimeout(function () { // Runs 1 second (1000 ms) after the last change modOnFormChange(id, draftid, groupurl, csrf); }, 1000); return; } modTimeoutId = setTimeout(function () { // Runs 1 second (1000 ms) after the last change modSaveDraft(id, draftid, groupurl, csrf, false); }, 1000); } var modSaving = false; // modSaveDraft saves the current form state in the draft. function modSaveDraft(id, draftid, groupurl, csrf, onLeave) { if (draftid == 0) { console.log("DraftID 0, not modSaving"); return; } console.log("DELETEDDRAFT IS:", modDeletedDraft); console.log("DESTROYEDEDITOR IS:", modDestroyedEditor); if (modDeletedDraft == true) { console.log('NOT SAVING BECAUSE OF DELETED'); return; } if (modDestroyedEditor == true) { console.log('NOT SAVING BECAUSE OF DESTROYED'); return; } modSaving = true; console.log('modSaving'); var fromval = $('#from' + id).val(); var subject = $('#subject' + id).val(); var body = $('#editor' + id).val(); var bodytype = $('#bodytype' + id).val(); var replyto = $('#replyto' + id).val(); var special = '0'; if ($('#special').prop('checked') == true) { special = '1'; } var bccme = '0'; if ($('#bccmecheck' + id).prop('checked') == true) { bccme = '1'; } var bccall = '0'; if ($('#bccall' + id).prop('checked') == true) { bccall = '1'; } var saveval = '1'; if (onLeave == true) { saveval = '2'; } var hashtags = $('#hashtags').val(); upload = { draftid: draftid, csrf: csrf, from: fromval, subject: subject, body: body, bodytype: bodytype, special: special, replyto: replyto, bccme: bccme, bccall: bccall, hashtags: JSON.stringify(hashtags), mid: id, save: saveval }; let opts = { url: groupurl + '/draftop', cache: false, data: upload, method: 'POST', xhrFields: { withCredentials: true }, dataType: 'json' }; if (modUnloading == false) { // if we are unloading we don't want to retry, because sometimes // that can result in a spurious error, esp on Firefox opts.retryCount = 5; opts.retryVerify = modRetryVerify; } $.ajax(opts).done(function (response) { // Do something with the request console.log('saved'); modSaving = false; }); } // called to see if we need to continue retrying function modRetryVerify() { if (modDeletedDraft == true || modDestroyedEditor == true) { return false; } return true; } // stop modSaving drafts when we do a submit var postVar = null; // Code to find and return a selected piece of HTML. function modGetSelection(id) { var flag = 0; var sel = document.getSelection(); var selText = ''; id = 'msgbody' + id; var forkfork = document.getElementById(id); if (sel.rangeCount > 0) { var range = sel.getRangeAt(0); var test = range.cloneContents(); var clonedSelection = ''; if (typeof test.getElementByID != 'undefined') { clonedSelection = range.cloneContents().getElementById(id); } if (clonedSelection) { selText = clonedSelection.innerHTML; } else { clonedSelection = range.cloneContents(); var startNode = sel.getRangeAt(0).startContainer.parentNode; //console.log(modIsChild(startNode, forkfork)); if (modIsChild(startNode, forkfork)) { var div = document.createElement('div'); div.appendChild(clonedSelection); selText = div.innerHTML; } } } return selText.toString(); } function modIsChild(child, parent) { if (child === parent) return true; var current = child; while (current) { if (current === parent) return true; current = current.parentNode; } return false; } return { InitEditor: function ( id, bodyType, draftid, groupurl, csrf, handleAttachments, noFontChanges, isReply, isWiki, body, sig, onInitFunc ) { if (typeof onInitFunc === 'undefined') { onInitFunc = null; } document.body.addEventListener('htmx:beforeSwap', modDestroyAllEditors, {once: true}); modDeletedDraft = false; modDestroyedEditor = false; modUnloading = false; $('#preview' + id).hide(); $('#addattachments' + id).hide(); $('#return' + id).hide(); $('#markdownlink' + id).hide(); if (bodyType == 'html') { if (sig != '') { $('#editor' + id).val(sig); //tinyMCE.get('editor'+id).setContent(sig); } editor.initHTMLEditor( id, draftid, groupurl, csrf, handleAttachments, noFontChanges, isReply, isWiki, body, sig, onInitFunc ); } else { if (sig != '') { $('#editor' + id).val(sig); } editor.initPlainEditor(id, bodyType, groupurl, handleAttachments, sig); } }, initHTMLEditor: function ( id, draftid, groupurl, csrf, handleAttachments, noFontChanges, isReply, isWiki, body, sig, onInitFunc ) { if (typeof onInitFunc === 'undefined') { onInitFunc = null; } // extras: print, emoticons, image, insert, media, print /* All plugins: 'advlist autolink lists link image print preview hr anchor pagebreak', 'searchreplace wordcount visualblocks visualchars code fullscreen', 'insertdatetime media nonbreaking save table contextmenu directionality', 'emoticons template paste textcolor colorpicker textpattern imagetools codesample toc' */ modDeletedDraft = false; modDestroyedEditor = false; modUnloading = false; let attachments = ''; if (handleAttachments == 0 || handleAttachments == 3) { attachments = ' addPictures addAttachments'; } let fontchanges = ''; if (noFontChanges == false) { fontchanges = ' fontselect fontsizeselect forecolor backcolor'; } let fontawesome = ' charmap'; let forceRootBlock = false; if (isWiki == true) { attachments += ' addWikiImage addWikiLink addWikiTOC'; fontawesome = ' fontawesome'; // BORK fontawesome = ''; forceRootBlock = 'p'; } let toolbar1 = 'styleselect bold italic bullist numlist link blockquote alignleft aligncenter alignright' + attachments + ' advancedToolbar'; let toolbar2 = 'strikethrough underline hr alignjustify' + fontchanges + ' removeformat' + fontawesome + ' outdent indent undo redo preview code'; let small_toolbar1 = 'bold italic link blockquote' + attachments + ' advancedToolbar'; let small_toolbar2 = 'strikethrough underline hr alignjustify removeformat outdent indent'; let tm_fonts = 'Arial=arial,helvetica,sans-serif;' + 'Arial Black=arial black,avant garde;' + 'Comic Sans MS=comic sans ms;' + 'Courier Neue=courier_newregular,courier;' + 'Helvetica Neue=helvetica neue;' + 'Helvetica=helvetica;' + 'Impact=impactregular,chicago;' + 'Lucida Grande=lucida grande;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + 'Times New Roman=times new roman,times;' + 'Verdana=verdana,geneva'; let plugins = [ 'SplitBlockquote', 'advlist autolink lists link image preview hr anchor', 'code fullscreen', 'nonbreaking table charmap', 'textcolor colorpicker imagetools noneditable' ]; let css = '/bootstrap/3.3.6/css/bootstrap.min.css,/bootstrap/3.3.6/css/bootstrap-theme.min.css,/css/groupsio.css,/css/tinymce.css,/fontawesome/all.min.css'; let fontsizes = '8pt 10pt 11pt 12pt 14pt 18pt 24pt 36pt'; let codesample_languages = [ { text: 'C', value: 'c' }, { text: 'C#', value: 'csharp' }, { text: 'C++', value: 'cpp' }, { text: 'CSS', value: 'css' }, { text: 'Go', value: 'go' }, { text: 'HTML/XML', value: 'markup' }, { text: 'Java', value: 'java' }, { text: 'JavaScript', value: 'javascript' }, { text: 'PHP', value: 'php' }, { text: 'Python', value: 'python' }, { text: 'Ruby', value: 'ruby' } ]; let style_formats = [ { title: 'Paragraph', block: 'p' }, { title: 'Header 1', block: 'h1' }, { title: 'Header 2', block: 'h2' }, { title: 'Header 3', block: 'h3' }, { title: 'Header 4', block: 'h4' }, { title: 'Header 5', block: 'h5' }, { title: 'Header 6', block: 'h6' } ]; if (isReply == true) { toolbar1 = 'quoteMessage ' + toolbar1; small_toolbar1 = 'quoteMessage ' + small_toolbar1; } if (document.documentElement.clientWidth > 1000) { tinymce.init({ noneditable_noneditable_class: 'fa', extended_valid_elements: 'span[*]', branding: false, link_context_toolbar: true, default_link_target: '_blank', link_assume_external_targets: true, elementpath: false, forced_root_block: forceRootBlock, content_css: css, relative_urls: false, remove_script_host: false, menubar: false, statusbar: true, plugins: plugins, toolbar1: toolbar1, toolbar2: toolbar2, font_formats: tm_fonts, browser_spellcheck: true, contextmenu: false, selector: '#editor' + id, resize: true, fontsize_formats: fontsizes, style_formats: style_formats, setup: function (teditor) { teditor.on('Init', function (e) { // see if any text is selected toquote = modGetSelection(id); if (toquote != '') { console.log('id=' + id); editor.ShowMessageHistory(id, groupurl, 'html', toquote, sig, true); } else { if (body != "") { console.log("body setContent"); teditor.setContent(body); } else if (sig != "") { console.log("sig setContent " + sig); teditor.setContent(sig); } } if (onInitFunc != null) { onInitFunc(e); } }); teditor.on('BeforeRenderUI', function (e) { teditor.theme.panel .find('toolbar') .slice(1) .hide(); }); teditor.addButton('advancedToolbar', { tooltip: 'Show advanced toolbar', icon: 'fa fa-bars', onclick: function () { if (!this.active()) { this.active(true); teditor.theme.panel .find('toolbar') .slice(1) .show(); } else { this.active(false); teditor.theme.panel .find('toolbar') .slice(1) .hide(); } } }); teditor.addButton('addPictures', { tooltip: 'Add pictures', icon: 'fa fa-image', onclick: function () { modUploaderPrompt("pictures", id, draftid, groupurl, csrf); } }); teditor.addButton('addAttachments', { tooltip: 'Add attachments', icon: 'fa fa-paperclip', onclick: function () { modUploaderPrompt("attachments", id, draftid, groupurl, csrf); } }); if (groupurl != '') { teditor.addButton('quoteMessage', { tooltip: 'Quote post', icon: 'fa fa-comment', onclick: function () { editor.ShowMessageHistory(id, groupurl, 'html', '', sig, false); } }); } if (draftid != '' && draftid != '0' && draftid != 0) { teditor.on('NodeChange', function () { //tinymce.triggerSave(); if (tinymce.activeEditor != null) { let markupStr = tinymce.activeEditor.getContent(); $('#editor' + id).val(markupStr); modOnFormChange(id, draftid, groupurl, csrf); } }); teditor.on('keyup', function () { //tinymce.triggerSave(); let markupStr = tinymce.activeEditor.getContent(); $('#editor' + id).val(markupStr); modOnFormChange(id, draftid, groupurl, csrf); }); } if (isWiki == true) { // special wiki buttons teditor.addButton('addWikiImage', { tooltip: 'Insert image', icon: 'fa fa-image', onclick: function () { $('#ImageModal').modal({}); } }); teditor.addButton('addWikiLink', { tooltip: 'Insert link to wiki page', icon: 'fa fa-book', onclick: function () { $('#LinkModal').modal({}); } }); teditor.addButton('addWikiTOC', { tooltip: 'Insert table of contents', icon: 'fa fa-list-alt', onclick: function () { $('#TOCModal').modal({}); } }); } } }); } else { tinymce.init({ branding: false, link_context_toolbar: true, default_link_target: '_blank', link_assume_external_targets: true, elementpath: false, forced_root_block: forceRootBlock, content_css: css, relative_urls: false, remove_script_host: false, menubar: false, statusbar: true, plugins: plugins, toolbar1: small_toolbar1, toolbar2: small_toolbar2, font_formats: tm_fonts, browser_spellcheck: true, contextmenu: false, selector: '#editor' + id, resize: true, fontsize_formats: fontsizes, style_formats: style_formats, setup: function (teditor) { teditor.on('Init', function (e) { // see if any text is selected toquote = modGetSelection(id); if (toquote != '') { console.log('id=' + id); editor.ShowMessageHistory(id, groupurl, 'html', toquote, sig, true); } else { if (body != "") { console.log("body setContent"); teditor.setContent(body); } else if (sig != "") { console.log("sig setContent" + sig); teditor.setContent(sig); } } if (onInitFunc != null) { onInitFunc(e); } }); teditor.on('BeforeRenderUI', function (e) { teditor.theme.panel .find('toolbar') .slice(1) .hide(); }); teditor.addButton('advancedToolbar', { tooltip: 'Show advanced toolbar', icon: 'fa fa-bars', onclick: function () { if (!this.active()) { this.active(true); teditor.theme.panel .find('toolbar') .slice(1) .show(); } else { this.active(false); teditor.theme.panel .find('toolbar') .slice(1) .hide(); } } }); teditor.addButton('addPictures', { tooltip: 'Add pictures', icon: 'fa fa-image', onclick: function () { modUploaderPrompt("pictures", id, draftid, groupurl, csrf); } }); teditor.addButton('addAttachments', { tooltip: 'Add attachments', icon: 'fa fa-paperclip', onclick: function () { modUploaderPrompt("attachments", id, draftid, groupurl, csrf); } }); if (groupurl != '') { teditor.addButton('quoteMessage', { tooltip: 'Quote post', icon: 'fa fa-comment', onclick: function () { editor.ShowMessageHistory(id, groupurl, 'html', '', sig, false); } }); } if (draftid != '' && draftid != '0' && draftid != 0) { teditor.on('NodeChange', function () { if (tinymce.activeEditor != null) { //tinymce.triggerSave(); let markupStr = tinymce.activeEditor.getContent(); $('#editor' + id).val(markupStr); modOnFormChange(id, draftid, groupurl, csrf); } }); teditor.on('keyup', function () { //tinymce.triggerSave(); let markupStr = tinymce.activeEditor.getContent(); $('#editor' + id).val(markupStr); modOnFormChange(id, draftid, groupurl, csrf); }); } // special wiki buttons teditor.addButton('addWikiImage', { tooltip: 'Add Image', icon: 'fa fa-image', onclick: function () { $('#ImageModal').modal({}); } }); teditor.addButton('addWikiLink', { tooltip: 'Add Link', icon: 'fa fa-book', onclick: function () { $('#LinkModal').modal({}); } }); teditor.addButton('addWikiTOC', { tooltip: 'Table of Contents', icon: 'fa fa-list-alt', onclick: function () { $('#TOCModal').modal({}); } }); } }); // disable tooltips because they require double taps on mobile $('.note-editor *').tooltip('disable'); } }, initPlainEditor: function (id, bodyType, groupurl, handleAttachments, sig) { $('#addattachments').show(); if (bodyType == 'plain') { $('#bodytype' + id).val('plain'); $('#preview' + id).hide(); $('#return' + id).hide(); $('#preview' + id).hide(); $('#markdownlink' + id).hide(); } else { $('#bodytype' + id).val('markdown'); $('#markdownbuttons' + id).show(); $('#preview' + id).show(); $('#return' + id).hide(); $('#previewWindow' + id).hide(); $('#markdownlink' + id).show(); } toquote = modGetSelection(id); if (toquote != '') { editor.ShowMessageHistory(id, groupurl, 'plain', toquote, sig, true); //$('#editor' + id).val(toquote); } }, InitPostDraft: function (id, draftid, csrf, groupurl) { // save the draft when leaving the page. $(window).on('beforeunload', function () { modUnloading = true; modSaveDraft(id, draftid, groupurl, csrf, true); }); // save the draft 1 second after a change $('form input, form textarea').on('input propertychange change', function () { modOnFormChange(id, draftid, groupurl, csrf); }); modUpdateAttachments(id, draftid, csrf, groupurl); if (typeof Capacitor !== 'undefined') { modInitDeviceUploader(id, draftid, csrf, groupurl); } else { modInitWebUploader(id, draftid, csrf, groupurl); } }, // InitReplyDraft creates a new draft, assumes a hidden form input called #draftidmid, and then calls initWindow(). InitReplyDraft: function ( id, bodytype, draftid, groupurl, csrf, handleAttachments, noFontChanges, isReply, isWiki, body, sig, onInitFunc ) { console.log('in InitReplyDraft draftid=' + draftid); modDeletedDraft = false; modDestroyedEditor = false; modUnloading = false; if (draftid == 0) { // create a new draft console.log('generating new draft' + groupurl); console.log('id=' + id); upload = { mid: id, csrf: csrf, body: sig }; $.ajax({ url: groupurl + '/reply', cache: false, method: 'POST', data: upload, xhrFields: { withCredentials: true }, dataType: 'json', error: function (xhr, ajaxOptions, thrownError) { if (modDeletedDraft == false && modDestroyedEditor == false) { createAlert("There was an error saving the draft. Please reload the page.", true, false) } } }).done(function (response) { console.log('reply draft created'); console.log('draftid:' + response.DraftID); draftid = response.DraftID; $('#draftid' + id).val(response.DraftID); editor.InitEditor( id, bodytype, draftid, groupurl, csrf, handleAttachments, noFontChanges, true, false, body, sig, onInitFunc ); editor.InitPostDraft(id, draftid, csrf, groupurl); console.log('id=' + id); $('#bodytype' + id).val(bodytype); $('#cancel-' + id).attr( 'onclick', 'editor.discardReplyDraft("' + id + '", "' + draftid + '","' + bodytype + '","' + csrf + '","' + groupurl + '");' ); return; }); return; } editor.InitEditor( id, bodytype, draftid, groupurl, csrf, handleAttachments, noFontChanges, true, false, body, sig, onInitFunc ); editor.InitPostDraft(id, draftid, csrf, groupurl); $('#bodytype' + id).val(bodytype); $('#cancel-' + id).attr( 'onclick', 'editor.discardReplyDraft("' + id + '", "' + draftid + '","' + bodytype + '","' + csrf + '","' + groupurl + '");' ); console.log('DONE'); }, // discardReplyDraft deletes the draft and any attachments and returns the user to the previous page. discardReplyDraft: function (id, draftid, bodytype, csrf, groupurl) { console.log('editor delete reply draft'); upload = { draftid: draftid, csrf: csrf, jsondelete: '1' }; $.ajax({ url: groupurl + '/draftop', cache: false, data: upload, method: 'POST', xhrFields: { withCredentials: true }, dataType: 'json' }).done(function (response) { // Do something with the request console.log("success delete reply draft"); $('#draftid' + id).val(''); if (bodytype == 'html') { tinymce.get('editor' + id).remove(); } $('#subject' + id).val($('#origsubject' + id).val()); $('#editor' + id).val(''); modDeletedDraft = true; modDestroyedEditor = true; }); }, PreviewMarkdown: function (id, groupurl) { let markdown = $('#editor' + id).val(); upload = { md: markdown }; $.ajax({ url: groupurl + '/previewmd', cache: false, data: upload, method: 'POST', xhrFields: { withCredentials: true }, dataType: 'json' }).done(function (response) { // Do something with the request console.log(response.markdown); wrap = '

' + response.markdown + '

'; $('#editwindow' + id).hide(); $('#previewWindow' + id).replaceWith(wrap); $('#previewWindow' + id).show(); }); $('#preview' + id).hide(); $('#return' + id).show(); }, ReturnMarkdown: function (id) { $('#preview' + id).show(); $('#return' + id).hide(); $('#previewWindow' + id).hide(); $('#editwindow' + id).show(); }, ClearTimeout: function() { clearTimeout(modTimeoutId); }, ShowMessageHistory: function( id, groupurl, bodytype, selectedText, sig, firstTime ) { console.log('URL ' + groupurl); console.log('ID ' + id); if (bodytype == 'html' && firstTime == false) { existingmsg = tinyMCE.get('editor' + id).getContent(); } else { existingmsg = $('#editor' + id).val(); } if (selectedText == '') { upload = { preview: bodytype, id: id }; } else { upload = { preview: bodytype, id: id, text: selectedText }; if (firstTime == true) { existingmsg = sig; } } $.ajax({ url: groupurl + '/previewmd', cache: false, data: upload, method: 'POST', xhrFields: { withCredentials: true }, dataType: 'json' }).done(function (response) { $('#editor' + id).val(response.reply + existingmsg); if (bodytype == 'html') { console.log('SETTING ' + response.reply + existingmsg); tinyMCE.get('editor' + id).setContent(response.reply + existingmsg); tinyMCE.get('editor' + id).selection.select(tinyMCE.get('editor' + id).getBody(), true); tinyMCE.get('editor' + id).selection.collapse(false); console.log('DONE'); } }); $('#editor' + id).focus(); } /* $('form').submit(function(e) { clearTimeout(modTimeoutId); if (postVar != null) { postVar.abort(); } console.log("SETTING DELETED TO TRUE"); console.log("EVENT:", e); modDeletedDraft = true; if ($(this).hasClass('form-submitted')) { e.preventDefault(); return; } $(this).addClass('form-submitted'); }); */ };}());async function uploadAttachments(doctype, id, draftid, groupurl, csrf) { const result = await Capacitor.Plugins.FilePicker.pickFiles(); const file = result.files[0]; console.log("in uploadAttachments"); console.log("files:", result.files); console.log("mimeType:", file.mimeType); console.log("name:", file.name); console.log("doctype:", doctype);const b64toBlob = (base64, type = 'image/jpeg') => fetch(`data:${type};base64,${base64}`).then(res => res.blob());const result2 = await Capacitor.Plugins.Filesystem.readFile({path:file.path})console.log("result2: ", result2);const blob = await b64toBlob(result2.data, file.mimeType);console.log("in uploadAttachments 2, " + file.mimeType); uploadImage(doctype, id, draftid, groupurl, csrf, blob, file.name);}async function takePicture2(doctype, id, draftid, groupurl, csrf) { console.log("in takePicture2"); try { const image = await Capacitor.Plugins.Camera.getPhoto({ quality: 90, allowEditing: false, resultType: "uri" }); console.log("got image");const b64toBlob = (base64, type = 'image/jpeg') => fetch(`data:${type};base64,${base64}`).then(res => res.blob());const result = await Capacitor.Plugins.Filesystem.readFile({path:image.path})const blob = await b64toBlob(result.data);console.log("path: ", image.path); uploadImage(doctype, id, draftid, groupurl, csrf, blob, image.path.split("/").pop()); } catch (err) { console.log("catch err 1: ", err); }}async function uploadImage(doctype, id, draftid, groupurl, csrf, raw, name) { console.log("here0"); const controller = new AbortController(); const formData = new FormData(); console.log("here1"); formData.append("csrf", csrf); formData.append("draftid", draftid); formData.append("upload", "1"); if (doctype === "pictures") { formData.append("inline", "1"); } console.log("FORMDATA:", formData); formData.append("fileupload", raw, name); console.log("here3"); const myRequest = new Request(groupurl + '/draftop', { method: 'POST', credentials: 'include', body: formData, signal: controller.signal, mode: 'cors' }); console.log("uploading"); try { const response = await fetch(myRequest); const result = await response.json(); if (doctype === "pictures") { console.log("picture processing"); for (let i = result.length - 1; i >= 0; i--) { console.log("Processing: ", i); const fileurl = result[i]; console.log('FILE: ' + result[i]); console.log('URL: ' + fileurl); const imghtml = 'MODEM@groups.io | Please help me configure my Winlink Gateway (1)'; console.log('imghtml: ' + imghtml); tinymce.activeEditor.insertContent(imghtml); } } else { console.log("attachment processing"); updateAttachments(id, draftid, csrf, groupurl); console.log("attachment processing done"); } } catch (error) { console.error('Error:', error); }}

  1. VARA-MODEM
  2. #newuser
  3. Topics

Search

DateDate1 - 8 of 8

  • previous page
  • next page

Please help me configure my Winlink Gateway#newuser

steven ho

#1852


Goal: To offer 1200 & 9600 FM Packet on VHF and UHF. Additionally offer Wide and Narrow VARA on both VHF and UHF (If this makes sense I am in learning).

On the KC2YYF-10 Winlink Gateway. Presently the KC2YYF-10 Gateway offers 2 meter VHF Packet and it works well. I think VARA FM on VHF is working but it's not tested yet.

Present equipment list:

Two dual band (2M+70CM) radios with 6 pin mini din data ports, 1200/9600 baud capable.

Full VARA license

One Masters Communications DRA-70 installed and working at 1200 baud.

UZ7HO soundcard installed and working (high speed version 113)

Two dual band antennas (2M+70CM)

Windows10 Pro laptop

I have a portable Winlink station (for Gateway testing and deploying) with the following equipment:

One dual band (2M+70CM) radio with 6 pin mini din data ports, 1200/9600 baud capable.

One dual band antenna (2M+70CM)

Signalink USB soundcard (probably will upgrate no need to tell me, money is tight)

Windows10 Pro laptop

And one question from my uninitiated self - Does VARA Wide have to run on 440 UHF?

Can you describe how to configure the software hardware to achieve the stated goal?

Thanks
Steve Hoffman
KC2YYF

Kevin k5vp

  • All Messages By This Member

#1854


This should get you started.

For VARA, download this pdf.

For packet, download this pdf.

And, yes, there are UHF gateways in VARA wide.

I'm sure others will join the thread & have suggestions.

Best regards,

Kevin Potter

k5vp


toggle quoted messageShow quoted text


On Thu, Jul 22, 2021 at 1:19 PM steven ho <StevenHoffman53@...> wrote:

Goal: To offer 1200 & 9600 FM Packet on VHF and UHF. Additionally offer Wide and Narrow VARA on both VHF and UHF (If this makes sense I am in learning).

On the KC2YYF-10 Winlink Gateway. Presently the KC2YYF-10 Gateway offers 2 meter VHF Packet and it works well. I think VARA FM on VHF is working but it's not tested yet.

Present equipment list:

Two dual band (2M+70CM) radios with 6 pin mini din data ports, 1200/9600 baud capable.

Full VARA license

One Masters Communications DRA-70 installed and working at 1200 baud.

UZ7HO soundcard installed and working (high speed version 113)

Two dual band antennas (2M+70CM)

Windows10 Pro laptop

I have a portable Winlink station (for Gateway testing and deploying) with the following equipment:

One dual band (2M+70CM) radio with 6 pin mini din data ports, 1200/9600 baud capable.

One dual band antenna (2M+70CM)

Signalink USB soundcard (probably will upgrate no need to tell me, money is tight)

Windows10 Pro laptop

And one question from my uninitiated self - Does VARA Wide have to run on 440 UHF?

Can you describe how to configure the software hardware to achieve the stated goal?

Thanks
Steve Hoffman
KC2YYF

Oliver K6OLI
  • All Messages By This Member

#1861


Steve,

UZ7HO soundcard installed and working (high speed version 113)

It is better to use the regular UZ7HO and 1200 Packet. Many more people use 1200 so you will have a larger user base. Moreover, Packet 9600 is very finicky and - in most cases - not worth the trouble setting up. We have a local gateway that runs 9600 and most days it is slower than the 1200 port and always slower than VARA FM NARROW.

Signalink USB soundcard (probably will upgrate no need to tell me, money is tight)

There is absolutely no need to "upgrade" from a Signalink, especially not for a field station. Work with what you have.

And one question from my uninitiated self - Does VARA Wide have to run on 440 UHF?

VARA Wide can run on 140MHz (2m) or 220MHz without any issues. Most of the SoCal gateways are on 2m, for example.

Before you proceed makes sure
- you have read, understood and agree to the Sysop guidelines https://www.winlink.org/content/join_gateway_sysop_team_sysop_guidelines
- you have a user base to make your efforts worthwhile

For a simple gateway all you need is RMS Packet, UZ7HO and VARA FM.
Set up UZ7HO and VARA FM up to work with your soundcard.
Then configure RMS Packet.
First the basic settings.
Then the channels.
VARA FM is straight forward, but there are several ways to set up the Packet side, depending on your preferences.

VARA FM and Packet can operate from a single soundcard. However, it is best practice to not use the local Packet frequency but instead find another frequency for a gateway using VARA FM. VARA FM and Packet are very different and tend to interfere with one another. So your users need to be trained to listen for a clear frequency before they transmit.

Hope this helps. Let me know if you need more details.

73 de Oliver K6OLI

Graham

  • All Messages By This Member

#1862
Edited


On Thu, Jul 22, 2021 at 09:19 PM, steven ho wrote:

And one question from my uninitiated self - Does VARA Wide have to run on 440 UHF?

This is where , the name causes confusion , the Wide modem was designed to replace ''fast ?' packet 9600 ,
probably a good idea at the time ....Wide and Narrow now appear in most descriptive text's

Its not a conventional packet modem , its multi carrier OFDM , with each carrier running at 42 Baud and occupies defined a b/w of 5.8 KHz , a wide 2 meter link is now possible , where a conventional packet 9600 , is not

Just like taking the sub-way , tube or the under ground ,
The Trains transit the loop at the same speed ,
all day all night , empty in the night , full during the Day
same train , just the passenger numbers alter ,
more passengers = more data flow

73-Graham
g0nbd

Mark Davis
  • All Messages By This Member

#1864


There is only one current version of the VARA FM modem program. The one VARA FM program supports either 'WIDE' or 'NARROW' operation.

The default 'WIDE' or 'NARROW' mode is chosen in the VARA FM modem 'Settings - VARA Setup' screen. Note that this is the setting for the default mode of operation when a connection is being established... if a client station configured for 'WIDE' operation attempts to connect to a gateway station that is configured for 'NARROW' operation, the VARA MODEM systems will automatically negotiate a NARROW- mode connection. The negotiation time will be slightly longer than if the client station was configured to always connect in 'NARROW' mode.

Over a reasonably good communications channel, a session between two stations properly configured for 'WIDE' operation will be almost twice as fast as a session where both stations are configured for 'NARROW' mode.

However, as noted on the VARA Setup screen:
* VARA FM WIDE needs a FM rig set for 9600 Packet operation,
with a special soundcard interface (6kHz BW) connected to rear
panel: RA-Board, Signalink "Black" transforms, Modified Signalink
(red audio transforms removed), homebrew interface (a simple
direct cable)...

*In other case, you must select VARA FM NARROW

For a 'WIDE' mode session to be established, the preceding requirement must be met by the stations at both ends of the connection.

The VARA FM 'WIDE' mode does not utilize 9600bps Packet technology... but it does require the same audio connections to the FM transceiver that are necessary for viable 9600bps Packet communications. These audio connections bypass the "PreEmphasis" audio filtering that FM transceivers apply to the microphone audio, and the corresponding "DeEmphasis" audio filtering that is applied to the receive audio.

Neither does VARA FM 'NARROW' mode utilize 1200bps Packet technology. However, both VARA FM NARROW and 1200bps Packet communications are fully functional with PreEmphasis/DeEmphasis audio filtering in place, which makes it practical to use these technologies on older FM transceivers or hand-held radios that don't provide a separate "packet" data-communications connector.

As stated in an earlier post, both VARA FM WIDE and VARA FM NARROW take advantage of sophisticated OFDM modulation techniques. This makes it possible to achieve much higher throughputs than is possible with either 1200bps or 9600 packet, and also makes VARA FM usable under degraded signal-path conditions where 1200bps packet data communications would be severely impaired, if not impossible, and 9600bps packet data-communications is totally impossible.

Mark - AD7EF

Mark Davis
  • All Messages By This Member

#1865


Steve;

More on point to your question.... gateway stations that support VARA FM WIDE are common on both 2M and 70cm.

Check out the 'RMS List', with the VARA FM button selected, on Winlink.org/tools page.

Mark AD7EF

Steve K3FZT
  • All Messages By This Member

#1899


Please help me configure my Winlink Gateway #newuser
Steve-

You're way ahead of me, but I'm looking to do something similar in NW Philadelphia. At the moment I'm negotiating antenna placement with my XYL as I'd like to use a Rohn Push-up mast at the high point of the property and that entails guys and that entails watching the gardener/lawn care fellow and making sure he's not hurt not the guys damaged.

You might want to join the FCDTNhere on groups.io and read the stuff Barry2 K3EUI posts as he's done a lot of testing of VARA FM Narrow and Wide and FLDigi modes and has also written about FM data communication at1200 (pre-emphasis on transmit; de-emphasis on receive) and 9600 (flat audio) and has been using Signalinks of various ages, RigBlaster and a Masters Communication DRA-70.

I'd be curious what rigs you are using for your gateway and I'd like to learn more about your radio and antenna configuration. As to computing hardware and software I'm planning for an industrial pc running Win10 and RMS WinLink and offering exclusively VARA unless the WinLink gurus require packet. I'm also planning on running the whole thing on batteries which I'll recharge from mains power, but by using the battery I'll get several hours of operation in the event of power loss at my QTH.

If you want to respond off-list, write me at K3FZT@...

73 de K3FZT / Steve

toggle quoted messageShow quoted text


On Thu, Jul 22, 2021 at 4:19 PM steven ho <StevenHoffman53@...> wrote:

Goal: To offer 1200 & 9600 FM Packet on VHF and UHF. Additionally offer Wide and Narrow VARA on both VHF and UHF (If this makes sense I am in learning).

On the KC2YYF-10 Winlink Gateway. Presently the KC2YYF-10 Gateway offers 2 meter VHF Packet and it works well. I think VARA FM on VHF is working but it's not tested yet.

Present equipment list:

Two dual band (2M+70CM) radios with 6 pin mini din data ports, 1200/9600 baud capable.

Full VARA license

One Masters Communications DRA-70 installed and working at 1200 baud.

UZ7HO soundcard installed and working (high speed version 113)

Two dual band antennas (2M+70CM)

Windows10 Pro laptop

I have a portable Winlink station (for Gateway testing and deploying) with the following equipment:

One dual band (2M+70CM) radio with 6 pin mini din data ports, 1200/9600 baud capable.

One dual band antenna (2M+70CM)

Signalink USB soundcard (probably will upgrate no need to tell me, money is tight)

Windows10 Pro laptop

And one question from my uninitiated self - Does VARA Wide have to run on 440 UHF?

Can you describe how to configure the software hardware to achieve the stated goal?

Thanks
Steve Hoffman
KC2YYF


--
73 de K3FZT / Steve

k3eui barry
  • All Messages By This Member

#1901


Practiicing Winlink VARA FM over an ordinary FM analog repeater

It is difficult to get VARA FM (narrow) to work on an ordinary FM analog (voice) repeater.
But it can be done if the repeater's hang time is short.

In the Phila area we have a (voice) repeater on 2m and a linked (voice) repeater on 440 where we have demonstrated the viability of VARA FM (narrow). If you are using a SignaLink the delay knob (DLY) needs to be critically set to around 7 to 8 O'clock to allow the radio to switch rapidly back to receive after transmit ends.

The key is to establish a timing in ARQ mode that considers the switching time from one sending station to anothe sending station on the repeater. If the switching is too fast, the repeater may not RESET the timer.
Also - the PL tones do not seem to interfere with the VARA FM signal.
Nor does the CW ID tones (below 500 Hz) affect the VARA FM signal's lowest frequency.

First - be absolutely sure you have permission to use a voice analog repeater to "practice" digital modes such as FLDIGI or VARA FM Winlink.

Also - watch that you don't try VARA "WIDE" mode which needs almot 6 kHz audio BW.
That obviously won't fit in a voice repeater.

We find that stations can be equipped for 1200 baud (processed audio) or 9600 baud (flat audio).
It does not make a difference with the VARA FM "narrow" mode.

But the SignaLink's VOX (transmit audio sets the PTT method) is rather critical.
Many of us are finding that the more secure hardware PTT works better than VOX.
You can also set a jumper inside the S-Link to make the VOX more sensitive (I do that).

Being able to use a (voice) FM repeater for EMCOMM digital traffic is a powerful tool.
We use this in our local county (Chester PA) on a regular basis every week during drills with FLDIGI.

de k3eui Barry
k3euibarry at gmail.com

1 - 8 of 8
  • previous page
  • 1
  • next page

Previous TopicNext Topic

MODEM@groups.io | Please help me configure my Winlink Gateway (2024)
Top Articles
Latest Posts
Article information

Author: Mrs. Angelic Larkin

Last Updated:

Views: 6393

Rating: 4.7 / 5 (47 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Mrs. Angelic Larkin

Birthday: 1992-06-28

Address: Apt. 413 8275 Mueller Overpass, South Magnolia, IA 99527-6023

Phone: +6824704719725

Job: District Real-Estate Facilitator

Hobby: Letterboxing, Vacation, Poi, Homebrewing, Mountain biking, Slacklining, Cabaret

Introduction: My name is Mrs. Angelic Larkin, I am a cute, charming, funny, determined, inexpensive, joyous, cheerful person who loves writing and wants to share my knowledge and understanding with you.