Upcyling a 40-year-old Tandy Mannequin 100 Moveable Pc

24

[ad_1]

Final yr I picked up a Tandy Model 100 on the Vintage Computer Festival East for about US $90. Initially launched in 1983, it was the forerunner of at the moment’s pocket book computer systems, that includes a good-quality keyboard and LCD show. It might run for 20 hours on 4 AA batteries and a month on standby.


Because of the work of the Club 100 user group, I used to be in a position to faucet right into a universe of software program written for the Mannequin 100 (also referred to as the M100). Sadly, my machine stopped working. I used to be in a position to establish the defective element, and reasonably than try and discover a new substitute, I purchased an affordable, damaged M100 that was being bought for elements on eBay. I extracted the element I wanted from its motherboard and repaired my unique M100. Then I regarded on the now-even-extra-broken second M100, nonetheless with its beautiful keyboard and display, and thought, “Certainly there’s one thing I can do with this.” How onerous might it’s to swap out a 40-year-old 8-bit 8085 CPU and motherboard for one thing extra fashionable?

I’m not the primary individual to have considered this, in fact. A lot of people have upcycled the M100, however they usually change the 240-by-64-pixel monochrome show with one thing with color and much higher resolution, or they preserve the unique LCD however use it as a text-only display. I wished to maintain the unique show, as a result of I like its huge, chunky pixels and low energy wants, however I additionally wished the flexibility to help graphics and completely different fonts, as with the unique M100. If I might do this, I might use any variety of substitute CPUs, because of software program like CircuitPython’s displayio libraries. However I quickly found the problem was within the M100’s deeply bizarre—by at the moment’s requirements—LCD.

The M100’s LCD is admittedly 10 separate shows, every managed by its personal HD44102 driver chip. The driving force chips are every liable for a 50-by-32-pixel area of the display, besides for 2 chips on the right-hand facet that management solely 40 by 32 pixels. This offers a complete display decision of 240 by 64 pixels. Inside every area the pixels are divided into 4 rows, or banks, every eight pixels excessive. Every vertical column of eight pixels corresponds to at least one byte in a driver’s native reminiscence.

A Tandy M100 notebook computer is shown with its wide LCD display above a mechanical keyboard, along with a PCB and Arduino Mega.Classic Tandy M100 computer systems [left] might be purchased for elements for lower than US $100. A interface protect together with a resistor and capacitor [right, top] can plug into an Arduino Mega microcontroller and permit you to repurpose the display and keyboard.James Provost

To set an arbitrary pixel, you identify the display area it’s in, allow the corresponding driver chip, inform the chip you’re sending a command, ship the command to pick out a financial institution and column, inform the chip you’re now sending pixel knowledge, after which write an information byte that units eight pixels directly, together with the one you need and 7 others that come alongside for the journey.

The rationale for this association is that it speeds issues up significantly when displaying textual content. If in case you have a seven-pixel-high font, plus one pixel of clean area on the backside, you may copy the font’s bitmap straight from reminiscence byte by byte. Sequential bytes can usually be despatched with out further instructions as a result of the chip robotically advances the column index after receiving an information byte. The order of the banks as displayed can be altered for quick scrolling.

This financial institution/column addressing scheme remains to be used, for instance, in some modern OLED displays, however their banks span the whole show—that’s, one chip per display. I must handle every area and driver myself.

Cross a wire by chance? No downside, simply repair it and check out once more.

Some issues made it simpler. First, the M100 was designed to be serviced. The display drivers sit on a board that interfaces with the motherboard through a 15-by-2-pin connector that may be merely pulled free. The keyboard makes use of a simple 10-by-10 matrix, and in addition connects through simply removable connectors. There’s a fantastic service manual that provides the small print of each single circuit. With the service guide, the HD44102’s datasheet, and a few helpful online tips from folks who’d performed with the LCD, I used to be in a position to construct an interface between the show and an Arduino Mega 2560. And the truth that older machines are sometimes extra tolerant of abuse additionally helped—none of this “give me even a half a volt over 3.3 volts and I’ll let all of the magic smoke out” enterprise. Cross a wire by chance? No downside, simply repair it and check out once more. Feed in a uncooked pulse-width-modulated (PWM) sign as an alternative of a continuing analog one? High-quality, I’ll simply sit right here and flicker a bit.

The interface offers the -5 V the LCD wants along with +5 V. The interface additionally hosts a RC low-pass filter to easy the PWM sign that simulates the 0-to-4 V output of a potentiometer used to regulate the viewing angle. The opposite pins are handed by means of to the Mega’s digital enter/output or energy traces.

The LCD screen is divided into ten rectangular regions by dotted lines. 10 driver chips, all connected to a shared data bus, surround the screen. Separate select lines come out from each chip, marked CS0 through CS9, join the data bus and other control and power lines, marked +5V, -5V, GND, 0-4V, CLK, R/W, D/A Chip Select All, on the left hand side.Ten driver chips every management a area of the display, and have to be chosen as required by certainly one of 10 chip choose traces. Then a financial institution and column inside that row is chosen to obtain a byte of bitmapped knowledge, setting eight pixels directly.James Provost

I wrote some code to retailer a 240-by-64-pixel framebuffer and to deal with the mapping of its pixels to their corresponding display areas. The software program selects the suitable chip, financial institution, and column, sends the information, and manages the assorted clock and different management indicators. The Mega seems to the surface world as the motive force of a contemporary monochrome show, accepting bitmap knowledge as rows (or columns) of pixels that span the display—precisely the sort of factor that the displayio library can deal with.

The LCD can now be hooked as much as the microcontroller of my alternative through a parallel or serial connection to the Mega, which copies incoming knowledge to the framebuffer; I intend to make use of a Teensy 4.1, which can permit me to speak to the matrix keyboard instantly, have sufficient compute energy for some primary text-editing firmware, and supply a VT100 terminal serial interface—which might be to a Raspberry Pi 4 compute module additionally mounted contained in the M100. That would supply Wi-Fi, a 64-bit OS, and as much as 8 gigabytes of RAM—an enormous step up from the 8 to 24 kilobytes that the case initially housed!

This text seems within the October 2022 print subject as “Upcycling a Tandy Mannequin 100.”

[ad_2]
Source link