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
Spring Clean!
  • Challenges & Projects
  • Project14
  • Spring Clean!
  • More
  • Cancel
Spring Clean!
Spring Clean Projects 2026 Spring Cleaning... a repair turns into an overhaul
  • News and Projects
  • Forum
  • Members
  • More
  • Cancel
  • New
Join Spring Clean! to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: colporteur
  • Date Created: 28 May 2026 9:46 PM Date Created
  • Views 169 views
  • Likes 9 likes
  • Comments 8 comments
  • pcb
  • Spring Clean 2026
  • arduino
Related
Recommended

Spring Cleaning... a repair turns into an overhaul

colporteur
colporteur
28 May 2026

This repair project sat neglected on my shelf for over twelve months. The E14 Spring Cleaning contest motivated me to finish it.

image

I completed the Fireworks Simulation with Optical Fibre Cable project in 2021. During a model railroad showing in 2024, I discovered the sound was not working. It has been sitting in the shop waiting for repairs ever since. The project was made on perf-board using point-to-point wiring. The code was one of my early dabbling in Arduino.

I made a number of attempts to find the sound problem. I tried replacing components, adding some filter capacitors and probing with a VOM. No luck. The condition of the board had me rethinking the repair. The project perf board was supposed to be a prototype that made it to production. Maybe I could do better.

image

Instead of trying to fix the sound issue, why not replace the perf-board prototype with a printed circuit board (PCB) model. That would at least eliminate wiring issues. Nothing like making a small fix-it project into something bigger.

Unfortunately, I didn’t have any documentation for the project, only a broken prototype. Using the Project 14 repository as a guide, I pieced together the details of the project.

image

After creating a schematic in KiCAD (the drawing is the final layout), I set about making some changes. Readers may recall that in February, I had made a post looking for an LED driver.

Besides the sound not working, the animation would intermittently hang on boot-up. The LEDs were driven from Mega outputs with no buffering. I suspected boot-up issues may stem from overloading the Arduino. Let’s fix the issue in the PCB with some LED drivers. I also no longer used the DFModule for projects that needed sound. The JQ6500 was its replacement. Both modifications to the circuit plus code updates would be necessary. Did I mention the fix project kept getting bigger!

image

I constructed a breadboard layout for the new design. This allowed me to confirm that new pinout and driver circuit for the LEDs I planned to use would actually work. The original designed used pins that are assigned functions. The new pin mapping avoid many of the traditional assigned pins.

This breadboard set up sat on my bench for weeks! I kept wanted to move it to free up space. I knew if I moved it, the fix would not happen. The finished PCB languished in JLCPCB order purgatory because I forgot to place the order. I uploaded all the drawings to the website but a squirrel pulled me away and I never dropped the order. That "miss" proved beneficial. I came across some errors on the PCB while looking to answer the E14 call for a Spring Cleaning Project.

image

My board ordering miss was discovered the end of March. I know this because I had just returned from a holiday. I was wondered why my PCB order hadn't arrived. Hey look, E14 has another opportunity. My skill and knowledge level have prevented me from participating in RoadTest Reviews. Sharing project work is another way to participate. I would need to confess to the judges this project may have taken a breath before the contest started. Making it a Spring Cleaning project would get the blood flowing.

I had discovered during my review of the KiCAD drawings that I had oriented some diodes incorrectly. Also the PCB connections for the LEDs were poorly positioned. I had also forgotten silk-screen the labeling. The board review was extensive. Ouch! The power supply terminal polarity labels were backwards. After implementing the fixes, I crossed my fingers and placed the PCB order. The PCB’s arrived the last week of April.

A one day five-hour marathon of soldering populated the bare PCB. It was now May 20. The contest rules stated that the project must be completed by May 31. Two days of bedridden vertigo did little to move the yardstick.

The original Arduino code had worked. The new design altered I/O pins from the previous project to make it easier to bring outputs to the PCB edge. I would also have to adjust the code for the replacement sound module.

image

Before coding, I ran power tests on the stuffed PCB. Using the on-board 5V power supply, I tested each individual LED output. The original project had an off-board 5V power supply. I managed to stuff an LM7805 onto the board during redesign. (It kept getting bigger.)  I confirmed using voltage tests all LEDs were routed correctly from the Arduino Mega pins to the edge connector. I had to touch up a few bad solder joints in the process of getting the LEDs to light before turning my attention to the code.

