{"id":1281,"date":"2022-09-28T17:33:48","date_gmt":"2022-09-28T17:33:48","guid":{"rendered":"https:\/\/g6rzr.com\/?page_id=1281"},"modified":"2024-10-07T19:18:43","modified_gmt":"2024-10-07T19:18:43","slug":"a-replacement-display-for-the-ft290r-mk-i-2","status":"publish","type":"page","link":"https:\/\/g6rzr.com\/?page_id=1281","title":{"rendered":"A replacement display for the ft290r mk I"},"content":{"rendered":"<h4>Introduction<\/h4>\n<p>I am the proud owner of an FT290R which I bought in the 80\u2019s when I was first licenced as a G6. I think it\u2019s an excellent radio, so I bought another one to have in an alternative location. It had a display fault, but I am an electronics engineer by trade so I figured it couldn\u2019t be that hard to fix.<\/p>\n<p>As usual I was wrong, there were a number of stumbling blocks as follows:<\/p>\n<ol>\n<li>The display itself cannot be sourced as a direct replacement<\/li>\n<li>There was little information I could find about the driver IC<\/li>\n<\/ol>\n<p>So, the above two points ruled out simple replacement of the parts.<\/p>\n<p>I searched further and found references to two very good sources of information<\/p>\n<p><a style=\"color: #ffcc00;\" href=\"http:\/\/www.retro.co.za\/zs1ke\/FT-290R\/ZS1KE-display\/\">ZS1KE\u2019s reverse engineering design <\/a>and Dave Crump G8GKQD article in Radcom, December 2016<\/p>\n<p>Both of these were very informative about how the display is updated but obtaining the displays was challenging so I descried to do my own redesign based on cheap Arduino and OLED display.<\/p>\n<h4>Design<\/h4>\n<p>The display is constantly updated from the FT290R microprocessor, and the display data is delivered over a 4-bit bus in something similar to ASCII.<\/p>\n<p>My biggest challenge was that I wasn\u2019t sure that the simple Arduino could keep up with the refresh rate of the display updates. It turned out that it wasn\u2019t a problem at all.<\/p>\n<p>I also wanted a cheap and flexible design so that elements of customisation would be possible, and the Arduino seemed ideal for that.<\/p>\n<h4>Circuit<\/h4>\n<p>The display is constantly updated from the FT290R microprocessor, and the display data is delivered over a 4-bit bus in something similar to ASCII.<\/p>\n<p><style>\/*! elementor - v3.6.6 - 08-06-2022 *\/<br \/>\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2023\/04\/download.jpg\" sizes=\"auto, (max-width: 1753px) 100vw, 1753px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2023\/04\/download.jpg 1753w, https:\/\/g6rzr.com\/wp-content\/uploads\/2023\/04\/download-300x212.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2023\/04\/download-1024x724.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2023\/04\/download-768x543.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2023\/04\/download-1536x1087.jpg 1536w\" alt=\"\" width=\"1753\" height=\"1240\" \/><\/p>\n<p>The connections to the OLED module are very standard and utilise the I2C protocol. At the time of writing these are available from Amazon at \u00a34.99 for three.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-2.png\" alt=\"\" width=\"294\" height=\"98\" \/><\/p>\n<p>The Arduino\u2019s I used were 16MHz ATmega328P Micro Controller, Nano V3 also pretty inexpensive at \u00a310.99 from Amazon or much less from Aliexpress.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-3.png\" alt=\"\" width=\"223\" height=\"248\" \/><\/p>\n<p>Get the ones with unsoldered headers, you won\u2019t need the pins for this project, in fact it wouldn\u2019t fit in small space in the FT290R.<\/p>\n<p>As you can see from the circuit, I added a white LED to replace the incandescent lamp that is also a known failure on the FT290R and a real pain to replace. More about how to install that later, but I decided that I might as well have it under control from the Arduino, the software currently turns it on shortly after startup, but you could modify this as you see fit.<\/p>\n<h4>FT290R Disassembly<\/h4>\n<p>I followed <a href=\"http:\/\/www.gw6gw.co.uk\/files\/ft290r_bulb_replacement.pdf\">G0GRE\u2019s useful disassembly guide<\/a>.<\/p>\n<p>Clearly in this case we are not only replacing the bulb (as we completely changing the display the bulb is on the display board so needs to be replaced) the disassembly instructions are handy nevertheless.<\/p>\n<h4>Display Board<\/h4>\n<p>For this modification I found it easier to do away with the original display PCB and LCD see below:<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-4-1024x487.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-4-1024x487.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-4-300x143.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-4-768x365.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-4.jpg 1200w\" alt=\"\" width=\"1024\" height=\"487\" \/>\n<figcaption>Display board (component side)<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-5-1024x605.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-5-1024x605.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-5-300x177.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-5-768x454.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-5.jpg 1200w\" alt=\"\" width=\"1024\" height=\"605\" \/>\n<figcaption>Display board (LCD side)<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-6-1024x480.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-6-1024x480.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-6-300x141.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-6-768x360.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-6.jpg 1200w\" alt=\"\" width=\"1024\" height=\"480\" \/>\n<figcaption>LCD<\/figcaption>\n<\/figure>\n<p>For this replacement project all of these parts are discarded but I used the PCB as a template to make a new OLED mounting board our of a bit of copper clad board as follows:<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-7.jpg\" sizes=\"auto, (max-width: 774px) 100vw, 774px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-7.jpg 774w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-7-300x170.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-7-768x435.jpg 768w\" alt=\"\" width=\"774\" height=\"438\" \/>\n<figcaption>Use original board as a template<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-8.jpg\" sizes=\"auto, (max-width: 771px) 100vw, 771px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-8.jpg 771w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-8-300x177.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-8-768x454.jpg 768w\" alt=\"\" width=\"771\" height=\"456\" \/>\n<figcaption>Trace around it<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-9.jpg\" sizes=\"auto, (max-width: 890px) 100vw, 890px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-9.jpg 890w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-9-300x153.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-9-768x391.jpg 768w\" alt=\"\" width=\"890\" height=\"453\" \/>\n<figcaption>and create a \u2018plain\u2019 replacement<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigle-img-10-1024x407.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigle-img-10-1024x407.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigle-img-10-300x119.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigle-img-10-768x305.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigle-img-10.jpg 1088w\" alt=\"\" width=\"1024\" height=\"407\" \/>\n<figcaption>Make sure it fits with the plastic surround (don\u2019t lose the plastic lens)<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-11.jpg\" sizes=\"auto, (max-width: 626px) 100vw, 626px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-11.jpg 626w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/nigel-img-11-300x288.jpg 300w\" alt=\"\" width=\"626\" height=\"600\" \/>\n<figcaption>Now position the OLED in the middle of the new board, I found a couple of small balls of blu-tak perfect for this, especially for getting the height and alignment right.<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture12.jpg\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture12.jpg 852w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture12-300x160.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture12-768x409.jpg 768w\" alt=\"\" width=\"852\" height=\"454\" \/>\n<figcaption>Line it up by eye<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture13.jpg\" sizes=\"auto, (max-width: 961px) 100vw, 961px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture13.jpg 961w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture13-300x145.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture13-768x372.jpg 768w\" alt=\"\" width=\"961\" height=\"466\" \/>\n<figcaption>Then check it with the bezel<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture14.jpg\" sizes=\"auto, (max-width: 962px) 100vw, 962px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture14.jpg 962w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture14-300x119.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture14-768x303.jpg 768w\" alt=\"\" width=\"962\" height=\"380\" \/>\n<figcaption>Once you are happy with it glue it in place.<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture15.jpg\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture15.jpg 960w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture15-300x169.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture15-768x432.jpg 768w\" alt=\"\" width=\"960\" height=\"540\" \/>\n<figcaption>I managed to buy some thin tinted plastic sheet<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture16.jpg\" sizes=\"auto, (max-width: 972px) 100vw, 972px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture16.jpg 972w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture16-300x278.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture16-768x711.jpg 768w\" alt=\"\" width=\"972\" height=\"900\" \/>\n<figcaption>Made a darkened lens<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture17-1024x475.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture17-1024x475.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture17-300x139.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture17-768x356.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture17.jpg 1123w\" alt=\"\" width=\"1024\" height=\"475\" \/>\n<figcaption>Solder the cables and a bit of black tape to stop it showing through<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture18-1024x479.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture18-1024x479.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture18-300x140.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture18-768x359.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture18.jpg 1122w\" alt=\"\" width=\"1024\" height=\"479\" \/>\n<figcaption>New display is complete!<\/figcaption>\n<\/figure>\n<h4>Connecting to the FT290<\/h4>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture19-732x1024.jpg\" sizes=\"auto, (max-width: 732px) 100vw, 732px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture19-732x1024.jpg 732w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture19-214x300.jpg 214w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture19-768x1075.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture19-1098x1536.jpg 1098w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture19.jpg 1169w\" alt=\"\" width=\"732\" height=\"1024\" \/>\n<figcaption>Find the keyboard unit PB-2238 P01 9 pin connector.<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture20-1024x703.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture20-1024x703.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture20-300x206.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture20-768x527.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture20.jpg 1200w\" alt=\"\" width=\"1024\" height=\"703\" \/>\n<figcaption>Snip off the yellow, purple and orange connections leaving the following: Pin 9 R40 Green, Pin 8 STD Brown, Pin 7 CE Red, Pin 4 R41 Blue, Pin 3 R42 White, Pin 2 R43 Grey<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture21-1024x589.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture21-1024x589.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture21-300x173.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture21-768x442.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture21.jpg 1200w\" alt=\"\" width=\"1024\" height=\"589\" \/>\n<figcaption>Connect to the Arduino<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture22-1024x639.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture22-1024x639.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture22-300x187.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture22-768x479.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture22.jpg 1200w\" alt=\"\" width=\"1024\" height=\"639\" \/>\n<figcaption>Tap into 5v (green wire, pin 4) P03 on the keyboard unit and ground at any solderable point on the chassis.<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture23-1024x444.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture23-1024x444.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture23-300x130.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture23-768x333.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture23.jpg 1200w\" alt=\"\" width=\"1024\" height=\"444\" \/>\n<figcaption>Connect the OLED and white meter LED via 100 ohms to D9<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture24.jpg\" sizes=\"auto, (max-width: 838px) 100vw, 838px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture24.jpg 838w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture24-300x207.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture24-768x531.jpg 768w\" alt=\"\" width=\"838\" height=\"579\" \/>\n<figcaption>Add a 10uF decoupling capacitor on the underside of the Arduino.<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture25-1024x598.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture25-1024x598.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture25-300x175.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture25-768x449.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture25.jpg 1200w\" alt=\"\" width=\"1024\" height=\"598\" \/>\n<figcaption>Make an insulating pouch out of a bit of plastic sheet<\/figcaption>\n<\/figure>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture26.png\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture26.png 940w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture26-300x169.png 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture26-768x432.png 768w\" alt=\"\" width=\"940\" height=\"529\" \/>\n<figcaption>Tuck the new assembly between the two front boards.<\/figcaption>\n<\/figure>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture27.png\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture27.png 940w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture27-300x169.png 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture27-768x432.png 768w\" alt=\"\" width=\"940\" height=\"529\" \/><\/p>\n<h4>The finished article<\/h4>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture28-1024x577.jpg\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture28-1024x577.jpg 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture28-300x169.jpg 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture28-768x433.jpg 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture28.jpg 1379w\" alt=\"\" width=\"1024\" height=\"577\" \/>\n<figcaption>Reassemble the case and its done!<\/figcaption>\n<\/figure>\n<h4>How it works<\/h4>\n<p>Display data is sent to the FT290R display in pairs of 4 bits (nibbles).<\/p>\n<p>Each byte (pair of nibbles) is available when the CE bit is positive and is clocked into the Arduino with the falling edge of STD. You can see the data pairs in the diagram below where the STD pulses are close together.<\/p>\n<p>The wider CE pulse spans the 12 STD pulses, representing 12 nibbles or 6 bytes<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Capture-1024x285.png\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" srcset=\"https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Capture-1024x285.png 1024w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Capture-300x84.png 300w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Capture-768x214.png 768w, https:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Capture.png 1465w\" alt=\"\" width=\"1024\" height=\"285\" \/><\/p>\n<p>So, the above traces from my logic analyser represent the following sequence reading from left to right:<\/p>\n<p>Nibble 1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Nibble 2<\/p>\n<p>Byte 6\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0011\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0101\u00a0 \u00a0 \u00a0 5<\/p>\n<p>Byte 5\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1101\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0111\u00a0 \u00a0 \u00a0 7<\/p>\n<p>Byte 4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0011\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0011\u00a0 \u00a0 \u00a0 3\u00a0\u00a0\u00a0 This represents<\/p>\n<p>Byte 3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0011\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0100\u00a0 \u00a0 \u00a0 4\u00a0\u00a0\u00a0 5.437.5 on the<\/p>\n<p>Byte 2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1101\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0101\u00a0 \u00a0 \u00a0 5\u00a0\u00a0\u00a0 display<\/p>\n<p>Byte 1\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 0010\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0000\u00a0 \u00a0 \u00a0 0<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2022\/09\/Picture30.png\" alt=\"\" width=\"112\" height=\"155\" \/><\/p>\n<h4>Conclusion<\/h4>\n<p>I really enjoyed doing this project. It was great to be able to repair the FT290R I had. I have subsequently done a couple more.<\/p>\n<p>If you manage to get your FT290 working please send me some photos for my gallery!<\/p>\n<p>I am happy to answer questions by email: <a style=\"color: #ff9900;\" href=\"mailto:nigel@rissoles.com\">nigel@rissoles.com<\/a><\/p>\n<p>73\u2019s G6RZR<\/p>\n<p>The code can be downloaded below<\/p>\n\n\n<div class=\"wp-block-file\"><a href=\"http:\/\/g6rzr.com\/wp-content\/uploads\/2024\/10\/FT290DisplayProjectforArduinoNanoVersion2.0.zip\" class=\"wp-block-file__button wp-element-button\" download>Download Code Here<\/a><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction I am the proud owner of an FT290R which I bought in the 80\u2019s when I was first licenced as a G6. I think it\u2019s an excellent radio, so I bought another one to have in an alternative location. It had a display fault, but I am an electronics engineer by trade so I &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/g6rzr.com\/?page_id=1281\"> <span class=\"screen-reader-text\">A replacement display for the ft290r mk I<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","footnotes":""},"class_list":["post-1281","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/g6rzr.com\/index.php?rest_route=\/wp\/v2\/pages\/1281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/g6rzr.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/g6rzr.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/g6rzr.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/g6rzr.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1281"}],"version-history":[{"count":48,"href":"https:\/\/g6rzr.com\/index.php?rest_route=\/wp\/v2\/pages\/1281\/revisions"}],"predecessor-version":[{"id":1389,"href":"https:\/\/g6rzr.com\/index.php?rest_route=\/wp\/v2\/pages\/1281\/revisions\/1389"}],"wp:attachment":[{"href":"https:\/\/g6rzr.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}