RTTY/baudot code uit seriële poort halen

'Back in the day' nog voordat de personal computer gemeengoed was, gebruikten radiozendamateurs al RTTY - telex via radio.
Toen SSB zenders nog niet echt gemeengoed waren, ging dat door een capaciteit bij of af te schakelen aan de VFO, om dus op de mark en space frequenties te komen. De telex was uiteraard zo'n elektromechanisch bakbeest.

Deze methode van sleutelen wil ik eens testen. Het HF gebeuren zal wel lukken. Maar ik kom in de knoop met het genereren van de telex code. Alle moderne zendamateursoftware levert je heel gemakkelijk een audiosignaaltje wat je naar iedere SSB zender kan sturen. Maar ik wil juist een binair signaal - aan/uit. Waarmee ik dus de condensator in/uit de kring kan schakelen.

Ik denk dat dit voor de 'wat oudere' computerhobbyist bijna triviaal is. Maar ik wil dus de meest gangbare RTTY snelheid met mijn computer (mag ouderwets zijn, ik heb win95/98 bakjes met seriele poort) opwekken

Hoe doe ik dat? Kan hyperterminal dit? Hoe stel ik dat dan in, dat ie baudotcode geeft, op de correcte snelheid, en geen ASCII?

Ik neem op kleine schaal reparaties van buizen-elektronica aan voor een heel aardig uurtarief. Interesse? Mail me!
Hubie

Special Member

Ik zal het morgen even nakijken maar ik dacht dat in het boek:RTTY Ervaringen en beschouwing van ON4ACN zo een schakeling staat.
Je propt er ASCII in(met een 'domme' terminal of PC of hobby computer)en er komt Baudot uit met de jouw gewenste snelheid op een RS-232 poort.(45,45,50,57,75 of 100 Baud).

In een Elektuurboek staat ook zoiets maar daar gaat de omzetting van ASCII naar Baudot met een diode matrix.

Kwam ook dit nog tegen,dat werkt bidir:https://apps.dtic.mil/dtic/tr/fulltext/u2/a240676.pdf

Waarom de U.S.A voor RTTY weer andere AFSK tonen gebruikte dan hier in Europa
is mij nog steeds een raadsel.
(Die 60 Hertz netfrequentie ook,maar dat is weer een andere discussie) ;-)

[Bericht gewijzigd door Hubie op woensdag 21 augustus 2019 01:19:59 (15%)

mel

Golden Member

Ik heb het gewoon gedaan met 2 UART's,, eenje ontvangt de ASCII code, en de andere zet het door naar Baudot.Een UART kan je instellen op 5 bits, en 1,5 stopbits.
Wel moet je een of andere omzetting hebben, een Eprom of zo iets.En een mogelijkheid om om te schakelen tussen Cijfers en Letters.
Deze komt dan natuurlijk tussen de datalijnen van de UART's.

u=ir betekent niet :U bent ingenieur..
buckfast_beekeeper

Golden Member

Ik denk dat dit het eenvoudigste te realiseren is onder DOS ((win95/98 kan je in puur dos starten). Daar een programma in qbasic of gwbasic de parallelle poort laten sturen. Bijvoorbeeld pen 14 linefeed. Vanaf Win ME wordt het lastiger.

Van Lambiek wordt goede geuze gemaakt.
mel

Golden Member

Idd. Het programma Hamcomm doet dit.(Is een DOS program)

u=ir betekent niet :U bent ingenieur..

Met het programma mmtty zet je een fsk signaal op de serieele poort .
https://hamsoft.ca/pages/mmtty.php

Arco

Special Member

In Windows gaat dat ook prima, als je de control-lijnen van de RS232 poort gebruikt, die kun je rechtstreeks aansturen (RTS,DTR,...)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Handshake lijnen aansturen vanuit windows kun je vergeten. De timing van Windows is afhankelijk van een groot aantal factoren en kan tot 50 milliseconds oplopen.

Ik zou een arduino koppelen en daarin de vertaling doen van ASCII naar Baudot.

Arco

Special Member

Als je het priority level van de betreffende thread hoog zet werkt het prima, hoor...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Hubie

Special Member

Op 6 september 2019 04:48:08 schreef Hubie:
[bijlage]Ik heb hier nog een oude doos staan: https://www.universal-radio.com/catalog/decoders/m8000.html

Ik denk zo'n beetje de laatste echte hardware RTTY decoder,heeft ook een Baudot uitgang op RS-232 niveau(is in te stellen)

Kan div.RTTY modi decoderen die al 20 jaar niet meer uitgezonden worden. Kon zelfs Piccolo (MFSK)chat berichten van UK ambassades decoderen en VFT Multi channel kanalen.
Daar heb ik nu niet zoveel meer aan natuurlijk maar ik zie het als een stukje nostalgie wat nog steeds in de shack staat. ;-)

Met amateur RTTY schrijft hij nog perfect mee.Die doos werkt met 2 switched capacitor filters* die stapjes maken tot ze perfect afgestemd zijn.

* National Semiconductors MF-8

Allemaal vergane glorie in vergelijking met de huidige DSP techniek. ;-)

