progressions from ham radio to home-made workbench CPU, PICs

Feel like saying hi? then go ahead!

Moderators: Chuckt, Garth, bitfogav

Post Reply [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Garth
I practically live here!
I practically live here!
Posts: 232
Joined: Wed Jan 16, 2013 1:17 pm
Contact:

progressions from ham radio to home-made workbench CPU, PICs

Post by Garth » Thu Jan 17, 2013 5:19 pm

My early interest in electronics (1970's) was in stereo and amateur radio, not computers. Remember the line in the movie "Pirates of Silicon Valley" where the executive, puzzled and tapping his pencil on the desk, said slowly, "What would the common man want with a computer?" (They must have had some good laughs making the movie.) :lol: Back then, computers were rare, huge, and expensive, and people who worked with them seemed next to God or something.

I've been inactive in amateur radio for 28 years, maintaining my license only in case I'd want to make my own radar or missile-guidance system to take out an ice-cream truck or something exciting. :lol:

My computer interest began mildly when I wanted to do audio and RF circuit calculations that took thousands of iterations. I got myself a TI-58c programmable calculator in Dec '81. The next year, my schooling took me through a 6502 class with the AIM 65 computer, and a Fortran IV class which required doing our practice on the school's IBM 360 mainframe computer. You'd transfer your hand-written program onto cards at a big card-punch machine so the dresser-sized card reader could accept it, then rubber-band the cards together with a paper having your account number and put it in a cubby, and come back two hours later for a printout of all the reasons it wouldn't run. :lol: By then, the boys who could justify the cost of (or had access to) an Apple or TRS-80 or similar were using BASIC, and assembly if they were more adventurous; but the school was behind the times, I suppose. It reminds me of the 1969 movie "The Computer Wore Tennis Shoes" where the college was given its first computer, free, because it was already so outdated. :lol:

I worked as a repair tech at TEAC in Southern California in '82-83. There were about 120 employees, and only one computer in the building, occupying its own special holy room, off limits to all but two or three people in the computer priesthood, and all the sales and accounting people had terminals hooked into it. It was only for data processing, not at all for embedded control which would soon become my greatest interest. By then some of the tape recorders I worked on there had microcontrollers (with bugs), although microcontrollers were definitely not ubiquitous yet.

A friend had an HP-41 calculator but I didn't initially think I could justify the expense. When I worked in applications engineering in '84-85 at a VHF/UHF power transistor manufacturer, having an ultra-portable hand-held unit to control repetitive processes with the lab equipment became quite attractive, and the HP-41 calculator fit the bill. It could be taken from your desk to your workbench and back, much more easily than laptops (which didn't really exist yet). In 1986 I was the only engineer working at a much smaller company and, having gotten an HP-41cx by then, I set up our first automated testing of products with it. The I/O programming on it was much easier than doing it on a PC. People would nearly wet their pants when they saw a hand-held unit controlling a stack of lab test equipment. :lol:

There was a ton of wonderful IEEE-488 test equipment to drool over in the thick, hard-bound Hewlett-Packard catalog that came out every year. I couldn't afford it, but it didn't take a genius to see the possibilities with making my own computer and rigging up inexpensive substitutes with A/D and D/A converter ICs, relay outputs, etc.. Soon I wanted microsecond control of the pins, something I couldn't get with the HP-41 or 71 (even programming them in assembly), and I was dreaming of something like my workbench computer you can see in my (outdated) project pages. Although my first one (1985) worked, it was far bigger and more complex than it needed to be, and wasn't much good for anything. I did learn a lot about what would be good though.

In 1986, my employer came to me with an idea for a timer to put in an earcup of an aircraft headset to beep you when it was time to switch fuel tanks, arrive at a waypoint, etc.. No one had such a product. His idea of how to work it was totally impractical though, and I thought, "If we used a 6502, the capabilities could be vastly expanded without adding much hardware complexity." I was very green at making computers, and at how a project like this ought to be managed, but the boss didn't know any better either, so he set me to work on it. Now it was to go in the intercom (instead of a headset) and to display checklists, hold flight plans, etc.. He frequently came to me asking, "Can we do such-and-such too?" and I'd immediately envision how, and tell him yes. "Feature creep" set in like crazy. Every few days he came to me with a new wish list for Santa Claus, and I obliged. :lol: For a while it even had a very compact cassette drive controlled completely by the computer, and we put data on one track and voice on the other. The computer could rewind and fast-forward the tape to get to different files. I designed a tape modem we could make for under a dollar. Someone else was in charge of packaging and mostly killed the product before it was solidly launched, because they made it too labor-intensive to assemble. I learned a ton though.

Of a later set of automated test equipment I set up there, there were initially supposed to be seven sets, so "rack-and-stack" IEEE-488 equipment would then be too expensive, especially if a deal turned sour and one of our Korean suppliers kept our hardware (which did happen later). So since the programming and design time could be amortized over plenty of sets if we made our own, that's what we did. STD bus (which stands for "simple to design," not "standard") was chosen for its low cost and wide range of available boards, and I designed several more custom boards. The computer board used a 6502, and I programmed it in Forth.

I had a couple of false starts on making a nicely packaged workbench computer with an ABS plastic box that could be thrown in the attaché case, then in just one week in 1992, built the original form of the 6502 workbench computer I use now. Every few years I added something to it (such that the pictures at the link are very outdated now). It has proved incredibly valuable for controlling experiments and processes on the workbench, trying new ICs we would put in products, and programming PIC microcontrollers for several products. It actually has a 65802 now, not 65c02, and I developed my bank-0-only '816 Forth on it. Over the years, I designed many products with PIC microcontrollers for our company and brought them to market, programming them with a home-made programmer controlled by this workbench computer. It was production-worthy, having the A/D and D/A converters for operating and checking at anywhere from 2 to 7 volts.

I am currently (Feb 2016) working on building a new workbench computer, with more of everything than the current workbench computer which I've been using for 23+ years, more I/O, A/D's, and D/A's, bigger display and keyboard, more memory (12MB), more speed, better portability (even though it will be bigger, probably in a half-rack-width portable card cage with internal batteries and power supply), etc..


Many of my articles: There's a list of 76 of my articles at http://wilsonminesco.com/GarthArticleLinks.html .

I started some others years ago and was delinquent about finishing them:
  • Primer on synchronous serial: dumb shift registers, I²C, SPI, Microwire, 1-Wire, SMBus (I do have a brief comparison of them though, here)
  • primer on multiple-precision, scaled-integer, and fixed-point math in place of floating point which incurs a much heavier runtime overhead and is totally unnecessary for most applications, even scientific! (but some of it was covered in the completed article on look-up tables above)
  • publish my '02 and '816 Forths
Last edited by Garth on Thu Feb 25, 2016 8:50 am, edited 7 times in total.
http://WilsonMinesCo.com/ lots of 6502 resources

User avatar
brad
Site Admin
Site Admin
Posts: 2578
Joined: Fri Mar 26, 2010 10:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: progressions from ham radio to home-made workbench CPU,

Post by brad » Thu Jan 17, 2013 11:12 pm

Wow. That was a great read!

I was born in 1982 and am fascinated with 80's technology and love hearing stories about people who were employed in jobs just like yours. I would have loved to have been mature age in the 80's working on projects just like yourself.

Thankyou very much for taking the time to write it up and for telling us about yourself. You have some great links there and one day when i finally get around to it. I will certainly need to do a big read up of your 6502 articles when i build me own computer :)

Welcome to the forum!

Garth
I practically live here!
I practically live here!
Posts: 232
Joined: Wed Jan 16, 2013 1:17 pm
Contact:

Re: progressions from ham radio to home-made workbench CPU, PICs

Post by Garth » Wed Oct 20, 2021 1:23 pm

I'm not able to edit my post above, apparently because the forum software no longer allows lots of hypertext links; so here are some more links to newer articles on my mostly 6502 site, without the hypertext: The list of articles now has 90, not 76.
http://WilsonMinesCo.com/ lots of 6502 resources

Post Reply
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Who is online

Users browsing this forum: No registered users and 1 guest