Тёмный

Build an adapter to use a cheap PS2 keyboard with a Tandy 1000!  

Adrian's Digital Basement
Подписаться 218 тыс.
Просмотров 36 тыс.
50% 1

Have an old Tandy 1000/1000A/1000SX/1000AX without the matching keyboard? No problem! Build yourself an adapter for a few dollars to allow you to use any old PS2 or AT keyboard with the Tandy.
--- Video Links
Arduino code on Github:
github.com/mis...
Another project by Scott Baker doing the exact same thing, but with an ATTimy:
github.com/sbe...
Another project by Net-Cay using an Arduino as well:
github.com/net...
--- Tools
Deoxit D5:
amzn.to/2VvOKy1
store.caig.com/...
Jonard Tools EX-2 Chip Extractor:
amzn.to/2VazxDS
www.jonard.com...
Wiha Chip Lifter:
amzn.to/3a9ftWw
www.wihatools....
O-Ring Pick Set: (I use these to lift chips off boards)
amzn.to/3a9x54J
Elenco Electronics LP-560 Logic Probe:
amzn.to/2VrT5lW
Hakko FR301 Desoldering Iron:
amzn.to/2ye6xC0
Rigol DS1054Z Four Channel Oscilloscope:
www.rigolna.co...
Head Worn Magnifying Goggles / Dual Lens Flip-In Head Magnifier:
amzn.to/3adRbuy
TL866II Plus Chip Tester and EPROM programmer: (The MiniPro)
amzn.to/2wG4tlP
www.aliexpress...
TS100 Soldering Iron:
amzn.to/2K36dJ5
www.ebay.com/i...
EEVBlog 121GW Multimeter:
www.eevblog.co...
DSLogic Basic Logic Analyzer:
amzn.to/2RDSDQw
www.ebay.com/i...
Magnetic Screw Holder:
amzn.to/3b8LOhG
www.harborfrei...
Universal ZIP sockets: (clones, used on my ZIF-64 test machine)
www.ebay.com/i...
RetroTink 2X Upconverter: (to hook up something like a C64 to HDMI)
www.retrotink.com/
Plato (Clone) Side Cutters: (order five)
www.ebay.com/i...
Heat Sinks:
www.aliexpress...
Little squeezy bottles: (available elsewhere too)
amzn.to/3b8LOOI
--- Links
My GitHub repository:
github.com/mis...
Commodore Computer Club / Vancouver, WA - Portland, OR - PDX Commodore Users Group
www.commodorec...
--- Instructional videos
My video on damage-free chip removal:
• How to remove chips wi...
--- Music
Intro music and other tracks by:
Nathan Divino
@itsnathandivino
Outro Music:
Abyss by | e s c p | escp-music.ban...
Music promoted by www.free-stock...
Attribution 4.0 International (CC BY 4.0)
creativecommon...

Опубликовано:

 

