element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • 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 Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • 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
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • 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 1939 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
Parents
  • packetgeek
    packetgeek over 11 years ago

    Augh!  Wire-wrap and sockets (and yes, wire-wrapped sockets) with a S100 bus!  Pardon me while I have a shuddering flash-back.  My first thought was that the S100 board (shown above) violated a number of spacing guidelines for heat disappation (instructor back then was a retired USMC Drill Instructor and less-than-optimal spacing was a sure-fire way of failing his course).  Final lab for a class back then involved using touch circuits to control lights and dial a phone (by pulsing a relay).

     

    Also, I remember the 555 timer fondly.

     

    - Tim

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • packetgeek
    packetgeek over 11 years ago

    Augh!  Wire-wrap and sockets (and yes, wire-wrapped sockets) with a S100 bus!  Pardon me while I have a shuddering flash-back.  My first thought was that the S100 board (shown above) violated a number of spacing guidelines for heat disappation (instructor back then was a retired USMC Drill Instructor and less-than-optimal spacing was a sure-fire way of failing his course).  Final lab for a class back then involved using touch circuits to control lights and dial a phone (by pulsing a relay).

     

    Also, I remember the 555 timer fondly.

     

    - Tim

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
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 © 2025 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.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube