Friday, November 22, 2024

iLoveThisMonitor - Repurposed iPad - IIc Monitor




While working on developing the A2VGA Pico IIc/IIe video cards (not to be confused with the other Apple II video cards with the A2VGA name which work in a completely different way) I had a small project in mind that would be good to have around so as to show off the video cards. I'd been slowly collecting the main components and I figured it would be a reasonably quick build. As it turned out, I was able to knock it over in a weekend (for the most part). No prototype project is complete without issues. However, I was able to get around the few issues that popped up pretty quickly.

I've been looking at using an iPad as an Apple IIc monitor, on and off, for over a decade but my previous attempts were focused on doing this by trying to feed a video signal into a working iPad. This is much easier to achieve now than it was in the past (due to newly available iPad Apps and new hardware) but this time around I had an alternate option. I had a well-used iPad3 in the cupboard whose battery had been stripped out years ago due to it swelling up and cracking open the case. If I repurposed just the LCD screen, then I could produce a more efficient solution with less display lag. As a bonus I would have the opportunity to test out a retina display, since the iPad3 was the first iPad generation to contain one.

The result is iLoveThisMonitor, a repurposed iPad into a funky IIc monitor. It turned out better than I had envisioned (for both the aesthetics and the display quality). The 9.7 inch screen is a nice fit with the dimensions of the IIc and the round corners of the screen/stand don't take away too much from the stying. It's not the best period correct looking solution out there but for the ease of construction I'm happy with it for now.



The iPad case came with plenty of scratches and dings as a result of being dropped a few times. I had no reservations about defacing it to suit my purposes. I could have found a case that enclosed the electronics, but I wanted a quick build and I also wanted the A2VGA Pico to be visible. Reusing the existing iPad case resulted in not having to worry about mounting and positioning the LCD screen in an enclosure. I like how the openness shows the functional parts of the monitor. It gives it an industrial looking edge. Especially when viewed from behind. I've left enough space so that I can easily remove the current VGA cable and use this monitor to display any other VGA or HDMI input.

This is not the first iPad to be repurposed into a monitor. There are dozens of examples online of various custom conversions to get tips and inspiration from. However, in my situation, I wanted a compact solution with an attached IIc video card, and I wanted to see how the A2VGA Pico performed when matched with a retina display. I was not disappointed.

It was difficult to get pictures of the resultant outcome. The iPad screen is very reflective and to get some decent shots of the system I resorted to taking pictures in low light. The IIc comes up ok but the screen background appears as if it is bright and glowing (not dark like it really is). I tried taking shots of just the screen in darkness and although it comes out ok, the photos I manage to get come out oversaturated. I can't get the shots of how nice it looks in person. This is probably due to my inexperience in photography and not having the right tools for the job. I guess people will get to see it when I attend Apple II enthusiast gatherings. If I do manage to work it out then I'll post some pictures at the end of this blog.


Construction:

The first step was to obtain an iPad LCD screen. I didn't need to do anything here except look in my spare parts bin. The well-used iPad was just waiting there, ready to be repurposed. I decided to reuse the case as well. Since there was not going to be enough room inside the case to mount the electronics, they would all need to be mounted externally. I was considering placing acrylic sheets over the top of the electronic boards but then decided they were going to be too much work and not really necessary for my purposes.

The most critical part came next i.e. sourcing the correct LCD controller board. To do this I took the iPad LCD screen's model number (LTN097QL01-A01) and searched online for a matching controller board. AliExpress and eBay are the main sources for these boards. Since LCD screens come with various connections and resolutions it is important to get the right controller. In my situation I came across two controllers that would do the job. The older one was made up of four PCBs (video processing board, LED power supply board, menu push button board and LCD connector board) and the new one was made up of three PCBs (the LED power supply was integrated into the LCD connector board). I chose the newer model. It was more expensive but resulted in having less components to mount.



