{"id":429,"date":"2026-04-18T09:27:48","date_gmt":"2026-04-18T09:27:48","guid":{"rendered":"https:\/\/www.maddox.pro\/?p=429"},"modified":"2026-04-18T09:39:40","modified_gmt":"2026-04-18T09:39:40","slug":"lt6502b","status":"publish","type":"post","link":"https:\/\/www.maddox.pro\/?p=429","title":{"rendered":"LT6502b"},"content":{"rendered":"\n<p>As much as I love my 6502 laptop, it felt a bit &#8220;chunky&#8221; at nearly 75mm deep and I really wanted a bigger screen as 9&#8243; is a bit teeny.<\/p>\n\n\n\n<p>So I set about improving on that and the LT6502b project is underway, The main differences are;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No expansion port<\/li>\n\n\n\n<li>10.1&#8243; 1024 x 600 screen<\/li>\n\n\n\n<li>On board SID chip (nanoSwinSID)<\/li>\n\n\n\n<li>on board WiFi Modem<\/li>\n\n\n\n<li>much thinner (~30mm)<\/li>\n<\/ul>\n\n\n\n<p>Things had been going very well;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"790\" src=\"https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/MainPCB_20260407-1024x790.jpg\" alt=\"LT6502b main PCB\" class=\"wp-image-430\" srcset=\"https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/MainPCB_20260407-1024x790.jpg 1024w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/MainPCB_20260407-300x231.jpg 300w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/MainPCB_20260407-768x593.jpg 768w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/MainPCB_20260407-1536x1185.jpg 1536w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/MainPCB_20260407-2048x1580.jpg 2048w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/MainPCB_20260407-1140x880.jpg 1140w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Compact flash working, console working, beeper working, 6522 VIA working and display working!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"655\" src=\"https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/Mandelbrot_31itt_1024x600-1024x655.jpeg\" alt=\"LT6502b Mandelbrot test\" class=\"wp-image-431\" srcset=\"https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/Mandelbrot_31itt_1024x600-1024x655.jpeg 1024w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/Mandelbrot_31itt_1024x600-300x192.jpeg 300w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/Mandelbrot_31itt_1024x600-768x491.jpeg 768w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/Mandelbrot_31itt_1024x600-1536x983.jpeg 1536w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/Mandelbrot_31itt_1024x600-2048x1310.jpeg 2048w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/Mandelbrot_31itt_1024x600-1140x729.jpeg 1140w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Here is a 1024 x 600 Mandelbrot with 32 iterations, looks fabulous.<\/p>\n\n\n\n<p>Getting the screen working took the longest time, the new driver chip (RA8889) is way more complex than the previous RA8875 one, but was needed for the higher resolution\/larger screen. That probably took me about 2 weeks to get working properly.<\/p>\n\n\n\n<p>Now the problem is that I  rather naively assumed that my ATMEGA644P I use for the keyboard scanning would be able to respond to a request to read data from the CPU and put it on the data bus quickly enough to work, oh boy was I wrong \ud83d\ude41<br>The AVR takes 5 clock cycles to respond to an interrupt and 5 to exit, even if I do the clock stretch thing down to 15:1 that still only leaves one or two cycles to get the data, enable the output on that port and put the data on the port&#8230; then I have to make the port input again at exactly the right moment.<br>The reason I did this is that I didn&#8217;t want to use the 6551 VIA as it&#8217;s only available in DIP format and that takes a lot of space on the PCB. What I should&#8217;ve done was use something like a 16C752, hey ho, lesson learned.<\/p>\n\n\n\n<p>Now I could respin the PCB, but that&#8217;s extra cost, wasted time and money in getting this one to where it is. So I&#8217;m trying something different, I fortunately routed two pins to the main CPLD for control lines, these happen to be the unused UART pins on the AVR, so I&#8217;m trying to fit a UART inside the CPLD (you know I&#8217;m mad, right?).<\/p>\n\n\n\n<p>It&#8217;s been a challenge, so far I&#8217;ve managed to get Serial data in and into a register.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"545\" src=\"https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/UARTCPLD-1024x545.png\" alt=\"\" class=\"wp-image-432\" srcset=\"https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/UARTCPLD-1024x545.png 1024w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/UARTCPLD-300x160.png 300w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/UARTCPLD-768x409.png 768w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/UARTCPLD-1536x817.png 1536w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/UARTCPLD-1140x606.png 1140w, https:\/\/www.maddox.pro\/wp-content\/uploads\/2026\/04\/UARTCPLD.png 1724w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>But it&#8217;s been really difficult to get this far. Not having a clock to synchronise things to is difficult. I&#8217;ve not tried the transmit yet, so there is a long way to go. <\/p>\n\n\n\n<p>If this fails then I will have to respin the PCB, which is something I really don&#8217;t want to have to do.<\/p>\n\n\n\n<p>Also I&#8217;ve moved out of Github due to the rampant AI rubbish being pushed on people, so I&#8217;m now on <a href=\"https:\/\/codeberg.org\/TechPaula\">Codeberg &#8211; here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As much as I love my 6502 laptop, it felt a bit &#8220;chunky&#8221; at nearly 75mm deep and I really wanted a bigger screen as 9&#8243; is a bit teeny. So I set about improving on that and the LT6502b project is underway, The main differences are; Things had been going very well; Compact flash working, console working, beeper working, 6522 VIA working and display working! Here is a 1024 x 600 Mandelbrot with 32 iterations, looks fabulous. Getting the screen working took the longest time, the new driver chip (RA8889) is way more complex than the previous RA8875 one, but was needed for the higher resolution\/larger screen. That probably took me about 2 weeks to get working properly. Now the problem is that I rather naively assumed that my ATMEGA644P I use for the keyboard scanning would be able to respond to a request to read data from the CPU and put it on the data bus quickly enough to work, oh boy was I wrong \ud83d\ude41The AVR takes 5 clock cycles to respond to an interrupt and 5 to exit, even if I do the clock stretch thing down to 15:1 that still only leaves one or two cycles to get the data, enable the output on that port and put the data on the port&#8230; then I have to make the port input again at exactly the right moment.The reason I did this is that I didn&#8217;t want to use the 6551 VIA as it&#8217;s only available in DIP format and that takes a lot of space on the PCB. What I should&#8217;ve done was use something like a 16C752, hey ho, lesson learned. Now I could respin the PCB, but that&#8217;s extra cost, wasted time and money in getting this one to where it is. So I&#8217;m trying something different, I fortunately routed two pins to the main CPLD for control lines, these happen to be the unused UART pins on the AVR, so I&#8217;m trying to fit a UART inside the CPLD (you know I&#8217;m mad, right?). It&#8217;s been a challenge, so far I&#8217;ve managed to get Serial data in and into a register. But it&#8217;s been really difficult to get this far. Not having a clock to synchronise things to is difficult. I&#8217;ve not tried the transmit yet, so there is a long way to go. If this fails then I will have to respin the PCB, which is something I really don&#8217;t want to have to do. Also I&#8217;ve moved out of Github due to the rampant AI rubbish being pushed on people, so I&#8217;m now on Codeberg &#8211; here.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[63,65,40],"tags":[59,66,31],"class_list":["post-429","post","type-post","status-publish","format-standard","hentry","category-lt6502","category-lt6502b","category-retro-computing","tag-59","tag-laptop","tag-retro-computer"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.maddox.pro\/index.php?rest_route=\/wp\/v2\/posts\/429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.maddox.pro\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.maddox.pro\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.maddox.pro\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.maddox.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=429"}],"version-history":[{"count":1,"href":"https:\/\/www.maddox.pro\/index.php?rest_route=\/wp\/v2\/posts\/429\/revisions"}],"predecessor-version":[{"id":433,"href":"https:\/\/www.maddox.pro\/index.php?rest_route=\/wp\/v2\/posts\/429\/revisions\/433"}],"wp:attachment":[{"href":"https:\/\/www.maddox.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.maddox.pro\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=429"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.maddox.pro\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}