I stripped the original code of all pin numbers and the DFModule code workings to have a code starting point. I then coded the pins for the LED arrays with new pin numbers. The LED light pattern worked according to design on the first test!

I had on foolscap paper created a mapping of the individual pin numbers to LED array names. I created the map when I first started on the schematic. Each version of the mapping showed the changes in pin assignments. That one document made pin assignment in the code a breeze to make. Thank a holy deity for documentation. 

image

To fill Void setup in the Arduino code, I cut-and-pasted working JQ6500 module code I had used in another project. I then defined three subroutines for each of the three different sound sequences. Cannon, burst and shower are three sounds in the animation. Each can randomly select a sound file from a list.

I attached a three-LED module to launch LED outputs and started the final bench testing. It worked! LEDs light up in the correct sequence and along with appropriate sound files. Bench tests complete; time to install.

The installation of the new PCB was a breeze. Recall I had no documentation so the first step was to ensure I had all connections labeled. I removed the old perf board and mounted the new PCB. The screw terminal connections worked as planned. The speaker wire had to be extended, the PCB connection was in a different place than the perf board. The video is the proof that the animation is back to working.

Repairing the broken animation project started in January. The Spring Cleaning Contest kicked the repair effort into gear. March and April saw some progress. Knowing the project was for the E14 Spring Clean contest pushed me in May to keep it on schedule.

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Front side of Animation

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Back side of animation

Developing a schematic drawing to arrive at a stuffed PCB is a project in itself. Changing the animation code to reflect the PCB re-deign was a challenge. Especially through the fog of vertigo. The project scope creep was mine and mine alone. I didn't want to revisit this project again so I accepted scope creep! I’m done spring cleaning; I need a nap.

  • Sign in to reply
  • colporteur
    colporteur 15 days ago in reply to AngelSoto

    Thank you for the kind words.

    When I first started the project retirement was new to me. I had started to dabble in my old career of electronic. In 2000 I forked careers to computer system administration and never picked up a soldering iron. Up until that point I was hands on electronics.

    The fireworks was a major electronic project (for me) as well as big coding requirements. When it was finished I wanted to make a PCB but I only had used Fritzing software and that wouldn't cut it. The Perf board was installed and life moved on. I got reports of intermittent startup but could never find the cause. The sound failure brought the project into the shop.

    My knowledge and skill level had improved from the first iteration. I learned a whole lot about microcontrollers and the software called KiCAD. I had completed a number of animation project and kept notes of do's and don't. This repair was a put-off project. I could never get traction to finish. I hated looking at the perf-PCB and the point to point wiring nest.

    It was a challenge to bring this project to completion. Like you suggested a redesign. Ouch. The model railroaders were asking when would it be fixed and I had no answer because I couldn't find the fault. Starting over was the long way to the solution. I sharpened a few skills along the way. I turned it over to the modelers last Thursday. The modelers have commented that it seems to work better than before. I'm just happy it is working.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • AngelSoto
    AngelSoto 15 days ago

    What I enjoyed most about this project is how a simple repair slowly evolved into a complete engineering exercise.

    Starting with a broken prototype, recreating the documentation, redesigning the hardware, validating everything on a breadboard and then updating the firmware is quite a journey. I think many of us have experienced that moment when a "quick fix" turns into a much larger project.

    A very enjoyable read. Well done!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • colporteur
    colporteur 15 days ago in reply to dang74

    36 with drivers and 2 straight off the Mega makes makes for 38 LED's. At each drawing 20ma that puts the LM7805 at 3/4 of it rated current. The fireworks never lights all LED's at the same time. I would consider putting a heat sink on the regulator if the demand was higher in another application.

    The LED are buffered by a crude driver circuit. A suggestion to use a multiplexer was interesting and would simplify the drawing. I'm not strong with coding so that become a challenge. I'm still looking at the idea.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • dang74
    dang74 15 days ago in reply to colporteur

     colporteur I'm happy to hear you have 4 more boards... it could come in handy during the Christmas season.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • colporteur
    colporteur 16 days ago in reply to DAB

    I didn't do the knitting of the strands. The person that did that part did find it entertaining:)

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

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube