element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Personal Blogs
  • Community Hub
  • More
Personal Blogs
Mark's Blog How I learned embedded hardware and firmware - circa 1984
  • Blog
  • Documents
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: Instructorman
  • Date Created: 14 Nov 2013 6:14 AM Date Created
  • Views 2326 views
  • Likes 3 likes
  • Comments 17 comments
  • s100
  • bus
  • 1980
  • history
  • z80
  • 1970
  • nostalgia
Related
Recommended

How I learned embedded hardware and firmware - circa 1984

Instructorman
Instructorman
14 Nov 2013

SO, I blew up some stuff by not paying attention to sound design principles...

It appears I've blown up the first LED device in both of my LED strings.  In my rush to experiment with the strings and the PIC driver code I neglected to place a series resistor  in the data line.  While troubleshooting the dead LED strings, my oscilloscope revealed significant over and undershoot spikes on the pulse edges which may have damaged the WS2811 in the first device on each string.  I've now inserted a 100 Ω resistor in series with the data line and the pulse edges look much better now.  I've ordered replacement LED devices so I can fix the strings, so I'll be back in business soon.

 

Step into my time tunnel

In the mean time, I was doing a little tidying and I found a relic from my past that got me thinking about the evolution of electronics and more so about how the experience of working with microprocessors and micro-controllers has changed over the last few decades.  In the 1990's and early 2000's it seemed to me that it would be difficult to become an electronics hobbyist because hardware was moving to surface mount architecture and getting smaller and harder to work with.  Thankfully user-friendly experimenter platforms emerged like the Arduino, the Raspberry Pi, the Beaglebone and myriad others.  Now hobbyists can start out with a debugged, professionally assembled hardware platform that is often inexpensive and feature rich.

 

My hobbyist days began in the late 1970's, about the same time Bill Gates got interested in personal computing.  I thought the best way to learn about digital electronics and microprocessors would be to design and build a personal computer.  So I did.  I selected the Z80 CPU as the basis of my computer and the S100 bus as the form factor and backbone architecture.  After spending many hours designing a complete computer system on paper, I set to work building the hardware.  Using a vector board and a neat prototyping system of point-to-point IC sockets with punch down wiring made by 3M, I built the single board computer shown in the photograph below.

 

image

The date stamps on the ICs range from 1984 to 1987.  The board is intact except for a button cell battery holder that was removed from the lower right corner.  The button cell provided standby power for the Real Time Clock (RTC) chip.  Most everything that is on this board now fits easily in your everyday garden variety micro-controller from any manufacturer you care to name.

 

My skills grew enormously through the toil I put into this project.  I learned about signal integrity, timing, loading, buffering, clock distribution, power supply filtering, serial data communication, parallel data communication, memory mapping, address decoding, register maps, real time clocks, direct memory access (DMA), counter timer circuits (CTCs), universal asynchronous receiver transmitters (UARTs), erasable programmable read only memory (EPROM) and about firmware.

 

If you look at the back side of the board (below), you will see that I also learned patience, discipline and wiring layout.  Note that every single one of those 30 AWG wires is correctly placed.  Every feature designed into this board worked - by the time I was done troubleshooting; perhaps the most important skill I acquired by devising my own personal computer.

After getting the CPU hardware working, I developed an EPROM blaster, a print buffer that held 2k of text and automatically spooled it out to a 9-pin dot matrix printer, a joystick interface, and a programmable sound generator.image

 

All of the firmware that animated my hardware creations was written in machine language.  Not assembly language, C or Python script, but in machine language.  I couldn't afford an assembler and a BASIC compiler was out of the question, so I learned to program microprocessors and embedded hardware in Z80 machine language.  Below is the first page of the machine code I wrote to make a basic text editor.  My programs were stored on cassette tape and backed up on paper.  The only permanent semiconductor storage I had on the board was an 8k byte ultraviolet erasable PROM.  Changing the contents of that chip meant taking it out of its socket, putting it in an ultraviolet eraser for 15 minutes, then moving it to the programmer (commonly referred to by the misnomer "blaster" - nothing ever blew up when I used it), blasting code into it and moving it back to its home on the CPU board.  Cassette tape storage was much more convenient.  The cassette tapes were long ago lost or erased. Any that may have survived at the bottom of a drawer have deteriorated into a useless state - and where would I find a cassette player to play them?  The paper copy on the other hand is intact and readable, over 30 years after it was generated, without the use of any extra-human technology.  Hmm, I feel my inner Luddite stirring.

 

image

Comparing my hobbyist experience of about 30 years ago to what is available to hobbyists today shows how far the embedded controller industry has evolved.  Much of what I learned in the 1970s and 1980s is not a priority to today's hobbyist (or engineer for that matter).  Is all or any of it still important?  Probably not.  Today's hobbyists have a much shorter path from idea to implementation and they probably have as much fun getting from one to the other as I did all those years ago.  I have evolved with the industry and now program PICs in high level languages on pre-assembled hardware that I connect to breakout boards and whatever else looks interesting.

 

I'm curious to know how others learned about digital electronics and embedded systems.  What is your story?

 

Mark

  • Sign in to reply
  • Instructorman
    Instructorman over 12 years ago in reply to DAB

    Thanks DAB.  Your comments are always appreciated.

     

    I agree that a technical school education combined with a university education is the best of both worlds.  Technical school (what we call Polytechnics in Canada) provide the hands on practical know how and Universities provide the deep theoretical background.  Both are necessary I think for good engineering practice.  But not everyone is ready to invest 6-7 years in post-secondary education to get the benefit of both perspectives.  I could go on for a good long time discussing post-secondary technical education - one of my favorite topics. 

     

    I also agree that a lot of meaningful learning can take place with an oscilloscope, a program listing and good understanding of the underlying logic.  I wonder if people studying embedded systems today are getting the same depth of understanding that previous (ie older) technologists and engineers got.  I also wonder if that depth is still necessary.  Deep down I think it still is necessary for a really complete understanding, but is seems possible to design fully functional systems these days using off-the-shelf modules, libraries and a few lines of code.

     

    By the way, I worked extensively with Commodore PET 2001 computers at my first technical job back in 1980.  Good memories.

     

    Mark

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB over 12 years ago

    Hi Mark,

     

    Nice trip down memory lane.

    After playing around with electronics in high school, I went to a two year tech school to get started on a career.

    After graduating, I went to work in an Aerospace company where I started working with a PDP 11-20.  Finding that I had a knack for programming and a company that subsidized college, I worked to achieve a BS in Computer Engineering.  The best of both worlds.

    I got involved with my first microprocessor when I purchased a Commodore PET 2001, which I still have for sentimental reasons.

    In 1977 I got an opportunity to put a TI9900 microprocessor into a sensing system to demonstrate that it was fast enough to do real time signal processing and advanced signal tracking.

    After that success I did a number of projects with 8085, Z-80 and other interesting devices.

    I agree that early support tools were non-existant.  It is amazing what you can do with an oscilloscope, program listing and a good understanding of system operation flow with I/O pins.  It was the best engineering experience of my life.  It taught me to fully understand what you wanted to do and be able to predict what happens to everything going on inside the little black chip.  You also need to pay attention to detail.  It matters.

     

    Anyway, it was nice thinking about all the fun I had in my early years.  I am still having fun, but I am working in a whole new environment than when I started.

     

    DAB

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
<
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube