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
  • 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
Gene Breniman's Blog Partially dead processor
  • Blog
  • Documents
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: genebren
  • Date Created: 24 Jan 2020 6:45 PM Date Created
  • Views 1845 views
  • Likes 12 likes
  • Comments 11 comments
  • soldering tips
  • dmx led controller
  • atmega328
Related
Recommended

Partially dead processor

genebren
genebren
24 Jan 2020

I have been building and shipping close to 50 boards for one these boards for my clients (a DMX based Animatronics controller board).  I usually ship lots of ten boards to him and he uses them as needed and sends a payment for the boards as they are used.  From time to time a board fails and he holds on to them and returns them when he gets a few bad boards.  90% of the time, the boards are fine (bad configuration, i.e. erroneous settings, bad address, etc.).  I can usually 'fix' the boards by forcing the configuration to factory settings and then reloading his settings file.  Recently I received three failed boards, which turned out to be actual failures.  One of the boards had a blown MOSFET that is used to act as a programmable fuse for the servo power rails (programmable current level and trip delay).  This failure has occurred before, caused by a dead short at the servo connector (the trip delay was set to long and the MOSFET overheated before the delay expired and the MOSFET is turned off).

image

 

It was the other failures (both boards seemed to have identical issues) that puzzled me greatly.  In this case, the device was mostly functional, the DMX reciever was able to receive commands (serial port on the processor/RS485 transceiver), but the servos (12 mux'ed drivers) and the LEDs (RGB) were not commanding correctly.  After resetting the configuration settings and reflashing the firmware, the problems still existed.  I started probing around and found multiple strange occurrences.  First, the timer/PWM signals were non-responsive (fixed signal on one channel and none on the other).  The select lines that I used to multiplex the PWM signals into the individual servo channels were not sequencing.  Also, the GPIO pin that I used to strobe the LEDs was not being driven correctly.  All of this pointed to a problem with the microprocessor (ATMEGA328PB). It is not too often that I have come across a microprocessor that mostly works, so my first thought was to double check the soldering on the processor pins (TQFP-32). Everything looked fine.

 

After thinking and delaying (not really happy about having to remove/desolder chips), I started to evaluate the costs and labor versus just scrapping the boards.  I decided that I would attempt to rescue the board and a started the removal process on the first board.  What a total pain!  Working on the processor, on a fully populated board (I usually solder all of the IC onto the board first, passives next and then connectors and such last) was going to be a lot more difficult than the assembly process.  First I need to remove the 2x3 header used to program the device.  My default approach to multi-pin IC removal is to first clip all of the pins, then I remove the chip and cleanup all of the pads (removing any of the clipped leads).  With limited access, it was almost impossible to clip the leads.  I then used solder wick to remove as much solder as possible and then 'pop' each pin off of the pads by using an exacto knife as a pry tool, while heating the solder joint.

imageimage

  I was able to remove the processor, only damaging two of the pads (oddly, they were not uses, upper left of second photo).  Note: these images were shot through the eyepiece on my microscope that I use for soldering.

 

I then reloaded the firmware on the new processor and re-tested the assembly.  The device worked as expected, fully restoring functionality.  When reviewing my notes/contacts with this client, I found information that might explain the failures.  I guess the client was attempting to control a much larger, linear actuator that required 12 volts (automotive wiper motor) and I as I remember there were multiple failures during his process (external driver between the DMX controller, servo output and the external H-Bridge to drive the actuator).  I can only image that there issues sequencing the power (5V on my board and 12V on every thing else) that might have taken out part of (not all) of the functionality of my board/processor.

 

Just thought that I would share this debug/repair story.

  • Sign in to reply

Top Comments

  • genebren
    genebren over 5 years ago in reply to DAB +6
    Thanks DAB! I think I need to rethink my warranty repair policy. These devices were all thoroughly tested and inspected prior to shipping, so I know it is not a DOA problem. Given the extent that this…
  • fmilburn
    fmilburn over 5 years ago +5
    That is nice repair work Gene. Once or twice I have managed to wipe out pins through clumsy behavior on my part late at night when interfacing between 5V parts and 3V3 microcontrollers. It can be all too…
  • shabaz
    shabaz over 5 years ago in reply to genebren +4
    Hi Gene, Great to read your real-world experience dealing with such issues and troubleshooting. Sometimes people try one board maybe, and think that it doesn't work, and then try another, and then another…
  • genebren
    genebren over 5 years ago in reply to suraj6631

    I would really like to help you by providing listings of the firmware, but this was a project that I developed for a client, which they own certain rights to.  I don't feel that it would be appropriate to share the code.

     

    The concepts, in the simplest form, is that I use a pin-change interrupt to detect the rising edge of the Marker pulse and start a timer.  I then look for a falling edge and verify the width of the pulse.  If the pulse is outside the expected range, I loop back and look for the marker pulse, otherwise (pulse OK), I switch over to sampling the data with a UART (disable pin-change interrupt).  Marker pulse timing can vary widely depending on the DMX transmitter (especially those driven directly by a PC in an unbuffered manner), so measuring and comparing the marker pulse width is important if you want your receiver to work reliably with a variety of transmitters.

     

     

    Here is an excellent article, posted by shabaz that provides a lot of great information

    DMX Explained; DMX512 and RS-485 Protocol Detail for Lighting Applications

     

    Good luck!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • suraj6631
    suraj6631 over 5 years ago

    Can you please provide me the firmware that you have uploaded in microcontroller so that i can do dmx signal is decoded by the microcontroller

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • stevesmythe
    stevesmythe over 5 years ago

    Good job you have a microscope!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jw0752
    jw0752 over 5 years ago

    Hi Gene,

    I bet you had fun finding and resolving this puzzle. I find that no matter how well I think I have made something there are always side effects that pop up to challenge me. Great job fixing the damaged boards. Hopefully you will have no further problems with them.

     

    John

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • genebren
    genebren over 5 years ago in reply to three-phase

    Thanks Donald,

     

    This has been my bread and butter for so long that it seems like the only way to approach problems.  Besides, I don't own and guns (I guess I could have throw rocks at it image).

     

    Thanks again!

    • Cancel
    • Vote Up +1 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