I connected up all the electronics to make sure I could get a working device. There would have been no point in continuing if this had not worked. At first, I had the backlight working but no picture and no menu. It turned out I didn't have the tiny LCD connector cable in far enough into the adapter plug. This was my first attempt at performing this task. Luckily it did not take me long to work out what I had done wrong and I'm happy that I didn't fry anything.

Once I confirmed that I had a working system, I stripped out as much as I could from inside the iPad case (except for the LCD screen of course). This helped in making the case very light. It also resulted in the magnets being removed which is a good thing since I still use floppy disks with the IIc.

The panel needs to be powered using its own power supply. The video output port on the IIc can supply 12 volt power but it is only rated to 3.6 watts. This is enough for the A2VGA Pico card which consumes 0.3 watts however it is not enough for the LCD panel which uses roughly 5 to 9 watts depending on the brightness level.



It took me a while to work out how I was going to position the components on the case. This included the consideration of where the stand was going to be attached and hence the type of stand I was able to use. Once I committed to a layout there was no going back. The holes were drilled, and the parts started to be attached. Initially I had planned on hiding the menu push button board inside the iPad case but as I connected it up, I found that it did not fit. It may have fit if the switch bases stuck through the case but putting in small square holes into the case sounded like too much effort. I ended up mounting the board on the outside instead. I used polycarbonate screws to attach the PCBs to the iPad case. This made it very easy to trim their lengths. Trimming the lengths was important because there was not much clearance space inside the iPad enclosure.



For supporting the iPad, I picked up a tablet stand from Umart (a local PC supplier). I only needed the base and the arm so the top part was removed. It's connected to the middle of the iPad case via the Apple logo which is comprised of a thinner sheet of aluminium and a bit of plastic/acrylic. It's very flimsy so at some stage I plan on adding in a thicker aluminium sheet to obtain a sturdier fit.

I used a VGA gender changer to join the A2VGA Pico to the LCD controller. However, I didn't end up using this in the final build. This was because I could not find a version of the VGA gender changer that allowed both boards to be facing in the same direction. I ended up building a custom cable instead. This custom cable resulted in some electrical interference i.e. a small wavy pattern. The wavy pattern does not show up when using the VGA gender changer or when using a proper VGA cable. I attempted to fix the issue by adding in an alfoil shield but that did not help much. It's not a big deal but I will try and make up a better quality cable at some stage.

To finish it all off, a custom IIc video port cable was made to suit. I chose a rainbow coloured cable in this instance to keep with the retro look.


Conclusion:

Combining a premium video card with a premium LCD panel has fulfilled my goal of creating something that is going to give me the quality I was after without having use my CRT monitors. I also think the monitor will do a great job in promoting the A2VGA Pico IIc/IIe (the video cards that I have been working on for the past few years). I'm really happy with this build.

Take it easy and happy hacking.

Tuesday, July 16, 2024

A2VGA - Pico Cards - Available




The A2VGA (Pico IIc/IIe) is a video card that reads Apple IIc/IIe serial video signals and translates those into the VGA format. The difference with this card is that it attempts to preserve the unique Apple II look of analog and artifact colour that is so entwined in how the Apple II was designed and how it was displayed on the technology of the day ie CRT monitors/televisions.

I still use CRT monitors when using my Apple IIs. However, I know that this is not going to last forever. With their bulky size and the worry of breaking something every time I transport them, I wanted to find an alternate solution. I couldn't find a product with the video output that I was after, so I built my own. I've been tinkering with colour models and Apple II video for years and I have tried various cheap options with mixed results. After playing around with the Pi Pico I instantly saw its potential for it being a great fit for this solution. I couldn't resist trying it out and I'm extremely happy with the results.

The other motivation came from the Apple IIc model. On this side of the world, we received Apple IIcs (PAL) which did not come with colour output via the RCA connector. To get colour out you need a special adapter which fits into the IIc video port. These are not easy to come by. So, having an inexpensive colour solution for the IIc is greatly sought after. I'm happy to be finally helping fulfil that need. These cards allow me to cover the IIc and IIe models that I have. The IIgs is a different kettle of fish. It will require something totally different but that's a story for a future project.




