{"id":748,"date":"2011-09-27T05:55:42","date_gmt":"2011-09-27T10:55:42","guid":{"rendered":"http:\/\/scope-eye.net\/?p=748"},"modified":"2015-12-15T05:01:13","modified_gmt":"2015-12-15T10:01:13","slug":"the-only-biab-with-the-means","status":"publish","type":"post","link":"https:\/\/scope-eye.net\/?p=748","title":{"rendered":"The only BIAB with the means&#8230;"},"content":{"rendered":"<p>I&#8217;ve been wanting to learn music for a while now &#8211; I want to be able to create music for other projects (games or animations, things like that) and also I think it&#8217;s just a good skill to have, I want music to be part of my household in general. As I&#8217;m learning more about music and how to play it, I&#8217;m also building a little collection of gear to use in musical projects. My first acquisition along these lines is the Yamaha QY-70 synthesizer. It&#8217;s a portable MIDI workstation released back in 1997. I plan to give it a new paint job, but first I wanted to give it a functional upgrade &#8211; a backlight for its LCD.<\/p>\n<p><a href=\"\/model-data\/QY70_mod\/QY70_20110927_final_2.jpeg\" title=\"Behold! Optic Blast!\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_final_2_thumb.jpeg\" \/><\/a><br \/>\n<!--more--><br \/>\nThe Korg DS-10 software I got is an emulation of an analog synthesizer &#8211; specifically it&#8217;s supposed to be similar to Korg&#8217;s MS line of analog synths. It&#8217;s a fun piece of software and I want to do more with it, but it&#8217;s a bit limited in terms of polyphony.  Anyway, the people who made DS-10 formed a company called Detune and released another &#8220;Korg&#8221; product, available only in Japan &#8211; Korg M01. M01 is a polyphonic sequencer with a full set of general MIDI instruments based on sounds from the Korg M1. So while DS-10 gives you the ability to experiment with sounds, M01 is better for rich instrumental arrangements and such.<\/p>\n<p>The idea of getting Korg M01 was very appealing to me &#8211; but a few things held me back. Since it&#8217;s only available in Japan, I&#8217;d have to import it, bringing the total cost of the software to the $90-$100 range &#8211; high enough to make me think twice before buying it. And since it&#8217;s on a game console, it&#8217;s a closed platform: data storage is limited, it&#8217;s not possible to hook up to a MIDI controller to enter data, and there&#8217;s no direct way to back up and restore saved data. Plus the input is limited to the touchscreen (which isn&#8217;t multi-touch) and the game controls. From my experience with DS-10 I didn&#8217;t feel like that was a great way to work. If I were to go with a software solution, there are iPod Touch apps that cost a lot less and benefit from the multi-touch screen. Or I could get some actual hardware.<\/p>\n<p>And this brings me back to the QY70. Of course I was familiar with it through Freezepop, and since it&#8217;s kind of old at this point I figured I could get a pretty good deal on one. It&#8217;s bulky, but portable, it has a two-octave keyboard (not a great keyboard, but it gets the job done) &#8211; and I felt it could be a good fit for me. As I&#8217;m still just learning to play piano I find it&#8217;s nice to have an instrument that&#8217;s just kicking around to experiment with. So having the QY at hand is great for that kind of random experimentation.<\/p>\n<p>Anyway, on to the backlight modification. Before I started the project, I did a bit of research into the kinds of lighting modifications people had done with the QY. I found <a href=\"http:\/\/www.webrocks.nl\/projects_qy70.php\">this modification<\/a>, using LEDs to shine light into the LCD glass from the sides. Early on I considered using this method, perhaps with a larger number of LEDs and additional holes cut in the metal frame around the LCD to let the light in &#8211; but it seemed to me that this would be too much power for too little yield. I was surprised to learn that people also used modification kits for the old Game Boy Advance on the QY-70. I actually bought and installed one of those kits into my old GBA long ago (it was the Triton Labs Afterburner kit, which had a huge following and may have actually prompted the development of the GBA SP) &#8211; these are transparent side-lit light guides that are installed in front of the LCD screen. On the Game Boy Advance, the Afterburner was actually quite effective, though the colors tended to wash out. Assuming one can still obtain these kits, I think the trade-offs are only slightly better than the side-lighting modification: you get better coverage of the screen, but it&#8217;s still not consistent coverage &#8211; you&#8217;ve got hot spots and dark spots &#8211; and you have to run two or more LEDs to do it.<\/p>\n<p>Ultimately I decided the best way to go would be to use an electroluminescent backlight. EL lamps aren&#8217;t terribly bright, but they give you enough light to see the screen &#8211; and the distribution of light is very even across the panel. EL lamps do require an inverter to produce their high-voltage AC, and I was concerned about the possibility that this would result in audible noise, or RF noise picked up by the QY&#8217;s audio circuits. Another problem was that I couldn&#8217;t find a place to buy an EL inverter that would be small enough to easily fit into the QY70. Also, I had no idea about how to proceed with such a modification. Putting the EL panel behind an LCD is simple enough &#8211; but non-backlit LCDs are backed with a foil reflector that won&#8217;t let light pass through. Would the LCD still work if the reflector were removed? Did I need to replace it with anything? (Backlit LCDs normally have a semi-transparent reflective layer &#8211; but I had no idea where to get one.) Would I still be able to see the LCD with the backlight off? I had no answers to these questions.<\/p>\n<p>Finding the answers turned out to be a problem of coming up with the right search keywords. I knew that someone, somewhere must have done this kind of modification in the past. But probably it&#8217;d be some time ago (how many devices these days are manufactured with black-and-white, non-backlit LCDs? How many of those do hobbyists modify for backlights?) &#8211; I wasn&#8217;t sure the info would still be on the web. Searching for things like &#8220;LCD backlight modification&#8221; was mostly fruitless, so I tried to think of specific pieces of gear that likely would have had enough technically-minded fans that the info would be out there. My first guess was the HP48 calculator, which was popular with engineers when I was in school. I didn&#8217;t find info about backlighting the HP48, but the search did turn up a page about <a href=\"http:\/\/www.hermocom.com\/hplx\/view-all-hp-palmtop-articles\/44-backlight\">backlighting HP&#8217;s old handheld DOS PCs<\/a>. This page was incredibly enlightening. It detailed the whole process: peeling off the reflective layer, dealing with the glue underneath, and comparison shots showing the slight loss of display contrast when the backlight was off. It also led me to <a href=\"http:\/\/www.backlight4you.com\/\">Backlight 4 You<\/a>, a shop selling backlight conversion kits for various devices, as well as an EL inverter board that was both small, and promised low amounts of noise when in operation. So I ordered an inverter board and an EL panel and planned out the modification.<\/p>\n<h3>Initial Exploration<\/h3>\n<p>Prior to making any changes I wanted to open up the machine and look around. It&#8217;s often a good idea, when hacking on a piece of gear, to take photos along the way. If I screw up along the way somewhere, I can refer back to the photos to see how it&#8217;s supposed to look. Plus it makes for a good comparison, before and after. I don&#8217;t have a second QY so at the moment this is the only comparison I can provide between the unmodified machine and the QY after the backlight mod.<br \/>\n<a href=\"\/model-data\/QY70_mod\/QY70_20110927_start_1.jpeg\" title=\"My QY as it looked before the mod\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_start_1_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_start_2.jpeg\" title=\"With LCD on so we have a point for comparison...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_start_2_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_start_3.jpeg\" title=\"Opened, showing the main board\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_start_3_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_start_4.jpeg\" title=\"Other side of main board, and RF shield\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_start_4_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_start_5.jpeg\" title=\"With the shield removed, you can see the Optrex LCD display and the back of the keypad.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_start_5_thumb.jpeg\" \/><\/a><\/p>\n<h3>Reading the Keypad<\/h3>\n<p>It&#8217;s not enough to just install a backlight, you need a way to turn it on and off. At least, I think so. I could have added a switch, but it seemed to me that it&#8217;d be better to use the keypad to turn it on and off. This meant I needed to add a microcontroller to the QY, which could monitor the keypad matrix as the QY scans it, so it can pick out the bits of information it wants. I considered a few different ways of triggering the backlight &#8211; holding down this key, or chording these two keys, etc. &#8211; ultimately I settled on Shift-F3.  Shift-F1, Shift-F2, and Shift-F4 are all used by the QY to perform different tasks, but Shift-F3 is unused and the machine apparently ignores that particular key combination &#8211; so it was perfect for my needs. It took me a while to get the keypad monitoring code to work, however &#8211; I seriously underestimated how fast the keypad scan is done.  I thought each row would be scanned for a millisecond or two, actually it&#8217;s more like a few microseconds. I needed to optimize my code for speed. The first version (which didn&#8217;t work) was an interrupt-driven program that put the microcontroller to sleep while waiting for pin states to change &#8211; that was slow enough that, when I got it &#8220;working&#8221;, it only worked about half the time. So I ditched the sleep code and the interrupt system and built a tight loop, first monitoring the keypad row containing the SHIFT key, and then the one for the F3 key. That version worked beautifully.<br \/>\n<a href=\"\/model-data\/QY70_mod\/QY70_20110927_keypad_1.jpeg\" title=\"An early attempt to figure out where the EL driver board would live.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_keypad_1_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_keypad_2.jpeg\" title=\"The back side of the keypad PCB again. I had to study this for a while to map out the keypad matrix.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_keypad_2_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_keypad_3.jpeg\" title=\"Front side of the keypad PCB\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_keypad_3_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_keypad_5.jpeg\" title=\"The little PCB is my own design, hosting a PIC. This PIC listens in while the QY reads the keypad matrix, so it can turn on the backlight when I hit Shift-F3\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_keypad_5_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_keypad_6.jpeg\" title=\"I had some trouble with the PIC program, mainly because I underestimated the speed at which the matrix would be read. I had to spend a couple days getting it to work.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_keypad_6_thumb.jpeg\" \/><\/a><\/p>\n<h3>Installing the EL Inverter<\/h3>\n<p>With the keypad issue resolved, it was time to deal with the EL panel itself &#8211; get the panel and driver situated in their new home, wire them up, etc. After a little while I found it convenient to remove the LCD from its module to get it out of the way (among other things I was afraid a stray blob of solder would land on the panel, and melt a hole in the front polarizer or something&#8230;) &#8211; when everything was wired up, I booted up the QY to see if I could turn on the backlight using Shift-F3.<br \/>\n<a href=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_1.jpeg\" title=\"The pliers act as a heatsink, keeping the panel itself from getting heated up when I solder a wire on.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_1_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_2.jpeg\" title=\"Both wires attached, I prepare to mount the EL panel in its new home.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_2_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_3.jpeg\" title=\"EL panel wires routed through a convenient hole, contacts covered with electrical tape to prevent a short.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_3_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_4.jpeg\" title=\"I wanted to test the setup before putting the LCD back in...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_4_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_5.jpeg\" title=\"EL panel activated by Shift-F3 - success!\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_5_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_6.jpeg\" title=\"Another test under other lighting conditions...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_6_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_7.jpeg\" title=\"Looks pretty good...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_el_driver_7_thumb.jpeg\" \/><\/a><\/p>\n<h3>Preparing the LCD<\/h3>\n<p>At this point, just about everything was done except preparing the LCD itself. This part is where it gets scary. This is the &#8220;point of no return&#8221; (well, almost&#8230;) &#8211; at this point I couldn&#8217;t accomplish anything more until I removed the reflective layer from the back of the LCD &#8211; and once removed, it probably wouldn&#8217;t be possible to replace it. Removing the reflective layer was a bit scary, because physical stress on the LCD panel caused the display to go all wonky for a while. I figured it&#8217;d probably straighten itself out, but I wasn&#8217;t 100% sure of this. I felt there was at least some possibility at this point that I&#8217;d just killed my poor QY&#8217;s LCD.<br \/>\nOnce the reflective layer was off, there was a bit of a fiasco&#8230; See, from what I&#8217;ve read online, in projects like this, usually you need to do something about the adhesive that&#8217;s left behind after you remove the reflective layer. Some adhesives you can scrub off with alcohol, others you can&#8217;t really. It seemed like mine was probably the latter &#8211; which I&#8217;d learned are best handled by sticking a clear layer down onto the adhesive (so it doesn&#8217;t adhere to your backlight and give you irregular spots) &#8211; I&#8217;d gotten just such a clear layer as a bonus from backlight4you.com, but I decided to see if I could just take the adhesive off with alcohol. This wasn&#8217;t a great decision, frankly it made a slight mess of my LCD&#8217;s surface. And then I ruined the clear sheet I&#8217;d gotten from backlight4you while trying to clean off fingerprints I&#8217;d carelessly deposited&#8230;  Whoops&#8230;  So I stuck some frisket film on the back instead.<br \/>\n<strong>For anyone attempting this modification:<\/strong> Since I did this I have learned that conventional wisdom when removing films from LCD displays is to pull them off in a direction <strong>parallel<\/strong> to the surface of the LCD, as this minimizes the physical stress on the LCD glass. I didn&#8217;t do this. I don&#8217;t know if pulling parallel to the surface of the display would have prevented the display from having all those weird artifacts during the process, or to what extent I really was in danger of destroying the display &#8211; but it seems to me that it&#8217;s good advice. Next time I&#8217;ll do it that way.<br \/>\n<a href=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_1.jpeg\" title=\"The LCD, removed from its module. Note I've already peeled away some of the reflective backing on the left.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_1_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_2.jpeg\" title=\"Get the idea? This layer has got to go.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_2_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_3.jpeg\" title=\"That looks bad... I wonder if it'll go away?\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_3_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_4.jpeg\" title=\"Shit, I guess I killed it!\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_4_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_5.jpeg\" title=\"If I weren't so cool I'd be panicking right now!\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_5_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_6.jpeg\" title=\"With the reflector off, I let the LCD sit, curious to see if the effect will go away.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_6_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_7.jpeg\" title=\"Mos'ly gone.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_7_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_8.jpeg\" title=\"Mos'ly...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_8_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_9.jpeg\" title=\"With my effort to remove the backing glue a failure, and my free clear foil ruined, I reached for an alternative...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_9_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_10.jpeg\" title=\"I introduced a few blemishes. See that scratch in the top-left quadrant? Fortunately none of this affects the display much.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_lcd_prep_10_thumb.jpeg\" \/><\/a><\/p>\n<h3>Rebuilding the QY<\/h3>\n<p>Finally, it seemed everything was in order, and it was time to reassemble the QY. The main challenge that remained was putting the LCD back on its module. This is a bit tough because the LCD has to make contact with a bunch of pads on the PCB &#8211; but it&#8217;s not easy to see where precisely the LCD has to go relative to those pads. If you look at the rubber bits that connect the LCD to the PCB, you can see the impressions of where those pads made contact&#8230; Instructions online suggested marking the LCD before removing it from the module so you have a reference for how to re-align it again. I didn&#8217;t do that&#8230; Probably should have. But this was probably the third or fourth time I&#8217;d disassembled the QY&#8217;s LCD, and each time I got it back together with a little careful alignment and a little trial and error. It took me a few tries this time around, fortunately this time I took some photos to share, to show what goes wrong if you don&#8217;t get the LCD reseated properly&#8230; And how the LCD can still be OK in the end after all this scary stuff. :)<br \/>\n<a href=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_1.jpeg\" title=\"With the EL driver and keypad scanner all wired up, and the LCD back in place, I start taping wires down...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_1_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_2.jpeg\" title=\"First test of the reassembled LCD. You know, I think it might not be seated quite right... I can tell from some of the pixels.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_2_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_3.jpeg\" title=\"I reseated the LCD and tried again...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_3_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_4.jpeg\" title=\"Third attempt looks pretty good, except...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_4_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_5.jpeg\" title=\"Look what happens when I dial the contrast down! That's no good...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_5_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_6.jpeg\" title=\"And when I dial the contrast up...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_6_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_7.jpeg\" title=\"On the fourth attempt it seemed to work right again.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_7_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_8.jpeg\" title=\"LCD issues resolved, I again prepare to close the device...\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_rebuild_8_thumb.jpeg\" \/><\/a><\/p>\n<h3>Final<\/h3>\n<p>In the end, I think it turned out pretty good. Without another QY to compare it to I couldn&#8217;t tell you to what extent the removal of the reflective layer has hurt screen visibility. Not much, I&#8217;d say. It may even be better with the yellow behind it&#8230; But it&#8217;s hard to say for sure without a direct side-by-side comparison. With the yellow EL (off) behind it, the screen takes on kind of a pea-green look, like the original Game Boy. The EL inverter does produce some audible noise, but as far as I can tell it&#8217;s not affecting the QY&#8217;s audio output at all. I hooked it up to my speakers and turned the volume up, and turned the backlight on, and didn&#8217;t hear any hum from the speakers&#8230; Though I&#8217;m no audiophile. And the backlight lights up. Great! Except about five minutes after I took the last of the photos, it started going flaky and then stopped working. :) I think it may be a bad connection on the EL inverter board: I had to rearrange all the connections on the board to optimize for the available space, and one of the solder pads lifted off because I was careless when removing the inductor&#8230; I patched it up, of course, but it could be that a reliability issue with that fix is causing the failure. Or it could just be that the wires to the EL panel have broken at one of the solder joints, or that the EL driver is shorting itself out against the RF shield. I&#8217;ll know soon enough&#8230;<br \/>\n(It turns out the backlight was failing because of a connection problem between the EL panel and one of its metal leads. I had to arrange to put a little pressure on it, to keep the lead in contact properly. I&#8217;m not sure why it wound up having that problem&#8230;  It could be physical stress that was placed on the panel at various times, or it could be that the heat of soldering the wires on damaged the connection. At any rate, hopefully it stays fixed&#8230;)<br \/>\n<a href=\"\/model-data\/QY70_mod\/QY70_20110927_final_1.jpeg\" title=\"See that little dark spot? I'm not really sure what caused it, but I guess it's there now.\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_final_1_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_final_4.jpeg\" title=\"Room lights slightly lowered, backlight off\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_final_4_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_final_3.jpeg\" title=\"Room lights slightly lowered, backlight on\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_final_3_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/QY70_mod\/QY70_20110927_final_2.jpeg\" title=\"Room lights very low, backlight on\"><img decoding=\"async\" src=\"\/model-data\/QY70_mod\/QY70_20110927_final_2_thumb.jpeg\" \/><\/a><\/p>\n<p><strong>(Bonus Material)<\/strong><br \/>\nIn case anyone is interested, here is the <a href=\"\/model-data\/QY70_mod\/keypad.asm\">PIC assembly source code<\/a> for the keypad scanner as well as <a href=\"\/model-data\/QY70_mod\/keypad_layout.txt\">the layout of the QY70 keypad matrix<\/a>. The assembly was written to work on a PIC16F688, though it should work on most PIC16F series with minimal alteration. (The keypad scanning code doesn&#8217;t use pin change interrupts or anything like that &#8211; it just busy-cycles trying to read one of the two pins, and then (upon success) the other.  This was necessary in order to get it working reliably.)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been wanting to learn music for a while now &#8211; I want to be able to create music for other projects (games or animations, things like that) and also I think it&#8217;s just a good skill to have, I want music to be part of my household in general. As I&#8217;m learning more about [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41,63],"tags":[65,64],"_links":{"self":[{"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/posts\/748"}],"collection":[{"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/scope-eye.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=748"}],"version-history":[{"count":11,"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/posts\/748\/revisions"}],"predecessor-version":[{"id":979,"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/posts\/748\/revisions\/979"}],"wp:attachment":[{"href":"https:\/\/scope-eye.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scope-eye.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scope-eye.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}