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 1931 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
  • Former Member
    Former Member over 11 years ago in reply to Instructorman

    I was referring to the article where you created the RGB LED strip waveform using Agilent software then ran the simulation through the scope.

     

    The EasyPic V7 is the most advanced, best piece of development hardware on the market, bar none.  They have incredible tech support, incredible products that work with the V7, anything from simple LED blinky boards to Bluetooth receivers and accelerometer add-ons!  They also have BASIC and C+ compilers but their Basic is like C programming- very structured and syntax is important.  I was spending as much time getting the parts of my code in the right PLACE instead of creating the code to do the job I wanted.

     

    I also have an MeLabs LabX1 system.  They are out of Colorado in the USA, Mikro is from Germany.  MeLabs also offer excellent tech support but their development system isn’t as sophisticated as the EasyPicV7.  HOWEVER they also have their Basic compiler called PicBasic Pro which is very “free form” and has incredible command structure.  It is very intuitive, very easy to follow, and they even supply a hardcopy reference manual.  The program in Mikro Basic is generally twice as big as the same program in PicBasic Pro, without all the syntax and rules.

     

    I use both.  I write the code with PicBasic Pro, compile it, download via USB to the Mikro kit with my chosen MCU.  I can still use the MeLabs debugger since it is written in software, but I can’t use the hardware debugger on the Mikro kit.   It was a good enough compromise to make. 

     

    The EasyPic V7 is great because the resident MCU is an 18F45K22 with all the port pins broken out to headers, switches and LEDs, that’s 36 of each!  It also has sockets for all the other PIC MCUs, 8 pin, 14, 18,20,28, and the 40 pin socket.   Since I’m playing (can’t call it “work”) with ½ dozen different MCUs, this is a great advantage.

     

    Bottom line: if you are used to structured languages, get the EasyPicV7 with either Basic or C compiler.  If you are a beginner (as I was), then get PicBasic Pro with their LabX1 system.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Former Member
    Former Member over 11 years ago

    My first job as an electronic technologist was to wire wrap a new I/O board for a Data General mini-computer.  This was a computer that took up an entire wall in the classroom at the tech institute I was working at.  The space was used by the computer, the tape drive, the card reader, and I think a teletype printer of some sort.   All that power...and now I have it in my 10" netbook.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • 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
  • Instructorman
    Instructorman over 11 years ago in reply to Former Member

    @Bob

     

    Thanks for adding to the conversation.  Reading your story reminded me of similar episodes in my journey through the world of electronics as a hobbyist, instructor and professional technologist.  I find it interesting that widely separated people can take similar paths, inspired along the way by the same technology.

     

    I'm curious to find out what you think about the Mikro Elektronika EasyPIC V7?  I do a lot of PIC development and the EasyPIC caught my eye.  The Road Test reviews left me unsure about this product.

     

    Which Agilent are you referring to?  I did reviews and blogs on the 33522B Waveform generator and the 34461A Multimeter.

     

    Mark

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Former Member
    Former Member over 11 years ago

    Back in the late 70s I ordered a timer from James Electronics (now Jameco).  It promised all kinds of possibilities.  Now back in those days, catalogs were scarce, there was no internet and no email, so I wasn't really sure WHAT I bought.  My timer came in and it was a single 8 pin IC, the venerable 555.  What the hell is this?  I knew nothing.  I expected something with a control knob on it and some kind of display!  I started studying, took a correspondence course from National Technical Schools, realized that wasn't enough, quit my high paying job (6 weeks holiday) and went back to school.  I was almost disowned by my family for doing such a radical thing.  Graduated with honors, 'cause I was so determined (I was 31 years old), got a job in a prep lab for the Instrumentation Department of that same technical school.  Then the learning really began!  In order to repair student experiments and prepare others for the instructors, I had to learn digital electronics, and began with Motorola development boards, using 6800, 6802, and 6809 MPUs.  I loved the stuff, and gobbled it up like a dog with an ice cream cone.  Knew most of the assembler codes by heart but always walked around with a programming card in my shirt pocket just in case!  What a nerd!  I ended up teaching digital electronics and made this my life long hobby.  Two years ago I abandoned the old Motorola stuff, and got into Microchip PICs and have been happily programming and making circuit boards ever since.  I have the ME Labs LabX1 development system, and the Mikro Elektronika EasyPicV7 development system.  I use a USB scope from Parallax.  The 555?  I made probably 100 circuits with this, but now use 8 pin PICs instead since I can get the same functionality, but all in software.  Cool stuff.

     

    I like what you did with the Agilent Mark.  that is really cool.

    • 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 © 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