13 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 321   
@spagamoto
@spagamoto 4 года назад
As a professional software developer, your code looks good for what it's having to do! Your comments are on point. 1) make it work 2) make it fast 3) make it pretty
@randyriegel8553
@randyriegel8553 4 года назад
I agree I'm a professional C#/Web developer as well and I don't think there is anything I saw that looked like people would even notice as far as speed. I work with arduinos as a hobby. Loved the video!!
@cls9474
@cls9474 4 года назад
@@randyriegel8553 After 3) or 2) it's usually 1) again :)
@donericb50
@donericb50 4 года назад
One more thumbs ups! I am an embedded developer and instructor and there is not a thing wrong with your code on the basis of: 5. Is it documented?. 4. Is it readable and understandable?. 3. Is it maintainable? 2. Is it extensible/modifiable? 1. Does it achieve the purpose adequately and DOES IT WORK?!! Adrian, you are a winner!
@absurdengineering
@absurdengineering 4 года назад
Here even the “speed” factor is of limited relevance: even the sloppiest code would be introducing latency that is dwarfed by the time actually needed to fully receive the scan code from the source keyboard - there’s little one can do about that. The time is spent: receiving the scan code, converting it, then sending it out. The I/O times are beyond our control unless we start outputting while the input is still underway - possible but probably not worth it unless some timing sensitive game experience was being destroyed by a millisecond or two of extra latency - I highly doubt that. Other than that, the translation time is less than one bit period of either incoming or outgoing data, so there’s nothing to worry about. I’d say that other than C++ style matters the code is perfectly fine!
@GeeWillikersMan
@GeeWillikersMan 4 года назад
A lot of it is a rip from github.com/kesrut/pcxtkbd
@JimLeonard
@JimLeonard 4 года назад
This was a fantastic addition to the Tandy hobbyist community, Adrian. Even in the USA, this will help people who can't find original keyboards. Very nice work.
@316diag
@316diag 4 года назад
don't feel pressured to shorten your videos. geeks love the details. that's what defines us.
@Dukefazon
@Dukefazon 4 года назад
17:20 - Yeah, it, always confusing when you look up pinouts, I always triple and quadruple check if I’m soldering the wires to the right pins. When I’m soldering DIN connectors I make sure that I get a plug of the opposite sex too, because no matter how careful I am I get some of the pins melted out of their plastic housing. And yes, my iron is at the right temperature before you ask. So plugging it into a blank socket it helps with the pins not getting misaligned and they don’t wonder out.
@electronicengineer
@electronicengineer 4 года назад
I do the same with any male/female pairs that are plastic. It also helps me in keeping the pin numbering/indexing correct. I test the pin number matching with a DMM/VOM set to continuity to validate the pin index and also that the male?female connections are all good. Fred
@ulflulfl9464
@ulflulfl9464 4 года назад
If you have problems soldering DIN connectors, you probably will have problems with other soldering work as well. Some tipps: get a "third hand" to keep the connector in place, get fresh solder on both the pin and the cable before(!) trying to connect them. Always keep the tip clean with a handkerchief (I don't like the sponge type of cleaner) and a small amount of solder. Usually you will not need to have the tip on any place for more than 2-3 seconds (this is important for the connector to stay in shape) and wait a moment between different solder points to cool things down. However, for example soldering the 13 pin DIN connector of the Atari ST video port was never easy ... :-)
@performa9523
@performa9523 4 года назад
The arduino board may as well be magic with all the crazy things it can do. Holy smokes, this project is incredible! Rock on sir, thank you!
@TheTurnipKing
@TheTurnipKing 4 года назад
This is more or less what the chip was designed for, interfacing.
@Damaniel3
@Damaniel3 4 года назад
Not just crazy, but crazy cheap too. The idea that you can buy a ready-to-go microcontroller for a couple bucks never fails to amaze me.
@BlackEpyon
@BlackEpyon 4 года назад
@@TheTurnipKing You could go a bit more old-school with a BASIC stamp.
@Frog_Puppet
@Frog_Puppet 4 года назад
I was just looking for a 1000 keyboard, so this solves my problem!!!
@ChromiaCat
@ChromiaCat 4 года назад
For some reason, I'm fascinated by all this old/retro/you name it stuff, and although I don't have any pc that is remotely old, I still watch every video of yours that comes out. Might be that I never had a computer like these to begin with, and the nostalgia hits even more seeing how stuff worked bach then.
@ninjamaster3453
@ninjamaster3453 4 года назад
Back in those days they had to be much more resourceful. Picking up a tandy like ex1000 sometime is good idea to play around with projects.
@RetroHackShack
@RetroHackShack 4 года назад
Dude! You are so lucky you have those codes. I am working on a similar project for a ATT 6300 for an upcoming episode. It is really difficult to emulate the right codes for that machine. Especially since they seem to be more rare than the Tandy's that had the odd keyboard. Not to mention I don't have the original keyboard. Great work!
@adriansdigitalbasement
@adriansdigitalbasement 4 года назад
Yeah Radio Shack has such good documentation. I don't have one of the AT&T keyboards otherwise I would see about capturing the codes on my scope. :-( We need these adapters for every old machine. I'm suck of the keyboard being a continual issue.
@IkarusKommt
@IkarusKommt 4 года назад
Those are the standard AT set 1 codes. That is a PC-compatible machine.
@user-jp7tw3sd3x
@user-jp7tw3sd3x 4 года назад
@@adriansdigitalbasement, Would you scan and ocr the Tandy documentation and put a link to in in the github project. I do suspect that the Tandy keyboard is classic XT/AT-Set1. I have more question and remarks, that I've written in a separate comment, that is so far completely ignored. :(
@RetroHackShack
@RetroHackShack 3 года назад
@MisterMac56 Awesome! Thanks.
@Angelgreat
@Angelgreat 4 года назад
Wow, I wasn't expecting that Planet X3 appearance near the end of the video.
@DavidPlass
@DavidPlass 4 года назад
I was waiting for it myself!
@amaiorano
@amaiorano 4 года назад
Arduino for the win! Nice job, Adrian.
@dschult3
@dschult3 4 года назад
Gotta love that Planet X3 test!
@francoisdastardly4405
@francoisdastardly4405 4 года назад
Very good work !! One fact. On arduino IF/ELSE is more difficult to read but execute faster than SWITCH/CASE.
@twocvbloke
@twocvbloke 4 года назад
Custom keyboard interfaces are fun, I've an oddball vehicle PC (with an industrial type single-board PC on an ISA backplane) which uses a 2-row DB15 for a combined PS/2 Mouse & Keyboard connection, which I need to build an adaptor for, so glad I found the manual for that SBC for the pinouts... :S
@amaiorano
@amaiorano 4 года назад
One request, Adrian, I notice you cut out of the video the wire stripping, tinning, soldering, etc., but personally I love watching those parts. Maybe you can consider leaving that in, or at least fast forward rather than cut?
@DavePoo
@DavePoo 4 года назад
Soldering those DIN connectors is super fiddly and it takes me ages when i try it, i can see why he would cut those bits out.
@karapuzo1
@karapuzo1 4 года назад
That tiny old chip in the arduino has around 4 times the processing power of the 8088 used in the Tandy 1000.
@erikvincent5846
@erikvincent5846 4 года назад
But it lacks the RAM and video processing that the Tandy had that the ATMEGA328P just doesn't. But, yeah, MCU's definitely gave grown.
@malcolmgibson6288
@malcolmgibson6288 4 года назад
Just stumbled over your channel, looks like I've got a lot of catching up. Great channel and much better than a number of others I have watched.
@stephenhorne7795
@stephenhorne7795 4 года назад
Im going to do this for my Tandy, but instead of making the adapter, I will install the board inside the keyboard shell. Thank you for the great videos!
@user-jp7tw3sd3x
@user-jp7tw3sd3x 4 года назад
@Adrian, I took a look of the code. I also did a little research on XT/AT/PS2 keyboards. I think the TANDY keyboard is using the XT "SET 1" that is probably still available in all PS2 keyboards. About your code I'm mostly worried about proper handling of key-pressed and key-released (make/break) messages. First, about the "SET 1". PS2 keyboards are two-way communicating and the host can send commands. Switching of the LEDs is done with host commands. There are also command that can change the working "SET". You may send "Set Scan Code Set = 1" (0xE0, 0x01) and then pass keys without translation. The layout may contain surprises, though. You may also check if sending "SET 1" codes to TANDY would produce keys that are otherwise missing. e.g. "KP *". This may avoid some hackery. About your code. 1. I do not understand why shift, capslock, num are only handled on make/press key on the PS2 side. It looks wrong. They should produce release/break codes, too. (Unless it has been explicitly disabled by host commands). Pressing shift, would lock it as been held, to release it you'd have to press it again. It would work like caps_lock with attitude . 2. Define all Tandy/Set1 keycodes and use their labels in the code. This way you can have e.g. "send_key(XT_KEY_SHIFT); send_key(XT_KEY_8);" 3. I would advice to check for the release/break key code "0xf0" at the start of the function and set a flag/variable to mark it. Most of the key handling are identical, with just the break flag difference. e.g. "send_key(ascan | break_flag);" Of course, special key handling "if (c==0xe0)" should be first, as it expects the release/break "0xF0" code after it. aka "0xE0,0xF0,71" for "Delete". (Still the special key handling routine is also doing key checks twice for pressed and released keys). 4. OCR and upload the TANDY documentation and put the link to the relevant part in the project. It won't hurt if you put a link to a PS2 documentation. (The one on avrfreaks site was very useful to me. Tell me if you want direct link.) 5. Do not make your own functions that start with _ or __. They are generally reserved for internal library functions. Might get funny if you overload them. 6. Some people already proposed to make a constant table of size 256 and fill it byte by byte. On some architecture constant tables are directly accessed from flash, so it may free up some of the RAM memory. No idea if that applies to the one you use.
@user-jp7tw3sd3x
@user-jp7tw3sd3x 4 года назад
Here is the link to the PS2 keyboard documentation. Maybe the spam moderation would bring my original post to your attention. www.avrfreaks.net/sites/default/files/PS2%20Keyboard.pdf
@obijuan232
@obijuan232 4 года назад
You are the man! Excellent work.
@muttBunch
@muttBunch 4 года назад
Adrian, thank you for this. Brings back memories. The SX was the first machine we had in the house in 1984 and it started my journey for everything since, at the age of 6. I still laugh hard remembering the 640k base mem, 4.7mhz and the 20 meg hard drive that you literally had to “park” on a huge ISA card. I remember playing every Sierra game at the time back then along with Janitor Joe, Bouncing Babies and Round 42. I could go on forever. I wish I could have stayed that young and not have any responsibilities like today :/
@BlackEpyon
@BlackEpyon 4 года назад
My first machine was my dad's Tandy 1000 HX (which I still have). 3 decades later, I even found the original receipts while I was digging through his old stuff! He bought it for about $250 CDN ($430 today) back in 1990 when RadioShack was clearing them out, with a Packard Bell B/W monitor for $190 ($330 today). About what you'd pay for a low-end system these days.
@sprybug
@sprybug 4 года назад
Great timing on this video! I'm currently working on a PS2 keyboard interface for the Atari 2600. I was doing pretty much the same thing you were doing, and I was writing a program on the Atari side to accept codes through the joystick port from the Arduino and display what you typed on the screen. Now I don't need to go through a lot of the mess that you have figured out!
@adriansdigitalbasement
@adriansdigitalbasement 4 года назад
There is a PS2 to C64 adapter out there. Look for Hartland C64. Might be helpful as I'd imagine the keyboard on the Atari is a matrix like the C64.
@sprybug
@sprybug 4 года назад
@@adriansdigitalbasement That may be helpful too. This one isn't for the 8-bit computer line however. This one is for the Atari 2600 console. I'm working on writing a program right now as a proof of concept for turning the Atari 2600 into an actual computer. I'm using the 2nd joystick port as the interface on the Atari side to the Arduino to accept the codes in 4-bit form Combining at least 2 of the codes to form a full 8-bit ascii value. There is a flash cart for the 2600 called the Harmony cartridge, that pretty much gets it halfway there. With some more additions like a keyboard interface, added memory, a way to program the ARM in the Harmony directly to gain direct SDCard access, along with code for an Atari 2600 OS, it would be able to be a limited but full fledged 8-bit computer that you could write your own code directly on, etc. I'd like to get others involved with it, that could possibly do some of the things I would love to do better than I could, which is why I'm working on this proof of concept right now to gain some traction. :)
@TheJeremyHolloway
@TheJeremyHolloway 4 года назад
@@sprybug that's quite an interesting project you have going there from the sounds of it. Have you posted to the AtariAge 2600 Forum about it? And if you didn't know about it, there were 2 different keyboards developed for the 2600 back in the day but only one released [both plugged into the cartridge slot and provided a pass-thru cartridge slot]. The one released was called the CompuMate and it was released by the same company that made the SuperCharger [a cartridge with 6K RAM and a connector for a cassette player; the games were on cassettes for it]. The other keyboard was designed by PVI on contract with Atari and its parent company Warner. PVI was made up of ex-Commodore engineers who created the C64's chipset but left because they felt like they had been ripped off. The details of it are at the Atari Museum website. There's 2 versions of the Harmony SD Cart plus there's the competing UNO cart which is open source on its code. Now, if you opted to jump to the 7800, there was a keyboard developed for it but never released. Like your plans, it connected to the 7800's 2nd Joystick Port and had its own proprietary interface chip which worked with the high-speed nature of that 2nd Joystick Port. Not only did it do keyboard functionality but it would've had a pass-thru for the 2nd joystick with a DB9 and also had an Atari SIO Port too. The late Curt Vendel - founder of Atari Museum and an expert on just about everything Atari related - was very impressed with it but he didn't get to reverse engineer it. There's an unreleased word processor, BASIC, and 2 versions of AtariLab software for the 7800's keyboard floating out there. Curt also speculated that the successor Atari Corp would've used Joystick Port 2 with some specialized controller to get a MIDI adapter working since they had planned to port the popular game MIDI Maze ["Faceball 2000"] to the 7800. Finally, if you weren't aware of this device, AtariAge also sells the AtariVox adapter. It plugs into Joystick Port 2 and works with the 2600 and 7800 to not only do speech synthesis but also save game scores. You might want to look into that too. Good luck and remember to post to the AtariAge Forums so you can pass on info and also receive help from the other homebrew hackers and coders!
@TheJeremyHolloway
@TheJeremyHolloway 4 года назад
@@adriansdigitalbasement Just so anyone reading this comment knows, there are existing PS/2 to Atari 8-bit keyboard adapters. One of the most recent projects is specifically for the Atari 400 and that one is getting debugged at the moment. :)
@sprybug
@sprybug 4 года назад
@@TheJeremyHolloway Hey Jeremy. Yep, I know a lot about these things! I did some research before starting this project up. I've made some Atari Homebrews and still working on my latest game that's been in the works for years and am close to getting it finished, which is a mega-man/kirby rogue like with boss fights and environmental differences in every level, along with a soundtrack for every level that's been very challenging to program on this very limited machine let me tell ya! This hardware side project has been an idea of mine for months and wanted to try something a little different so I don't go mad and lose motivation on the game altogether, which I have had in the past because of brick walls thrown at me left and right throughout its production. Anyhow, I do plan on posting about this in AtariAge once I get this proof of concept working and a video made to show. I want to see if I can spark an interest in the project there, much like I had done with Princess Rescue and Zippy the Porcupine when I first showed my demo off there. If so, I can get people on board who'd be able to accomplish some of the things I wouldn't be able to do on my own. A project like this would be best as a group effort with the best minds making it possible for sure!
@GameTechRefuge
@GameTechRefuge 4 года назад
I don't know why but I often solder GND to RX0 when working with Arduino. Great video as ever. Happy SepTandy!
@TheEPROM9
@TheEPROM9 Год назад
Glad you used an Arduino. Have loads of them & pretty familiar with projects involving them.
@stephenbruce8320
@stephenbruce8320 4 года назад
The only Tandy PC I owned was a 1000 HX which was my first PC and for the life of me I don't even recall how I acquired it. I never took much interest in it and just gave it away. I think the thing about Tandy and their PC's were the proprietary components which was not unusual back in the day. Other PC's used off the shelf components and I believe that's what interested me more back then. While I don't have an interest in Tandy stuff all that much I never knew the external keyboards were proprietary and that's a shame but good to know. Your solution to resolving that issue is also a good one should someone want to relive their Tandy experience. I can count on one hand the number of people I knew who used Tandy Computers. Back in 1980 I did buy one of their Pocket PC's just to write some code on but it was limited to like 1.9K of available RAM but I had more fun with that puppy then I did with the 1000 HX but that's because it was a novelty. For a while I had my eye on the Model 1 but then I discovered Commodore Computers.
@BlackEpyon
@BlackEpyon 4 года назад
I inherited my 1000HX from my dad, and I still have it. Loved that computer growing up, and couldn't bring myself to get rid of it. The EX/HX used proprietary "PLUS" cards, but they were mostly compatible with the 8-bit XT (ISA) bus, so you could make do with a ribbon cable if you had to. Some of us have even made our own PLUS cards to get around this issue. Really the only truly proprietary hardware was the keyboards on the early models. Otherwise, the Tandy 1000 line would run anything that was designed to run on an IBM PC, since the 1000 was based on the PC-Jr.
@robwebnoid5763
@robwebnoid5763 3 года назад
Fortunately, my 1000A came with its native keyboard, all handed down to me by a family friend back in 1994. Also gave me software, computer's manuals, amber composite monitor & Epson printer (with proprietary ribbon cable). I have 2 CGA monitors I use with it though. But this adapter will come in handy if anything happens to the keyboard.
@NostalgiaRetrogamer
@NostalgiaRetrogamer 4 года назад
Oh yeah! I was waiting for something like this for a long time! I´ve already saw the other project with the ATTINY but it was way more complicated. This was super easy and worked like a charm! Thanks Adrian!
@BlackEpyon
@BlackEpyon 4 года назад
Good for you! I remember this idea was floating around the VCF forum for years, but I don't think it went anywhere. This will certainly make other people's lives easier.
@PauloSilva-ll4vs
@PauloSilva-ll4vs 4 года назад
Adrian you are the 80's computer wizard... The Tandy computer was my desire object for years, but it was so expensive to me.
@BlackEpyon
@BlackEpyon 4 года назад
Actually, they were relatively low-priced compared to their IBM counterparts.
@xenonkay
@xenonkay 4 года назад
When your keyboard controller is more powerful than your main CPU...
@eDoc2020
@eDoc2020 4 года назад
The AVR may be faster, but it's not more powerful. The AVR can only run code burned into its flash, the 8088 can run code from RAM, enabling so many more possibilities.
@xenonkay
@xenonkay 4 года назад
@@eDoc2020 I was just being facetious because I find it funny that the uC has a higher clock than the PC. I probably would have gotten a similar response regardless of what word I used though because this is youtube.
@absurdengineering
@absurdengineering 4 года назад
That AVR can emulate the 8086, using external memory, at native speed of the Tandy. A second AVR could emulate the graphics card, yet another could emulate the sound output, a fourth one would take care of the floppy interface (emulated or going to real floppy drives). So it is more powerful in every meaning of the word, no ifs nor buts about it. It absolutely doesn’t need to run code from the flash if the goal is emulation. Three-four $3 Arduinos, some sweat equity in coding it up, and you got yourself an OK Tandy 1000 clone. For reals! It probably could be made cycle-accurate, too, for perfect emulation. An AVR can run slow-ish Linux. Been done, google it up!
@eDoc2020
@eDoc2020 4 года назад
@@absurdengineering True, I wasn't considering that you could emulate the Intel CPU, and I have read about the AVR emulating ARM Linux. I think it would be at least a bit slower than the original, especially considering you'd need extra time to handle multiplexing some of the lines due to the 328p's limited IO pins. You certainly couldn't emulate the graphics chip in realtime with just a 328p, you'd need to be changing output pins every cycle, not leaving any time for accepting writes from the CPU or even computing the required writes. If you overclock the 328p to 28.6MHz you'll get two cycles to do each write, which can probably give you some useful color composite graphics output, but not Tandy graphics.
@absurdengineering
@absurdengineering 4 года назад
eDoc2020 Yeah, you’re right. I just tried it and it’d take a couple 328p’s to do graphics. Amazingly enough, it’s still cheaper than trying to use legacy discrete TTL glue logic to do the speedy parts. With separate 328ps one does refresh address generation and timing, another does palette and font lookup and and DAC. Those two pretty much replicate the CRTC. Tandy graphics weren’t that complicated - no sprites IIRC, unless I’m looking at the wrong docs.
@RetroHackShack
@RetroHackShack 4 года назад
One note for people wanting to build something similar - If you use an Arduino Pro Mini, keep in mind there are two versions. One has 5V logic like a normal Arduino and the other has 3.3V. Most other Arduino boards use 5V. I am not sure 3.3V logic would work for the keyboard signals. Also, even though you can power the 3.3V Pro Mini with 5V on the RAW pin, the VCC and the other pins will be at 3.3V including the programming pins.
@adriansdigitalbasement
@adriansdigitalbasement 4 года назад
I'm pretty sure the IO pins on the 168 and 368 are always at the voltage of the VCC input. Don't use the RAW input as the MCU operates fine on both 3.3v and 5v directly fed into VCC. (Bypass onboard reg) This has been my experience at least.
@RetroHackShack
@RetroHackShack 4 года назад
@@adriansdigitalbasement I suppose that's true as long as you are sure to use VCC only. The only difference at that point would be the clock speed (16mhz vs 8), but that's not going to make any difference for a project like this. Thanks for the quick reply.
@proxy1035
@proxy1035 4 года назад
was about to say "just use a bare Atmega328p" but honestly the Arduino boards are barely any more expensive and come with a complete board and simple programming interface. overall pretty useful little project.
@mikehensley78
@mikehensley78 4 года назад
you could probably fit that arduino inside the keyboard and run just a cable out of it for that ultra clean look. very cool build/hack!
@garthhowe297
@garthhowe297 4 года назад
Excellent Adrian. I paid a hefty sum for one of my Tandy 1000 keyboards.
@phanominon
@phanominon 4 года назад
This is an awesome video for the Tandy. Is great to see the Tandy's get some love on RU-vid.
@mattalki
@mattalki 4 года назад
I wonder how hard it would be to make a new nameplate for that Tandy 1000. That's a pretty rare bird, and it would be neat to have it complete. Great vid, btw! The first IBM PC compatible that I ever used was my father's Tandy 1000SX. Ahh, memories!
@BlackEpyon
@BlackEpyon 4 года назад
3D printer, then roll some silver paint onto the highlights. I'd even brush it across some sandpaper lengthwise before painting it to give it that "brushed" look those decals had.
@davidcaruso5253
@davidcaruso5253 4 года назад
Holy cow, Adrian...this is awesome. Level up! BTW...professional dev here...your code looks fine, don't be so self-conscious. To paraphrase the US Marines..."if it's ugly and it works...it isn't ugly."
@lobizonxp
@lobizonxp 4 года назад
That 8-Bit Guy cameo was great!
@travisjones3615
@travisjones3615 4 года назад
That's an awesome project. I will definately have to attempt to make one for my 1000A. While I do have its origional keyboard it has issues like phantom key presses, among other things. So it will be nice to have a properly functioning keyboard for my tandy. Thank you adrian for putting this together.
@beatadalhagen
@beatadalhagen 4 года назад
That's the right keyboard for the TX. The 'hold' key was great for pausing games.
@BlackEpyon
@BlackEpyon 4 года назад
Though a great source of frustration if you hit it by accident. I love the Tandy 1000 line (I've got a few myself), but the keyboards earlier on in the line could have used some more thought. Mind you, that was before the keyboard layout became standardized into the 101/104 layout that we all know and love today.
@emorelama
@emorelama 3 года назад
Good work Adrian. Thanks for sharing the code.
@colinstu
@colinstu 4 года назад
you should check out marine-grade heatshrink tubing. it has glue inside that melts as it shrinks, creates a solid/waterproof/resistant connection.
@bluesillybeard
@bluesillybeard 4 года назад
now just use a USB keyboard.. USB -> PS/2 -> AT -> tandy 100 what a chain of adapters that would be.
@cls9474
@cls9474 4 года назад
There're actually Arduinos with USB interface available - will require some additional tinkering though.
@bobblum5973
@bobblum5973 4 года назад
Don't forget to try a wireless keyboard USB dongle -> PS/2 -> AT -> Tandy. I've actually used a Logitech keyboard and mouse on a shared wireless dongle plugged into an On The Go adapter, then the OTG adapter into my Android tablet or phone. They both work fine, a bit weird seeing a mouse type pointer on your phone! As long as you can provide enough current for the dongle it should work fine on the Tandy; obviously you'd use only a ketyboard, the mouse would not work.
@AWalYT
@AWalYT 4 года назад
I remember back when USB was still kind of new (early 00s) that you could buy PS/2 keyboards that came with passive USB adapters to connect to the still common PS/2 ports on compys. For a while I had this one that used the passive USB -> PS/2 that it came with, then a PS/2 -> AT so that I could use it on my (just a tad dated) Pentium computer.
@basvanharen2904
@basvanharen2904 4 года назад
Good job on making new hardware/interfaces for this old stuff. I like it, thumbs up!!👍🏻
@AnotherUser1000
@AnotherUser1000 4 года назад
I didn 't watch all of your video, but I think that I contribute to it with two pieces of advice: 1) Maybe it would be better for some users to just shove the arduino PCB inside the keyboard itself and avoid any mess with the long cables, bulky adapters and bad contacts. 2) If you are planning to use the PS/2 plug, you can always use some thin, short pieces of heat-shrinkable tubes, make fast solderings on its pins, wait after every soldering and use a 25W or lower soldering iron. Or you are gonna and up with a screwed-up PS/2 plug! I hope I was straight-forward and helping! If you don' t understand me clearly, it' s because I' m Greek... ;-)
@BlackEpyon
@BlackEpyon 4 года назад
1) If you've got a keyboard that you've dedicated to that system, that could be handy. It's certainly small enough to do so, but then that keyboard can ONLY be used with that system. It also rules out using a KVM if you're limited on space (not that many people used KVMs with CGA monitors, but you know what I mean). 2) The cold solder joint is probably because he's using that USB-powered soldering iron. I'm of the same opinion as Dave from EEVBlog on those things. They're great to stuff into your pocket for doing field repairs, but for ACTUAL work, just use an AC-powered iron with adjustable temperature (I usually have mine set at around 35-40w for most work). That way it STAYS at temperature. Most USB just doesn't pass enough current to keep the iron consistent once you start working on things that sink heat.
@brianleeper5737
@brianleeper5737 4 года назад
@@BlackEpyon Even better (although more expensive) is a temperature-controlled soldering station where you can set the desired temperature in either F or C, and it will maintain that temperature by sensing the temperature at the tip and controlling the power sent to the heating element.
@BlackEpyon
@BlackEpyon 4 года назад
@@brianleeper5737 I ought to get one of those at some point. My current one is a NexxTech variable wattage iron. Goes to 60w. It's cheap, but very functional.
@brianleeper5737
@brianleeper5737 4 года назад
@@BlackEpyon I have a Weller WESD51, which is no longer made. But it works very well.
@BlackEpyon
@BlackEpyon 4 года назад
@@brianleeper5737 Ah! Good 'ol Weller.
@georgemaragos2378
@georgemaragos2378 4 года назад
Hi , pretty nifty, use a mini pc to fix a keyboard For strain relief back in the day when we home made serial cross over cables ( 9 to 25 pin or double ended both sides -4 connectors ) we use to use cheap / free floppy drive flat ribbon - for strain relief we just used 3 zip ties The large one was laid flat, then at each end we use a smaller cable tie that went around the cable diameter and the flat tie ensuring that after the "wrap was some loose inner cable cable where the soldered joins were " Hmm hard to explain, ok, lets assure the large flat zip tie is 6 inches, crimp one end, then ensure the inner cable is 8 inches long , then cable tie the other end, this gives 1 inch each side as slack. The other way with 4 wires was to use a 12 volt in line glass style car fuse assembly ( they are about the size of your finger ) open it up , pass one side of the cable into the fuse holder, then use a zip tie to stop the cable moving internally, some slack , then repeat on the other end We also used to grab a permanent market and draw a line on pin 1 red or black on earth to make sure we got it right Regards George
@BlackEpyon
@BlackEpyon 4 года назад
Arduino Nano is a micro-controller, not a mini-PC. You can get other micro-controllers that are just a straight IC, but the Arduino is easy to work with since requires no special hardware to program.
@TheTurnipKing
@TheTurnipKing 4 года назад
The Amstrad 1512/1640 has a similar issue. The keyboard interface is non-standard on that machine too. I believe it was a common point of differentiation for early PC clone makers. As long as software targetted the BIOS for keyboard input, it wouldn't be an issue for compatability, but it also meant that there was at least something on the machine that deviated from the original PC design heavily. Like the Tandy, the technical reference guide fully describes the timing for the machine specific keyboard interface.
@juappdev
@juappdev 4 года назад
I've been looking at trying to make a fake keyboard for the 1512 using an arduino but I haven't have much luck getting the computer to even recognize a keyboard exists even using the timings suggested in the docs
@TheTurnipKing
@TheTurnipKing 4 года назад
@@juappdev I didn't have much luck with it either, but I honestly couldn't tell where the point of failure was, my soldering, my programming or the documentation.
@adriansdigitalbasement
@adriansdigitalbasement 4 года назад
With the Tandy stuff, I used my scope to validate things and found the real keyboard didn't exactly match the documentation. So, I made the code replicate the real keyboard not the documentation. Maybe Amstrad did something similar where the docs don't match reality.
@garryadamson8507
@garryadamson8507 4 года назад
The Amstrad PC 4386SX is the same. I think the pins are a slightly different diameter to a standard 5 pin DIN as well.
@TheTurnipKing
@TheTurnipKing 4 года назад
@@adriansdigitalbasement I suspect that's the case. It's been a while since I looked at it, since I picked up a real keyboard shortly thereafter. It might be worth revisiting now, especially since I have the original device for comparison. The computer resets the Keyboard for a few seconds so it might be interesting to see what the keyboard microcontroller is actually outputting afterwards.
@An_Onion
@An_Onion 4 года назад
I was literally writing a comment wondering if I could port this to an attiny, but I see that Scott Baker is already doing something like that. All the retro big heads are in for Septandy.
@megatronmegatron5988
@megatronmegatron5988 4 месяца назад
1000AX was my first computer when I was a kid.
@andiroemer8180
@andiroemer8180 4 года назад
Adrian: Another piece of great work! Very nice and useful! Unbelievable to see whats possible with the right knowledge and motivation. Looking forward to your next Video!
@shmehfleh3115
@shmehfleh3115 4 года назад
This is really cool. It might be worth building a dedicated keyboard by incorporating the Arduino board into the keyboard's shell, then running a DIN cable out of it straight into the Tandy.
@TheTurnipKing
@TheTurnipKing 4 года назад
You could simplify the whole project by replacing the original keyboard microcontroller at that point. The major benefit of an adaptor like this is that both the computer and the keyboard can remain unmodified.
@BlackEpyon
@BlackEpyon 4 года назад
​@@TheTurnipKing Replacing the keyboard's controller outright is harder. You'd need to design and fabricate a separate PCB to mate with the matrix, and then it would be limited to only that line of keyboard. The arduino can just be spliced inline and hidden inside the keyboard, which is much simpler.
@jimb032
@jimb032 4 года назад
Adrian...great video! Helpful hints that may have been pointed out... since you are using and ftdi, no need for a bootloader at all. That's really only for serial so it can pull the program up through the serial lines at boot time. Just select the next option down on the arduino menu to upload...I can't remember what it's called.
@bobblum5973
@bobblum5973 4 года назад
Nice job, Adrian! You could actually install the adapter inside the keyboard to create a dedicated Tandy keyboard, using the proper DIN plug on the cable end and everything. I'm sure someone likely come up with a circuit board layout to hold the Arduino and PS/2 jack, and a header for a Tandy-style keyboard cable. PCBway might be a good candidate for making the board itself. Add a 3-D printed case and it'll look factory fresh! If you ever make one of these adapters for older Apple machines, you can call it an "ADB ADB Adapter": Adrian's Digital Basement Apple Desktop Bus Adapter!
@BlackEpyon
@BlackEpyon 4 года назад
A dongle mezzanine board wouldn't be hard to make (and quite cheap with those dimensions), but it would limit compatibility between Arduino devices because of the pinout. The beauty of wiring it straight like this is that you can just use whatever Arduino you have on hand.
@bobblum5973
@bobblum5973 4 года назад
@@BlackEpyon I was not aware of how many different Arduino device models or styles are out there, but I did assume that their designs might change frequently. I was hoping there was some standardization so that a small PCB could be made to accept the more common ones at least. Mainly I just wanted to encourage the exchange of ideas; I am not disappointed!
@BlackEpyon
@BlackEpyon 4 года назад
@@bobblum5973 You certainly could make one to fit the Nano, you just might be limited to that model, that's all.
@briangoldberg4439
@briangoldberg4439 4 года назад
Awesome Tandy project! Looking forward to your next video.
@TheEPROM9
@TheEPROM9 Год назад
Looking at your code you did a good job. Gona use it for my Tandy 1000TL I brought to the UK from the US. Getting it back was "Intresting"
@fragglet
@fragglet 4 года назад
If you're not experienced in soldering it can be worth spending a few dollars more to get the fancier DIN connectors with the metal casings. I found those much easier to work with when I was building an adapter for my Apple II recently
@thehighwayman78
@thehighwayman78 4 года назад
Love your channel Adrian, it's so nice just hanging out with you in the basement :) Thank you!
@andrewlittleboy8532
@andrewlittleboy8532 4 года назад
You’re spoiling us Adrian with another video within 24 hours! 👍
@igorperuchi2114
@igorperuchi2114 4 года назад
Great video, even greater content! I wonder if this could be expanded to some other computers (maybe the Atari 8-bit line, too)!
@SenileOtaku
@SenileOtaku 4 года назад
Back when I had my Tandy 1000A, I eventually found a pre-made adapter to do this same thing (in-line adapter for DIN AT keyboards). Don't remember where I had found it, might have been at a Computer Fair (remember those? You could actually buy all the pieces you needed to build a computer all in one day, bring them home and build your system right away). The F11 and F12 keys on those early Tandy 1000-series machines had different scan-codes as an AT F11-F12 (as I understand). The original Deskmate (maybe Deskmate II?) required the Tandy 1K keyboard for certain functions, and some games ported to the machines made use of them.
@davefarquhar8230
@davefarquhar8230 4 года назад
Adapting a PS/2 keyboard to a Tandy 1000? Automatic like, 30 seconds in!
@waltschannel7465
@waltschannel7465 4 года назад
Fantastic work, Adrian! I was thinking of Young Sheldon and all the story lines about Radio Shack of the 1990s. I remember looking at the Tandy machines back then, but didn't bite (or is it byte!) because my focus incorrectly or not, was on software compatibility, and every article I read plus the warnings of Radio Shack themselves led me to believe that the 1000 and its successors would not be compatible with most of the existing software at the time and that you were stuck buying software at Radio Shack as well as the hardware. Later, that proved not to be the case as much because third party software vendors started producing programs for the tandy, but I think it hurt sales of the machines, as other brands of machines, notably from Compaq, were not IBM but yet they were compatible with much of the third-party software being written at the time . Later, I became aware of the complete office suite that Radio Shack had available for the Tandy machines, and learned that it was one of the best all-around packages available at the time until Microsoft office came along. So, live and learn I guess!
@BlackEpyon
@BlackEpyon 4 года назад
Na, the Tandy 1000 line was based on the IBM PC-Jr, and was the very definition of PC-compatibility for years! Now, if you wanted it to be backwards compatible with TRS-80 software, then you'd be out of luck, but the Tandy 1000 line would run ANYTHING that an IBM PC/XT/AT would. It was also cheaper, since IBM at the time only thought to copyright their BIOS firmware, rather than the hardware itself (which everybody cloned).
@TheJeremyHolloway
@TheJeremyHolloway 4 года назад
@@BlackEpyon in fairness to IBM, they were still under the purview of an antitrust case with the Feds. That's why they didn't roll their own OS or use their own CPUs and instead went for off-the-shelf components. They briefly did consider buying a 50% stake in Atari Inc at the suggestion of Warner CEO Steve Ross but at the time, Atari Inc didn't have their own standard 80-column video adapter for the 400/800, they were using 6502s [while working with Synertek to roll out the "6510" which had 16-bit extension instructions but apparently crashed and burned], and the other CPUs Atari was working with and considering were Motorolas and Motorola didn't have the manufacturing capacity nor the robust 2nd source suppliers or decent licensing terms for customized versions of the 6809 or 68000. What a shame.
@xXRedyzXx
@xXRedyzXx 4 года назад
good on you for being humble, good content keep it up
@CB3ROB-CyberBunker
@CB3ROB-CyberBunker 4 года назад
actually most usb keyboards come or came with a passive converter to ps/2 minidin (which is the same as AT with a different plug). keyboard firmware doesn't change all that much so there is a pretty good chance you can simply cut the plug of any usb keyboard and solder a din or minidin to it and it'll just work. which retroactively even goes for XT standards. most (around half of them out there) of the oem/3rd party AT/PS2 keyboard firmwares also autodetected the XT protocol back in the days and that code may still even be there.
@joegee2815
@joegee2815 4 года назад
I love that you made this. But I think someone should build this card. There are companies that build PCBs pretty cheap...
@brittman914
@brittman914 4 года назад
That keyboard definitely works on my Tandy 1000TX FYI
@radiolabworks
@radiolabworks 4 года назад
My Northgate Omni Ultra manual indicates it does support the Tandy 1000SX and 1000TX via one of their dipswitch settings. My old Northgate won't disappoint ;) BTW, really nice solution Adrian, as the Northgate does bust your cost consideration.
@mr.monkeyface214
@mr.monkeyface214 2 года назад
What dipswitch settings are you referring to because I also have a TX but the Arduino only powers on for a split second right after turning on the computer?
@glonch
@glonch 4 года назад
Amazing work! Bravo!
@chridi3
@chridi3 4 года назад
“you have to use your mind“ is the best Quote of this video. 😅👍
@00Skyfox
@00Skyfox 4 года назад
Excellent work!
@hwesson75
@hwesson75 4 года назад
I'll have to remember to look in to this possibility for my 6000HD that I don't have a keyboard for... Apparently one for a 12 or 16B will also work on it, but, yeah, not terribly easy to find. If I ever get to a point that I can re-cap the power supply in the thing. Worked great first time I powered it up after I got it a few years back, it loaded up to a Xenix prompt I could do nothing with, no problem. Second time I hooked it up earlier this year just because I had nothing better to do, after a bit of wiggling the pile of cards around and powering it on/off a few times the errors went away and it came up once again, and then a minute later that oh so fun hissing and popping with that distinct frying capacitor smell happened and the power cord got yanked out super quick.
@JoesComputerMuseum
@JoesComputerMuseum 4 года назад
THIS IS THE VIDEO I NEED RIGHT NOW. :D
@falsehero2001
@falsehero2001 3 года назад
Needed this so bad.
@tonanornottonull7132
@tonanornottonull7132 4 года назад
Great video, Adrian! That documentation Tandy whipped up is fantastic. I'm kind of curious to see if a wireless USB adapter for a wireless keyboard would work fine via a USB to PS/2 adapter on the input side of the Arduino
@BlackEpyon
@BlackEpyon 4 года назад
IBM and Tandy both used to have technical manuals available because a lot of "power-users," as we would call them now, would make their own hardware back then. You rarely see that kind of thing today.
@minombredepila1580
@minombredepila1580 4 года назад
Excellent project Adrian. With some code modification, it could be adapted to almost any other computer !!!!
@adriansdigitalbasement
@adriansdigitalbasement 4 года назад
That is my intent. I'm going to work on Amiga and original non-ADB classic macs next.
@crustjunkie
@crustjunkie 2 года назад
Thinking about doing this to hook up my X-Arcade tankstick to my Tandy since it uses PS/2
@tomgeorge3726
@tomgeorge3726 4 года назад
Hi Adrian, great video. You need to identify the Arduinos, Nano and Pro Mini. Pro Mini needs a FTDI adapter to program it.
@andrewlittleboy8532
@andrewlittleboy8532 4 года назад
I always try and pick up them old ps/2 hp keyboards, nice to type on.
@j.l.gonzalez8918
@j.l.gonzalez8918 4 года назад
Great video! I hope the process is also valid for an Amstrad PC keyboard. I have to try this some day.
@AureliusR
@AureliusR Год назад
Try running your code through a program called astyle. It's a nice way to properly format C and C-like code. It has a lot of presets, but I tend to use "astyle -A14" which is "Google" style according to the astyle manual, but it's the look I prefer. You can either use a preset number or you can individually set each particular setting -- where braces go, where spaces go, etc.
@paulstubbs7678
@paulstubbs7678 4 года назад
I've been wondering about connecting an Arduino to a TRS-80 model 1, to the address and data bus so I can emulate peripherals, this adapter of yours has me back thinking about that project.
@SkuldChan42
@SkuldChan42 4 года назад
Nice work! I think that HP PS/2 keyboard is required inventory for any Portland area Goodwill as well (I have one as well - with the extra multimedia keys).
@BlackEpyon
@BlackEpyon 4 года назад
I wish the thrift stores in my area had a decent amount of retro-content. Too much of it just goes to the Bottle Depot for electronic recycling. I keep looking anyways, but the pickings are usually pretty slim.
@XAWZ
@XAWZ 4 года назад
Thank you Adrian. I can't believe there wasn't a solution for this already. Long time coming. Also, there is a keyboard called the Northgate Omnikey that supports the Tandy 1000 scan codes, but its not fully compatible and almost (but not quite) as rare as the original, and it still needs an adapter. It took me months to find an original Tandy 1000 keyboard in non-working and damaged condition. I did get it working though.
@adriansdigitalbasement
@adriansdigitalbasement 4 года назад
What's funny is last year when I started working on this there were none -- but it seems multiple others have worked on this same exact project in parallel to me! I put links in the description to their projects.
@knightcrusader
@knightcrusader 4 года назад
Robert Krenicki (the EX/HX 3-in-1 guy) has been building adapters using the ATtiny. I know he's been held up by having issues getting some of the parts he needed, but I think he finished up a batch of them not too long ago.
@DerekWitt
@DerekWitt 4 года назад
Planet X3 at the end FTW!
@jonshouse1
@jonshouse1 4 года назад
Code looks ok, it works that is the main thing. You can maybe trim it a bit by defining the translation table more like this, I often use sets of 8 or 16 per line for tables.... unsigned char translate[256] = { 0x0B, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A ..... etc }; If you don't want to re-key it then just use a for loop to dump the table you currently have to the serial at runtime :-)
@brianleeper5737
@brianleeper5737 4 года назад
I remember seeing in one of the RadioShack catalogs in the late 80s an adapter that would allow you to use a normal XT keyboard on a Tandy 1000. IIRC it was around $100 or so.
@frankyboy4409
@frankyboy4409 4 года назад
Obviously, now you already did all the work, but for programming I'd wire two inputs to the arduino and have a sort of testing program which reads input from 1st keyboard, then input from 2nd keybaord, and creates a map that is written out to console for the final program, as that would make the code usable for not just the Tandy 1000. Heck, I might try that out :)
@thumbwarriordx
@thumbwarriordx 4 года назад
I didn't even realize optiboot loaded faster. I just used it to squeeze an extra feature or two into my 3D printer.
@VicTheVicar
@VicTheVicar 4 года назад
That hot swap action tho!! On my Commodore PC's (AT connector) the computer freeze whenever you unplug the keyboard by mistake :S
@the_sjdo
@the_sjdo 3 года назад
now this is wat i need for my XT, but working on atmega32u4
@danilko1
@danilko1 4 года назад
I don't hit the bell... The best thing, when I come to RU-vid, I'm surprised at all the new content, and that's a good thing.
@mjy
@mjy 4 года назад
It works with the 1000 TX as well. That's the model I have, and the keyboard is identical.
@mr.monkeyface214
@mr.monkeyface214 2 года назад
Did you have to do anything not mentioned in the video to get it to work because I also have a TX but the Arduino only powers on for a split second right after turning on the computer?
@pcuser80
@pcuser80 4 года назад
Make the extra keys a macro :left winkey=dir[enter], right winkey=type, appskey=.... etc etc
@frankowalker4662
@frankowalker4662 4 года назад
Nice job on the programing, even though it does look a nightmare. I could'nt have done it. Big thumbs up!
@stinchjack
@stinchjack 4 года назад
your mandatory subscription to ADB is now active.
@Matlalcueitl
@Matlalcueitl 4 года назад
Now I have to build a Tandy 1000.
@JessicaFEREM
@JessicaFEREM 4 года назад
It's a pretty and slim adapter. good work adrian!
@Samuel-ge7im
@Samuel-ge7im 4 года назад
What an amazing video
@RemiDupont
@RemiDupont 4 года назад
Wow that is really useful, the Tandy keyboard are really rare by themselves. Next lets build a joystick adapter for the DB15 to Tandy DIN ;)
@BlackEpyon
@BlackEpyon 4 года назад
That's just a straight pin conversion. No fancy timing or coding issues requiring an Arduino, it's just straight analog.
@fyreantz2555
@fyreantz2555 4 года назад
Utter kewlness.
@ThePalmermark
@ThePalmermark 4 года назад
FYI Tandy sold a Universal Keyboard Adapter for the 1000/1000SX. Cat. No. 25-1030
Далее
A viewer sent in a very special donation!
35:41
Просмотров 96 тыс.
How to use D-Pad controllers on the C64
39:09
Просмотров 31 тыс.
How-to: Installing a Gotek in a Tandy 1000HX #septandy
23:26
Recapping and testing a Mac SE/30 motherboard
24:24
Просмотров 42 тыс.
So how does a PS/2 keyboard interface work?
33:07
Просмотров 488 тыс.
How does a USB keyboard work?
34:15
Просмотров 3,2 млн
Radio Shack Tandy 1000 EX Fix and Tour
15:35
Просмотров 58 тыс.
Testing a $100 Mini PC: The Bmax B1 Plus
22:41
Просмотров 648 тыс.
This Atari was nearly trashed! Can I save it?
34:16
Просмотров 190 тыс.