Here is a screen shot comparing the currently supported colour models (HGR and DHGR). For more information please see details in the user manual.https://docs.google.com/open?id=1qFpSw4YKwObCCJ-Tfzo8wFwJZxIsIUu5

I would like to thank all those involved in helping out with this project, be it with advice on logo design, supplying equipment for me to test on / allowing me to compare competing products or with testing the final solution and helping improve it.

At the moment the cards are only available via the "Lukazi's Loot" website https://lukazisloot.blogspot.com/. The IIe version will be available shortly. As a late addition, it requires a PCB change (selection of signals for the 80COL/AN3 colour killer option).

Saturday, April 13, 2024

A2VGA - Pico Cards - Progress




Even after being on the second run of prototype PCBs at the last Apple II OzKFest event in Oct 2023 there was still a lot of work to be done in getting this into a consumer product. The OzKFest event was great for getting help with things that otherwise would have been difficult for me to do. Like borrowing a bunch of other video cards to compare against, being able to borrow an NTSC IIe and spending time on a high quality Apple II CRT video monitor for comparing with CRT emulation. I wasn't able to bring these back home with me, so I spent as much time as possible making the best use of the borrowed items. What was clear to me was the fact that I needed NTSC machines to test over a long period (hobby time is sporadic). I also didn't want to be using someone else's pride and joy to be testing my electronic projects (in case I damaged something). Luckily up to this point I've only fried a simple step-down power regulator and two Pi Pico boards which have been cheap and easy to replace. Oh, the joys of working on projects into the early hours of the morning and, hence making simple mistakes. Mainly due to shipping costs, it wasn't a cheap exercise to source two NTSC machines (a IIc and a IIe) but it had to be done. Thanks goes to the "Apple Rescue of Denver" for having the machines that I was after. I organised this to happen over the Christmas vacation so that it did not feel like I had to wait a long time for the machines to arrive.

Due to a new PCB layout and having to fix a few traces (also thanks to late night work) I was then able to use the VSync signal line as opposed to a timer based on the HSync. This fixed most of the NTSC related issues. Then that was PAL, International NTSC and NTSC motherboards covered

I played around with getting the 12V to 5V step down regulator working on the IIc version. I stuck with using the 7805 linear voltage regulator, instead of the switch mode regulators due to the amount of electrical noise on the power rails. Video and sound cards are more susceptible to noise over other cards so the cleaner the power supply the better.

On the subject of generating clean signals, there were many hobby projects that I looked into which involved generating VGA signals using non dedicated hardware ie FPGA / bit banging from a microcontroller. What I found surprising was that I could not find a single project where the developer went through the trouble of designing the DAC (Digital to Analog Converter) to be impedance matched as per the VGA specification. I didn't follow everybody else's lead but instead implemented a better solution. You just never know what quality of equipment the end user is going to have. Once a product is released, hardware issues are very difficult to deal with. You can't test your hardware with every possible outcome so you want the biggest margin of safety that you can get. I do believe this is not only going to result in a better performing product but I'm sure that in the long run it will save me time in dealing with specific support issues.

