{"id":2560,"date":"2016-07-06T00:53:35","date_gmt":"2016-07-05T23:53:35","guid":{"rendered":"https:\/\/www.analysir.com\/blog\/?p=2560"},"modified":"2017-02-03T18:07:41","modified_gmt":"2017-02-03T18:07:41","slug":"esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart","status":"publish","type":"post","link":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/","title":{"rendered":"ESP8266 NodeMCU Backdoor uPWM Hack for IR signals"},"content":{"rendered":"<p>We received our ESP8266 NodeMCU several months ago it has been difficult to find a working example of Hardware PWM to generate crisp Infrared carrier signals. Most posts we have read suggest that there is no PWM readily available on any of the supported platforms. As we have already shown with <strong><a href=\"https:\/\/www.analysir.com\/blog\/2015\/10\/12\/backdoor-upwm-hack-on-arduino-for-infrared-signals-using-uart\/\" target=\"_blank\">Arduinos <\/a><\/strong>and the <strong><a href=\"https:\/\/www.analysir.com\/blog\/2015\/10\/02\/backdoor-upwm-hack-on-photon-for-infrared-signals-using-uart\/\" target=\"_blank\">Particle Photon<\/a><\/strong> we figured it would be possible to use a spare UART pin on the ESP8266 NodeMCU to achieve our goal.\u00a0 After some initial success we encountered some watchdog timeouts\/resets and it seemed like the uPWM hack would not be possible on the ESP8266 Node MCU platform. For a few weeks we &#8216;parked&#8217;\u00a0 the effort and today we decided to try again with all of the latest and updated firmware available from the ESP8266 community via the Arduino IDE. This time we were successful and the ESP8266 NodeMCU Backdoor uPWM Hack for IR signals using works!<\/p>\n<figure id=\"attachment_2563\" aria-describedby=\"caption-attachment-2563\" style=\"width: 604px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2563 size-large\" src=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit-1024x618.jpg\" alt=\"ESP8266 NodeMCU uPWM Inverted IR Circuit\" width=\"604\" height=\"365\" srcset=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit-1024x618.jpg 1024w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit-300x181.jpg 300w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit-768x463.jpg 768w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit.jpg 1041w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><figcaption id=\"caption-attachment-2563\" class=\"wp-caption-text\">ESP8266 NodeMCU uPWM Inverted IR Circuit<\/figcaption><\/figure>\n<p><!--more--><\/p>\n<blockquote><p><strong><a href=\"https:\/\/www.analysir.com\/blog\/2017\/01\/29\/updated-esp8266-nodemcu-backdoor-upwm-hack-for-ir-signals\/\">UPDATE: an improved non-inverted version is now available here.<\/a><\/strong><\/p><\/blockquote>\n<p>The uPWM Circuit diagram above for ESP8266 NodeMCU using UART shows the IR out signal on pin D4 . This\u00a0 signal is inverted and Q1 serves to invert it back to normal. Q2 is the main IR\u00a0 LED driver and the IR current can be adjusted by varying R4 to suit. Note that the IR LED D1 is connected to VUSB(or +5V) and R2 is connected to the 3V3 pin on the ESP8266 NodeMCU device.<\/p>\n<p><strong>The Hack<\/strong><br \/>\nQuite simple really &#8211; just set the baud rate to 10 times the desired Infrared carrier frequency and send a &#8216;magic&#8217; 8 bit character to achieve the desired duty cycle. Of course we need to take the 1-start bit and 1-stop bit into account plus the 8 bits in each character. Remember that the UART sends the data inverted, so this needs to be taken into account with the characters sent and also in the IR LED driver circuit above, which required 2 transistors instead of the usual one. In summary, sending the following characters will generate the associated duty cycle, as follows:<\/p>\n<ul>\n<li>0xF0 &#8211; 50%<\/li>\n<li>0xF8 &#8211; 40%<\/li>\n<li>0xFC &#8211; 30%<\/li>\n<li>0xFE &#8211; 20%<\/li>\n<li>0xFF &#8211; 10%<\/li>\n<\/ul>\n<p>This is more than sufficient for most, if not all IR systems, which would typically use 50% or more commonly 33%. We defaulted the value in the sketch to 40% without problems. It should of course be possible to generate a duty cycle up to 90% by extending the code, which may be of interest for PWM in non-infrared applications.<\/p>\n<blockquote><p>ESP8266 NodeMCU Backdoor uPWM Hack for IR signals using UART<\/p><\/blockquote>\n<p><strong class=\"wp-image-2567 size-large\">The Code<\/strong><br \/>\nI will leave it up to the reader to review the code and figure the rest out. Suffice to say we took the <strong><a href=\"http:\/\/www.analysir.com\/blog\/2015\/09\/01\/simple-infrared-pwm-on-arduino-part-3-hex-ir-signals\/\" target=\"_blank\">softPWM code in part 3 of the series<\/a><\/strong> , our series on this <strong><a href=\"https:\/\/www.analysir.com\/blog\/tag\/upwm\/\" target=\"_blank\">uPWM hack<\/a><\/strong> and updated the PWM initialisation, mark &amp; space routines. Using this approach it should be relatively simple to fully port libraries like IRremote &amp; IRLib to ESP8266 NodeMCU and get some awesome IR projects going at last! Similarly, it will now be possible to incorporate this hack into your own IR projects to generate crisp Infrared signals at the target carrier frequency &amp; duty cycle.\u00a0 This enhanced accuracy will improve performance and range vs other approaches. If you need any advice contact us via the website above or post on our <strong><a href=\"https:\/\/www.analysir.com\/blog\/irforum\/\" target=\"_blank\">IRforum<\/a><\/strong>.<\/p>\n<p>One of the real benefits of this approach is that there is no interference with any of the Photon&#8217;s &#8220;<strong><em>WiFi foo<\/em><\/strong>&#8221; or internals. That is provided the watchdog timer is serviced regularly. We have placed lots of calls to service the watchdog timer throughout the example code. <em>(Note our example code does not use WiFi directly)<\/em><\/p>\n<figure id=\"attachment_2567\" aria-describedby=\"caption-attachment-2567\" style=\"width: 604px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266_NodeMCU_uPWM_AnalysIR_Screenshot.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2567 size-large\" src=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266_NodeMCU_uPWM_AnalysIR_Screenshot-1024x542.jpg\" alt=\"ESP8266 NodeMCU uPWM AnalysIR Screenshot\" width=\"604\" height=\"320\" srcset=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266_NodeMCU_uPWM_AnalysIR_Screenshot-1024x542.jpg 1024w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266_NodeMCU_uPWM_AnalysIR_Screenshot-300x159.jpg 300w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266_NodeMCU_uPWM_AnalysIR_Screenshot-768x407.jpg 768w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266_NodeMCU_uPWM_AnalysIR_Screenshot.jpg 1375w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a><figcaption id=\"caption-attachment-2567\" class=\"wp-caption-text\">ESP8266 NodeMCU uPWM AnalysIR Screenshot<\/figcaption><\/figure>\n<p>To test the uPWM, we wired up the ESP8266 NodeMCU to the circuit at the top of this post and used our soon to be released <a href=\"https:\/\/www.analysir.com\/blog\/2014\/10\/16\/preview-learnir-advanced-infrared-learner-device\/\" target=\"_blank\">LearnIR <\/a>connected to <a href=\"https:\/\/www.analysir.com\/blog\/get-analysir\/\" target=\"_blank\">AnalysIR <\/a>to record the signals sent from the firmware provided. As you can see from the screenshot of <a href=\"https:\/\/www.analysir.com\/blog\/get-analysir\/\" target=\"_blank\">AnalysIR <\/a>above all test signals were received, decoded and at the correct carrier frequencies of 30, 33, 36,38,40 &amp; 56 kHz.<\/p>\n<figure id=\"attachment_2566\" aria-describedby=\"caption-attachment-2566\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-NEC-IR-Signal.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2566\" src=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-NEC-IR-Signal.png\" alt=\"ESP8266 NodeMCU uPWM NEC IR Signal\" width=\"800\" height=\"480\" srcset=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-NEC-IR-Signal.png 800w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-NEC-IR-Signal-300x180.png 300w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-NEC-IR-Signal-768x461.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><figcaption id=\"caption-attachment-2566\" class=\"wp-caption-text\">ESP8266 NodeMCU uPWM NEC IR Signal<\/figcaption><\/figure>\n<p>The image above shows an NEC IR signal as transmitted using uPWM from the ESP8266 NodeMCU and the firmware provided in this post. You will notice here that the output from pin D4 is inverted as mentioned above.<\/p>\n<figure id=\"attachment_2565\" aria-describedby=\"caption-attachment-2565\" style=\"width: 800px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-IR-Signal-40kHz-40-Duty-Cycle.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2565\" src=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-IR-Signal-40kHz-40-Duty-Cycle.png\" alt=\"ESP8266 NodeMCU uPWM IR Signal 40kHz 40% Duty Cycle\" width=\"800\" height=\"480\" srcset=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-IR-Signal-40kHz-40-Duty-Cycle.png 800w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-IR-Signal-40kHz-40-Duty-Cycle-300x180.png 300w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-IR-Signal-40kHz-40-Duty-Cycle-768x461.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><figcaption id=\"caption-attachment-2565\" class=\"wp-caption-text\">ESP8266 NodeMCU uPWM IR Signal 40kHz 40% Duty Cycle<\/figcaption><\/figure>\n<p>The image above shows an IR signal as transmitted at a carrier frequency of 40kHz and a duty cycle of 40% using uPWM from the ESP8266 NodeMCU and the firmware provided in this post. The shorter NEC repeat signal is to the right of the main signal. You will notice here that the output from pin D4 is inverted as mentioned above. Hence it &#8216;may&#8217; appear as a duty cycle of 60% at first glance, but it is in fact an inverted 40% duty cycle.<\/p>\n<p><strong>The Circuit<\/strong><br \/>\nThe circuit diagram above takes the &#8216;<span style=\"text-decoration: underline;\">inverted<\/span>&#8216; IR signal output on the UART&#8217;s TX pin on the ESP8266 NodeMCU and inverts it back to normal with the first transistor stage, Q1. The second transistor stage, Q2,\u00a0 drives the IR signal at 170 mA using a 10R resistor. You should be able to get circa 300mA by replacing R4 with a 5R resistor and so on. There is also a superior<strong> <a href=\"http:\/\/www.analysir.com\/blog\/2013\/11\/22\/constant-current-infrared-led-circuit\/\" target=\"_blank\">constant current circuit<\/a> <\/strong>available on our blog, but you will have to design in the inverting stage, or take it from the circuit above.<\/p>\n<figure id=\"attachment_2564\" aria-describedby=\"caption-attachment-2564\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-IR-current.png\"><img decoding=\"async\" class=\"wp-image-2564 size-full\" src=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-IR-current.png\" alt=\"ESP8266 NodeMCU uPWM IR current\" width=\"600\" srcset=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-IR-current.png 800w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-IR-current-300x180.png 300w, https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-IR-current-768x461.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><figcaption id=\"caption-attachment-2564\" class=\"wp-caption-text\">ESP8266 NodeMCU uPWM IR current<\/figcaption><\/figure>\n<p>The image above, captured from the oscilloscope shows the voltage over R4 (10R) and represents a voltage drop of 1.7 volts peak. Thus the current passing through the resistor and hence the IR LED D1 is 170mA. IMPORTANT: When pushing the current higher, you may have to use a better power supply if the device resets or if your USB connection cannot provide the peak current required. Another way of increasing\/doubling the IR power, almost for free, is to put a second IR LED in series with D1. Similarly with 2 IR LEDs and R4 at 5R, you can get almost 4x the IR Power of the circuit shown above, subject t any power supply constraints.<\/p>\n<p>If you find an interesting\u00a0 use for this firmware or embed it into a library then do let us know via the <a href=\"https:\/\/www.analysir.com\/blog\/contact\/\" target=\"_blank\">contact form<\/a> linked above or our <a href=\"https:\/\/www.AnalysIR.com\/IRforum\" target=\"_blank\">IRforum<\/a>.<\/p>\n<blockquote><p><strong><a href=\"https:\/\/www.analysir.com\/blog\/2017\/01\/29\/updated-esp8266-nodemcu-backdoor-upwm-hack-for-ir-signals\/\">UPDATE: an improved non-inverted version is now available here.<\/a><\/strong><\/p><\/blockquote>\n<p>You can <strong><a href=\"https:\/\/www.analysir.com\/blog\/sketch_upwm_esp8266_nodemcu-ino\/\" target=\"_blank\">download a copy of the Firmware<\/a><\/strong> for the ESP8266 NodeMCU uPWM <strong><a href=\"https:\/\/www.analysir.com\/blog\/sketch_upwm_esp8266_nodemcu-ino\/\" target=\"_blank\">here<\/a><\/strong>.<\/p>\n<p><strong><a href=\"http:\/\/www.analysir.com\/blog\/get-analysir\/\" target=\"_blank\">Get your own copy of AnalysIR here<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We received our ESP8266 NodeMCU several months ago it has been difficult to find a working example of Hardware PWM to generate crisp Infrared carrier signals. Most posts we have read suggest that there is no PWM readily available on any of the supported platforms. As we have already shown with Arduinos and the Particle &hellip; <a href=\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">ESP8266 NodeMCU Backdoor uPWM Hack for IR signals<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1,10,3,61,256,257,15],"tags":[197,344,272,314,334,65,7,171,6,5,85,335,273,343],"class_list":["post-2560","post","type-post","status-publish","format-standard","hentry","category-analysir-blog","category-arduino","category-crowdfunding-backers","category-ir-sources","category-makeir-kits","category-products","category-analysir-ir-infrared-projects","tag-air-conditioner","tag-arduino-ide","tag-carrier-frequency","tag-duty-cycle","tag-esp8266","tag-firmware","tag-infrared","tag-ir-led","tag-irlib","tag-irremote","tag-nec","tag-nodemcu","tag-pwm","tag-upwm"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ESP8266 NodeMCU Backdoor uPWM Hack for IR signals - AnalysIR Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ESP8266 NodeMCU Backdoor uPWM Hack for IR signals - AnalysIR Blog\" \/>\n<meta property=\"og:description\" content=\"We received our ESP8266 NodeMCU several months ago it has been difficult to find a working example of Hardware PWM to generate crisp Infrared carrier signals. Most posts we have read suggest that there is no PWM readily available on any of the supported platforms. As we have already shown with Arduinos and the Particle &hellip; Continue reading ESP8266 NodeMCU Backdoor uPWM Hack for IR signals &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/\" \/>\n<meta property=\"og:site_name\" content=\"AnalysIR Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/chris.analysir\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/chris.analysir\" \/>\n<meta property=\"article:published_time\" content=\"2016-07-05T23:53:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-02-03T18:07:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit-1024x618.jpg\" \/>\n<meta name=\"author\" content=\"User Two\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@AnalysIR\" \/>\n<meta name=\"twitter:site\" content=\"@analysir\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"User Two\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/\"},\"author\":{\"name\":\"User Two\",\"@id\":\"https:\/\/www.analysir.com\/blog\/#\/schema\/person\/16a6d94c57d4f2629096ab80a7b36e13\"},\"headline\":\"ESP8266 NodeMCU Backdoor uPWM Hack for IR signals\",\"datePublished\":\"2016-07-05T23:53:35+00:00\",\"dateModified\":\"2017-02-03T18:07:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/\"},\"wordCount\":1127,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.analysir.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit-1024x618.jpg\",\"keywords\":[\"Air Conditioner\",\"Arduino IDE\",\"Carrier frequency\",\"Duty Cycle\",\"ESP8266\",\"Firmware\",\"Infrared\",\"IR LED\",\"IRLib\",\"IRremote\",\"NEC\",\"NodeMCU\",\"pwm\",\"uPWM\"],\"articleSection\":[\"AnalysIR Blog\",\"Arduino\",\"Crowdfunding &amp; Backers\",\"IR Sources\",\"MakeIR Kits\",\"Products\",\"Projects\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/\",\"url\":\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/\",\"name\":\"ESP8266 NodeMCU Backdoor uPWM Hack for IR signals - AnalysIR Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.analysir.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit-1024x618.jpg\",\"datePublished\":\"2016-07-05T23:53:35+00:00\",\"dateModified\":\"2017-02-03T18:07:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#primaryimage\",\"url\":\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit.jpg\",\"contentUrl\":\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit.jpg\",\"width\":1041,\"height\":628,\"caption\":\"ESP8266 NodeMCU uPWM Inverted IR Circuit\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.analysir.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ESP8266 NodeMCU Backdoor uPWM Hack for IR signals\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.analysir.com\/blog\/#website\",\"url\":\"https:\/\/www.analysir.com\/blog\/\",\"name\":\"AnalysIR Blog\",\"description\":\"All about infrared remote control, IR decoding and more\",\"publisher\":{\"@id\":\"https:\/\/www.analysir.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.analysir.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.analysir.com\/blog\/#organization\",\"name\":\"AnalysIR\",\"url\":\"https:\/\/www.analysir.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.analysir.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2015\/10\/AnalysIR_and_IRToy.png\",\"contentUrl\":\"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2015\/10\/AnalysIR_and_IRToy.png\",\"width\":200,\"height\":200,\"caption\":\"AnalysIR\"},\"image\":{\"@id\":\"https:\/\/www.analysir.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/chris.analysir\",\"https:\/\/x.com\/analysir\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.analysir.com\/blog\/#\/schema\/person\/16a6d94c57d4f2629096ab80a7b36e13\",\"name\":\"User Two\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/8167f41ca01c8bf0646f87048aaf9e8f90e7d0b65650c0f8eaaf8002b288d6cb?s=96&d=identicon&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8167f41ca01c8bf0646f87048aaf9e8f90e7d0b65650c0f8eaaf8002b288d6cb?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8167f41ca01c8bf0646f87048aaf9e8f90e7d0b65650c0f8eaaf8002b288d6cb?s=96&d=identicon&r=g\",\"caption\":\"User Two\"},\"sameAs\":[\"http:\/\/www.AnalysIR.com\",\"https:\/\/www.facebook.com\/chris.analysir\",\"https:\/\/x.com\/AnalysIR\"],\"url\":\"https:\/\/www.analysir.com\/blog\/author\/analysir\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ESP8266 NodeMCU Backdoor uPWM Hack for IR signals - AnalysIR Blog","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:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/","og_locale":"en_US","og_type":"article","og_title":"ESP8266 NodeMCU Backdoor uPWM Hack for IR signals - AnalysIR Blog","og_description":"We received our ESP8266 NodeMCU several months ago it has been difficult to find a working example of Hardware PWM to generate crisp Infrared carrier signals. Most posts we have read suggest that there is no PWM readily available on any of the supported platforms. As we have already shown with Arduinos and the Particle &hellip; Continue reading ESP8266 NodeMCU Backdoor uPWM Hack for IR signals &rarr;","og_url":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/","og_site_name":"AnalysIR Blog","article_publisher":"https:\/\/www.facebook.com\/chris.analysir","article_author":"https:\/\/www.facebook.com\/chris.analysir","article_published_time":"2016-07-05T23:53:35+00:00","article_modified_time":"2017-02-03T18:07:41+00:00","og_image":[{"url":"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit-1024x618.jpg","type":"","width":"","height":""}],"author":"User Two","twitter_card":"summary_large_image","twitter_creator":"@AnalysIR","twitter_site":"@analysir","twitter_misc":{"Written by":"User Two","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#article","isPartOf":{"@id":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/"},"author":{"name":"User Two","@id":"https:\/\/www.analysir.com\/blog\/#\/schema\/person\/16a6d94c57d4f2629096ab80a7b36e13"},"headline":"ESP8266 NodeMCU Backdoor uPWM Hack for IR signals","datePublished":"2016-07-05T23:53:35+00:00","dateModified":"2017-02-03T18:07:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/"},"wordCount":1127,"commentCount":0,"publisher":{"@id":"https:\/\/www.analysir.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#primaryimage"},"thumbnailUrl":"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit-1024x618.jpg","keywords":["Air Conditioner","Arduino IDE","Carrier frequency","Duty Cycle","ESP8266","Firmware","Infrared","IR LED","IRLib","IRremote","NEC","NodeMCU","pwm","uPWM"],"articleSection":["AnalysIR Blog","Arduino","Crowdfunding &amp; Backers","IR Sources","MakeIR Kits","Products","Projects"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/","url":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/","name":"ESP8266 NodeMCU Backdoor uPWM Hack for IR signals - AnalysIR Blog","isPartOf":{"@id":"https:\/\/www.analysir.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#primaryimage"},"image":{"@id":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#primaryimage"},"thumbnailUrl":"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit-1024x618.jpg","datePublished":"2016-07-05T23:53:35+00:00","dateModified":"2017-02-03T18:07:41+00:00","breadcrumb":{"@id":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#primaryimage","url":"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit.jpg","contentUrl":"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/07\/ESP8266-NodeMCU-uPWM-Inverted-IR-Circuit.jpg","width":1041,"height":628,"caption":"ESP8266 NodeMCU uPWM Inverted IR Circuit"},{"@type":"BreadcrumbList","@id":"https:\/\/www.analysir.com\/blog\/2016\/07\/06\/esp8266-nodemcu-backdoor-upwm-hack-ir-signals-using-uart\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.analysir.com\/blog\/"},{"@type":"ListItem","position":2,"name":"ESP8266 NodeMCU Backdoor uPWM Hack for IR signals"}]},{"@type":"WebSite","@id":"https:\/\/www.analysir.com\/blog\/#website","url":"https:\/\/www.analysir.com\/blog\/","name":"AnalysIR Blog","description":"All about infrared remote control, IR decoding and more","publisher":{"@id":"https:\/\/www.analysir.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.analysir.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.analysir.com\/blog\/#organization","name":"AnalysIR","url":"https:\/\/www.analysir.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.analysir.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2015\/10\/AnalysIR_and_IRToy.png","contentUrl":"https:\/\/www.analysir.com\/blog\/wp-content\/uploads\/2015\/10\/AnalysIR_and_IRToy.png","width":200,"height":200,"caption":"AnalysIR"},"image":{"@id":"https:\/\/www.analysir.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/chris.analysir","https:\/\/x.com\/analysir"]},{"@type":"Person","@id":"https:\/\/www.analysir.com\/blog\/#\/schema\/person\/16a6d94c57d4f2629096ab80a7b36e13","name":"User Two","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8167f41ca01c8bf0646f87048aaf9e8f90e7d0b65650c0f8eaaf8002b288d6cb?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8167f41ca01c8bf0646f87048aaf9e8f90e7d0b65650c0f8eaaf8002b288d6cb?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8167f41ca01c8bf0646f87048aaf9e8f90e7d0b65650c0f8eaaf8002b288d6cb?s=96&d=identicon&r=g","caption":"User Two"},"sameAs":["http:\/\/www.AnalysIR.com","https:\/\/www.facebook.com\/chris.analysir","https:\/\/x.com\/AnalysIR"],"url":"https:\/\/www.analysir.com\/blog\/author\/analysir\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p42zhM-Fi","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":1996,"url":"https:\/\/www.analysir.com\/blog\/2016\/01\/14\/esp8266-nodemcu-infrared-decoding-added-to-analysir\/","url_meta":{"origin":2560,"position":0},"title":"ESP8266 NodeMCU Infrared decoding added to AnalysIR","author":"User Two","date":"January 14, 2016","format":false,"excerpt":"A few months ago a new user to AnalysIR, from Canada, asked us to assist in adding ESP8266 NodeMCU Infrared decoding over WiFi into\u00a0 AnalysIR. We set about making some upgrades to AnalysIR for this and in double quick time he had AnalysIR accepting IR signals from the ESP8266 over\u2026","rel":"","context":"In &quot;AnalysIR Blog&quot;","block_context":{"text":"AnalysIR Blog","link":"https:\/\/www.analysir.com\/blog\/analysir-blog\/"},"img":{"alt_text":"AnalysIR supports ESP82266 NodeMCU","src":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/01\/NodeMCU.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/01\/NodeMCU.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/01\/NodeMCU.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":3038,"url":"https:\/\/www.analysir.com\/blog\/2017\/01\/29\/updated-esp8266-nodemcu-backdoor-upwm-hack-for-ir-signals\/","url_meta":{"origin":2560,"position":1},"title":"Updated ESP8266 NodeMCU Backdoor uPWM Hack for IR signals","author":"User Two","date":"January 29, 2017","format":false,"excerpt":"In our previous post we showed how to generate stable IR carrier signals using the ESP8266 NodeMCU module. A feature of the original approach was that the output IR signal was inverted and required some additional circuitry to invert it again before transmission. Since the original post we have figured\u2026","rel":"","context":"In &quot;AnalysIR Blog&quot;","block_context":{"text":"AnalysIR Blog","link":"https:\/\/www.analysir.com\/blog\/analysir-blog\/"},"img":{"alt_text":"ESP8266 NodeMCU uPWM IR CIRCUIT 3V3","src":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2017\/01\/ESP8266_NodeMCU_uPWM_IR_CIRCUIT_3V3.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2017\/01\/ESP8266_NodeMCU_uPWM_IR_CIRCUIT_3V3.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2017\/01\/ESP8266_NodeMCU_uPWM_IR_CIRCUIT_3V3.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2017\/01\/ESP8266_NodeMCU_uPWM_IR_CIRCUIT_3V3.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":3445,"url":"https:\/\/www.analysir.com\/blog\/2017\/08\/23\/preview-ir-shield-esp8266-trx-high-end-ir-shield\/","url_meta":{"origin":2560,"position":2},"title":"Preview: A.IR Shield ESP8266 TRx, a high-end IR Shield","author":"User Two","date":"August 23, 2017","format":false,"excerpt":"The latest member of our MakeIR series of devices & kits is the A.IR Shield ESP8266 TRx. This shield works out of the box with AnalysIR and is essentially plug & play, with additional custom Firmware options. The shield plugs into a Wemos D1 Mini (ESP8266) with headers or any\u2026","rel":"","context":"In &quot;AnalysIR Blog&quot;","block_context":{"text":"AnalysIR Blog","link":"https:\/\/www.analysir.com\/blog\/analysir-blog\/"},"img":{"alt_text":"A.IR Shield block diagram ESP8266 TRx","src":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2017\/08\/A.IR-block-diagram-ESP8266TRx.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2017\/08\/A.IR-block-diagram-ESP8266TRx.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2017\/08\/A.IR-block-diagram-ESP8266TRx.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":3530,"url":"https:\/\/www.analysir.com\/blog\/2017\/10\/03\/preview-ir-shield-esp8266esp32-tx-high-end-ir-shield\/","url_meta":{"origin":2560,"position":3},"title":"Preview: A.IR Shield ESP8266\/ESP32 Tx, a high-end IR Shield","author":"User Two","date":"October 3, 2017","format":false,"excerpt":"The latest member of our MakeIR series of devices & kits is the A.IR Shield ESP8266\/ESP32 Tx. This shield works out of the box with AnalysIR and is essentially plug & play, with additional custom Firmware options. This shield is a 'sibling' to our related TRx shield, and features IR\u2026","rel":"","context":"In &quot;AnalysIR Blog&quot;","block_context":{"text":"AnalysIR Blog","link":"https:\/\/www.analysir.com\/blog\/analysir-blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2017\/10\/A.IR-block-diagram-ESP8266_ESP32Tx.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2017\/10\/A.IR-block-diagram-ESP8266_ESP32Tx.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2017\/10\/A.IR-block-diagram-ESP8266_ESP32Tx.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1964,"url":"https:\/\/www.analysir.com\/blog\/2016\/01\/11\/preview-a-ir-shield-photon-a-high-end-infrared-shield-for-photon-2\/","url_meta":{"origin":2560,"position":4},"title":"Preview: A.IR Shield Photon, a high-end Infrared Shield for AnalysIR","author":"User Two","date":"January 11, 2016","format":false,"excerpt":"The final member of our first MakeIR series of devices & kits is the A.IR Shield Photon. This shield works out of the box with AnalysIR and is essentially plug & play, with additional prototyping options. The shield plugs into a (Particle) Photon with headers or pin-compatible clone. Although designed\u2026","rel":"","context":"In &quot;AnalysIR Blog&quot;","block_context":{"text":"AnalysIR Blog","link":"https:\/\/www.analysir.com\/blog\/analysir-blog\/"},"img":{"alt_text":"A.IR Shield Photon block diagram RevA","src":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/01\/A.IR-Photon-block-diagramRevA.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/01\/A.IR-Photon-block-diagramRevA.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2016\/01\/A.IR-Photon-block-diagramRevA.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":1682,"url":"https:\/\/www.analysir.com\/blog\/2015\/10\/12\/backdoor-upwm-hack-on-arduino-for-infrared-signals-using-uart\/","url_meta":{"origin":2560,"position":5},"title":"Backdoor uPWM Hack on Arduino for Infrared signals using UART","author":"User Two","date":"October 12, 2015","format":false,"excerpt":"In this blog post we follow up on our recent article about generation of infrared PWM from the Photon's UART where we suggested that it may be possible to achieve something similar with the Arduino. In our previous attempt the Arduino was only able to generate PWM at 40 kHz\u2026","rel":"","context":"In &quot;AnalysIR Blog&quot;","block_context":{"text":"AnalysIR Blog","link":"https:\/\/www.analysir.com\/blog\/analysir-blog\/"},"img":{"alt_text":"Arduino uPWM Circuit Diagram","src":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2015\/10\/Arduino-uPWM-Circuit.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2015\/10\/Arduino-uPWM-Circuit.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.analysir.com\/blog\/wp-content\/uploads\/2015\/10\/Arduino-uPWM-Circuit.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.analysir.com\/blog\/wp-json\/wp\/v2\/posts\/2560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.analysir.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.analysir.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.analysir.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.analysir.com\/blog\/wp-json\/wp\/v2\/comments?post=2560"}],"version-history":[{"count":10,"href":"https:\/\/www.analysir.com\/blog\/wp-json\/wp\/v2\/posts\/2560\/revisions"}],"predecessor-version":[{"id":3070,"href":"https:\/\/www.analysir.com\/blog\/wp-json\/wp\/v2\/posts\/2560\/revisions\/3070"}],"wp:attachment":[{"href":"https:\/\/www.analysir.com\/blog\/wp-json\/wp\/v2\/media?parent=2560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.analysir.com\/blog\/wp-json\/wp\/v2\/categories?post=2560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.analysir.com\/blog\/wp-json\/wp\/v2\/tags?post=2560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}