{"id":1453,"date":"2017-01-09T05:38:44","date_gmt":"2017-01-09T12:38:44","guid":{"rendered":"http:\/\/fallows.ca\/wp\/?p=1453"},"modified":"2017-01-06T17:54:04","modified_gmt":"2017-01-07T00:54:04","slug":"arduino-morse-decoder-how-it-works","status":"publish","type":"post","link":"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/","title":{"rendered":"Arduino Morse Decoder &#8211; How It Works"},"content":{"rendered":"<p><a href=\"http:\/\/fallows.ca\/wp\/wp-content\/uploads\/2017\/01\/Arduino-Morse-Decoder.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1477\" src=\"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2017\/01\/Arduino-Morse-Decoder.jpg\" alt=\"Arduino Morse Decoder\" width=\"657\" height=\"233\" srcset=\"https:\/\/fallows.ca\/wp\/wp-content\/uploads\/2017\/01\/Arduino-Morse-Decoder.jpg 657w, https:\/\/fallows.ca\/wp\/wp-content\/uploads\/2017\/01\/Arduino-Morse-Decoder-300x106.jpg 300w\" sizes=\"auto, (max-width: 657px) 100vw, 657px\" \/><\/a><\/p>\n<p>Let&#8217;s examine how an Arduino Morse Decoder works, and look at some popular solutions available.<!--more--><\/p>\n<p>Here is how an Arduino Morse Decoder works. Basically, its\u00a0converts\u00a0audio from the receiver into text on a screen. There are six sequential steps involved in making this happen.<\/p>\n<ol>\n<li>Digitize the audio. Computers need data, not signals.\u00a0Convert the audio signal into data. This is called analog-to-digital conversion, or ADC. An example of an ADC is the input side of your computer&#8217;s sound card. Sound goes in, data comes out.<\/li>\n<li>Threshold. A Morse Code tone exists in a sea of noise. Even with automatic gain control, the signal level varies. Also, you need to ignore the broadband noise and select the narrow band tone. Normally, the tone is stronger than the noise. You set a signal threshold so the detector can differentiate between tone and noise. One approach is to set the\u00a0threshold manually with a knob. The other is to use\u00a0software to adjust\u00a0\u00a0the threshold automatically.<\/li>\n<li>Detect the tone. A strong signal at the right frequency indicates a tone. The detector is like an on-off switch. If a signal at the right frequency exceeds threshold, the switch is turned on.<\/li>\n<li>Filter the data. Since you will be detecting the tones faster than they are actually being sent, you need a filter to smooth out the data between samples. Filtering is also used remove noise spikes in the audio.<\/li>\n<li>Decode tones to characters. This is all about timing. The duration of Morse elements, and the spacing of letters and words, follows a standard pattern, as explained on <a href=\"https:\/\/en.wikipedia.org\/wiki\/Morse_code\" target=\"_blank\" rel=\"nofollow\">Wikipedia<\/a>. This pattern holds relatively steady regardless of the speed. By understanding this pattern, your software converts on-off data into characters. Machine generated Morse decodes perfectly; human sent code, not so much.<\/li>\n<li>Display the results. Finally, after the characters are decoded, they are displayed on a screen.<\/li>\n<\/ol>\n<p>That&#8217;s the algorithm for a Morse decoder. Math is used for implementation. In some solutions, steps 1-3 can be done using external hardware, such as the LM567 tone detector. In other solutions, software does it all.<\/p>\n<h2>Arduino Morse Decoder &#8211; Choices Available<\/h2>\n<p>Here are some choices for &#8220;ready made&#8221;, open source solutions. It makes more sense to reuse rather than reinvent.<\/p>\n<ul>\n<li>Danish ham,\u00a0 Hjalmar Skovholm Hansen, OZ8SMA provides a Arduino Morse Decoder that does not require external hardware. Rather, it uses the Arduino analog input to sample audio from the receiver. Then, digital signal processing detects and filters the tones. The details are on his <a href=\"http:\/\/skovholm.com\/cwdecoder\" target=\"_blank\" rel=\"nofollow\">web site<\/a>. Here is a\u00a0<a class=\"vp-a\" href=\"https:\/\/www.youtube.com\/watch?v=zbQFlzbDb8w\">video<\/a> demonstration.<\/li>\n<li>Budd Churchward, WB7FHC has another popular solution. You can find details on his <a href=\"http:\/\/mypetarduino.com\/\" target=\"_blank\" rel=\"nofollow\">web site<\/a>, or watch this <a class=\"vp-a\" href=\"https:\/\/www.youtube.com\/watch?v=ESN0nFbv6eQ\">video<\/a> for a demonstration.<\/li>\n<li>WV2YAU uses the LM567 external tone decoder together with Budd&#8217;s software, as described in this <a class=\"vp-a\" href=\"https:\/\/www.youtube.com\/watch?v=Tzro-lkLTpk&#038;t=381s\">video<\/a>.<\/li>\n<\/ul>\n<p>I am going to start by building the Danish solution next.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Let&#8217;s examine how an Arduino Morse Decoder works, and look at some popular solutions available.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Arduino Morse Decoder - How It Works #Arduino #hamradio","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[5,7],"tags":[25,121],"series":[],"class_list":["post-1453","post","type-post","status-publish","format-standard","hentry","category-electronics-projects","category-ham-radio","tag-arduino","tag-ham-radio"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Arduino Morse Decoder - How It Works - Living On The Horizon<\/title>\n<meta name=\"description\" content=\"There are two &quot;ready made&quot; solutions for an Arduino Morse Decoder. Here is a description of them, with details about how they work.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Arduino Morse Decoder - How It Works - Living On The Horizon\" \/>\n<meta property=\"og:description\" content=\"There are two &quot;ready made&quot; solutions for an Arduino Morse Decoder. Here is a description of them, with details about how they work.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/\" \/>\n<meta property=\"og:site_name\" content=\"Living On The Horizon\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-09T12:38:44+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2017\/01\/Arduino-Morse-Decoder.jpg\" \/>\n<meta name=\"author\" content=\"John VE6EY\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@VE6EY\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John VE6EY\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/\",\"url\":\"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/\",\"name\":\"Arduino Morse Decoder - How It Works - Living On The Horizon\",\"isPartOf\":{\"@id\":\"http:\/\/fallows.ca\/wp\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2017\/01\/Arduino-Morse-Decoder.jpg\",\"datePublished\":\"2017-01-09T12:38:44+00:00\",\"author\":{\"@id\":\"http:\/\/fallows.ca\/wp\/#\/schema\/person\/9750e0ab227030255d9806757525f945\"},\"description\":\"There are two \\\"ready made\\\" solutions for an Arduino Morse Decoder. Here is a description of them, with details about how they work.\",\"breadcrumb\":{\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/#primaryimage\",\"url\":\"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2017\/01\/Arduino-Morse-Decoder.jpg\",\"contentUrl\":\"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2017\/01\/Arduino-Morse-Decoder.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/fallows.ca\/wp\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Radio\",\"item\":\"http:\/\/fallows.ca\/wp\/category\/radio\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Shortwave Radio\",\"item\":\"https:\/\/fallows.ca\/wp\/category\/radio\/shortwave-radio\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Arduino Morse Decoder &#8211; How It Works\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/fallows.ca\/wp\/#website\",\"url\":\"http:\/\/fallows.ca\/wp\/\",\"name\":\"Living On The Horizon\",\"description\":\"Blogs and Stuff\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/fallows.ca\/wp\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/fallows.ca\/wp\/#\/schema\/person\/9750e0ab227030255d9806757525f945\",\"name\":\"John VE6EY\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/fallows.ca\/wp\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e4048edfe09efff51033c48b4fb951e8ac0a4dc84a25c96b25e5ae9f5b7069a5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e4048edfe09efff51033c48b4fb951e8ac0a4dc84a25c96b25e5ae9f5b7069a5?s=96&d=mm&r=g\",\"caption\":\"John VE6EY\"},\"sameAs\":[\"https:\/\/x.com\/VE6EY\"],\"url\":\"https:\/\/fallows.ca\/wp\/author\/play\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Arduino Morse Decoder - How It Works - Living On The Horizon","description":"There are two \"ready made\" solutions for an Arduino Morse Decoder. Here is a description of them, with details about how they work.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/","og_locale":"en_US","og_type":"article","og_title":"Arduino Morse Decoder - How It Works - Living On The Horizon","og_description":"There are two \"ready made\" solutions for an Arduino Morse Decoder. Here is a description of them, with details about how they work.","og_url":"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/","og_site_name":"Living On The Horizon","article_published_time":"2017-01-09T12:38:44+00:00","og_image":[{"url":"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2017\/01\/Arduino-Morse-Decoder.jpg","type":"","width":"","height":""}],"author":"John VE6EY","twitter_card":"summary_large_image","twitter_creator":"@VE6EY","twitter_misc":{"Written by":"John VE6EY","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/","url":"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/","name":"Arduino Morse Decoder - How It Works - Living On The Horizon","isPartOf":{"@id":"http:\/\/fallows.ca\/wp\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/#primaryimage"},"image":{"@id":"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/#primaryimage"},"thumbnailUrl":"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2017\/01\/Arduino-Morse-Decoder.jpg","datePublished":"2017-01-09T12:38:44+00:00","author":{"@id":"http:\/\/fallows.ca\/wp\/#\/schema\/person\/9750e0ab227030255d9806757525f945"},"description":"There are two \"ready made\" solutions for an Arduino Morse Decoder. Here is a description of them, with details about how they work.","breadcrumb":{"@id":"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/#primaryimage","url":"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2017\/01\/Arduino-Morse-Decoder.jpg","contentUrl":"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2017\/01\/Arduino-Morse-Decoder.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/fallows.ca\/wp\/projects\/electronics-projects\/arduino-morse-decoder-how-it-works\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/fallows.ca\/wp\/"},{"@type":"ListItem","position":2,"name":"Radio","item":"http:\/\/fallows.ca\/wp\/category\/radio\/"},{"@type":"ListItem","position":3,"name":"Shortwave Radio","item":"https:\/\/fallows.ca\/wp\/category\/radio\/shortwave-radio\/"},{"@type":"ListItem","position":4,"name":"Arduino Morse Decoder &#8211; How It Works"}]},{"@type":"WebSite","@id":"http:\/\/fallows.ca\/wp\/#website","url":"http:\/\/fallows.ca\/wp\/","name":"Living On The Horizon","description":"Blogs and Stuff","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/fallows.ca\/wp\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/fallows.ca\/wp\/#\/schema\/person\/9750e0ab227030255d9806757525f945","name":"John VE6EY","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/fallows.ca\/wp\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e4048edfe09efff51033c48b4fb951e8ac0a4dc84a25c96b25e5ae9f5b7069a5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e4048edfe09efff51033c48b4fb951e8ac0a4dc84a25c96b25e5ae9f5b7069a5?s=96&d=mm&r=g","caption":"John VE6EY"},"sameAs":["https:\/\/x.com\/VE6EY"],"url":"https:\/\/fallows.ca\/wp\/author\/play\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6wKKr-nr","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/posts\/1453","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/comments?post=1453"}],"version-history":[{"count":3,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/posts\/1453\/revisions"}],"predecessor-version":[{"id":1478,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/posts\/1453\/revisions\/1478"}],"wp:attachment":[{"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/media?parent=1453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/categories?post=1453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/tags?post=1453"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/series?post=1453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}