The last big hardware headache was with a ground loop issue on the IIc. A ground loop is formed from the earth wire going into the IIc power supply, through the ground of the IIc, through the ground of the video card, through the ground of the VGA cable, through the ground of the monitor, through the earth wire and back to ground. If the equipment does not protect against it then it can induce a ripple from the power mains onto the ground plain and cause humming. In this case it results in a high-speed flicker on the monitor. It is barely noticeable if using the IIc normally (varies based on the monitor) however you can make it out when you have a large area of a single colour on the screen that is non-black. I tested this with other video cards and the A2VGA was not the only card with this problem. I don't know how big of an issue this is since I have not been able to find any references to it online. I got my hands on a dozen or so IIc power supplies and about half of them had this problem. I suspect this issue was addressed at some stage and it was resolved in later power supply designs. I was torn as to whether this issue should be fixed on the A2VGA. There are devices such as the "Ground Lift Adapter" which remove the earth wire from your circuit, but I would never recommend these being used. The earth is there for a good reason. It is there to save your life in the event of an unlikely but possible, worse case electrical fault scenario. The option of modifying the IIc power supply was out of the question. Alternately, you could purchase a device such as the "humno" but they are rather expensive. This could be fixed by using some modern reproduction IIc power supplies which don't contain an earth wire, or you could run the signal to your monitor via a "VGA to HDMI converter". None of these sounded like good options to me. As a last resort, I tried to break the ground wire and inserted a very small valued resistor in series. Doing this on the output stage of the A2VGA caused the video to display lots of ghosting however doing this on the input stage of the A2VGA removed the flicker without any noticeable effects. Having the resistor in series on the good power supply did not look to affect the video image either. I added a bypass switch for the resistor just in case. Now you have the option to clean up the high-speed flicker or go with the authentic flicker feel.


The IIc power supply on the left causes a ground loop issue while the one on the right does not.

The rest of my time was spent on software and administration. There was plenty of work here too. I consolidated the best of the colour models into one package. I worked on adding in the "NTSC-CRT", "Lukazi YIQ" and "DHGR COL140 mixed" colour models. I added Grayscale and Green/Amber monochrome CRT options. I generated the user interface which involved setting up fonts, logos and a "Save to Flash" function. Oh, and I also had to generate a user manual.


Showing the output from the "DHGR COl140 Mixed" colour model.

The Pico IIc and Pico IIe variants had their own individual issues which needed sorting out. However, I didn't want to release one card before the other. That way both cards were able to be updated concurrently and I could keep the same firmware for both variants. Only time will tell if I'm able to keep it that way.

I've attached a link to my PowerPoint presentation from the OzKFest event. https://docs.google.com/open?id=1Q_sV2tWVUSiUlgc5VDFb8NSSEZ1Ohwq5

As a summary, this is how the A2VGA works. There is limited processing power on a microcontroller such as a Pi Pico to perform the maths that is involved in converting a monochrome image into a CRT emulated image on the fly. Hence, we do all the maths externally. The Pi Pico is there just to perform the conversion using a table lookup. This is much faster than doing the maths on every pixel or group of pixels. This lookup table is 4096 entries long (12 bits) and each entry holds the value for 4 coloured pixels (VGA) / 12 coloured pixels (WUXGA). Hence this becomes just a simple streamer. 12 monochrome bits are read from the Apple II which are then used to look up 4 coloured pixels and those 4 pixels are sent to the VGA screen. We read the next 4 monochrome bits, keep the 12 bit window by pushing these 4 onto one side and discarding the 4 bits from the other side. The process then just repeats itself. The trick is deciding on what actual colours the 4 coloured pixels are going to be made up of. Each colour model calculates these 4 coloured pixels differently. There are two approaches in generating this 4096 entry lookup table. One way is to send every possible 12bit monochrome combination through a CRT emulation engine such as "OpenEmulator" or "NTSC-CRT" and then sample the middle 4 pixels. The alternate way is to go through every 4096 entry (programatically of course) and perform some rules. Step 1 is to go through and colour in each monochrome bit that is an "on" bit. You then have have a coloured image with gaps of 1, 2 or 3 pixels in the "off" state that you have to deal with. Step 2 is deciding what colours to allocate to these gaps. The more black you leave in, the more sharp and stripy the image looks while the more you fill in, the more smooth and fuzzy the image looks. In a nutshell, that is it.

The next revision of boards has been manufactured and I'm now just waiting on their delivery. I'll be able to start sending these cards out for testing shortly.