element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Members
    Members
    • Benefits of Membership
    • Achievement Levels
    • Members Area
    • Personal Blogs
    • Feedback and Support
    • What's New on element14
  • Learn
    Learn
    • Learning Center
    • eBooks
    • 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
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Dev Tools
    • Manufacturers
    • Raspberry Pi
    • RoadTests & Reviews
    • Avnet Boards Community
    • Product Groups
  • 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
Publications
  • Learn
  • More
Publications
Blog Op Ed: A Microcontroller Course for Everyone!
  • Blog
  • Documents
  • Events
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Publications requires membership for participation - click to join
Blog Post Actions
  • Subscribe by email
  • More
  • Cancel
  • Share
  • Subscribe by email
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: DaveYoung
  • Date Created: 2 Oct 2013 7:07 PM Date Created
  • Views 261 views
  • Likes 4 likes
  • Comments 4 comments
  • management
  • education
  • microcontrollers
  • embedded
  • msp430
  • dyoung
Related
Recommended

Op Ed: A Microcontroller Course for Everyone!

DaveYoung
DaveYoung
2 Oct 2013

image If you've been in electronics for any time at all, it is easy to see a pattern develop between hardware and firmware/software engineers.  As soon as a problem crops up, it is instantly clear to the hardware team that it is the code that needs fixing.  However when asking the software engineers, they confidently state that the hardware is at fault.   When pressed for details, both sides will end up saying something like, “Well, I don't know what is wrong, but I know it can't be related to my part of the design because of _______.”

 

How is it that these assumptions are being made time and time again about the source of the problem coming from the other side?  Much of it probably stems from human nature's inclination to toss any problem over the wall and hope someone else fixes it.  This is likely strengthened by an engineer's confidence in a design they have spent untold hours creating.  But another source is likely rooted in a lack of understanding how the other side of hardware/software works.

 

How can we prevent this unproductive riff raff?  It might help to have anyone involved in electronics (either the hardware or software side) take at least one course in microcontroller design to show the connections (and problems) that occur between hardware and software.   Any piece of circuitry will eventually need to be controlled or communicate with software, and software usually involves the real world at some point.  The most remarkable A/D circuit is useless if the communication bus that the digital signal must pass over does not have the required bandwidth.  Similarly, a beautiful chunk of code written to control an RGB LED matrix won't work if the hardware isn't designed to supply the required amount of power.  A course that forces the engineer to face problems on both sides can be humbling; for example a hardware engineer might spend hours troubleshooting his or her code only to find that the motor was connected to the wrong power rail.

 

An example of such a course, ECE4760, taught by Prof. Batten at Cornell University is now available on YouTube and offers a wealth of information that would greatly help anyone designing in the Electrical Engineering space.  It could be replicated at home thanks to the $10 MSP430 Launchpad and the free development tools.  And while an outside observer won't be able to benefit from in-person instruction, they will be able to easily engage the communities like Element14's MSP430 group or TI's E2E forum.  The best part is that the course is project based, giving students an opportunity to learn the difference between 'This should work' and 'This does work.'

 

Of course this is just one suggestion to give each side a glimpse of the other.  After 5 years in the field any lessons of humility will be mostly forgotten.  Have you noticed the “it's their problem” exchange before?  What do you think would help with it?  Please share your thoughts in the comments.  In the end, we're all on the same team!

  • Sign in to reply

Top Comments

  • Problemchild
    Problemchild over 9 years ago in reply to DAB +1
    DAB, blaming someone else for the fault/feature is almost as good as fixing it
  • Problemchild
    Problemchild over 9 years ago in reply to DAB

    DAB, blaming someone else for the fault/feature is almost as good as fixing it image

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • rohitrangwani
    rohitrangwani over 9 years ago

    “it's their problem”

    nic one

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

    Thanks for the story, DAB.  I'm sure that's just one of many from your career.  It seems to be another lesson in words being relative: 'Fixed' to them is very different from 'fixed' to you.

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

    Hi Dave,

     

    I completely agree.  As soon as you begin to learn about an MCU you will find that you need to do your homework on both the software (SW) AND the hardware (HW).

     

    Back in the 1970's we used to have great screaming matches over deciding if the HW or the SW was at fault.  Most of it was just good clean fun, though it scared the hell out of management.  Both sides lacked the proper tools to locate and resolve a lot of the problems we encountered.

    Remember these are days before good logic analyzers were available.

     

    My best story is about a system I programmed and was due to go through acceptance testing while I was on vacation.

    When I returned there were half a dozen people outside my office screaming that the ATP failed because of my software.  So I asked the question "It worked fine when I left, what did you do to the system?"  The reply was "Nothing, we just fixed the Hardware!"

    It turned out that their "Nothing" made the test signals incredibly stable, which forced the device under test to miss the discrete signal changes.  I had build the DUT with noice detection software filtering that looked for consistent signal changes and ignored single level changes.  It worked fine in the field as the noise from all the other electronics kept toggling the values to the point where it would detect the changes and position the equipment.

     

    The end of the story was that I had to add software to the test unit to simulate signal noise so that the DUT would work normally.

    So much for fixing the hardware.

     

    It was experiences like these that encouraged me to get my BS in Computer Engineering.  At the time, it was the only degree field that enabled you to get both HW and SW exposure so that you could successfully interface machines together.

     

    So I encourage anyone new to MCU devices to get the training in both as you will find the rest of your life trying to resolve where the problem really is caused and wheather you can fix it with a few compontents or some software changes.

     

    As the Chinese say "May you live in interesting times!"  I believe this was a curse, but then I don't speak Chinese. image

     

    So I am glad that they are training people to appreciate the interface issues.  With devices like the PSOC, the lines between HW and SW are getting even more blurred.   Or is it just my vision?  Oh well.

     

    Good Post,

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

  • Facebook
  • Twitter
  • linkedin
  • YouTube