I’ve owned a TRS-80 M100 portable computer for a few years, ever since I grew fed up with the poor screen on my Amstrad NC100. The M100 is hands down a superior machine, the display is bigger and clearer and unlike the NC100, which is essentially a Wordprocessor with some organiser functions. The M100 is a true portable, programmable laptop computer. In fact it’s embarrassing to compare it with even modern devices, such as my laptop or iPad. Neither of which can hold a candle to the 40hrs battery life which the M100 boasts on just 4xAA batteries. Yeah people can scoff all they like, so it has no internet connection, so what? Is that really a bad thing when you’re trying to focus on writing? Social media is so intrusive in our daily lives, that I’ve even bought an
old Nokia 5130 to get away from the never ending ping of annoying notifications.
Shortly after getting my M100, I bought a REX expansion module. It’s kind of a ROM / memory expansion for the M100,
Allowing you to load custom ROM images, such as word processors, disk managers and spreadsheet applications. It also lets you dump active memory to an image file. Which can be handy for backing up your files, especially in the highly unlikely event your batteries should fail. The REX has served me well for years and I’ve had little reason to upgrade, until last September when Ken Pettit offered up a batch of NADSBoxes. Almost as rare as hen’s teeth, these storage boxes are beyond handy if you use an M100. Offering portable mass storage on SD memory card, they plug in to the RS232 port on the rear of the M100 and work flawlessly. Before I took possession of my own NADSBox, I had to justify the $195 expense. Once I had it and was using it with my computer, I was converted and wondered how I’d managed without one. If the REX offers reliable internal storage, the NADS eliminates the need to use a serial cable ever again. Letting you to transfer files to and from your desktop computer via memory card.
You would think with these additional peripherals, I’d be well setup and have little need for anything else. After all, what else can you do with an 80s portable 8bit computer? Well how about hooking it up to a monitor?
Disk Video Interface
As it turns out, Tandy, never one to miss a trick, saw a market for promoting the M100 as not just a portable computer, but a home computer. And why not? In 1984 the M100 sold in the states for over $1000 (£691). While around the same time, Clive Sinclair was selling the ZX Spectrum in 16k & 48K variants for £125 in the UK. Admittedly the Spectrum wasn’t portable, but just like today, back then people bought primarily with cost in mind. Expanding the M100 into a desktop was a smart move by Tandy, even though they had a successful line of home computers. So the Tandy Disk Video Interface or DVI for short, came in to being. Equipped with single or dual 170k 5-1/4″ disk drives and capable of 40-and 80-column composite video output (for monitor or TV). Priced at $799, the DVI wasn’t that much cheaper than buying a M100 or full computer setup, with monitor and printer. However it’s a difficult product to categorise, simply because there isn’t anything else like it. In ’84, if you owned an M100 and were perhaps using it as your primary computer, you already had an investment in the product line. So expanding on your existing computer kit probably made perfect sense, just as it would today. However if you owned a home computer and only used an M100 when out on the road, the DVI probably seemed like an expensive accessory. Keep in mind that all you need to recover files from the M100, is another computer with a serial port, null modem cable and some software. In a December ’84 review for Creative Computing, David H. Ahl wrote.
If your main application is text editing, an alternative to the Disk/Video Interface is a disk load program like ones available from Kensington Microware and Portable Computer Support Group (PCSG). For example, Disk + from PCSG lets you save and load files back and forth between the Model 100 and a desktop computer through the RS-232 port. Those files can then be edited with a word processing package on the desktop machine. Complete with cable, it costs about $120. Many desktop computers, including the IBM PC (and clones), Epson QXz-10, and TRS-80 Model III and 4, are supported.
At the time of it’s release, it seems the Disk Video Interface received a lukewarm reception. Throughout the decade, computers were forever improving, only a few short years after the DVI was released, Apple revealed the Macintosh to a theater of speechless journalists and computer enthusiasts. Even by the time it was released, I think the DVI struggled to offer enough to get Tandy users opening their wallets and coughing up the dough to shell out. The 80s computer market was a cut throat, make it or break it horror story, companies appearing over night and then gone a year later. One that springs to mind is the Osborne Computer Company, who had a promising line of portable computers, but within a matter of year face bankruptcy.
My own adventures with the Disk Video unit came about shortly after last November (2019). During a conversation on the M100 mailing list, I got to talking to a fellow user who was selling a working unit, albeit missing a floppy drive cover and the original link cable. In fact the only detracting factor was he lived in the United States and so shipping to England was going to cost more than the device itself. But what sort of computer nerd would I be, if I let a silly thing like extortionate shipping stop me? You don’t have to be nuts to enjoy this hobby, but it does help!
It took several nail biting weeks for the DVI to arrive, all the while, the seller and I fretted over the state it would arrive in. Thankfully Jim had gone above and beyond the line of duty, packing the DVI so well that you’d think it was being loaded in to a rocket bound for the ISS. Much to my relief, it survived and it was fully working! With a little help from a step down transformer, converting UK 240v to US 120V, I was able to power it up. Eventually I plan on swapping out the original 120v PSU, but with Covid-19 raising havoc across the globe, it might be some time before the transformer I ordered on Aliexpress can arrive.
The Initial Thoughts of a Newbie
I’d like to point out that my views here are based on using a DVI over the course of a few days. I am by no means a TRS80 M100 guru, I use mine mainly for writing blog articles and stories for my play by email role playing game. That being said, I’d like to think the 5 years I’ve own my Tandy have at least place me in a position where my opinion has some value.
I think the first thing I’d like to address is how the DVI hooks in to the computer. On the underside of the M100 is an expansion socket for optional ROMS as well as a user port which connect directly to the system bus. At present I’m not entirely sure how the DVI and M100 detect one another, but if I was to hazard a guess, I would say the user port shares the same pins as the ROM socket. So the DVI acts kind of like a sophisticated external ROM expansion, which additional rudimentary disk handling and video display. I’ll have to consult the user manual and the M100 mailing list to be sure. Fortunately one of the wonderful things about the M100, is it has a healthy and active community behind it.
When I first plugged everything in, it was hit and miss and pretty unreliable to use. But I’d known this before buying and was already in the process of getting a new cable from Arcadeshopper. Sadly the one thing both cables had in common was their length. For some bizarre reason DVI link cables are only about 30cm long, which is alright IF the M100 is directly in front of the DVI. But if your like me, and have your monitor sat in a corner with the DVI underneath, you’ll find the cable is laughably inadequate for the job it’s meant for. Luckily for me, I’m not the only M100 user with this problem and after a brief discussion, it was suggested I find myself a 40pin IDE extension cable. Thank goodness Tandy went with a cable that’s easy to find and not some proprietary thing. Getting a cable was easy and I was able to extend the link cable by another 30cm. Finally I could have the M100 on the desk directly in front of me, while the DVI sat in the corner to my left on the desk. Thanks to a half decent keyboard, using the M100+DVI isn’t that much different to using any other Micro Computer. In fact given my experience using 8bit computers, the DVI isn’t that bad, in fact I’d go as far as to say it’s pretty impressive by the standards of the time. Bearing in mind in the early 80s most home users could only afford an 8bit micro, as IBM compatibles were still prohibitively expensive. While I can only speak for the range of computers I used back then and own today, I have to say the DVI turns the M100 in to a very acceptable word processor, which is what I primarily use a computer for. If I were to compare it to a 128K Spectrum +2, the first thing I’d say is the text is far more legible than anything I’ve been able to squeeze out of a Speccy. Next if I compare it to say a C64, a computer that was extremely popular in the states, it certainly offers a comparable experience. My word processor of choice on the C64 is mini officer II. Mainly because it’s uncluttered and saves in PETscii, the Commodore equivalent to ASCII and as such is easier to read on modern Windows PC’s. Back in ’84, a C64 with a printer and monitor would probably have cost as much as a DVI. If you look at the capabilities of a C64 or one of Tandy’s own home computers, you begin to see why magazines reviews at the time were not exactly bowled over. The DVI was only ever going to appeal to a niche market in my opinion, but what it does it doesn’t do half bad. Yes it does have some short comings, the disk format is not cross compatible with the Tandy Portable Disk Drive, the DVI will fail to load whilst certain ROMs are resident in memory. Before I could get the DVI to load, I had to uninstall the manager for my REX module as it apparently occupied a part of memory needed by the DVI. However one could argue that at the time the DVI was released the REX didn’t exist, so such a problem might not have been as common as today.
Floppy disk drives while convenient were not exclusive to the DVI alone. Tandy released the Tandy Portable Disk Drive & TPDD2 for the M100. An external 3 1/2″ floppy drive that would work off batteries or 6v mains. Ironically the technology behind the TPDD is actually a re-branded Brother FB-100, which were used in a range of knitting machines, later adapted by Tandy for use with the M100. Today we take for granted the standardisation of technology and peripherals, where as back in the 80s such things were yet to be established.
As a result the DVI and the TPDD are not cross compatible with each another. Having the ability to save data to the TPDD while on the go, only to load up later at home on the DVI, would certainly have been convenient. It’s only unfortunate that Tandy didn’t feel the same way. Chances are the FB-100 was cheap to buy and re-purpose, using the existing disk format saved money. Otherwise Tandy would have had to develop custom firmware to make the TPDD backward compatible. You can’t blame Tandy, they weren’t the only company up to such shenanigans. One only needs to look at how the Sinclair Spectrum handles handshaking over RS232, to see another example of cost cutting.
My brief spell with the Tandy Disk Video Interface hasn’t been all that bad, this entire document was written on mine over one evening. Half written in 40-column and the rest in 80-column, just to compare the performance. The latter fits more on the screen, but suffers with sluggish performance when it comes to editing. This could also be due to the size of the document, which left me with about 6k free when I was finished. I’d certainly use the DVI again, I’m still undecided how useful it will be as writing platform. I can’t deny it improved the overall writing experience on my M100, which is not to say isn’t that bad, far from it. The benefit of using a monitor over the M100s liquid crystal display certainly has it’s plus sides. Especially in an evening when others members of the household are trying to get to sleep and you’d otherwise have the main lights on so you could see the LCD screen. Incompatible disk formats does make transferring files from the DVI to PC something of a challenge. When I had finished writing this article, I had to disconnect the DVI, soft reset the computer and then reload the REX manager in to ram. My main concern was with only 6k of memory left, would there be enough space to reload the REX. Thankfully there was and I was able to use TRSDOS to copy my document to my NADSbox and from there transfer it off SD card to the desktop PC. So while the Disk Video Interface does make for an excellent typing environment. Recovering the fruits of your toil feels akin to pulling an exceptionally large rabbit out of a small hat.
Until next time keep on geeking!
Greetings dear readers, today we are going to cover something I worked on at least two years ago but always felt there was room for improvement. I’m of course referring to my Apple Classic, super charged with a Raspberry Pi3b motherboard inside. Now before I continue, I want to make one thing clear, I only mod old computers that are beyond repair or have been gifted to me by friends in a state worse than death. So no working or repairable system is ever broken, we don’t rip SID chips off working C64’s around here you know! Anyone found doing so would be given a stern telling off and sent to bed without any beer!
So where was I? Ah thats right, the Apple Classic! So last time we visiting this topic, I had been gifted a partially modded Classic and by partial, I mean it had everything floating loose inside the case and was in dire need of TLC. The amp cut out when you cranked it up or worse took the screen out and the RPI2B was awful slow, emulating an old mac on it was not a nice experience. It now sports a reasonably nippy Pi3B over clocked to 1.3Ghz, emulating an 020 mac the Pi doesn’t even break a sweat, idling at about 45 degrees for both the CPU and GPU. Seriously I’m sat here typing all this on AppleWorks, running Mac OS 7.5.3 and it’s pretty much like using a supercharged Classic on steroids.
I might have to cover compiling and using Basilisk II on a Raspberry Pi as there isn’t that much written online about getting a decent build. It took me a few false starts until I was able to get the emulator working without mouse stutter. This could just be down to the fact I was trying to use a RPi2, which should theoretically be powerful enough, but past experience with my AmigaPi has taught me things are never straight forward.
Ever since I finished or almost finished the ApplePi, I’ve wanted to do more. I wanted to fit an internal ADB socket so I could use a real Apple keyboard for a start. Luckily there is code available online and with a £7 Teensy 2.0 board, I was able to solder together a USB – ADB adapter. ADB is a funny socket, in that its the same pin out as S-video, which means picking up connectors isn’t that hard. Plenty of people have made these adapters but most the time they’re either inside the keyboard or inside a tiny external box. That’s all well and good, but firstly you’re modding the keyboard so that it’s no longer ADB and secondly, I lose USB pens to my sofa on a monthly basis. I’d lose my keyboard adapter and not be able to type on my ApplePi! For me there was no question how I wanted it, the ADB port would go on the back of the computer, as part of the custom laser cut rear I/O shield. It wouldn’t be a true Apple + Raspberry Pi hybrid without ADB nestled along side the USB ports.
For this mod I opted to use the source code by Shay Green (https://github.com/gblargg/adb-usb), while his code doesn’t include mouse support like some others did. I had think whether using a single button mouse was really all that practical in a modern Linux environment. I think I’d eventually tear my hair out with it’s limitations.
All in the Code
Programming the Teensy board isn’t that hard, you can do it on a Mac, Windows, Linux and the Raspberry Pi. To program a Teensy on a Pi you’ll need something called “Teensy Loader” (https://www.pjrc.com/teensy/loader.html). This software makes programming the tiny boards a breeze. On their website it says to run the program from the linux terminal, however I found this to be a fiddly method, constantly typing the same command in each time. Instead I made a script that allowed me to click an icon to load it up right away. Using a text editor of your choice, Nano (from within the terminal) or Text Editor from
the desktop. Create a text file in the same directory as teensy loader, call it something like “Teensyflash.sh”. Inside the text file paste the following, leaving out the speech marks.
Save the file off and close the editor. Now assuming you still have the window open, you should see a new file called “Teensyflash.sh”. Right click on the file and select Properties and then select the Permissions tab. Next to the “Execute:” field, click the drag down menu and select “Anyone”. Click the “ok” button to close the window and save your changes. You’ve now told Linux this file is an executable, so next time you double click on it, Linux will ask if you wish to run it. Tell it yes and the loader should pop up, voila no terminal commands involved.
Using a Teens 2.0 not 2.0++
Unpacked, Shays program is designed to run on a Teensy 2.0++, if you have one of those fine skip this part. However I had a Teensy 2.0, the same board I used to make my custom USB Amiga Joystick last year. The two boards use different chipsets and as such will not run the same programs, you have to compile a HEX specific to 2.0 and 2.0++. If you wish to use a Teensy 2.0 board, you will need to edit a file before you can compile your HEX. Inside the “adb-usb-master” folder, you should find a file called “Makefile”, open it with a text editor and edit it to look like this.
#MCU = at90usb1286 # Teensy++ 2.0
MCU = atmega32u4 # Teensy 2.0/Pro Micro
#FLASH = teensy_loader_cli -mmcu=$(MCU) -w main.hex # Teensy
FLASH = avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -D -U main.hex # Pro Micro
Save the file off and close it, the program is now ready to compile for the Teensy 2.0.
I’m not going to bother covering using Teensyflash, as there is plenty of information online covering the subject, however I do wish to briefly go over building the hex file. This is essentially the program you are going to load in the memory of the Teensy, without it your dead in the water. When I first tried to compile Shay’s ADB software, my Raspberry Pi threw a fit, telling me I was missing files. It took me a while to nail down what I was missing, running the following command in the Linux terminal did clear up my problems.
“sudo apt-get install libusb-dev gcc-avr binutils-avr avr-libcapt-get install libusb-dev gcc-avr binutils-avr avr-libc”
I think Shay’s code might expect the command line version of Teensy loader to be present in the same folder as his code, because after my Pi successfully compiled the hex, it threw up an error about not finding Flash. Don’t be too concerned about this as the HEX has still been created and is ready to load in the GUI loader.
Once you have Teensy Loader up and running, it’s just a case of loading in your HEX file, pressing a button and a mouse click later the program is stored on the tiny board. With the code loaded in the memory of the Teensy, it’s just a matter of wiring the correct pins together between the board and the four pin s-video connector. Given the size of the connector, I highly recommend using some heat shrink around your solder joints. This will prevent any of your wires shorting and frying your Teensy or Keyboard. A Data line is no place to stick your 5 volt input and certain components might take offense and die as a sign of protest. Then my friend you be wading in the brown smelly stuff without any wellies on! Don’t forget to solder a 1k resister between the data line and your 5v. Apparently some ADB cables suffer with signal drop and the 1k resister helps, if a jobs worth doing, do it right and fit a resistor!
After it was all wired up, I had to modify my rear panel as there was no hole for the ADB port. With a lot of cursing and armed with a dremmel, I was able to make a half decent circular hole, just wide enough to accept the end of the ADB cable. Oh a word on plugging your Teensy to your computer, make sure you use the cable that came with it. I made the foolish mistake of using a spare mini USB cable I had laying around, the darn thing wouldn’t load up properly. Twenty minutes spent testing for breaks in my wiring and it all came down to a tiny USB lead.
When it works, the ADB-USB adapter is amazing, switching from a Bluetooth Apple Keyboard to an original Apple Keyboard II is a massive difference. It feels better, keys are spread out and in general I’m not finger typing any more. It also looks a million times better in front of the ApplePi, seriously you would be forgiven for thinking it was a real Apple computer when Basilisk II is running. Shay Green has my thanks for posting the code
up that made this hack possible. Were it not for him, I wouldn’t be sitting here typing to the sound of klacky keys! Thanks dude!
Next up I shall be designing a rear panel to cover the holes left behind by the old power switch and power socket. In their place, I plan of installing a control panel for the IPS screen, allowing me to change the brightness, contrast etc.
I thought I would post this sooner than later, as this is something I’m presently working on.
For those who might not be familiar, the Psion II was an early form of pocket organiser produced and sold by the British firm Psion. During its lifespan the organiser went through several versions. Beginning with the CM, a very basic unit with just 8kb of memory and ending with the top end LZ64, which has a 20 column 4 row display as well as whopping 64kb ram.
As part of an ongoing series of pocket computer reviews I’m writing, I have covered several models of the Psion II. Sadly the LZ64 suffers from a persistent and quite irritating whistle, which I believe comes from aging capacitor.
Today I removed all but two of the nine electrolytic caps inside my LZ in a bid to rid my unit of the blasted whistling. Here you will find some info on the capacitors I removed and their location on the PCB. If you own an LZ or LZ64, this information should be useful. As always the same rules apply, you repair your own gear at your own risk. If you set your shirt sleeve on fire, pour hot coffee on the cat or fall out with the postman, you can’t blame me! I’m simply providing this information as is. Hopefully it will result in a silent LZ, except for the for the odd beep and click of course!
After you’ve removed the screws and popped open your Organiser, you’ll find the motherboard screwed to the front half of the case. Laying the device face down, unscrew the top board which is held in place by a single screw (see fig1).
The main logic board is still connected to the keyboard via a ribbon cable just behind the pins for the ROM slots. This cable is pretty stiff and will take some gentle persuasion so as to bend the logic board up enough to remove the screws holding the keyboard PCB to the front case.
Once you have the boards removed turn them over so you can view the logical board the right way up. Remember to handle the two PCB’s with care, after all they are 30 years old and tend to be delicate.
You should now see something similar to fig.2. Note the already exposed pins below the cluster of caps, this is because one of the 25v 10uF capacitors has already been removed from the board.
Using an already warm soldering iron, I removed each cap, recording their values as I went along.
Of the seven radial electrolytic caps, the LZ has;
5x 25v 10uF
1x 50v 1.0uF
1x 6.3v 100uF
For now I’m leaving the two large axial caps in situ, as I want to try the LX with radial caps replaced but the axial caps remaining. If the whistling persists this might indicate which caps are the culprit.
Until the new caps arrive there isn’t much more I can do, so I shall leave you with this pretty diagram, which shows the values and orientation of each cap.
-Keep on geeking!
Whether you owned one or lusted after them on the shelves at Tandy or Dixons, during the late 80s and throughout the 90s, the personal assistant (or PDA) reigned supreme to anyone after a portable computer but not wanting spend the hefty price tag of much larger, more powerful laptops. Covering the history of these devices would cover more than a fair few articles alone and is a little beyond the scope of what we are going to do today.
Last year I was lent a Hewlett Packard 200LX by my friend Darren, who thought I might get a kick out of using this tiny DOS compatible palmtop. As it happens, he was right. Playing around with the 200LX has been interesting to say the least, even leading to the purchase of a Psion 3a for my own personal use.
The HP boasts a chiclet keyboard similar to those found on calculators and industrial equipment and features many of the same functions found on modern keyboards today, such as functions keys and a numerical keypad for quick data entry.
While using the HP, I have to admit I’ve held something of a love/hate relationship for the keyboard. In the beginning I struggled to type on it with any proficiency, often mashing the keys with my apparently podgy fingers. Only by the second week did things begin to change and suddenly I found myself typing with relative ease. I’d still occasionally catch the wrong key but overall I could turn out text at an acceptable pace. I wouldn’t say the 200LX is the best device for writing, blogging or any decent jaunt of typing for that matter. As a note taker it isn’t half bad, but to be honest there are better options available, but we’ll get in to that later.
The QWERTY keypad takes up roughly a third of the physical width of the device with a numerical pad occupying the remainder. What you’re left with feels awkward and slightly squashed to use. I can’t help thinking this might have been avoided had the designers simply used a full size keyboard, assigning the number pad down the right side, accessible via an FN key, a feature that was not unheard of in the late 80s and which is still used by laptop manufacturers today.
Setting aside my issues with the keyboard, the 200LX is actually a very capable portable PC or as it was known back then, IBM compatible. Written in gold above the screen is reads “Palmtop PC-2MB RAM”, that isn’t a gimmick or HP trying to use some fancy words to make the 200LX sound better than it is. The 200LX is as much a PC as any IBM XT, running DOS 5.0 on an 80186 compatible HP Hornet CPU. You can run a variety of DOS programs ranging from early DOS versions of Microsoft Word & Wordstar, extending even to a few old CGA games. Just don’t go expecting Wolfenstein or Doom, as I honestly struggled to get much more thank Zork to work for me. Sadly the display on the 200LX doesn’t lend itself well to fast moving graphics, ultimately suffering with motion sickness inducing screen blur. That being said, it doesn’t mean you can’t have some fun with the tiny computer, just so long as you work towards the machines strengths and not its weaknesses.
It’s due to DOS support that the 200LX, as well as the 95LX and 100LX are still popular today. Should you happen to own industrial equipment such as a CNC machines that uses DOS specific software to input data. A HP Palmtop might offer a compact, inexpensive means of communicating with your machines without the need of a bulky desktop computer or laptop. In addition both the 100LX & 200LX are capable of reading from compact flash adapters through their PCMCIA ports, making it easy to transfer files to and from the device without need of the data cable.
The 200LX also comes equipped with an IR port, offering the latest in 90s wireless data transfer. By today’s standards the baud rate is lacklustre and you’ll be hard pressed to find much to interface it with. There were some compact infra red printers manufactured back in the day, which I believe will link up to the 200LX.
Overall the 200LX has some good points about it, which include
-Long Battery Life on 2xAA batteries
-Built in DOS 5.0
The 200LX comes packed with an impressive list of built-in applications;
- Appointment Book
- Application Manager
- HP Financial Calculator
- Lotus 1-2-3 release 2.4
- Memo Editor
- Pocket Quicken
- Phone Book
- World Time and Stopwatch
All of which does not include any software you can choose to load from compact flash. Aside from all the available DOS software you can run, there is also a library of HP specific titles to install. Once loaded in to the memory of the 200LX, there it will remain until such time as it is deleted or the device is reset. Access to a limitless DOS library obviously has its advantages, which makes the Palmtop such an appeal device.
Taking all that in to account you could be forgiven for overlooking some of the devices other failings. Were you looking to buy one today, the 200LX still retains a relatively high asking price as a bit of collectable retro kit, valued anywhere between £50-£140.
Personally I’d find it hard to justify paying more than £60 for one of these devices, as great as they are, there are better examples of pocket sized computing. In fact while I was writing this article I discovered they addressed my issues with the keyboard in a later model, doing pretty much what I had suggested. Other companies such as Atari, Amstrad, Psion, Sharp had devices which rivalled the HP Palmtop PC. While some were less compact than others, each took a stab at offering portable computer for users on the go. Only a few however offered you an IBM compatible computer that fit in your inside coat pocket, fewer still did it as well as HP had with the 95LX and later models.
Stay tuned for the next part of the article, when I take a look at another pocket portable, the Psion Series 3.
Keep on geeking
For a long time I’d thought about creating a portable Pi but wasn’t really certain where to begin, so for a long time it remained just an idea rolling around in my head. After building the 600Pi I developed a greater understanding of what was involved fitting a Raspberry Pi inside a custom enclosure, such as extending the USB, HDMI and Ethernet from the tiny Pi and how to power the motherboard directly, bypassing the traditional on board USB port. The 600Pi really opened my eyes and taught me a great deal, not just about wiring, but also about hacking the Pi’s various features. A month or so after finishing that project a friend gifted me a box full of random bits, because if there’s one thing friends know about me, it’s that I love boxes filled with parts. Inside was an assortment of USB cables, fans and a RPI2 B fitted in a custom acrylic case. What caught my attention about the Pi specifically was the 3.5″ LCD panel that was attached to it, as soon I saw the screen the cogs in my head begun to whirr. Well suited for a portable pi project, it was just a matter of me drafting up a design.
A few weeks after receiving my box of goodies I was clearing out a bunch of old stuff from under the bed when I found an old project box lurking under the mattress. A left over from when I was designing my Nomad desktop system, it was just the right size for a portable retro computer, not to mention it already looked kind of old. Originally there had been two but I’d hacked one up for the Nomad, only to find it had very little air flow and caused the mini ITX board to overheat. However, unlike the larger mini ITX board, the Pi not only had a smaller foot print but would never reach the operating temperatures of an Intel Duo processor. At first I wasn’t certain the LCD panel would fit in the front of the case, but pairing the two together proved it would be a snug fit.
Admittedly, building a portable Pi isn’t anything new, people have been putting them inside all manner of things ranging from teddy bears, tea pots, remote control drones and even coat pockets! You can find Pi powered laptops, C64s, Spectrums and even 3D printed Gameboys like the Pi-GIRRL, however my goal was to build a portable computer with a distinctive 80s retro feel, bet you didn’t see that coming did ya! Using a case originally intended for my Nomad desktop, I decided to call my new portable the ‘Nomad SX/Pi’ in homage to my earlier project and also the Commodore 64SX portable computer, a machine I was drawing much inspiration from.
It’s probably no surprise the SX64, Keypro, Osborne and even the TRS80 M100 inspired the design of my project. All are note worthy machines, successful back in their day with a dedicated group of followers even now. Their appearance resonates a specific time in computer history and it was this aesthetic styling that I wanted the Nomad SX to imitate. Measuring 257 x 190 x 85mm the case had ample space for the Raspberry Pi, however the 3.5″ LCD was another matter. It was almost as tall as the case with only 10mm clearance between the top and bottom lid. As I had done with the 600Pi before, I extended the Pi’s ports to the front and rear panels of the case. Included in the rear panel was:
- 1 x USB
- 1 x RS232
- 1 x Ethernet Port (Rj45)
- 1 x MiniUSB (Power Input)
For the front I extended the Pi’s audio jack and another of the USB ports along with the Pi’s power and activity lights. Having only recently upgraded the 600Pi with a new Pi3, it meant I had spare Pi2 board with the on board LEDs already modded for extending to the front panel. The reason I didn’t extend all the USB ports was because I needed two of them for Bluetooth and Wifi.
After making a couple of rough sketches I sat down, using Inkscape to draw up the vectors I would need to cut the front and rear panels out of acrylic. Previously I’d used an old version of Adobe illustrator, but a couple of my friends kept insisting I gave Inkscape another shot, even though I’d struggled with it the first time round. My initial impression of Inkscape was that it was powerful but far less intuitive then Illustrator,, but it does have one thing working in its favour. Unlike Illustrator its an open source freeware application, meaning it doesn’t cost you a penny to use.
Installing it on the Nomad, I spent the evening drawing the panels using the sketches I’d made earlier. After a some what slow start, I actually found Inkscape to be pretty straight forward and not as complicated as first thought. In fact once your in the Inkscape zone it’s actually a pretty powerful application. Available for Linux, Mac OS and Windows, I highly recommend checking it out and did I mention its available for the Raspberry Pi?
Input / Output
One part of the case that was causing me a headache was the keyboard, originally I’d wondered if I couldn’t buy a small keyboard and hinge it to the front of the case similar to the Keypro or attach it with Velcro. However that meant finding a keyboard with the exact same dimensions as the front panel which was highly unlikely. Unlike large manufacturers that can fabricate custom parts, I was limited to finding off the shelf parts to get the job done. After a lot of searching on eBay, I found a wireless keyboard and waited patiently for it to arrive from China. Almost as soon as I unboxed, I realised it was rubbish,
surprise, surprise. The touch sensitive panel was smaller then I’d expected and pretty useless for typing anything. That is unless you wanted to finger type everything, which as I found resulted in almost inebriated sentences of typo ridden nonsense. So it was back to the drawing board and searching once more online for a suitable keyboard, a search that had thus far been less than successful. It turned out I hadn’t needed to worry as only a couple of days after my disappointing eBay purchase, my prayers were answered. While picking the other half up from work, I was telling her about the problems I’d been having when suddenly she revealed her work stocked several bluetooth keyboards on their online shop. A quick trip across
the warehouse floor and I was staring face to face with an ultra slim bluetooth keyboard and not just that, it was narrow! Talk about irony, I’d spent the best part of a month looking for one under 250mm wide and all the while Pimoroni had exactly what I’d wanted on their website and it was 240mm wide, 10mm shorter then the case I was using.
With the issue of the keyboard finally behind me I was able to redesign the front and rear panels to accommodate the new BT keyboard. Originally I’d planned for the little touch panel keyboard to slide inside a slot in the front, but as that wasn’t happening now, I had to find room to accommodate the larger 240mm x 90x 14.5mm keyboard. Barely 10mm narrower then the case, I had to come up with a smart way of stowing it away. Strapping it to the outside would undoubtedly expose it to unwanted knocks which would likely wear it out in no time at all. Don’t ask where the idea came from but scribbling on a piece of paper I found myself staring at a sketch of the rear panel with a narrow slot for inserting the keyboard inside. Refining the design further resulted with a shelf inside the portable for the keyboard to rest on when it wasn’t in use, I also designed a blanking plate to screwed in place over the slot to keep the keyboard from sliding out while the computer was being transported. While it wasn’t like anything I’d seen on the Z80 portables I’d been using for reference, it certainly worked and solved the problem of where to put the keyboard.
As there was no need for a slot in the front panel I redesigned it, turning it in to a sliding door and IO plate for the audio jack and USB port. Taking advantage of the reclaimed space I also included a badge to sit above the IO panel which read “Nomad Pi/SX – Portable Micro Computer”. It seemed fitting given the size of the Raspberry Pi computer hiding inside the case.
Setting up an Ultra Slim keyboard on the RPi wasn’t as smooth sailing as I’d been expecting and required some work before it was up and running properly. I also encountered an annoying problem where the top row of F keys weren’t recognised by Linux, even asking the guys at Pimoroni and on the RPi forum yielded no solution. Two months after finishing the portable Pi I was at a friends sampling a pint of homebrew beer when the answer came to me. I don’t completely recall what led to the discovery (how strong was that beer?), but long story short Linux was mistaking the ultra slim keyboard for a BT Apple keyboard. It turns out these are known for having issues with Linux and there’s even a wiki page covering it, see this link for details.
For the Pi’s composite video jack I used a 3.5mm jack cable, splitting the left, right and video lines. I hooked the video feed up to the LCD panel and the audio channels to the audio socket attached to the front panel. At some point I plan on installing internal sound but that will be a work in progress. When I discovered the PI / LCD combo, I originally wrote down the wiring so that I’d know how to connect it back up. Like any scrap of paper it inevitably went missing and not knowing the model of the screen or where my friend had bought it, I was left in a bit of a pickle. How was I ever going to figure out the wiring? Luckily for me I’m on the Sheffield Hackerspace mailing list and after posting up a request for help, I soon had a link providing me with all the info I needed to connect up my tiny screen. Words honestly can’t do justice for how grateful I was when the tiny LCD lit up for the first time, so a big thank you to the guys at the Sheffield Hackerspace.
Because I was planning primarily to use the terminal and not x.org to operate the Pi, I found the text on a 3.5″ screen a little difficult to read. Online I found several guides showing ways to increase the text size within the Linux console, and I also read up on altering the screen resolution which was running in its default res of 1080p (I guess). Either way it was causing the 3.5″ screen to flicker at a headache inducing rate. Fortunately the config.txt is pretty flexible and allows you to tailor a lot of the Pi’s settings to suit your needs, which is great for anyone trying to use a 3.5″ screen with their Pi via composite out.
Tackling Small Screens
Having only ever hooked a Raspberry Pi up to a VGA monitor, I’d little experience configuring the config.txt file to display on a small screen. Especially one using composite output instead of HDMI. Fortunately there’s plenty of information available online to walk you through setting up the config file and a bit of trial and error I was able to get it working. By setting the screen to 480×320, I was able to eliminate almost all of the screen flicker present while the screen was running in high resolution. Additonally making it much easier to read text, as even in 800×600 it was incredibly small. Though lowering the resolution made the text more legible it still wasn’t suitable for using over an extended period. This led me to looking at changing the Terminal itself and how I could configure it to display differently on the Pi Portable. Fortunately you can alter the Terminal using the following command
"sudo dpkg-recofigure console-setup"
Going through the prompts I set the terminal to use the ‘TerminusBold’ font at a size of 11×22 as this was easy to read and didn’t take up to much room on the screen. It took me a while to figure all this out and I went through several computations of the various fonts and sizes before I found the right one. While doing a little research for this article I discovered one of the machines I’d used for inspiration has a larger screen than I’d first assumed. The Osborne-1 is often cited as the first portable personal computer and it along with the SX64 were machines I used as examples while designing the Nomad SX. As it turns out the 1981 Osborne-1 came with a 5″ screen capable of a mind blowing 128×32 character display. Which is impressive compared to the 11×22 display on the Nomad, if I ever make another portable I’ll be sure to make the screen bigger!
Not A Leg To Stand On
After getting the machine together I realised the viewing angle wasn’t exactly ideal. In fact to read the screen I had to prop a book under the case. I’d not really envisioned using a stand like the SX64, but as it transpired I actually really needed one. If I’d stopped to think back about all those old Z80 machines, a large number of them did come with a kickstand of some sort. Designing a set of legs I got them laser cut from acrylic and fitted to the sides of the case. I used nylon lock nuts so that I could tighten the screw enough so the legs were stiff to move, but with the advantage that lock nuts wouldn’t work themselves loose. The downside to using acrylic is that under certain circumstances it can be a fragile material and exposed to stress will sometimes shatter or crack. As the legs would be in regular use, I wasn’t certain how long the acrylic would last. With that knowledge ever present in my mind, I spent a lot of time trying to think of an alternate solution. Eventually I settled upon 3D printing and fabricating a single piece carry handle, as you can see in the picture the prototype came out pretty good.
Part of this project was to make a portable micro computer that I could take with me wherever I liked. This ultimately meant using a battery, something I’d never done with a Pi before. So once I had the system working and all of the internal wiring finished, I began looking at batteries and also charging circuits. Obviously because of the screen, bluetooth & wifi dongles, I would need a pretty substantial battery to power everything. It was around this time that Pimoroni began stocking batteries via their online store. I also noticed they stocked the Adafruit Powerboost 1000C, a small 5v 1Amp board that doubled as a battery charger. Choosing one of their 4400mAh batteries and the power boost, I set about modifying the internal wiring of the Pi Portable. Instead of the power going directly to the Pi it would have to go via the Powerboost first, so that the internal battery could be charged.
I’ve seldom bought anything from Adafruit aside from perhaps a micro usb socket but I have to say the Powerboost is a fantastic bit of kit and really does credit to Adafruit. Not only was it straight forward and simple to wire up but I found the additional
power switch an especially nice feature, one that I hadn’t been aware of at the time of purchasing. It was certainly a lot better than pulling the plug, as is the normal way to turn off your Pi after shutting it down. As the back panel was in need of revision due to some stress cracks showing, I added an additional hole for a switch, which complimented the rear panel really well, giving it a very professional look. Combined with all the accessories, the Pi portable draws approximately 740Mah, which means I should get nearly 5 hours out of the 4400 battery. I’ve yet to actually bench test the Pi portable to find out if those figures are anywhere near accurate, but even if the system can manage 2 hours, I will be happy and consider the upgrade a success.
While it might not be as sleek or as compact as many other portable Raspberry Pi builds. I’ve taken the Nomad Pi/sx to several retro events and had nothing but positive feedback. Many remember using machines like the SX64 and Osborne back in the day and instantly latch on to the similarities. Loading up Dizzy via the C64 emulator never fails to generate a smile. But if I’m honest, I always end up playing Outrun or Stuntcar racer!
This has been a funny old build but one I’ll definitely remember if not for the fact that I do use the computer on and off when I need a distraction free typing environment.
In my continuing mission to fiddling with my QL and Spectrum, I was hoping to write an article pitting the two systems against one another. All of that seemed to been scuppered when it appeared that getting Tasword on my +2 would be a painful ordeal. While I do own the software on tape, getting any sample documents off on to the PC would have been a challenge to say the least. Fortunately my friend Zetr0 came to the rescue and with some programming wizardy, I now have a fulling working version of Tasword on my internal compact flash drive. So expect to see an article explaining all real soon!
Over the weekend I attended the Retro Games Fair in Leeds, if you havent been I highly recommend a visit. While a little packed there are some fantastic bargains and the atmosphere is warm and cheerful. I came away with a selection of games, including Knightmare and Dragons Lair for the Speccy.
For more info check out the following link
Since getting my Tandy M100, I’ve always wondered about connecting it to my main Linux machine. Doing so wasn’t beyond the realm of possibility and if successful, it would open up a whole range of things I could do with my tiny computer. Fortunately, there are two tutorials on the subject, but sadly both of them are out of date with the current distro’s of Linux. What follows is my revised version of both tutorials.
I will point out that this setup isn’t perfect, while I had no problem going on IRC chat and browsing directories, I discovered doing other things, such as using text editors was fraught with problems. The text wouldn’t load up on the screen properly or overlapped as the screen scrolled. While this is disappointing, I did find that I could upload text to an open document on my main PC. By running a session of Nano, I could press the UPLOAD button on the M100, select a file stored locally in the M100’s memory and load it in to the empty Nano document. While this isn’t exactly ideal, it does mean I no longer have fiddle around with Minicom. I can quite literally connect the M100 to my main pc and upload the document straight to the Hard Disk.
For any serious use, I would highly recommend using mComm, developed by Kurt McCullum. Availible on Windows and Android, it offers a convenient mass storage media for any TRS80 M100 Micro computer.
Setting up Linux
First we need to teach Linux the TRS100, so that it knows how to display the console when the Micro connects via serial. With a 40 column display, getting text to fit right is pretty important.
"Sudo nano /etc/trs100"
With the empty document open, paste in the following text.
trs100|Radio Shack Model 100:\ :am:bs:xt:\ :co#40:li#8:\ :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :\ :cr=^M:dl=\EM:do=^J:ho=\EH:kb=^H:kd=^_:kl=^]:kr=^\:\ :ku=^^:le=^H:nd=34:se=\Eq:sf=^J:so=\Ep:up=\EA:\ :ve=\EP:vi=\EQ
Originally part of Terminfo, because of it’s age the configuration profile for the model 100 was relegated to a UFO archive in the mid 90s. Luckily Eric S. Raymond found the file and published the details on his website.
With the text now pasted in place, save the file by pressing Ctrl+O, name it trs100. Before we can do anything with this file, we first need to make sure ‘libncurses5-dev’ and ‘libncursesw5-dev’ are installed on your computer. Type the following command in the terminal:
sudo apt-get install libncurses5-dev libncursesw5-dev
With the above files installed, we can now compile the terminfo file we
created by typing the following command
Providing there weren’t any errors, we can now move on to configuring Linux.
This is where things get a little more involved.
Since the last tutorial was written, Systemd has replaced the init sy which is used to open a console session via the serial port. Without it, it would be unable to communicate with Linux. So we must revise what the original tutorial tells us to do. Let’s begin by opening up a new document in Nano with the following command in the terminal
sudo nano /etc/init/ttyS0.conf
With nano open, copy and paste the following in to the window.
# ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL= stop on runlevel [!12345] respawn exec /sbin/getty -L 600 ttyS0 trs100
Save and close the document using Ctrl+O to save. While still within the terminal, type the following command.
sudo start ttyS0
By entering that command, you’ve now started a console via the serial port. But before you go trying to plug in your Micro, there’s just one last thing we need to do. If you’re serious about using your Model 100 with your Linux machine, one thing you might like is to have the output of the console visiable as soon at the PC loads up. To achieve this, we will need to alter the Grub configuration file.
While in terminal, type the following command and press enter.
sudo nano /etc/default/grub
Look for the follow entries and alter them to look exactly as they are
GRUB_CMDLINE_LINUX="console=ttyS0,600,trs100" Tip- ttys0 tells Linux which serial port to use, this could be change to ttyS1. 600 sets the communication speed to 600 baud, while this might seem slow, going higher can potentially cause data corruption. Specifying the trs100 profile, allows the console to display properly on the tiny screen of the micro.
# Uncomment to disable graphical terminal (grub-pc only) GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed=600 --unit=0 --word=8 --parity=no --stop=1"
Tip-By invoking “console serial”, Grub is told to output via the display and serial. –unit=0, you might want to change this to 1, if your using ttys1. Providing all the fields are now updated, let us recompile the Grub configuration file using the following command
Some text will scroll up the screen, similar to what is below.
Generating grub configuration file …
Found linux image: /boot/vmlinuz-3.13.0-55-generic
Found initrd image: /boot/initrd.img-3.13.0-55-generic
Found linux image: /boot/vmlinuz-3.13.0-54-generic
Found initrd image: /boot/initrd.img-3.13.0-54-generic
Found linux image: /boot/vmlinuz-3.13.0-53-generic
Found initrd image: /boot/initrd.img-3.13.0-53-generic
Found linux image: /boot/vmlinuz-3.13.0-48-generic
Found initrd image: /boot/initrd.img-3.13.0-48-generic
Now connect your null modem cable to your PC and your Model 100. On your Tandy computer, run Telcom and type ‘STAT 48n1e’ followed by ‘Term’. Now place the micro to one side and reboot your Linux machine. As it is rebooting, watch the display on the Model 100, it should begin to display information. If not, you may need to look at what serial port your using, as it might be ttyS1, instead of ttyS0. An easy way to find out is to use Minicom, which allows you to quickly swap between com ports and communicate with your Model 100.
Providing all has gone well, you should see a prompt asking you to enter your username and log in to Linux.
Now go have fun!
Thanks goes to
Sean Gallagher, Brian Hicks, wiki.archlinux.org and help.ubuntu.com
Without whom making this tutorial would have been much much harder.