December 26, 2024
Description
Yes, it is a real standalone PC! All the required hardware is stuffed inside this tiny 1:4 scale monitor. You only need an external keyboard with a mouse, and it’s ready to make your retro dreams come true :) This model is much easier to assemble than my ESP32 version, but it’s also more expensive.
When there is high graphics output, the DPI (Display Parallel Interface) screen reduces the performance of the whole system, therefore I do not recommended you to build a retro game emulator PC with this screen. Although you will be able to run games with this screen, they will run noticeably slower than when using a HDMI screen. The solutions that I can suggest are as follows:
If you need a more powerful computer to be used with this screen, you can try to build it on a Raspberry Pi 4 hidden inside the IBM Model 30 box. You will have to make GPIO connections between these two parts, but I don’t see any problems with it (a self-made round cable with 36 wires will look more accurate and realistic than the colorful flat cable that I suggested in this model). However, I recommend you to use a 2.8 inch HDMI screen at once and connect the Raspberry Pi 4 to the screen with a HDMI cable – this is faster and easier and it will show noticeable performance gain in comparison with this DPI screen. There is no dilemma here as with the Raspberry Pi Zero 2W model, because Raspberry Pi 4 has two HDMI ports, so you can use one for the 2.8 inch HDMI screen and the other one for larger external HDMI screens of TVs when you need them. I’d rather try this variant myself, but the price for the Raspberry Pi 4 is enormous for me and exceeds my budget on hobby spendings, so it’s up to you to develop this idea further, my friends :)
If you understand this DPI screen issue and agree to it, you can go on further and buy the required stuff.
The prices that I state here were the cheapest when I bought the stuff and include the shipping fee, but Aliexpress sellers always change prices, so if you see that the current price differs much, try to find the same items from other sellers cheaper.
1) Raspberry Pi Zero 2W (I've bought a set including an AC adapter with an on/off switch and a micro USB plug, a heat sink, a male micro USB to female USB cable, a micro HDMI to HDMI converter that I replaced later with a longer cable for convenience).
https://aliexpress.com/item/1005006072633755.html ($27 for the Pi+accessories set)
2) WaveShare 2.8 inch DPI screen.
https://aliexpress.com/item/1005002543596064.html ($28)
3) Male-to-female 40-pin GPIO cable. The shortest I could find on AliExpress is 20 cm, however, it uselessly takes a lot of free space inside the monitor and reduces ventilation of the system. The optimal length would be up to 10 cm. Maybe it’s reasonable to buy the ribbon cable and the connectors separately and make the cable of the required length youself (there are videos on youtube how to make them at home). Another solution is to replace it with shorter separate male-to-female dupont wires, I saw 10 cm length on Aliexpress, but it will be less reliable of course.
https://aliexpress.com/item/32391134102.html ($2 - 20 cm cable)
https://aliexpress.com/item/1005005499934327.html ($0.9 - 10 cm dupont wires)
https://aliexpress.com/item/1005008209083880.html (there are 10 cm cables for $3, untested*)
https://aliexpress.com/wholesale?SearchText=idc+connector+40+pin (separate parts)
* - that means that I did not test it with the Raspberry Pi. In fact, not all the 40-pin cables are compatible, for example, the ones that were used for for IDE hard drives have different pin mapping, so you should use a tester to make sure that the cable has correct pin mapping before attaching it to the hardware!
Optional:
4) LED. Normally a D3mm green one can be used to indicate the power-on state, but for notification purposes I installed a 3-color 2x5x5 mm RGB LED. Later I found that the third color is not really needed, so it’s enough to use a 2-color D3mm RG LED that I used in the ESP32 mod (besides, I find it’s green more natural). Anyway, as I already soldered everything, I decided to keep that RGB LED. My color assignment is as follows:
To use the LEDs as described, add the following lines to the config.txt:
===============================================================
# Waveshare unused pins: 35 (GPIO 19) and 37 (GPIO 26).
# Waveshare PWM brightness control on pin 12.# IBM red led = ACT led, control it as follows:
#dtparam=act_led_trigger=none
#dtparam=act_led_activelow=on
#dtparam=act_led_activelow=off# IBM green led on pin 37, default on when running:
dtoverlay=gpio-led,gpio=26,label=ibm_green_led,trigger=default-on# IBM blue led on pin 35, default off:
dtoverlay=gpio-led,gpio=19,label=ibm_blue_led,trigger=none
===============================================================
Soldering instructions:
Just in case you buy the same LEDs, the resistors that I used are: 3.3K for RED, 20K for GREEN, 2.2K for BLUE. This is rather bright (much brighter than the original monitor LED), and I recommend to increase the resistors values for dark environment (or glue a semi-transparent tape on the LED). Minimal resistors for max brightness that I found acceptable for this model are:
RED: 1.81V, 1.13mA, 1300 Ohm.
GREEN: 2.23V, 0.125mA, 8400 Ohm.
BLUE: 2.59V, 0.03mA, 2260 Ohm.
You can get even more with these LEDs, but it will be too bright for this model. The max voltages that I found for these LEDs are: 2.15V for RED, 3.00V for GREEN and 3.01V for BLUE. Don’t exceed these values as you may damage the LEDs with higher voltage, keep the voltage lower to be on the safe side.
If you use a 2-color D3mm RG LED, read my recommendations in the description of the ESP32 mod. If you don’t need a custom blue indicator, I recommend to use this LED because the green color of the rectangular RGB led is more emerald than green and it looks less natural in this model. Maybe you will buy RGB LEDS with true green color though (at least I saw them on Aliexpress from another seller).
RGB 2x5x5 mm:
https://aliexpress.com/item/1005007378775630.html ($0.65 for 10 pcs, common cathode).
RG D3 mm:
https://aliexpress.com/item/1005003764996533.html ($0.82 for 50 pcs, commno cathode).
5) USB 2.0 hub with 4-5 USB connectors to connect flash drives and other USB equipment (I used the one that has been uselessly gathering dust in a dark drawer for years).
6) Keyboard and mouse. You can use BT ones, or USB ones that you already have. I used a retro PS/2 IBM keyboard and a PS/2 Olivetti mouse connected through PS/2-to-USB adapter (https://aliexpress.com/item/1005001560389583.html - $1.9).
7) USB sound card. As Raspberry Pi 2W does not have an analog sound output, you will have to play sound through HDMI equipment or just buy a $1-worth USB sound card (surprisingly it works fine for its price).
https://aliexpress.com/item/1005005066056102.html ($1)
You need to download and print all the files from the standard version, except CRT and FRONT-GRAY-FRAME, they are replaced with the files from this remix. Use COVER-DIY-MOD from that model.
CRT:
first layer 0.28 mm (this is IMPORTANT!!!)
other layers 0.20 mm
GRAY FRAME:
all layers 0.12 mm
OTHER PARTS: 0.2 mm or any settings that you like.
Assemble everything according to the provided video instructions. Configure the DPI screen as it is written in the WaveShare wiki page:
https://www.waveshare.com/wiki/2.8inch_DPI_LCD
Congratulations, now you have a working IBM display model! I did not make a hole to insert a SD card because it will spoil the design a lot. I just use a removable flash drive to deliver files inside, and if I need to remove the system micro SD card, I pull out the gray frame as it is not glued and can be easily removed if you remove the vent grid and push the screen from inside with a finger. I know this is not very convenient, but I don’t need to remove the system card too often after the system is installed and configured. If you replace the card too often, use a dremel or a hot solderer to make a hole :)
Initially I’ve bought Raspberry Pi zero 2W as I wanted to make a video player from it, but it turned out that it cannot even play Full HD videos without frame drops. Besides, it only has 512MB of RAM which is not enough for modern operating systems. I decided that Orange Pi zero 2W with 4GB of RAM will solve the issue as the producer promises 4K playback, and I bought it, but it turned out that there are no GPU drivers for any Linux-based distributive, even the official ones! I tried all the Linux distributives that they offer and many video players but I’m not satisfied with the results I get. It’s a shame, I couldn’t play Full HD videos without frame drops on the system with 1.5GHz CPU and 4GB of RAM!!! If you have time and desire to continue experiments in this field, let me know what results you get. At the moment I don’t consider any of these models as suitable for smooth Full HD video playback in Linux distributives. You can play Full HD videos on Orange more or less smoothly in Android firmware only, which has a lot of bugs by the way!
Raspberry and Orange has the same compatible 40-pin GPIO, so I asked WaveShare support if I can use Orange Pi instead of Raspberry Pi with their DPI screen. They first answered “I’m not sure. But generally speaking, the system version of Orange Pi is the same as that of Raspberry Pi, so it is compatible”, but then they said “Orange Pie cannot be tested because there is no Orange Pi driver”. I’ve spent a lot of time in forums and, as I understand, Raspberry has DPI support on the hardware level, while Orange does not, so even if it is possible to make this screen work somehow on Orange, it will work terribly slow. I couldn’t find even a single proof that it works on Orange, so I’ve never tried it.
After all the pain I’ve passed through with these models I can assure you that they are not good as a complete Linux-based desktop replacement solution. But you can use them as servers, print servers, NAS, photo frames, smart home controllers and other tasks that don’t require much performance.
Any problems with the model – ask in the comments section and maybe I will answer :)
Upload your makes if you managed to make something worthy using this model!
License:
Creative Commons — Attribution — Noncommercial — Share Alike