Ik heb hier nog een oude doos staan: https://www.universal-radio.com/catalog/decoders/m8000.html

Ik denk zo'n beetje de laatste echte hardware RTTY decoder,heeft ook een Baudot uitgang op RS-232 niveau(is in te stellen)

Kan div.RTTY modi decoderen die al 20 jaar niet meer uitgezonden worden. Kon zelfs Piccolo (MFSK)chat berichten van UK ambassades decoderen en VFT Multi channel kanalen.
Daar heb ik nu niet zoveel meer aan natuurlijk maar ik zie het als een stukje nostalgie wat nog steeds in de shack staat. ;-)

Met amateur RTTY schrijft hij nog perfect mee.Die doos werkt met 2 switched capacitor filters* die stapjes maken tot ze perfect afgestemd zijn.

* National Semiconductors MF-8

Allemaal vergane glorie in vergelijking met huidige DSP techniek. ;-)

[Bericht gewijzigd door Hubie op zondag 8 september 2019 06:46:01 (36%)

mel

Golden Member

Ik gebruik gewoon een DJ6HP ontvangstconverter met een processor geval er achter die er ASCII van maakt.Dat gaat dan een pc in.

u=ir betekent niet :U bent ingenieur..
joopv

Golden Member

Volgens mij kunnen de moderne seriële poorten nog steeds 5 bits en 50 baud maken.

En is het dus alleen maar een kwestie van de juiste software gebruiken en het rs232 seriële signaal gebruiken om het vfo te sleutelen.

Dat is dus mijn doel, die software vinden. Zelf schrijven kan ik niet. Kan het wellicht wel leren, maar het is nogal een tijdsinvestering voor een 'omdat het kan' projectje.
Lijkt me stug dat er nooit iemand een DOS programmatje uitgewerkt heeft. Wel in de pre-internet tijd, maar het zal toch moeten bestaan?

De software die tot nu toe genoemd is, produceert direct de tonen op de seriele poort. Dat is niet waar ik naar op zoek ben.

[Bericht gewijzigd door Ledlover op vrijdag 6 september 2019 11:25:21 (14%)

Ik neem op kleine schaal reparaties van buizen-elektronica aan voor een heel aardig uurtarief. Interesse? Mail me!
Arco

Special Member

Je zou kunnen kijken of dit programmaatje werkt (kan hier nu niet testen)
Zou "BAUDOT TEST" moeten versturen via COM1 (75baud)
Geen user interface (je ziet dus niets op je scherm)

Edit: zat foutje in, nieuwe versie gepost... ;)

[Bericht gewijzigd door Arco op vrijdag 6 september 2019 15:52:55 (12%)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

50Bd kun je ook nog makkelijk zelf inlezen, op je dooie akkertje. Klein Arduino programmaatje :-)

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Arco

Special Member

Programmaatje voor computer stelt ook niet veel voor...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Bedankt, Arco!
Ik zal even een wat antiekere laptop uit de voorraad trekken, testen, en laten horen of 't gelukt is :)
Kan even duren, m'n laptopvoorraad ligt 200km verderop :)

Ik neem op kleine schaal reparaties van buizen-elektronica aan voor een heel aardig uurtarief. Interesse? Mail me!
Arco

Special Member

Werkt ook op een nieuwe pc hoor. (mits die een serieele poort heeft)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Arco

Special Member

Console screen toegevoegd. Kun je zelf tekst intypen...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Hubie

Special Member

.

[Bericht gewijzigd door Hubie op zondag 8 september 2019 19:22:17 (100%)

Op 7 september 2019 01:15:59 schreef Arco:
Console screen toegevoegd. Kun je zelf tekst intypen...

[bijlage]

Top, bedankt!

In het kader van 'dan leren we er ook nog wat van', kan je ook de broncode posten?

En de oudste laptop die ik hier in Groningen bij me heb, is 10 jaar oud. Al geen seriële poort meer...

[Bericht gewijzigd door Ledlover op zondag 8 september 2019 13:45:01 (17%)

Ik neem op kleine schaal reparaties van buizen-elektronica aan voor een heel aardig uurtarief. Interesse? Mail me!
Arco

Special Member

Zo'n FTDI omzetter USB->RS232 schijnt als laagste 183 Baud te halen... (dus daar gaat het niet mee...)
De sourcecode:

code:


'============================================================================================================
' Baudot code test program
'============================================================================================================
#COMPILE EXE "Baudot.exe"
#COMPILER PBCC 5
#DIM ALL

FUNCTION PBMAIN () AS LONG
  LOCAL lRet,lCnt,lCh,lKey,lShift,lOldShift,InitDone AS LONG, lStr, Shifted, NotShifted, Shiftless AS STRING
  '..........................................................................................................
  COMM OPEN "COM1" AS #1       'Serial port opening and settings
  IF ERR THEN PRINT "Can't open COM port, terminating. (error: " & FORMAT$(ERR) & ")" : SLEEP 2000 : EXIT FUNCTION
  COMM SET #1, BAUD     = 50
  COMM SET #1, BYTE     = 5
  COMM SET #1, STOP     = 1
  COMM SET #1, PARITY   = 0
  COMM SET #1, TXBUFFER = 2048
  '..........................................................................................................
  NotShifted = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  Shifted    = "1234567890,.):=+?'\-(@" & CHR$(7,9)
  Shiftless  = CHR$(10,13,32)
  '..........................................................................................................
  WHILE lStr <> CHR$(27)                                                                           'Wait key
    IF InitDone = 0 THEN
      COLOR 15,0 : PRINT STRING$(80,"-")                                                             'Print hdr
      PRINT " Baudot test V1.06 at 50 Baud, 1 start, 1.5 stop, no parity. Press <"; : COLOR 12,0
      PRINT "Esc";: COLOR 15,0 : PRINT "> to end."
      PRINT " Type any text you want (only Baudot characters allowed)"
      PRINT " (<" ;: COLOR 12,0 : PRINT "@"  ;: COLOR 15,0 : PRINT "> = BELL, ";
      PRINT "<" ;: COLOR 12,0 : PRINT "Tab";: COLOR 15,0 : PRINT "> = WHO ARE YOU, ";
      PRINT "<" ;: COLOR 12,0 : PRINT "Down Arrow";: COLOR 15,0 : PRINT "> = LF, ";
      PRINT "<" ;: COLOR 12,0 : PRINT "Del";: COLOR 15,0 : PRINT "> = Clr Screen)"
      PRINT STRING$(80,"-")
      InitDone = 1
    END IF
    '........................................................................................................
    lStr = INKEY$
    IF lStr = CHR$(0,80) THEN
      lStr = CHR$(10) :COLOR 12,0 : PRINT "[LF]" : COLOR 15,0
      IF CURSORY >= 26 THEN SCROLL 1,6,1,25,100 : LOCATE 25,1
    END IF
    IF lStr = "@" THEN lStr = CHR$(7)
    IF INSTR(lStr, ANY "abcdefghijklmnopqrstuvwxyz") AND LEN(lStr) = 1 THEN lStr = CHR$(ASC(lStr)-&h20)
    IF lStr = CHR$(7) THEN COLOR 12,0 : PRINT "[BELL]"; : COLOR 15,0
    IF lStr = CHR$ (9) THEN COLOR 12,0 : PRINT "[WHO ARE YOU]"; : COLOR 15,0
    IF lStr = CHR$(13) THEN
      COLOR 12,0 : PRINT "[CR]" : COLOR 15,0
      IF CURSORY >= 26 THEN SCROLL 1,6,1,25,100 : LOCATE 25,1
    END IF
    IF lStr = CHR$(0,83) THEN CLS : InitDone = 0
    lShift = 0
    '........................................................................................................
    IF LEN (lStr) = 1 THEN                                                                         'See if
      IF INSTR(lStr, ANY NotShifted) THEN lShift = 1 : PRINT lStr;                                 'lower or
      IF INSTR(lStr, ANY Shifted) THEN    lShift = 2 : IF ASC(lStr) > 9 THEN PRINT lStr;           'upper
      IF INSTR(lStr, ANY Shiftless) THEN  lShift = 3 : IF lStr =  " " THEN PRINT lStr;             'shift is
    END IF                                                                                         'needed
    IF CURSORX > 75 THEN
      IF CURSORY >= 25 THEN
        SCROLL 1,6,1,25,100
        LOCATE 25,1
'        print
      ELSE
        PRINT
      END IF
    END IF
    lCh = ASC(lStr)
    IF LEN(lStr) = 1 THEN
    '........................................................................................................
    lRet = CHOOSE(lCh+1,_
                &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h0B,&h00,&h09,&h02,&h00,&h00,&h08,&h00,&h00, _ 'Ascii to
                &h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00, _ 'Baudot
                &h04,&h00,&h00,&h00,&h00,&h00,&h00,&h05,&h0F,&h12,&h00,&h11,&h0C,&h03,&h1C,&h00, _ 'table
                &h16,&h17,&h13,&h01,&h0A,&h10,&h15,&h07,&h06,&h18,&h0E,&h00,&h00,&h1E,&h00,&h19, _ '
                &h00,&h03,&h19,&h0E,&h09,&h01,&h0D,&h1A,&h14,&h06,&h0B,&h0F,&h12,&h1C,&h0C,&h18, _ '
                &h16,&h17,&h0A,&h05,&h10,&h07,&h1E,&h13,&h1D,&h15,&h11,&h00,&h1D,&h00,&h00,&h00)   '
     '.......................................................................................................
     IF (lShift <> lOldShift) AND (lShift < 3) AND (lShift > 0) THEN                               '
       lOldShift = lShift                                                                          'Send
       IF lShift = 2 THEN COMM SEND #1, CHR$(&h1B)                                                 'extra
       IF lShift = 1 THEN COMM SEND #1, CHR$(&h1F)                                                 'shiftbyte
     END IF                                                                                        'if needed
     IF lShift THEN COMM SEND #1, CHR$(lRet)                                                       '
     END IF
  WEND                                                                                             'Send data
  IF CURSORX > 1 THEN PRINT
  PRINT "Terminating, please wait..."                                                              '
  COMM CLOSE #1                                                                                    '
END FUNCTION                                                                                       '

'============================================================================================================

[Bericht gewijzigd door Arco op woensdag 11 september 2019 11:50:47 (17%)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Top! Bedankt.

Lijkt me leuk om zo'n goedkoop chinees Pixie kitje van 4 euro geschikt te maken voor RTTY. Als het zover is, laat ik weten wat de resultaten zijn.

Ik neem op kleine schaal reparaties van buizen-elektronica aan voor een heel aardig uurtarief. Interesse? Mail me!