[Radio] Hellschreiber with Arduino

here. Parts list

  • Radio transmitter [NTX2-433.650 MHZ 10mW]
  • Programming board [Arduino Mega 1280]
  • Operating system with FLDIGI HAB version [link]
Screenshot Do note (!) This code is not really finished or optimized at all, it was just a proof of concept. Also, I made the typography (the font) myself as well, so it might not be normalized. Code
  1. /* RTTY Code
  2.    Copyright (C) 2010 HoHoHo-II
  3.     This program is free software: you can redistribute it and/or modify
  4.     it under the terms of the GNU General Public License as published by
  5.     the Free Software Foundation, either version 3 of the License, or
  6.     (at your option) any later version.
  7.     This program is distributed in the hope that it will be useful,
  8.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10.     GNU General Public License for more details.
  11.     You should have received a copy of the GNU General Public License
  12.     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. char* blank = "0000000";
  15. char* T  = "00000100000010011111000000100000010";
  16. char* H  = "01111100111110000100000010000111110";
  17. char* O  = "00111000100010010001001000100011100";
  18. char* I  = "01000100100010011111001000100100010";
  19. char* h0 = "00111000100010010101001000100011100";
  20. char* h1 = "01001000100100011111001111100100000";
  21. char* h2 = "01001000110110011001001011100101110";
  22. char* h3 = "01000100101010010101001111100011100";
  23. char* h4 = "00011100001110011100001111000001000";
  24. char* h5 = "01011100101010010101001110100111010";
  25. char* h6 = "01111100101010010101001010100111010";
  26. char* h7 = "00000100000010011001001110100000110";
  27. char* h8 = "01111100101010010101001010100111110";
  28. char* h9 = "01011100101010010101001010100111110";
  29. void setup(){
  30.   pinMode(52, OUTPUT);
  31. }
  32. void loop(){
  33. //hell_txchar(T);
  34. hell_txchar(h0);
  35. hell_txchar(h1);
  36. hell_txchar(h2);
  37. hell_txchar(h3);
  38. hell_txchar(h4);
  39. hell_txchar(h5);
  40. hell_txchar(h6);
  41. hell_txchar(h7);
  42. hell_txchar(h8);
  43. hell_txchar(h9);
  44. hell_txchar(blank);
  45. hell_txchar(H);
  46. hell_txchar(O);
  47. hell_txchar(blank);
  48. hell_txchar(blank);
  49. hell_txchar(H);
  50. hell_txchar(O);
  51. hell_txchar(blank);
  52. hell_txchar(blank);
  53. hell_txchar(H);
  54. hell_txchar(O);
  55. hell_txchar(blank);
  56. hell_txchar(blank);
  57. hell_txchar(blank);
  58. hell_txchar(blank);
  59. }
  60. void hell_txchar (char* string) {
  61.   for (int i = 0; i < strlen(string); i++) {
  62.     hell_txbit(string[i]);
  63.   }
  64.     for (int i = 0; i < 7; i++) {
  65.     hell_txbit(0);
  66.   }
  67. }
  68. // Transmit a bit as a mark or space
  69. void hell_txbit (char chr) {
  70.   if (chr=='1') {
  71.     // High - mark
  72.     digitalWrite(52, LOW);
  73.   }
  74.   else {
  75.     // Low - space
  76.     digitalWrite(52, HIGH);
  77.   }
  78.   // Delay appropriately- handtuned
  79.   //delay(7);
  80.   delayMicroseconds(8080);
  81. }
]]>

You may also like...