Happy Halloween!

We got the Halloween decorations down from the attic the last weekend of September, before we even knew about the offer on the other house. Ann decorated the house and I decorated the office. I had a couple of glow in the dark skulls that had been sitting over there in the corner room for more than a decade. With the CFL black light bulbs in place of the standard lamp bulbs on either end of my desk, both those skulls glow brightly!

But that was just the beginning. Having to replace the burned out bulb in the skull candelabra, I decided to buy more of those neon “flicker flame” bulbs. Good choice. Now the eyes flicker too! Then I ordered more and replaced all the incandescent bulbs in a twenty light string with them and strung them around the book cases in the office. And while I was sitting in a meeting, I modified the closet lighting test jig to add Halloween lights.

And no, this isn’t yet another lighting post. Well, it is, sort of… I merely modified the configuration and HTML enough to make a string of orange, eerie green, and purple colored lights that flicker together. Kind of spooky, but Ann wasn’t impressed. Her only comment was they looked pink, not purple. Thankfully a quick and easy adjustment to configuration values to add a bunch more blue and now they definitely look purple.

Spooky Colors Adorn My RGB Keyboard
Spooky Colors Adorn My RGB Keyboard

For My Next Trick…

Having those glowing skulls sitting on top of the speakers on either side of my desk got me thinking about what else I could do with the glow in the dark 3D printer filament and some UV LEDs. Nick and I were chatting on Slack one night and he sent me a picture of a plastic ghost flipping me the bird, from an ad, that said it was supposedly holding candles. If I try hard enough, I can convince myself those might be candles, but always saw it flipping me the bird first.

It’s funny, because the very next day I saw the very same ghost in one of those Chinesium store ads I get in my email daily. Ann had seen another skull candelabra at the Antique store down the street from us, but didn’t buy it. I asked her why not, but it doesn’t matter, she didn’t. I was telling Nick I’m thinking if they still have it, I’d go buy it. With an old white sheet and a couple of 3D printed “candles”, presto, bird flipping ghost.

We were out to eat the other night at the restaurant just next door to it, so I asked if we could walk over there afterward and see if they still had it. They close at six o’clock, so I figured we had plenty of time. Ann went to pull the door open, but it was already locked? And it’s just now quarter ’til six! A girl came to the door and said they lock up 15 minutes before. Ann told her in that case they should change their sign to 5:45 instead of 6:00.

Glowing Skulls Bracket My Workspace
Glowing Skulls Bracket My Workspace

The “Flip Off” Ghost

The antique store could have made a quick sale, but their loss. F… ’em! And the broom they rode in on! That’s alright, Nick found someone had actually created an STL file to 3D print a ghost flipping the bird with both hands and sent it to me. Both 3D printers had been sitting idle for a couple weeks with all the higher priority things that came first to be able to list the other house for sale. Time to wake them from their slumber.

I pulled the STL file into the slicer, Cura. It said 2 days 11 hours to print it! I about fell out of my chair! Then I realized it was still set for 100% infill. Dropping it back to the standard 20% infill says more than seven hours. Still too long. Scaled down to 50% of original size and now it says a bit over two hours. That’s better. I already had what’s left of a spool of white loaded in the old printer and kicked off a print.

The first print came out great, so I printed another one. Now we have two half sized “Flip Off” ghosts sitting on the tea table beneath the skull candelabra. I grabbed the mini spool of glow in the dark blue filament off the shelf, ready to make some more prints. Before long I had two more ghosts, but this time in glow in the dark blue!

Is That Ghost Flipping Me Off Or Holding Candles?
Is That Ghost Flipping Me Off Or Holding Candles?

All Things Must Glow – In The Dark!

Back when I bought my first 3D printer, my first venture into ultraviolet (UV) light emitting diodes (LEDs) was my “Glow In The Day” clock project. I’ll save the details for later in the post, but like any prototype, mistakes were made. One was printing it way too thin, the plastic face splitting into a flap where the clock movement is mounted. More pertinent to this discussion was the selection of outdoor, 12 volt UV LED strips.

The decision to use 12 volt LED strips rather than 5 volt ones adds an extra part to boost the USB supplied 5 volt power to 12 volts. These “half pint” ghosts are barely 3″ (76mm) tall. Where would I hide that part? With lessons learned, I searched for 5 volt UV LED strips and found a large assortment. Some with battery boxes for three AA batteries. Some with an additional USB pigtail adapt ed to the battery box. Some with just a USB pigtail and an inline switch.

I ordered all three to see which works best. The latter fits the bill nicely. Initially I left the strip wound on the spool. I quickly found out that was a big mistake after the LEDs became too hot to touch and the spool began to deform. Oopsie! Time to unwind. The LED strip from the spool that is. That turned into a win when I realized I could use the drill to clear out an internal passage and just insert the end of the LED strip, now free from the spool.

A Gaggle Of Glow In The Dark Ghosts
A Gaggle Of Glow In The Dark Ghosts

Ghost Factory

Perfect! That’s exactly what I was looking for. The entire ghost glows from the inside out. Before long I had the two blue ones rigged to glow from a dedicated battery, along with two new green ones I printed while working out how to add the power port to the blue ones. I noticed the 20% infill creates many very small cavities where I wanted fewer, larger ones to more easily insert the LED strips.

Reducing the infill to 5% reduced the print time even more, barely an hour and a half. It also provided the desired larger space for the LED strip. Much larger. Now it only takes the drill a moment to penetrate the bottom layers and work a slot along either face of the infill grid. Some quick work with an Exacto™ or one of those snap off knives and a triangular opening is ready for LED strip insertion.

I was back and forth whether to use a USB micro breakout board or a battery port. I have so many spare LiPo batteries, they can power them for now. They use a standard JST PH (2.0mm spacing) connector. There’s only room to fit four LEDs per strip in these half pints, so adding a battery connector to the back then feeding the wires from the connector to the LED strip makes for a very simple build.

It takes longest to reshape the drilled hole into a rectangular opening that fits the battery connector shroud. A bit of hot melt glue to secure it and all that’s left is to cut the wires to length and solder them to the LED strip. Maybe five minutes per ghost once I’m on a roll. Definitely far less than the hour and a half it takes to print them. The best part is they continue to glow even after the power is removed!

Some Of The Many Glow In The Dark Colors Available
Some Of The Many Glow In The Dark Colors Available

Rainbow Colors

When I was searching for 5 volt UV LED strips, I also looked for other glow in the dark filament colors, other than the green and blue I already have. I readily found red and purple available and bought a 1kg (2.2lb) spool of each. Orange and yellow are also available, but it appears the glowing orange starts out as yellow and the the glowing yellow starts out as green. I’ll pass on those for now. The purple arrived first, so I loaded it into the new printer.

The online picture of the purple filament shows it as more of a fuchsia color, but in reality, it just looks purple. Strange. It glows pretty much the same purple color too. Soon there were a couple more of the half pints in purple ready for LEDs. I kicked off a full sized print in purple while I installed the “guts” in the other half pints. He’s a big one! About 6½” (165mm) tall and 5″ (127mm) wide at the base. No wonder it takes seven hours to print!

The infill pattern in the full sized ghost forms a diamond pattern in roughly the center of the print. I made an opening into the forward facing section of the infill. Testing with the lit UV strip inserted, it’s obvious I’ll need more than one strip. I’m thinking four strips, each facing in one of four cardinal directions. Think north, south, east, and west. Each strip is also nine LEDs compared to four in the half pints.

Meet Nate Decapitate - The Decapitated Ghost
Meet Nate Decapitate – The Decapitated Ghost

That Will Teach Me

With what’s left of the glow in the dark green still loaded in the old printer, I kicked off a full sized print, convinced there was enough filament to complete the job. I stayed up past midnight, checking there was still enough filament left, thinking I’d just pause the print if it ran out and swap in the new spool sitting on the shelf. There’s also a new spool of blue next to it. Thinking I could keep checking on it, I dozed off. Big mistake.

By the time I woke up, the print had “finished”, but the result was a “decapitated” ghost. Bummer. Not the end of the world, but I’m not sure how I can print just the remaining portion of the head and those two amputated fingers. Problem for future me. I did measure how tall the print was before removing it so I’d know where it left off though. Nick asked if I captured the time lapse since it would show the exact layer. Nope. Not this time.

By now the glow in the dark red filament arrived. It’s time to fill out the roster and print some red ghosts. But that will have to go in the old printer. I’m working on a music stand for Ann’s new to her keyboard. I took a bunch of measurements to get me started on the design, consisting of two assemblies, the mount and the music stand itself. The idea is to attach the mount to the keyboard in a sturdy fashion, then attach the music stand to the mount.

Ann's New To Her Keyboard - Sans Music Stand
Ann’s New To Her Keyboard – Sans Music Stand

Yet Another 3D Printer Failure?

I swapped the white filament with the glow in the dark purple in the new printer, printing the pieces for Ann’s music stand. The first problem I ran into was that damned Z-Offset was somehow out of adjustment again. This has been a long standing issue with this printer, ever since I first bought it. But I think I finally figured out why it keeps happening. The Z-axis is dual drive. But I think the issue is me being in a hurry and man handling the print head.

Sometimes I just twist one of the Z-axis leadscrews to rapidly adjust the print head height. Other times I just grab the print head itself, pushing down or pulling up on it. I think the print head mounting bracket to the X-axis gantry is just thin enough that it bends, ever so slightly, when I move it by the print head. In the future, I’ll remember to twist the lead screw and not touch the print head. We’ll see if it happens again.

It’s only off by 0.4mm (0.016″), but that’s enough that the first layer won’t stick to the build plate and make it look like it’s under-extruding. I’ve been keeping a history of these magical Z-Offset adjustments and we’ve come full circle. Originally it was 3.3mm, which slowly evolved into the last adjustment to 2.9mm as of August 7th. Well, now we’re back to the original 3.3mm on October 18th. It’s a tedious process and takes multiple cancelled prints.

Ghost In The Machine Or Software Bugs?

Anyway, as I’m dialing in that last piece to test fit that keyboard mount, the printer starts acting up. The first version of that piece was too short. After a quick adjustment to the design, it’s still too short. Another adjustment and the printer just won’t function properly. It keeps stopping mid print, moving the print head off the front corner of the build plate and extruding filament, as if trying to clear a clogged nozzle.

It’s done that before, not often, but usually after cancelled prints. The more I try, the worse it gets, failing sooner each time. I finally gave up and just shutdown the printer and the Raspberry PI running OctoPrint that controls it. Thinking about it, I was prompted whether I wanted to install a new version. Usually I wait, but this time decided to update both the old and new printers’ OctoPrint controllers. Bad idea.

I’m pretty sure this new version of OctoPrint is the problem because even the old printer is telling me every file upload fails, every single time, when it works and prints the file just fine. And all of a sudden I can’t upload a file to the new printer unless I use the file manager. Clicking the Upload button has no effect. Can’t create a new folder either. It just refuses to respond. I’ll have to see if there’s a way to revert to a known good version.

Buggy Software - Upload Failed Yet File's There?
Buggy Software – Upload Failed Yet File’s There?

Moving On

Everything was working great, until it wasn’t. I’m disappointed I can’t move forward with Ann’s music stand. Having the new printer offline is annoying, but thankfully the old one still works. And it’s out of filament, so time to load the glow in the dark red that just arrived and get printing. Again, a couple half pints, then a full sized ghost. I decided to prototype the full sized purple ghost while those printed, capturing the process on video as I went.

It’s definitely a trial and error process. Even though the end result glowed the way I wanted it to, I’m not real happy with wires hanging out the bottom or the difficulty I have getting four wires to cooperate long enough to solder them together. Twice. Once for plus and again for minus. Then connect them to the battery connector. In other words, it’s going to need work. But that’s what prototypes are for.

Time to print a full sized glow in the dark blue ghost. The red gets swapped out for the remaining blue filament. There should be more on this spool than there was on the green spool, mainly because I printed a number of glow in the dark features for two of those “Glow In The Day” clocks. Now whether there’s enough to completely print a full size ghost or not remains to be seen.

That Should Have Taught Me

Well, that was another bad assumption. You guessed it. It ran out of filament before the print finished. But this time it ran out even sooner than the green spool did! How is that possible unless they short changed me on the blue compared to the same size green spool? This time I’m ready with that new, full spool of blue, but it soon becomes apparent they’re not made by the same manufacturer.

The original small spools of green and blue were made by Amolen. These full spools are made by Sunlu, also the maker of my new printer. Every so often they have a bulk filament sale and I’ll buy four to eight spools at once, basically half price. That explains why I have two 90qt tubs full of filament along with an entire six foot long shelf. Normally I go through this stuff a lot faster than I have lately because of other, higher priority tasks.

No matter how hard I’ve tried to monitor how much filament I’ve used and track how much remains, I never seem to come close. That’s going to change. I search for where the print history lives in OctoPrint, but there isn’t one. There’s a plugin for it though, tracking how much filament has been used, and the running total. I’ll give that a shot. The problem is spools are measured by weight, not length of filament.

Nate Decapitate Gets Head - And Fingers
Nate Decapitate Gets Head – And Fingers

Giving Nate Back His Head

When we were talking about it earlier, Nick told me I could shift the model down in the slicer since it only prints what’s above the build plate. The problem is knowing how far down to shift it. Glad I noted it was ~3​31⁄32″ at the time. That works out to roughly 100.81mm. At 0.2mm per layer, 504 layers out of 762 printed. Close enough for our needs anyway. It’s sliced and ready to print. Let’s see how well this works.

I loaded the new spool of glow in the dark green and kicked off the print. When it finished, I gathered the “scalp” and “amputated” fingers and “cemented” them on the previously failed print. Not bad. Looks nearly perfect, except for the obvious difference in filament. I kicked off another full sized, homogenous print. For whatever reason, the old Amolen filament seems more transparent than the corresponding Sunlu filament.

While that printed, I put together some four into one harnesses to allow a single battery to power four of the half pints at once. They went more than two days when they each had their own battery. Four from one should at least last all night. Then I got to thinking why not make a USB micro to battery connector to eliminate the need for a battery (and charger) altogether. If it’s always plugged in, it’s always on.

The Groovy Ghoulies - Now In Rainbow Colors
The Groovy Ghoulies – Now In Rainbow Colors

The Groovy Ghoulies

I grouped one of each color of the half pints together then connected them all to one of those four into one harnesses. I set them on the tea table together with the original white half pints and the flickering skull candelabra. I figured the battery would last all night, but it didn’t. I was hoping Ann would see them still glowing in the morning and get a chuckle out of it. I plugged in a fresh battery to show her how they would have looked.

She seemed unamused, but commented on how they’re rainbow colored. I guess they are in a certain sense. Maybe I should have bought the orange and yellow glow in the dark filament too. That got me thinking about how I have orange and yellow flicker LEDs and wondering how they would look inside one of those white ghosts. Only one way to find out. I feel another prototype coming on.

Using the USB “battery eliminator” harness, I plugged the Groovy Ghoulies into a USB power block and they’ll all glow together indefinitely now. Meanwhile, back at the workbench, time to find those flicker LEDs. I looked everywhere I thought they would be but couldn’t find them. Turns out they’re the one place I kept convincing myself they weren’t. Right next to blind me in the blind corner space.

The only color I have in the 3mm size is amber, or rather “orange/yellow” according to the label. Time to drill a hole through the white ghost and assemble what resembles a “probe” with an LED tip. The 470Ω limiting resistor soldered to the anode and protected by clear heat shrink. The remaining lead of the resistor is clipped and soldered to the cathode. The entire thing is inserted into the hole and the power leads soldered to it.

It’s not as impressive as I’d imagined, but the head does flicker like it’s filled with a candle flame. It sort of matches the skull candelabra’s flickering. I’ll do the other one later. I thought I had other colors in the 3mm size to experiment with, but they’re all 5mm. I guess I could drill a bigger hole if I really want to see whether I like the way they look or not. Maybe later. I still have a set of full sized ghoulies to finish.

Prototype Full Sized Ghostly Tangled Wire Mess
Prototype Full Sized Ghostly Tangled Wire Mess

Round Two – Ad Tedium

The revised edition for the full size ghost will require a PC board, or its equivalent. I had a number of small chunks of Vectorboard™ I found when packing up the corner room and sorting through the electronics. It’s basically brand name 1⁄10″ (2.54mm) hole center perforated board, perf board for short. This is the light colored fiberglass version vs. dark brown epoxy. Add some ¼” copper tape and you have DIY PC boards.

In this case I simply need enough holes for five common positive and five common negative rails for leads to solder to. The ¼” copper tape essentially covers two rows of holes, so using a hacksaw to score and snap the boards into smaller 4×6 hole pieces is just the ticket. If I made them much smaller I wouldn’t be able to handle them without fumbling them. With the copper tape in place the holes are cleared of excess material.

Cutting all those short power leads, stripping, and tinning them is tedious. The eight wires are less than an inch long, four black and four red. After tinning the pads of the LED strips, the short leads are soldered to them. The short, tinned leads from the four LED strips will each occupy holes in the common power rails, one in each rail. Then the battery connector leads are trimmed to length and soldered to the end of both power rails.

The process takes about an hour all told. At least, that’s how long it took me when I recorded doing it. But the end result is well worth it. The wiring is much more compact and the makeshift PC board is small enough to stash inside the opening in the bottom of the ghost. No messy, excessive wiring hanging out the bottom like on the prototype purple ghost. It’s as compact of a design that I can come up with. And it works.

Revised Edition Compact Full Sized Ghost Wiring
Revised Edition Compact Full Sized Ghost Wiring

Warning: Math Ahead

There are roughly 3 LEDs every 2″ (50mm), so 9 is ~6″ (150mm). At that rate, the 16 strips we need for the first four full size ghosts quickly eats up that 6.6′ (78″ or 1980mm) strip. In fact, it would totally consume it. We’ll need two strips. It requires roughly 24″ (610mm) per ghost. Add the strips for the half pints to that and it’s almost another full sized ghost. Let’s say 10′ (120″ or 3048mm) of the two strips gets used.

I stopped short of using up all of those first two strips though, taking two of the 9 LED strips from a third spool of LEDs. That left enough to replace the old 12 volt strip on the bedroom “Glow In The Day” clock. There were 40 LEDs on that one. With what’s left on either of the two spools of new UV LEDs there are just enough to fit in the old strip’s place. What a difference! Night and day you ask? These new LEDs glow as bright as the sun!

They’re so bright it’s hard to tell the glow in the dark features are green and not blue. Even the hands are glowing! When the LEDs are turned off, everything continues to glow bright green for quite a while. Perfect. If those features were printed with the Sunlu filament and not the more transparent Amolen it may look even more green. The picture doesn’t do it justice. Even after adjusting the white balance, it looks more blue to the naked eye.

New UV LEDs Are As Bright As The Sun
New UV LEDs Are As Bright As The Sun

“Glow In The Day”

I printed two of those clocks, the prototype sits out in the garage, while the revised edition still sits on the bedroom nightstand. Both were ESP8266 Arduino controlled. Yet another lighting controller, this time optimized for monochrome LEDs. In this case UV LEDs. For the glowing ghosts project, that decision to use 12 volt LED strips adds extra complexity, namely the boost converter to step up the 5 volt supply for the Arduino to 12 volt for the LEDs.

Three things became readily apparent. First, 40 LEDs draw a significant amount of power, regardless of supply voltage. Each LED draws about 20mA, times 40 is 800mA. The boost converter is rated for 2A, but supplying anywhere near the maximum power to the LED strip, the color changes from the familiar UV purple to nearly bright yellow? Not sure what that’s all about. Could be related to the outdoor silicone coating or the LEDs themselves.

Second, even though the boost converter is rated for 2A, once the brightness gets much over ~40%, it draws so much power from the 5 volt supply that there isn’t enough left for the Arduino itself. At that point, the Arduino promptly resets! This flaw makes it impossible to fully illuminate the 3D printed glow in the dark features, enough so it can’t claim to be the “Glow In The Day” clock anymore.

The third “flaw” is the inability to illuminate the radium painted hands of the clock movement. So not only does it not fully illuminate, the hands don’t glow anywhere near as much as the features on the face. The size of the clock face and LED housing is already at the limit of the print volume at the time with the old printer, making any further modifications to move the LED strip further away from the face and slant toward the hands impossible.

As time passed, the fragile nature of the overly complex boost converter and PWM brightness control circuitry was its downfall. Somehow the USB cable got snagged on something and ripped those parts loose. And because it was on at the time, it ended up shorting out something and destroyed the Arduino itself. Reworking it to run straight from a USB cable, the LEDs are bright enough now, albeit that weird yellowish hue, but the hands still don’t glow.

So why does all this matter? I replaced those old 12 volt ones with what was left of one of the new 5 volt UV LED strips. Now it glows so brightly, you can barely tell the glowing features are green! Even the hands glow brightly now! That’s what I was shooting for to begin with! I may resurrect the Arduino monochrome controller with an improved MOSFET driver to greatly reduce the heat from wasted power using the old transistor one.

Brightly Glowing Green Without UV LEDs!
Brightly Glowing Green Without UV LEDs!

Glowing Ghosts Everywhere!

There’s a set of half pints glowing on the tea table and another set glowing on my desk in the office. Add to that the full sized set glowing on my workbench and there are glowing ghosts everywhere! Add the string of flicker bulbs and the modified Halloween lighting and I bet Ann thinks I’ve lost it. Gone overboard, off the deep end. Well, maybe just a little. But it’s been a fun project.

The most time consuming part was the full sized ghosts. Everything else went together in minutes. Nowhere near the amount of time it took to put together four full sized ghosts. But they’re just fun to look at and even more fun to watch them continue to glow after turning off the UV LEDs. It’s like when I was a kid and held my luminous Timex watch dial under the living room light then turned it off to watch the hands glows. Only better!

What can I say? I’m just a big kid at heart. And if you never slow down, you never grow old. That’s not quite true in my case though. I am slowing down. I just never let myself grow up. Perhaps a better way to put it is growing old is mandatory, growing up is optional. Whatever the case may be, I had a lot of fun building these glowing ghosts, even the tedious full sized ones! And I learned a few things and finally got a true “Glow In The Day” clock out of it.

If you made it all the way through to the end of this post, thank you. I hope you understand why this is important to me. Even if we didn’t really discuss the Barkyard all that much, other than to explain how we made decoration for Halloween. Hopefully we can leverage what we learned to make some creative neon signs or other effects for the Downtown Marketplace. And hopefully the footage I recorded will make it to our YouTube channel soon!

In any case, leave us a comment to let us know what you think. You’ll need to create a user account to do so, but we don’t use any personal information for marketing (see our privacy policy). You’ll receive a verification email. Reply with the link provided to verify your email address. After that, it’s all automatic. No waiting on moderator approval! No spamming your inbox with useless ADs and Special Offers. None of that nonsense.

Stay tuned…

 

 

 

 

 

 

 

 

 

 

 

 

Selling Our Home Of Twenty Years

Our home of 20 years - 10 years later
Our home of 20 years – 10 years later

It’s a day of mixed emotions for us. Today, 17 September 2025, we signed the paperwork to list our home of twenty years for sale. It’s not our home here in Mount Dora. We’ve only been here a little more than ten years. We bought the house in Wekiva Springs nearly thirty years ago to the day. I know it’s cliché, but we poured our blood, sweat, and tears into that house to make it our home. Our beautiful home. A home we could be proud of.

We’re sad because we have to say goodbye to the place that gave us so many happy memories. We raised both our children through high school and college there. It was home to “Manic Mechanic Wekiva”, the classic motorcycle restoration machine that was our two car garage. I chronicled our adventures and improvements on my stewsplace web site, now woefully outdated.

But we’re also happy to no longer have to worry about upkeep on a house we haven’t lived in for more than a decade. When the kids, our daughter and son-in-law, were renting it, we couldn’t rely on them to do even the simplest things to help us out. And they lived right there. We’re half an hour road trip away. Something that would take them minutes takes us hours. But that’s history at this point.

We had to pay a “cleanup crew” to handle all the years of “deferred maintenance” the kids and their “lawn guy” couldn’t be bothered to do. It cost $3500, but to see the difference makes it well worth the price. A night and day difference. Everything that had been allowed to slowly encroach on the house, pool screen room, fence, etc., was pushed back and neatly trimmed and edged. The way we remember it. The way we kept it.

The Manic Mechanic Wekiva Motorcycle Stable, circa 2007
The Manic Mechanic Wekiva Motorcycle Stable, circa 2007

A Little History

Before we actually bought the house, we started with a six month lease with an option to buy clause. It allowed us to work with the owners to address all the wood rot issues that kept it from passing inspection. They were caught in a tough situation, having to relocate to California for his job, having to leave the house behind, falling into disrepair. We’ve always been DIYers, so why not help them out so they’re able to cut us a deal?

That’s all history now too. Needless to say we passed the inspection and closed on the house Halloween of 1995. Was it haunted? Not really. But it does make the date memorable. We wouldn’t have moved here had I not been laid off for Christmas 1994. At the time it didn’t seem like much of a blessing, let alone a blessing in disguise, but it sure does now! Until we moved here from the East coast, the opportunity to excel was never afforded us.

We took full advantage of those opportunities and thrived in the process. With our home improvements it slowly evolved into the home we wanted, starting with elimination of the awful dark colors and wallpaper everywhere. We designed the living room around the massive stone fireplace, a central focus as soon as you enter the house. I custom built massive book cases to bracket the fireplace and complement its size. That’s a 60″ flat panel TV for scale.

Massive Bookcases Bracket The Massive Stone Fireplace
Massive Bookcases Bracket The Massive Stone Fireplace

The Waiting Game

So here we are, the house is listed and officially on the market. And now we wait for a potential buyer. Abby, our realtor, and her team put together a knock out punch on Zillow. They took pictures of everything, warts and all, and turned it into a before and (potentially) after walkthrough using 3DHome. Absolute genius. There were a couple mistakes we noticed in the floor plan, but those are quickly corrected.

We are amazed at the number of “viewings” scheduled in the remaining weeks of September. Ann watches them more closely than I do. But then again, she’s retired! I’m not. Over those weeks I managed to free up even more storage space, happy that I get a breather now. Everything had to be out of the house to list it. But not out of the garage. At least, not until we sell the house. That is to say we could move things into the garage to get them out of the house if need be.

That would come back to haunt us. Settling into a sense of security, centered around all these viewings with no offers for most of September, I try to get things back to normal. Looking at getting the taxes started, at least the basics of collecting all the information and statements and receipts I’ll need. I order TurboTax the last weekend of September, download it, and install it just to ballpark our situation.

We were actually getting money back, until I add in all the interest from our high yield savings accounts that is. Not the end of the world. Definitely not as bad as previous years when we owed just entering the W2s. Thankfully I got that much done because it turned out to be a false sense of security. With a few days left in September, we received an offer, and for the FULL ASKING PRICE NO LESS!!! We are absolutely floored!

The Waiting Is Over!

Needless to say we accepted the offer. The buyers asked us to cover part of their closing costs and agree to an inspection and appraisal. Pretty standard stuff. There were some questions and back and forth before the inspection, but nothing serious. Then the inspection came back with roof leaks around the chimney and electrical work to bring things up to more modern standards than when the house was built in 1978.

The estimates are $1500 for the roof and another $1500 for the electrical. My first thoughts are whether the roof is still under warranty. The next is why we should have to pay to have all the outlets in the kitchen, bathrooms, and garage replaced with GFCI (ground fault) versions. That’s 2005 code, not 1978 code, but whatever. Then I actually looked at the pictures and all the work quoted. He comes the “stash things in the garage” back to haunt us.

It’s for ALL the outlets in the garage, including the workbenches! Four outlets per bench times four benches, as well as the “not to code” DIY wiring to all those benches. We countered with those benches aren’t staying, thinking someone should have said something before the inspection. If it wasn’t worded “replaced by a professional”, I would do it all myself. Another trip over there to get rid of all that questionable wiring, break down the benches, and remove all the “questionable” outlets we added.

Benches And Sketchy Lighting Wiring
Benches And Sketchy Lighting Wiring

All Things Must Go

Thankfully Nick offered to help me and we manage to get it knocked out in about five hours. But we are beat. I brought my assortment of electrical box covers, but it turns out there’s only one blank plate in lot and we need three. The light switch walking in the side garage door was modified to add an outlet since there wasn’t a single one on that wall. Otherwise there wasn’t anywhere to plug in the benches along that wall.

It’s gone now, but we need a custom switch plate and blank, which they don’t make. It needs pieced together from custom bits, which they do make. All in all we removed three outlets that I added out of necessity. I wanted the fluorescent lights to come on with the wall switch that controlled the dim, single ceiling light fixture so I added an outlet off the light fixture to allow anything plugged in to turn on together with it. Gone now with a blank cover.

The last outlet I added was to a new, dedicated breaker just for the compressor, which was tripping the breaker for the existing outlet when it kicked on. Now there’s a spare breaker that doesn’t control anything, the wires capped off with wire nuts, and a blank cover over the outlet box. There were other electrical boxes around the window and the back wall, put together in a real Rube Goldberg fashion.

Definitely not to code, and most likely the reason for the “professionally installed” clause from the inspector. It served a purpose, but now it’s all gone too. Probably the saddest part for me was filling an entire trash barrel with all those old fluorescent light fixtures, now sitting at the curb for trash pickup. I used to have boxes of replacement tubes, but finally got rid of them when I replaced the fixtures here with LED units Nick gave me.

Sketchy Outlet Tapped Off Outside Light Switch
Sketchy Outlet Tapped Off Outside Light Switch

Bonus Time

I went through the remaining motorcycle parts and other items left to come out here. Thankfully I brought those two 90qt. bins with me. I filled them both! In fact, I took everything out of the bed of the truck except the plywood to make room for them before we left. Good thing because I loaded up everything except the Super Magna engine and the shop vac the kids left behind. Nothing wrong with it. Mine now.

One other thing that popped up. The permit had expired on the new garage door we installed for the kids. It was never inspected. Not sure if the kids never scheduled with the inspector or it just fell through the cracks. But as usual, we’re on the hook for it. Ann spent days trying to track down who needs to do what just to get the damn thing inspected. Once she finally got someone to call her back, she used that number and finally made progress.

We’re in a holding pattern for now. The roofer and the electrician will be there tomorrow. I just filed the taxes today. Ann brought the shop vac home with her yesterday since she had to meet the inspector for the garage door there as well as bring the trash barrels down from the curb from Monday’s pickup. They took everything thank goodness! She was able to meet with our groundskeeper guy when she was there too.

She wanted to get a quote from him for getting the rest of the trash in the garage hauled off to the dump. One less thing for us to worry about. That’s going to cost another $1500. We’d better hurry up and close on this house soon! With Ann retired and me the only bread winner, funds are rapidly diminishing. Not only am I paying all the bills for our home now, I’m also covering the bills and the mortgage there as well! Add all of Ann’s shopping! It adds up fast!

Home Stretch

The roofers finished and the final tally is exactly the original estimate. Suspicious, but Nice. The electrician needed us to move the hurricane plywood out of the way in the garage. He came back Saturday to finish up, but all he had was white outlets and ivory covers with him. He ended up coming back Sunday to put on white covers. I would have brought ivory outlets, but now we have two ivory and two white outlets in that bedroom. So much for the “installed professionally” clause.

Ann and Nick were there Sunday as well. Ann called our groundskeeper repeatedly to find out why he and his crew weren’t there to cart off all the rest of the trash in the garage. But no response. Until his wife eventually called Ann back to let her know he was in the hospital! Hope he’s okay, but now we’re on the hook for it. These last minute surprises are getting out of hand! Ann and Nick put as much of the trash up to the curb as they can and load up the bed of Nick’s truck with the paint and such.

An added bonus was the arrival of the “junk man”, a scrapper that makes the rounds before trash pickup, looking for any metal worth recycling. Nick broke down the sets of metal shelves and that caught his eye. As they were hauling another barrel up to the curb, he asked if they had any more, so they invited him down to the garage to see for himself. He said he’d take it all! He ended up taking all the motorcycle parts, and just about anything else metal, until he ran out of space in his trailer!

List Of Breakers Apparently Ignored By Inspector
List Of Breakers Apparently Ignored By Inspector

The best part is he carried it all up to the curb so Ann and Nick didn’t have to! Talk about a win-win! They told him the rest would be sitting in front of the garage door. So now we’re wondering if he emptied the trailer and came back for the rest or not. Either way he was more than appreciative. And so are we!

While there, Ann chatted with the electrician. He said he needs to revise down the original estimate because many of the items were already GFCI protected and working. That’s great news! I knew those outside outlets and bathroom outlets were already GCFI protected. Guess the inspector didn’t see or read the breaker listing I taped to the panel so many years ago (2004). Breaker #24 is plainly labelled as “Bathroom GFCI + Outside GFCI Outlets”.

Now that we don’t need to pay anyone to haul the trash away, $4500 is suddenly more like $2500. That’s even better news! Ann and Nick took all that paint and stuff to the dump Monday at lunch time. They headed back over Wednesday night to put the rest of the trash out to the curb. All that remained was my spare motorcycle engine and some plywood. Nick brought the engine back with him. I may venture over there this weekend to retrieve the plywood.

Our Remembrance Of Those Who Preceded Us
Our Remembrance Of Those Who Preceded Us

The Final Chapter

We closed on October 31st when we bought the house back in 1995. We’re scheduled to close with the buyers October 31st too, thirty years later, to the day! The thought of a young couple, expecting a baby, making this their dream home is heartwarming. To close the final chapter of our time there and end on such a comforting note will make this all worthwhile. Almost like it was meant to be.

If you made it all the way through to the end of this post, thank you. I hope you understand why this is important to us. Even if we didn’t really discuss the Barkyard all that much, other than to explain why we still have no progress to show all this time later. Call them excuses. Call them what you will. But soon we’ll have all the time that was taken from us by everything else that was higher priority.

In any case, leave us a comment to let us know what you think. You’ll need to create a user account to do so, but we don’t use any personal information for marketing (see our privacy policy). You’ll receive a verification email. Reply with the link provided to verify your email address. After that, it’s all automatic. No waiting on moderator approval! No spamming your inbox with useless ADs and Special Offers. None of that nonsense.

Post Script

I thought it would be nice to give an update on where we stand with Halloween fast approaching. It’s less than a week away and everything is still on track to close Friday. I already let the boss know I would be taking the day off. It’s a bit of a trek to Lake Mary from here, a much longer trek than it is from the other house for sure. Here’s hoping the next update is adding a picture of the “SOLD!” sign!

SOLD!

Well, no picture of the sign (yet), but we closed yesterday, Halloween 2025! We sold our house thirty years to the day from when we bought it. It’s hard to describe the sense of relief it brings not having to worry about it anymore. The warm feeling that someone else will remake it into their home for the next thirty years. It’s the end of an era.

 

 

 

 

 

Packing Up Decades Of Memories

The Current Situation

It’s the end of an era… The kids are finally all moved out of our home of 20 years in Wekiva. And even though Ann and I have been here in Mount Dora for more than a decade now, we still have more than two decades worth of memories stored there. Or rather, I still have memories stored there. Memories I have no place to store here in our two bedroom, single bath bungalow.

That all changes now that the kids moved into their own house. It’s heartbreaking when we look at what used to be our beautiful home of 20 years, only to see it totally run down, unloved all these years later. The kids never did much to make it their home. From the looks of it, they didn’t do anything. Not even basic maintenance. But enough said. The issue now is how much money our “retirement fund” is going to lose because of the state of disrepair it’s in now.

Perhaps lose isn’t as accurate as how much less money we’ll get now than we could have if it still looked as good as when it was our home. That’s not to say we couldn’t choose to hire contractors to fix her up, but we’d stand to pay as much to do that as we would get back from the boost in the sale price. Beyond that loss, add the immediate sting to our pocketbook to pay the price for someone to come do all those things the kids couldn’t be bothered to do for all those years.

Our home of 20 years - 10 years and $3500 of "deferred maintenance" later
Our home of 20 years – 10 years and $3500 of “deferred maintenance” later

More Distractions

Why does this seemingly never ending theme of always something else that needs done first matter? It’s really starting to wear on me. I’m ready to get things squared away in the Barkyard, but ever since my last post, I’ve literally spent every weekend over at the other house in preparation to list it for sale. Ann and Nick have spent even more time over there. Cleaning up all the trash and yard debris, but mainly getting the pool sparkling blue from thick green.

It’s a half hour trip there from Mount Dora. Multiply that by two trips, morning and night, and it adds up to two hours lost every day to nothing but travel, not to mention the fuel cost. Two hours a day that the kids spending two minutes a day could have saved us by simply checking the chemicals and cleaning the filter. But enough sour grapes. Soon it will be someone else’s treasure, ready to be transformed into their dream home.

We bought it as a “fixer upper”, with plenty of potential. When Ann first saw the view from the back yard, she said, “I don’t care what the inside looks like, we’ll take it”. We remodeled every room except for two of the bedrooms. We even remade the patio around the pool, adding a pool slide and a bar complete with a Gen-Aire grill. Now it’s someone else’s turn to take that potential and turn it into their treasure.

It would be different if my day job didn’t take every single minute I’m logged on from me, distracting me from what I’d rather be doing, working on my garden scale pike. The Barkyard has been on the back burner ever since I went back to work, more than three years ago. And for far longer than I ever imagined it would. And tragically, it shows! Plot twist, now my long lost HO scale empire is the reason it remains on the back burner.

My HO scale empire under construction in the corner room (circa 2006)
My HO scale empire under construction in the corner room (circa 2006)

Packing Up Memories

My job now is to get the corner room cleaned out and packed up. Everything I want to keep from what I’ve accumulated over a lifetime. I lost count of the number of trash barrels I filled with old and outdated computer and electronics parts. Magazines from the ’80s and ’90s. Basically a bunch of “stuff” that had a place there, but is no longer useful to me, or anyone else for that matter.

It breaks my heart to throw away all the chips and now otherwise useless components that were meant to be used in projects for my HO scale model railroad. Projects that never materialized. Hundreds, if not thousands of TTL logic level chips, like the 7400 series. Old 8 bit microprocessors and support chips. Even spare 8Kx8 replacement dynamic RAM chips from when I repaired my Commodore 64 after our home in Palm Bay was struck by lightning and zapped it.

Hopelessly Useless Discrete Integrated Circuits
Hopelessly Useless Discrete Integrated Circuits

With things today measured in gigabytes and terabytes, it seems comical to even think about something in the kilobytes. Parts with top speeds of ten or twenty megahertz can’t compete with today’s multiple gigahertz clock speeds. The really sad part is I can buy something off the shelf that’s already fully integrated and does what I want for a handful of dollars. Why would I waste my time designing and building it from discrete, obsolete parts?

Considering how much real estate a discrete component implementation would require compared to the postage stamp sized Arduino that could perform the same functions, and more, it’s a no brainer why these obsolete parts are now useless. The only exception would as replacements for failed parts in an obsolete piece of equipment. But then the question is how useful is that obsolete piece of equipment compared to its modern equivalent?

Decades of Memories - My Office "Dispatcher's" Chair (circa 2006)
Decades of Memories – My Office “Dispatcher’s” Chair (circa 2006)

My HO Scale Empire (Or What’s Left Of It)

A bit of history… I had a huge HO scale layout, spanning two bedrooms, one of which I called my office. The other used to be Nick’s bedroom, until he moved into his sister’s room when she moved out. I even cut tunnel passages through the drywall between the office and the corner bedroom. That all changed when we moved to Mount Dora and the kids moved back in there.

I’m hoping that just because I’m not talking about my garden scale pike, this HO scale discussion will still be of some interest. If not, it’s understandable. Anyone who’s ever started a model train layout knows it’s never finished. It’s a given. But this is going in the wrong direction entirely. Backwards. Having to dismantle everything I worked years to put together is not something I thought would be at the top of my priority list.

I had to dismantle the part of the layout that occupied my old office so our son-in-law could make it his office. That, too, was heartbreaking. Pulling up all the track and cork roadbed, removing track feeders, wiring and controllers. Then the real work began. Dismantling all the framework and carefully storing everything away in the corner room, with the understanding we would use that room for storage.

The plywood and L-girders were simply functional, meant to someday be covered with a beautifully stained veneer to match the ornate shelf brackets, with sweeping curves in the diagonal braces, crafted to mimic old railroad station architecture. Most of those pieces already made it to our Mount Dora home. The track and roadbed and HO scale structures remain there in the corner room.

Now defunct office side HO layout over the desk (circa 2006)
Now defunct office side HO layout over the desk (circa 2006)

The Last Of My HO Scale Empire

That was then. This is now. I had forgotten all the track and roadbed is still there on the bookshelf layout, high along the walls of the corner room. There are remnants of track and roadbed that remain where the coal mine used to sit on the main level along the wall to the office, complete with the holes for the tunnels in the drywall, still there after all this time. I patched them on the office side long ago.

Beyond all the trackwork, I have models of buildings and trackside structures, many of them kits still in their boxes awaiting assembly. The assembled structures I’ve had nearly my entire life, since grade school anyway. The coal mine for instance. The brewery. The rolling lift bridge. And many more. Those already assembled structures present the challenge of how to best store them in the smallest possible space… Without damaging them.

Beyond that are all the miscellaneous items, distributed across a diverse set of containers, including old Athearn blue boxes, assorted electronics cases, and even an old Dannon yogurt container. When I say miscellaneous, I mean tools, hardware, pieces parts of rolling stock, leftover model kit sprues, model train power packs, wiring, terminal strips, etc. Everything I’ve collected over the years for my HO scale empire.

From HO Scale Empire to Bare Office Walls
From HO Scale Empire to Bare Office Walls

Extraneous Information

So why all this extra information? To explain the lack of progress on the Barkyard. Why once again something else has taken higher priority. The good news is this “distraction” will help pave the way for our comfortable retirement. We stand to triple our money when we sell the house. Ann’s already retired. I’m not. I can’t wait, but I’ll have to, continuing to squirrel away 25% of my paycheck until then.

More good news is the progress in the garage here because of this distraction. Nowhere complete by any means, but many baby steps in the right direction. All the trestle making pieces are now in a large 90qt. storage bin, ready for organizer design and 3D printing. They were taking up all the “real estate” on the shelf over the carriage doors. Space that is now dedicated to storage bins that hold items seldom needed but not yet useless trash.

Some of those seldom needed items occupy most of the more valuable storage space above the wall cabinets over the work benches. While there’s not a whole lot of room to spare over the cabinets, what room there is would much better serve frequently needed items than seldom used ones. Items not used since going up “over the rafters” have been purged as well, making room for all the plastic stringer materials, just laying on the floor in front of the workbench.

Out of Garage Storage Space
Out of Garage Storage Space

Collateral Improvements

The garage is just one of the many “collateral improvements” underway, all thanks to needing more storage space. The only way to get there is to better organize the limited storage space available. Our Closet Lighting post details the addition of closet lighting, but doesn’t really touch on the amount of storage space that was freed up by cleaning out the closet.

The office has undergone a number of reorganizations too, incrementally wringing a bit more storage space here and there. But the biggest improvement yet was triggered by making space for the tall file cabinet coming here from the other house. The two “half sized” file cabinets have been here pretty much since we moved here. The time has come for the tall cabinet to move here too.

For the longest time, the color laser printer sat atop a stack of three large storage bins, full of HO treasures from previously dismantling the office portion of the layout. It sits at the end of the long stretch of cabinets in my office. This has a number of negative consequences. First is obstructed access, both to the bottom of the bookcase and the HO items stored in the bins beneath because of the printer sitting on top of them. Second is the lack of space for the printer anywhere else.

In preparation for that tall file cabinet’s arrival, the plan is to stack the two short cabinets atop one another and slide the tall cabinet in next to them. Same footprint on the floor, but twice as tall. Actually a little more than twice as tall, but you get the idea. There’s an assemble it yourself bookshelf unit that sits on top of the short cabinets at the moment, so the contents will need to go elsewhere and the shelf itself put out to the curb.

The Printer's New Home On Top Of The File Cabinets
The Printer’s New Home On Top Of The File Cabinets

Storage Improvement Phases

Now we get to a third consequence for the printer. Where does it get power? The wall outlet will be blocked once the file cabinets are in place. The solution is a new surge strip with a “wall hugger” cord, just long enough to reach the printer on top of the file cabinets. Phase one complete. Bookshelf gone, contents elsewhere, file cabinets stacked, and printer relocated. That eliminates one other negative consequence. Now the front panel is at eye level. And legible!

Phase two is sort through the HO treasures and reduce the bin count from three to two. The plan is to stack those two bins on top of the two large storage bins already in the corner of the bedroom next to my dresser. There’s room for six more bins, including the two everything gets sorted into now. Stacking them in the corner reveals these new 90qt. bins are larger than expected, but thankfully there’s still enough space for them.

My Model Building Retirement Stash
My Model Building Retirement Stash

Phase three is sort through the lower, sliding door section of the bookcase, now that moving those bins has restored access to it. There’s quite a bit of wasted space, even with all those CDs and DVDs in there. The original thought was access was seldom needed, so why not store them where access is difficult or limited at times. New plan. Move them elsewhere and store the plastic model kits in their place to take up that wasted space.

Those plastic model kits were the last things to come over from the other house and are now sitting on top of the bookcases. While all of them may not fit in that lower space, most of them will, freeing up the space on top for things that need more frequent access. Those models will have to wait until I have the time to spend on them. Like once I’m retired. At least, that’s the plan.

Model Kits' Temporary Quarters
Model Kits’ Temporary Quarters

Future Distractions

Eventually I want to “remake” the bookcases. Those bookcases were designed and built to be “massive”, because they occupied either side of the massive stone fireplace at the other house. And while they do provide a huge amount of storage space, they were never designed to fit the space they occupy. If anything, the exact opposite is true. The space they occupy was designed to fit around them.

Where they sit now influenced the size and design of the new bedroom closets here in Mount Dora before they were even built. Each bookcase is 32″ wide. I allowed a bit over twice that, 65″ total, to leave some “wiggle room” between the outside wall and the back of the closets. When the closets and the back porch remodeling were finally completed, it was apparent I’d forgotten to take into account the width of the baseboards and the bookcase trim pieces.

Massive Bookcases Bracket The Massive Stone Fireplace
Massive Bookcases Bracket The Massive Stone Fireplace

Some “minor” rework with a backsaw and problem solved. The larger problem is how to redesign them to better suit that space? Maybe it’s better to say rework them into a design that reuses as much of them as possible, if possible. The bookcases aren’t quite 22″ deep, and there’s only about 18″ between the end of the cabinets the bookcase on that side. Where they meet is a blind corner cabinet situation.

The main (structural) shelf is lower than the cabinets too, 30″ vs. 36″ off the floor, so simply extending the countertop to the bookcases won’t work. But that’s a future distraction. If it’s not apparent by now, it should be obvious why it takes so long to get anything done on the Barkyard. In this case, coming up with the design, finding a place for everything sitting on the bookcases, then disassembling and reassembling them to match the design.

The Next Distraction

Unfortunately, the next higher priority item is filing the taxes. We always file for an extension, which is why the deadline is October 15th, and not April 15th as you would expect. Hopefully it goes quickly and smoothly. As much as preparing for the sale of the house has been a source of friction between Ann and myself, it doesn’t hold a candle to tax time. It’s always guaranteed to bring those “suppressed emotions” to the surface.

Always something else that needs done first!

Taxes Due!
Taxes Due!

Leave Us A Comment

If you made it all the way through to the end of this post, thank you. I hope you understand why this is important to us. Even if we didn’t really discuss the Barkyard all that much, other than to explain why we still have no progress to show all this time later. Call them excuses. Call them what you will. Soon we’ll have all the time that was taken from us by everything else that was higher priority.

In any case, leave us a comment to let us know what you think. You’ll need to create a user account to do so, but we don’t use any personal information for marketing (see our privacy policy). You’ll receive a verification email. Reply with the link provided to verify your email address. After that, it’s all automatic. No waiting on moderator approval! No spamming your inbox with useless ADs and Special Offers. None of that nonsense.

Stay tuned…

 

It’s Dead! 3D Printer Relapse

Not again! I was so happy to finally get this thing back up and running only a few months ago and it just failed on me again! Catastrophically this time, taking half my thumbnail with it! The extruder release lever broke, snapped right off, just trying to remove the filament. That sent my thumb on a rapid collision course with the printer frame. Ouch!

Blood everywhere and playing beat the clock to get the filament out before the hot end cools off, now I’m prying what’s left of the lever with a screwdriver to release it and still having to tug the filament harder than I should. I noticed it’s been getter harder and harder to remove the filament over the last week or so and should have known something was wrong.

Had I known it was going to fail I could have ordered a new extruder pre-emptively. Had I known it was going to fail, I could have saved myself some pain too. I guess in some ways I already knew it would fail, eventually, being made of plastic where metal is called for. Plastic gears. Plastic case. Plastic tensioner arm. All plastic!

The only things not plastic are the gear and idler pulley that together push the filament through the extruder. That and the screws that hold everything together. There’s the spring that holds pressure against that release arm the idler mounted on, pinching the filament against the drive gear too. It snapped off right where the spring pushes against it.

The Damage To The Extruder And My Thumbnail
The Damage To The Extruder And My Thumbnail

Time To Rewind

Let’s rewind a bit. In my previous post, I covered the history of this Tevo Tarantula Pro (TTP) 3D printer and what it took to get it operational and back online. I’ve been using it almost daily ever since then. In fact, I’ve been using both 3D printers nearly every day. There’s a certain satisfaction from having both of them cranking out prints at the same time.

When one or both isn’t printing something, it’s almost like OCD with me, asking myself what can it be printing now? Every post since the one about getting it working again has included prints from both 3D printers. It’s uncanny how quickly that old TTP can print. I thought I couldn’t push it any faster, but I did mistakenly and it kept right up!

The new Sunlu S9+ was advertised as capable of 250mm/sec, but even when I ask it to do half that, the TTP is still faster, even though the print’s been sliced for it using slower speeds. How is that possible? Nick has a theory on that, thinking it’s built in acceleration profiles limiting the overall speed in the new one.

Turns out I was actually sending some pretty tame acceleration limits with the startup G-code. I modified the startup G-code to remove them and modified the printer settings directly with much more aggressive values, but it still seems to obey some magical built in values I haven’t been able to find. Oh well, at least it’s almost as fast as the TTP.

Too Fast For Even My New Phone Camera To Catch
Too Fast For Even My New Phone Camera To Catch

Cranking ‘Em Out

As I said, we’ve been cranking out the prints. Between Death Trap, Death Trap Jr., and the Closet Lighting controller prints, both have been kept busy most of the time since bringing the TTP back online. I used the time between prints to make minor design modifications for each new iteration of each print then kicked off the next revision.

Of course, when it takes 8 – 12 hours to print each piece of a Death Trap it gives me plenty of time to work on other designs, and not just 3D print designs. I’ve also been working on a major refactor of how the menus and meters are handled in my Arduino sketches and libraries. The motivation is to test a new round display as a digital version of an analog meter.

But I’ll save those details for later. When I say later, I mean in a later post, once it’s all working again. To be honest, I was getting overwhelmed by the immensity of the project and had to step back from it for a bit. Not going to list all the priority items I’ve already discussed in recent posts. Let’s just say the Ultimatum of end of August is quickly approaching.

The Saturn V
The Saturn V

My Saturn V Tribute

Between the Ultimatum and the constant media circus lately, even preempting the recent 56th anniversary of men first walking on the moon, July 20, 1969, I decided to print my own Saturn V as a tribute. I needed a breather. An escape from all this necessity and media insanity and it seemed like the perfect project.

Most of the parts are either black or white, with some parts in metallic silver, and a little red thrown in for the letters. The new printer is already loaded with white and the TTP with black, so I sliced the parts based on what printer had what color. Once all the black parts were printed, I loaded up a half spool of metallic silver, a.k.a. silk silver.

These were the engines, heat shields, the service module and few other interstage parts. The engines had the most supports I’ve ever printed by far. Probably more material in the supports than in the rocket engines themselves. Those supports had to come off in layers, peeling them off until getting down to the final course that snapped right off.

I should note these STL files are from a third party source and it took some doing to get them sliced for my printers. I generally design parts without the need for support unless absolutely necessary. I probably would have made the engine nozzles separate from the combustion chamber and turbo pumps and stuff so they can be printed flat on the build plate.

Finishing Touches

Anyway, I loaded up an old spool of what was left of 3D Solutech red. It was still coated in dust from sitting out in the office on the old closet rod arrangement I had sitting over the printers. The idea was to make it easy to load a different color by just sliding the desired color spool into place and loading it.

That was before I knew about the effects of moisture on the filament and filament driers. I loaded it in the filament drier and let it drive out as much moisture as it could first, before loading it in the TTP. Long story short, I thought I did a pretty good job getting rid of the dust. Not so much.

And it wasn’t apparent it was an issue until the symptoms of a clog started to manifest themselves later. The red letters were the least of my worries. Or so I thought at the time. Once they were done printing, I decided to print the base in red too. Think I putting the finishing touches on the Saturn V I literally put the finishing touches on the printer too.

Nice Red Pimple In A Sea Of White
Nice Red Pimple In A Sea Of White

Symptoms Adding Up

I originally printed the Death Trap Jr. in black, but it looks like exposure to the sun is enough to warp the plastic. I decided to print a white one with the filament left on the spool, starting with the lid. My first indication there was trouble brewing should have been how long it took to clear the red out of the hot end and replace it with the white.

It was pink for much longer than I’ve ever had to run the new material through to clear out the old. As it was laying down the first or second layer of the lid, all of a sudden it “burped” out a red “pimple”. That is to say a big glob of red that must have been still stuck in the hot end, now surrounded by a sea of white on the build plate.

That should have been my heads up. Between pulling out the filament getting harder and harder and now this, all the signs of a hot end clog were starting to come together. I thought there was enough filament left on the spool to print the base too, but I was wrong and had to pause the print to load the new Elegoo PLA+ filament.

Trouble Brewing

It was all I could do to pull the remaining filament out. I had ordered four spools of the Elegoo PLA+ in white, and loaded a spool as a test and a comparison to the white Sunlu PLA+ I’d been printing with. The TTP was reloaded with the new white and the print resumed. It seemed to print fine. If anything, it’s a slightly brighter white than the Sunlu.

Then the extruder started making that skipping noise, but given an assist from me in the form of a little extra push on the filament, it seemed to smooth out things for a while as the printing continued. The base finished and I thought nothing of it, preparing to pull the filament back out to store it in the drier until the next print.

That’s when it happened. Right around 9:00 PM Saturday night. I could not get the filament to pull back out. Pushing on the release lever didn’t seem to do anything. Until it snapped off, taking part of my thumbnail with it. So now we’re all caught up after the rewind. So why bother pulling the filament out at all?

After having the filament just randomly snap apart when left out and exposed to the humidity over a period of time, I decided to start removing the filament when the last print for the next few days finished. This allows the flexibility of keeping the spool in the drier or storing it in one of the sealed bags and loading a different spool, and whenever needed.

Replacement METAL Dual Gear Drive Extruder
Replacement METAL Dual Gear Drive Extruder

Where Do We Go From Here?

Obviously I need a new extruder. I’m not sure if I can even still source the original, let alone find one that isn’t already on its way out like my old one. Nick recommended a dual drive replacement like the one he got for his printer recently. It’s all metal, with two opposed drive gears rather than one and an idler “pulley”. The frame is all anodized aluminum.

I ordered one from Amazon and it arrived Sunday afternoon. If I have any complaint it would be the total lack of assembly instructions. I had to closely scrutinize the limited number of pictures on Amazon to piece together how things fit and where.

But before all that, I had to remove the plastic gear pressed on the stepper motor shaft. Thankfully there was enough clearance between it and the face of the motor to get a pair of screwdrivers behind it and pry. I only flung it on the floor in spectacular fashion once… When the screwdrivers finally lost their leverage, the adjustable wrench finished the job.

Old Pressed On Plastic Drive Gear
Old Pressed On Plastic Drive Gear

Fitting The New Extruder

Now it’s time to get the new extruder drive gear on the stepper motor shaft and roughly aligned with its companion on the rest of the extruder. Running the set screw down will keep it in place until final adjustment can be made. Now we can fit the new extruder to the stepper motor, separated by the mounting bracket. I only screwed up the orientation twice…

First I managed to get it 90° off, thinking the release arm worked opposite of what it actually does. The next time I somehow managed to get connector on the stepper motor facing away from the cable. Each time it had to come all back apart and the screws totally loosened and moved with it.

After a few choice words, I finally get it all put together and ready to test. Well, once I adjust the drive gear alignment on the motor shaft that is. It’s already a miniscule set screw to begin with, and it’s a good thing the hex wrench is so small and flexible, because trying to get it in the set screw would be impossible without flexing it, even with a ball end.

With that done and out of the way, it’s time to load up the filament and do some testing. And instantly I’m getting that skipping and nothing out the nozzle… So much for the new extruder fixing the problem.

Nick Lends A Hand

Nick was kind enough to take a look at it with me after supper. I had basically shut down the printer and left it off until I was ready to test with the new extruder, not giving the idea of a clog a second thought. Until now.

Nick realizes it’s taking way too much force to push the filament into the hot end. Not much if any plastic is coming out the nozzle. That would explain why the extruder is just skipping. Then he asks if I recalibrated the extrusion rate. I told him I had not. Not being able to extrude makes it difficult to measure how much gets extruded to adjust the rate.

Looking at the old extruder, it’s readily apparent that I need to make at least some adjustment since the old one had a gear reduction and the new one is direct drive, right off the stepper motor shaft. Oopsie. After “guestimating” the reduction ratio, I make a quick divide by four change, from 408 to 102. Still skipping though.

Poked the nozzle. Nothing. Took the nozzle out to see if it could be reseated without having to tear down the hot end again. I probably just made things worse by giving the molten plastic all the room it needed to fill that void, guessing that “overdrive” forced the molten plastic out between the bowden tube and the nozzle in the hot end causing a clog.

A New Hope

After having torn down the hot end twice, and finally getting it fixed only a few months ago, I NEVER want to have to do it again. But it looks like that’s what it’s going to take. That’s it for tonight. I thank Nick for his help, then shut down the printer again and leave it off until I have more time. Do I need yet another new hot end or can just clear the clog?

Tearing down the hot end takes up my entire work cell to lay the printer on its side to be able to get to everything on the printer, short of standing over it while it’s sitting on the shelf and having to turn it to reach behind it. I need that work cell for my work laptop during the day. I can’t leave the printer torn down with parts strewn everywhere. It needs to wait.

Later in the week I was chatting more about it with Nick and something he said about the opening through the hot end being as big as the bowden tube triggered a thought. Will simply pushing the bowden tube through the hot end clear the clog? A quick search of the waste basket tells me I already threw out the old tubing. Damn!

I don’t really want to dig out the new roll of tubing again just to cut a short piece. Then I remember I have an assortment of solid brass rods. Is there a 2mm rod? Bingo! If it’s not 2mm, it’s 5⁄64″, and at least 100mm or 4″ long. If anything’s pushing the clog out, this ought to work, as long as it’s not too big around.

The Culprit, A 2mm x 6mm Plug
The Culprit, A 2mm x 6mm Plug

We’ll Do It Live!

It’s a perfect fit! It quickly and easily frees a 2mm round plug ~6mm long. It pops right out onto the build plate! Nice! Not having to tear down or replace the hot end is even better! I should mention I’m doing this while the hot end is live, at temperature set for 210°C. Otherwise the plastic would be solid as a rock and stuck to the inside of the hot end.

Time to thread the nozzle back in, as fast and as far as I can by hand until it gets too hot to touch. The small adjustable wrench tightens it the rest of the way in. Next is to thread in and tighten the retainer fitting for the bowden tube coming from the extruder. Last step is to push in the bowden tube until it seats against the top of the nozzle.

Basically the bowden tube has to fit tight against the top of the nozzle to prevent the molten plastic from oozing out around it and causing a clog in the hot end. To get that tight fit means the end must be cut absolutely straight. There’s even a special cutter tool to do just that. And you’d better believe I used mine!

With everything buttoned up, I load up the black filament, pushing it through the new extruder and all the way down the bowden tube until I feel the resistance of the nozzle. From there I command OctoPrint to extrude 50mm of filament and… Still skipping and very little plastic comes out the nozzle. Again?

Bowden Tube Cutter
Bowden Tube Cutter

We’ll Do It Again!

Let’s do this all over again then. Remove the fitting and bowden tube. Remove the sizzling hot nozzle with the wrench. Push out the clog with the brass rod. Put it all back together again. Same thing! Still skipping and very little plastic coming out the nozzle. What is going on?

Did the hot end somehow manage to clog again? How is that possible? I’m beginning to suspect the bowden tube isn’t fully seated on top the nozzle or the new nozzle is somehow clogged already or both. I try to mark where the bowden tube sits relative to the top of the fitting, but even permanent marker doesn’t stick to teflon tubing.

Let’s do this all over again. Again. This time I switched to another new nozzle, guessing not clearing the clog first just clogged the new nozzle too. This time to ensure the bowden tube was indeed fully inserted and sitting on top the nozzle I inserted it first, before screwing in the fitting and tightening it down. It definitely went in further than before!

It’s Alive! Again!

It’s alive! It’s extruding like it should! Not skipping at all! That must have been the problem, another clogged nozzle and the fitting interfering with the bowden tube and constraining it enough so I wasn’t able to insert it enough to fully seat on top the nozzle. Definitely need to remember to insert the bowden tube then install the fitting next time.

I’m so happy that it’s working again and cannot believe it wasn’t something more serious. Had I known it was going to be a simple fix I wouldn’t have waited all week to try it. But again, until Nick mentioned about the bowden tube passage through the hot end, I wouldn’t have thought to work on it while it was still sitting on the shelf.

Removing a few easy to access parts and pushing out a clog with length a brass rod is certainly easy enough to do just that though. Thankfully I didn’t wait for the weekend to try it. But before I start doing backflips to celebrate, it’s time to actually calibrate the extruder steps and run a test print.

Turns out my guess of 4:1 reduction was off, more like 2⅚, but now when I ask for 100mm of filament to be extruded I can be confident it is. I fire off a test print, crossing my fingers I won’t have to recalibrate the Z offset too. The closet lighting battery cover prints fine, although I may have heard the nozzle lightly grazing the texture of the build plate.

One More Time

I fire off another test print, this time another closet lighting switch box lid since the latching tabs were broken off the old one. Do I need another closet lighting switch box? No. Will it be nice to simply swap out one that needs charged with one that’s already fully charged and ready to go? Yes. Yes it will.

I’m not taking the time to put another one together right now though, but at least I’ll have all the parts I need to put one together when I’m ready to. With both the test prints finished and looking good, I’ll just need to keep an eye on the Z offset, looking for a telltale groove forming in the texture of the PEI sheet.

Desperately trying to find something else to print so as to keep exercising the printer but coming up short. Already have more than enough run in stands of various colors, like black, navy blue, and white.

Speaking of Navy Blue, that’s another 3D Solutech color I can’t seem to match and I’m down to the last few layers on the spool. And it was just as dusty as that red was that I’m pretty sure caused the clog in the printer.

Lessons Learned

I learned a number of things from this one. A number of things that I should avoid or do differently in the future. And I learned a method that will make it easier to remove another clog in the future if it happens again.

The first is even though I think I got all the dust cleaned off from those leftover 3D Solutech spools, they aren’t clean enough to avoid a clog. Maybe I can rinse them off then bake them in the drier to drive out the moisture. I hope it doesn’t totally ruin the filament, but at this point, it’s already ruined unless I can find a better way to clean off the dust.

The next is to insert the bowden tube into the hot end fully to ensure it’s flush against the nozzle before installing the retainer. And this time I learned something new, an easy way to clear a hot end clog without having to tear it all apart. Had I known this before destroying the original hot end the first time I had it apart, I could have avoided having to replace it.

Another thing that I learned before this happened is moisture is the enemy when it comes to 3D printer filament. I learned this the hard way when the exposed filament loaded in the printer would just randomly snap, becoming brittle from the moisture. The problem is the remaining filament is just as brittle and removing it may be difficult or impossible.

So Long Solutech

As an aside, 3D Solutech used to be my go to filament, made in many different colors. A much larger range of colors than most every other manufacturer. For example, Wheat, Skin, Denim Blue, Navy Blue, Merlot Red, etc. Their Merlot Red is a very close match to the maroon color of the AT&SF passenger cars while their Navy Blue a close match to B&O Blue.

Their products are no longer available since they went out of business years ago. Amazon’s available stock lasted for another year or two until it was finally depleted. I still have a large stock, vacuum sealed in the box, but once it’s gone, it’s gone. Like the Navy Blue, all I have left is a few layers on the spool, maybe one or two.

The only alternative is to paint the parts, in this case with B&O Blue, a.k.a. Bando Blue. But even getting matching paint has become more difficult as major manufacturers have left the market, citing low sales volume. So now everyone’s in the same boat as those who modelled a road name with colors no one carried, having to hand mix their own.

Ill Advised Attempt To Keep All Spools Available
Ill Advised Attempt To Keep All Spools Available

Live And Learn

I also have a large stock of already open, dust impregnated spools that used to sit out on a wooden closet rod above the printer, exposed in the office environment, some for years on end. I’m really hoping the idea of rinsing the filament clean is a viable method to reclaim them. We shall see.

I’m faced with the prospect of just throwing them out. For those near empty spools, it’s not so difficult, but the nearly full ones I’d really like to save if at all possible. A dozen spools at $20 or more a spool is a $250 loss. I’ll learn my lesson the hard way it seems.

But it’s more than just the money. It’s the lack of suitable replacement color options. Sunlu has a large selection of colors, but nowhere near as many as Solutech offered. My favorite color to print prototypes with was “Mint”, an Aqua shade, but lighter. Kind of like powder blue but with more of a greenish tinge added.

Fringe Benefits

Oh well. At least now the filament sits in a filament drier meant to drive out the moisture. As a fringe benefit of being totally enclosed within the drier box, it also protects the filament from dust. As I said, the only issue is with the exposed filament if it isn’t removed from the printer after the last print for an extended period of time.

For now I should also learn to just take the win and move forward. After a relatively simple fix, I’m once again blessed with a working printer. Two working printers for that matter. And both are sitting idle, awaiting their next assignment, with exposed filament until then!

I hope you enjoyed this post and the “surprise” ending of a not dead again printer. Hopefully by the next post I’ll have the design for those concrete molds for the switch ladders. We shall see. Stay tuned, more to come.

 

 

 

 

 

 

Closet Lighting

I’ve made small progress on many different things today. Not as much as I wanted to get done, but I never do. The one thing I really wanted to get done was cleaning out my bedroom closet the rest of the way. There’s kind of a short story surrounding that, so I’ll try to keep it brief…

When we remodeled the back porch, there was a lot that needed done. It was a disaster. Everything was covered with cheap, thin paneling that may have been tempered Masonite™ at one point, but now brittle and crumbled in your hand. Not only did it cover the walls to the outside, but it also formed the bedroom closet walls. It had to go.

There was also a makeshift passthrough door in what was supposed to be a wall between the laundry room and the extra storage room off what became my bedroom. That extra room became data central. Not all at once, but over repeated incarnations to what it is now, each time to increase and better organize storage as well as provide better utility.

Old Craptastic Closet Wall Panelling
Old Craptastic Closet Wall Panelling

After tearing out all that crappy paneling, and the bedroom closets, and studs that framed them, it really became one big pass through until I rebuilt those closets. I used bead board, with the outside facing the back porch painted white, and the inside left as natural wood. I even used cedar for shelf cleats and the closet rod hangars. Absolutely beautiful!

Closet Lighting

The only thing missing is lighting. There was no provision for lighting in the original closets either. Probably a good thing too considering most of the house power came from one of those ancient, original knob-and-tube wiring feeds. One spark and all that crappy paneling would have lit up like tinder and burned the house down!

Ann got around it with a battery powered “tap” light stuck on the bead board ceiling in her closet. I could have installed light fixtures and surface type switches with that flat, snap conduit, but we had already completely rewired the house long before doing the back porch and rebuilding the closets. Battery power it is. Then it hits me…

Why not use an arrangement like the office lighting strip? I grabbed my tape measure and verified the closet is a little more than 38″ wide. Wide enough for one of the two segments in the LED office lighting. The only difference is the office lighting has a dedicated mains power supply supplying many amps, 6 or 8 amps @5 volts IIRC.

The closet lighting will need to run on rechargeable battery power with a limit of about an amp. I have a couple of leftover passenger car lighting 3D printed battery boxes, already wired up with a 2000 milliamp hour cell, ready to go. But that would only be temporary.

Dual Strip Office Lighting
Dual Strip Office Lighting

Another Lighting Controller?

Yes, another lighting controller. I really need a bigger switch, housed in a removeable box that can be moved to a charging station. I’m already behind the 8 ball on getting other 3D print designs finished and really don’t want to add yet another to the list. For now, just the ability to unplug the LED light strip from the controller box will be good enough.

I have enough of the extruded aluminum channels with diffusers to make up another segment. The nice thing about using a 3′ segment like the two that make up the 6′ light in the office is I can reuse everything from the office lighting sketch with minor modifications to the configuration and web page to support just half, 55 rather than 110 LEDs.

Each pixel has it’s own red, green, and blue LED, each consuming ~20mA each, plus whatever the consumption of the single control chip per pixel is. Let’s say 60mA per pixel as a nice round figure. The bad news is all 55 pixels on at the same time at “full tilt” will consume 3.3 amps at 5 volts! Our poor little passenger lighting setup will handle maybe 1 amp.

Thankfully the lighting controller can set them to ¼ power to bring consumption back under an amp. I was hoping to put together the new lighting segment tonight, but I forgot these extrusions are a meter long (39.36″), not 36″, and need cut to length. In any case, it’s a tomorrow thing.

It’s a Tomorrow Thing

My thought was just use the table saw with the miter gauge to trim the aluminum and diffuser to length together. Easier said than done with the garage in the state of disarray it’s in, stuff stacked on the table saw and strewn about the floor and everywhere. Hacksaw it is. A quick file to remove the burrs and it’s time to stick on the LED strip.

Once I’ve soldered the pigtail connector to the LED strip, I prep the extrusion with an alcohol pad then remove the protective strip from the double sided sticky backing, a little at a time, while placing the LED strip against the extrusion and pressing it down in place. With that done, it’s time to add the diffuser and end caps and give it a test.

I already modified the sketch config and HTML page to match the “half” office sized LED array last night. As I feared, the battery power gives out once a certain brightness threshold is reached, resetting the Arduino. Time to regroup. After some figuring, I decide to split the 55 LED strip into two, a main light of 30 LEDs, and an under shelf unit of 25 LEDs.

Another hack job, literally, with the hacksaw. Time to solder on another pigtail to the second LED strip and add a harness to another Arduino then program it for the second light strip. Also need to reprogram the original to have fewer LEDs and a new HTML control page as well. Those edits are fairly quick and my soldering job is soon tested.

Repurposed Passenger Car Lighting Controller
Repurposed Passenger Car Lighting Controller

It Ain’t Pretty

The original idea was to use one of the spare passenger car lighting battery boxes to power and control these things. But now that I need two of them, things are getting complicated. Add to that the tiny slide switch used to power on the unit is difficult to find, let alone know which way is on if accidently left on and the battery goes dead.

It’s not a deal breaker, but it could certainly be much more user friendly, and obvious which way is on. I used double sided tape to stick the battery box to the wall of the closet and routed the wiring harness I assembled to connect the LED strip to it. After drilling pilot holes and securing the mounting clips with screws, I snap the extrusion in place. Time to test.

It works great, but it ain’t pretty, and it suffers from all the drawbacks I already mentioned. Unfortunately, recharging it was an afterthought too. At least it became apparent it was once I realized where I stuck the box to the wall didn’t allow access to the existing charging port. Now I get to gut the thing and pull out the battery every time it needs recharged!

Add to that the placement of the LED strip at the top of the closet leaves a rather pronounced shadow beneath the shelves. That’s where the second strip comes in. It will mount beneath the shelves to illuminate anything beneath them. Once I attach the mounting clips and snap it in place that is.

Best Laid Plans

Originally I didn’t plan on a light under the shelves since all it would do is backlight the clothes hanging in front of it. Now that I’ve cleaned out the closet and donated everything that didn’t fit, I’m left with one polo shirt and my motorcycle boots. There’s no reason to leave that polo shirt hang in the closet and gather dust since I no longer need to wear it to work.

I work 100% remotely now and I’ve only needed that polo once since starting this job. So now it’s folded up in my dresser. Beyond all that, it’s not long before the gutting to recharge the battery renders the battery box inoperable. The original idea of reusing what I already have is quickly dissolving into a new design adventure.

Not what I wanted at all. In fact, it’s exactly what I wanted to avoid. Certainly nothing I have time for, but it needs done nonetheless. A couple of design decisions later and I have the the HUGE 10,000mAh batteries out along with their dedicated power bank charge controllers. After a few charge and discharge cycles, I remember why I mothballed these things.

It takes hours to get to 75%, then minutes to reach 98%, where they sit for a long time before reaching 99%, then 100%. They certainly don’t garner trust in the charging readings, being the finest quality Chinesium, but they do have a nice remaining charge display and can provide more than an amp of current.

Three Styles, Newest To Oldest From Left To Right
Three Styles, Newest To Oldest From Left To Right

New Designs?

Looks like I’m designing a new battery box with the dimensions of a standard switch box to hold the HUGE battery and switches big enough to be seen. The problem is I have so many different types of dedicated charge port (DCP) controllers, it requires multiple designs.

Basically I have three styles of DCPs to worry about. The first has one of those bright white LED “flashlights” that turn on when you press and hold the button. The next an older style twin USB A output with a single USB micro charge port. The third is a newer, high current twin USB A output with USB micro, USB C, and Lightning charging ports.

I chose the second style for the prototype design. The flashlight version is an LCD with a bright blue backlight but it suffers from the LCD off axis lack of viewability issue. The other two have bright white LED displays. Much easier to read without the off axis problem. The first iteration has half the access opening in the “case” and the other half in the “lid”.

The only problem with that earlier version is that to be able to provide access to the charge port from the bottom of the case, the wakeup button is on the opposite end from the outside of the case. After trial and error and three or four iterations trying to come up with a feasible mechanism to remotely push the button, nothing is working reliably.

Double Whammy

After trying to look up the specs on the unit, it becomes apparent it’s no longer available, superseded by the newer, high current version with more charging port options. So that coupled with the button on the wrong end is the double whammy. The newer unit has the button on the opposite end so it can be accessed from the outside of the case.

Not wanting to give up on the older version, I decide to go with a “universal adapter” approach where the case and lid have cutouts in the proper location for access to the USB A and charging ports, but the specific access port locations are contained in an adapter that attaches to the lid. It doesn’t seem all that important now, but boy am I glad I did it that way!

After printing countless iterations of both adapters, I reach the final designs. The case has an access “hatch” to allow sliding in that HUGE battery with a snap in cover to keep the battery from falling out. The lid provides openings for two round LED rocker switches to snap into.

Various Iterations Of Cases And Adapters
Various Iterations Of Cases And Adapters

The Final Design

The final case design simply allows a generous opening for any port configuration of the chosen DCP. Previously the case and the lid both contributed to the port access closure. The adapter is now responsible to “form fit” and fill in around them. The case also provides openings to snap in two of the standard black three pin connectors these LED strips use.

There’s a bit of a story behind that, but I’ll try to keep it short. For initial fitment, I prefer to make small test prints that print quickly and allow fast turnaround adjustments to home in on the final sizing and spacing. But if I had the actual connector specs, I could shortcut the trial and error design effort even more.

After Googling a bulkhead style connector for way too long and getting nowhere, I finally realize the connector that’s attached to the LED strip has a set of snap in retainer arms already built in! DUH! But now the issue is I need that connector on the supply side from the Arduino, not the supplied side on the LED strip, so it can snap into the case opening.

Rather than rework or remake the LED strip and cabling that’s already in place, I decide to solder up and assemble an “adapter” cable. In other words, a “gender bender”, in the parlance of the ancient serial port connectors we used back in the day. A quick test proves it works as intended.

Trouble In Paradise

That’s not the last of the soldering necessary though. The rocker switches still need wired up to turn on two separate Arduinos. Two you say? Why two? Because there’s no way to wire the rocker switches to both provide power and act as an input to indicate which LED strip to energize, short of using blocking diodes and further complicating the design.

It’s the quickest way there, and considering I didn’t want to take the time to do any design on this to begin with, it’s certainly turned this into a much bigger project now. I have Arduinos to spare, but I don’t have time to spare to update the sketch to control two LED strips let alone read the inputs to determine which LED strip to control.

All the interconnects use the standard lithium cell connectors, with the polarity and connector style matching the battery setup. If it supplies power, e.g. battery or rocker switch, it uses that configuration. If it accepts power, e.g. DCP or Arduino, it uses the shroud configuration. That way eliminating a component to troubleshoot guarantees the correct fit.

So with everything buttoned up and ready to test, I plug in both LED strips and turn on the switches. Both turn on and really light up the inside of the closet. This is great. This is exactly what I wanted, a brightly lit closet so I can see what’s in there. No more working in the dark. But then everything turns off after a minute? Seriously? WTF?

Adapter Cable And Various USB Micro Adapters To Prolong On Time
Adapter Cable And Various USB Micro Adapters To Prolong On Time

Scratching My Head

Now I’m really scratching my head. My bench testing with an inline USB power monitor shows ~10mA per pixel, or ~300mA for the 30 pixel strip and ~250mA for the 25 pixel strip. This should be well within even the original 500mA USB current limit, but these DCPs are supposed to support 2.1A and 2.4A!

So now I’m wondering if it isn’t drawing enough current? How can that be? I can see if it was only a single LED, like 10mA – 20mA, but this is an obvious load. To test the theory, I grabbed the test fixture Arduino and LED strip and plug it into one of the USB ports. That seems to have solved the issue by adding another ~290mA load. Until it doesn’t…

I thought maybe it just needed the data connection to the test fixture Arduino setup to remain on, but when that failed too I decided to do some more research on how the USB connection actually works in this situation. That’s when I found the whole DCP thing, where shorting the two data pins together was supposed to tell it this is a DCP.

So for grins I grabbed one of the last micro USB breakout boards I had, shorted the data pins together, and plugged it into the USB connector on the DCP. Still no luck. More research and I found three more configurations to try with various resistor divider combinations on the data pins from power to ground.

It’s a Tomorrow Thing All Over Again

One configuration uses a 5.1KΩ / 10KΩ divider. Pretty sure I have those values in my resistor stash… That’s buried beneath three other storage bins and in the back behind another bin up on the shelf in the corner. It’s late, and rather than mess with it tonight I’ll just deal with it tomorrow. But tomorrow turns into the next day. And the next.

In fact, this whole episode stretched out over weeks before I even got to doing the research, and the entire time my progress with the closet ground to a halt. Making room for the most recent acquisitions in the closet is the goal here. The idea is to make room for all my bins strewn about here and there and everywhere on the cabinet at the foot of my bed.

That storage space on top the cabinet was occupied by those recent acquisitions stacked on top of it. I managed to get most everything stuffed in the closet, but there’s still more to be done there. Mission almost accomplished. Now I need the lights in the closet to stay on so I can see what I’m doing to try to fit the last of boxes of cars and whatnot in there.

Closet Upper Light Only
Closet Upper Light Only
Both Upper And Lower Lights
Both Upper And Lower Lights

The New Final Design

I called them the final designs earlier, but that’s no longer true. If memory serves, I scrapped using these for a project at work for the same reason, because they kept turning off after a minute. Let’s see how well the earlier version DCP works. This is where those battery connectors saved the day. It’s as easy as unplugging the one and plugging in the other.

I didn’t bother with dressing everything into the box before I knew whether it was going to work or not. By now I had already reworked the original cabling and put together a second for the new strip under the shelving. I set the whole mess on the shelf and plugged in the cable and turned everything on. And now we wait…

It works fine and continues to provide power as long as it’s switched on. Time to switch over to using that DCP. Unfortunately the only exception to my connector rule is the hardwired power feed to both rocker switches. The feed has a connector, but from there is hardwired between the two switches, and the wires must be cut to remove the switches.

Light Switch Upper Only, 53% Remaining
Light Switch Upper Only, 53% Remaining
Light Switch Both Lights On
Light Switch Both Lights On

The Old Switcheroo

So why do I need to take the switches out in the first place? Isn’t there an adapter for that style DCP? The answer is yes, but the adapter for the other style DCP is already glued to the lid of that box. Couple that with the broken retaining tabs on the lid and it’s time for the old switcheroo to another lid which requires the switches to be removed.

I already have another switch box more or less ready to go with the older style DCP, but it will need the power output connector attached while I’m soldering the power feeds back on the rocker switches, now moved to their new home. The old box was black, while this one’s white, not that it matters for controlling LEDs. More aesthetics than anything else.

I figure a white lid with a white case looks better than the mix match white lid with a black case. Besides, I’d have to print another black lid and I don’t want to waste the time doing so. With everything buttoned up I place the new switch box in place and connect the LED strips. Both strips light up right away, and more importantly, stay on until turned off.

No Longer Available

Unfortunately, I can’t get those older versions of the DCP anymore. I only had a few of them to start with, and once they’re gone, they’re gone. With the new versions not working as expected and being the finest quality Chinesium, there is absolutely no documentation for them.

And of course any markings on the control chip don’t turn up anything in a Google search either, where I was hoping to find a replacement that is still available. The battery protection chip shows up, but that’s about it. I may find an answer on how to strap or configure the new ones someday, maybe I’ll find something on the old ones missing on the new ones.

In any case, it works for now, and I have more pressing issues to deal with. Like making room for all my stuff still in the corner room over at the other house. That’s the motivation for getting the storage bins off the top of the short file cabinets. The idea is to then take everything off the old shelf unit sitting on them as well and stack them on top one another.

This will make room for the other tall file cabinet over here. I already have five large storage bins with HO scale stuff in them. I ordered four more large storage containers that will hopefully be enough for the rest of the already assembled buildings and yet unassembled kits.

I’ve already filled one with all my 3D printer filament and will filled another this morning.

The Ultimatum

Now that the kids have moved most of their stuff out of the other house, Ann’s ready to list it. She gave the kids the ultimatum of the end of August to have all their stuff out or kiss it goodbye. I got the same ultimatum. I told her that may be an unrealistic expectation, but agreed having a deadline is better than not having one.

I also told her I’ll do what I can to reach that goal, but be prepared to be disappointed if it doesn’t happen. My biggest concern is the motorcycles in the garage I still can’t get to. Then she sends me a picture of one of them in the driveway after Nick moved a bunch of stuff out of the way to do so.

I’m not sure why she told me not to touch any of the kids stuff in the garage or move it but all of a sudden Nick could move a bunch of their stuff. I think it was meant to say I didn’t need to worry about getting to the motorcycles more than contradict what I was originally told about moving the kids’ delicate stuff.

It helps to know they’ll help with them, but I still can’t get to all the boxes of spare parts on the shelves until the kids get the rest of their stuff out of the way. I can’t even start disassembling the work benches until they get all their shit off them. We have 40 year old teenagers, that need to be told every step, like they can’t think for themselves. ¯\_(ツ)_/¯

Expanding Storage

One way or another we need to expand our storage space, or at least I do, just to have room for everything. One option is renting temporary storage but I’d like to avoid that if at all possible. Most everything I would store there is climate sensitive and will rust or melt if it’s too hot or humid. That’s why the garage has its own dedicated split unit.

The garage is already crammed to the gills, but like the bookshelves in my office could be much better organized. To that end, I allocated the remaining two large storage bins to the garage and all the trestle making pieces sitting across the shelf over the carriage doors. I just ordered four more for the HO stuff at the other house.

I spent last weekend at the other house going through everything, sorting it as trash, garage sale, or keeper. Ann and Nick got all the trash out to the curb and placed all the things I labelled as garage sale in Esnel’s office. There’s still more sorting that needs done, but I accomplished most of it in one day. I’m keeping all my styrene model kits for when I retire.

All the HO building kits are now all together in the corner room closet, along with all the electronics sorted into several 6qt. and 16qt. storage bins. I had to move all the wood out of the closet left over from disassembling the lower part of the layout, placing it on the countertop now laying on the floor, left behind when we moved the beautiful cabinets out here.

Long Term Storage

Before getting lost in the details, I was saying those trestle making pieces are coming down and will be replaced with items that are seldom needed but nice to have ready access to, like the old door knob sets or ducting and ventilation parts. Right now the tops of the cabinets are stacked with those seldom needed things. All the space will be freed up.
There are even more trestle building pieces stacked vertically on the back of one of the carriage doors. The other has a rack for what I thought would be useful pieces of wood. They’ve been there ever since I put it together years and ever ago. I have yet to use a single piece of wood stacked there. Time for the bin.
Then there’s the swinging plywood rack I though would be far more useful that it is. In fact, it’s just in the way, and most of the stuff stacked there hasn’t been touched since it was put there. The big chunk of ½” plywood is about the only thing I can think of that I recently grabbed and sliced into pieces to use for the office floor. Just need to install it.
The next big ticket item is a new shed. The old ones ahs certainly served its purposed, but it’s getting tired. The floor used to have a plywood floor on top of studs beneath it, but with the floor being so spongy, and now the carpenter ants coming up through the floor it’s obvious it’s long gone. The new one will be twice and big on a concrete pad.

Another Distraction

Between the Death Trap design from the previous post and now this new closet lighting controller design, I haven’t touched the switch casting design in months! I’m beginning to think it’s time to find a high school prodigy or three to employ to offload some of this workload. That or just retire so I have enough time to do this full time instead.

There’s a story there too. As much as I’d like to retire, Ann already has. She originally planned to officially retire in September, but as fate would have it, was forced to retire early. The company she used to work for was more interested in selling their services in the various “markets”, as they call them, than actually providing quality health care.

The last straw was the so called “team building” planned for Jupiter, FL. Supposedly an optional invitation, but it quickly became apparent it was mandatory. She’d have to travel there, along with her other management counterpart, and only one of their shared team of more than a dozen. Two managers for one team member? How does that make sense?

Early Retirement

When Ann said she wasn’t going to attend when they couldn’t give her a good reason why she needed to be there, other than “Because we said so”, she was fired. No severance. No professional send off. Nothing. She wasn’t treated like she’d been a key contributor, but rather summarily dismissed, because “Fuck you, that’s why”. Their Loss.

Her team was told her last day was today and that’s all they were told. Talk about a piece of shit company. I told her she should sue them, but Florida being a “Right to Work” state means your employer has the right to make you work your @$$ off for them. You have no rights as an employee. It’s a Red State thing. Google it.

But that’s enough politics. The moral of the story is Ann’s now retired, ready or not, thanks to the greedy, heartless fucks she used to work for. And as much as I’d like to be retired, I have at least another year and a half, just so we both have affordable health insurance. Talk about being held hostage by employment…

Somehow this moved away from the closet lighting and turned into a “What’s Next” focused on getting the rest of the stuff from the other house out here. Since I mistakenly published this post before I even had it all together or any pictures added, I hope you’ve been patient enough to follow along as I typed and updated it.
If not, no apologies necessary. I’ll get this finished soon enough and probably move the discussion about storage and whatnot to it own post. Stay tuned.

 

No Rest For The Wicked

I originally debated whether to post this publicly at all. I wish I had more progress to report in this post, but we’ve been otherwise occupied with all sorts of “distractions” we’ll call them. We work all week, so that leaves us just the weekends to get things done. Let’s just say we haven’t had a weekend to ourselves for at least a month now.

Every single weekend there’s been something else that needed done, and not here on the Barkyard. Not even here at home. It’s not all bad news, but not much progress has been made, even though we’ve had many unrelated accomplishments. I will warn you death is involved, so turn back now if you’re squeamish and not so inclined to hear about it.

When the doctor gave mom six months to live, six years ago, we pretty much knew he was only looking to enrich himself, convincing her she needed a bunch of expensive procedures to extend her life to avoid his “death sentence”. Mom became a nurse in the “doctors are Gods” era, never questioning him, even though we tried to convince her otherwise.

In My Time Of Dying

If you’re familiar with healthcare decision making, the question of quality vs. quantity of life is a prime concern. Mom went into Hospice care rather than undergoing surgeries she likely wouldn’t have survived. That damn doctor even tried to convince her to have a procedure that he and we already knew would shutdown her kidneys! Again!

Not only was the doctor wrong, but so far from right that mom proved his prognosis complete bullshit by outliving his prediction of months to live by many years. Regardless, by the end of May mom’s time was up. She was able to pass away peacefully, at home, in her own bed, not tied to a bunch of machines in some sterile hospital environment, all alone.

I got the call early Saturday afternoon that mom had passed. Sunday we were on our way to my parent’s home in Palm Bay. Both my brothers were already there, taking the red eye flight, arriving there about the same time Nick and I left home that morning. Hospice had already taken mom yesterday. There’s no reason to hurry, but at least we’re there for dad.

Chris and Nick
Chris and Nick
Nick, Cindy, and Matt
Nick, Cindy, and Matt

Arrangements Were NOT Impeccable

Nick and I spent all of our bereavement leave travelling back and forth to mom and dad’s and the funeral home. That first day was entirely wasted! Only dad needed to be there to sign paperwork. “Little Miss Vague” didn’t think the details important. Another day for mom’s final viewing, driving through the worst storm we’ve ever been through! What a day.

Driving four hours just to spend ten minutes at the funeral home wasn’t fun. Having to do it AGAIN because of some stupid girl’s vagueness was ridiculous. I say girl because she doesn’t possess the maturity to be called a woman. The funeral home certainly demonstrated they couldn’t care less about us, giving a clueless little bitch a role she isn’t qualified for.

“Little Miss Vague” certainly demonstrated she really couldn’t care less about us either by laughing and joking with the receptionist at the front desk while we paid our last respects to mom in the next room. Like I said, she isn’t mature enough for the role she’s been asked to fill, let alone qualified. Just a stupid, clueless little bitch.

For The Living

At least the four hour drive to mom and dad’s and back wasn’t a waste. Chris and Matt were there, pretty much what’s left of our immediate family. Ann had to stay behind to take care of the dogs, both ours and Nick’s. Courtney had the option, and was originally going to come with us for mom’s viewing, but had second thoughts and decided not to.

When Nick and I arrived at my parent’s house, Vitas (mom’s hospice provider) was already there to remove their equipment, like the oxygen generator and mom’s hospital bed. When they were finished, the task of arranging for the living began. Dad was heartbroken, his partner of more than 64 years now gone forever. Time to get things squared away for the living.

We’ve always joked that my brother Matt is the “White Tornado” because of his energy and dedication to making sure things are clean and organized. He moved furniture, swept, then mopped floors, making sure dad had a clear path without tripping hazards or obstructions that could cause a fall.

For now dad’s still making it happen and still able to get around with his walker, but he’s also now one life changing event away from needing constant care. We picked up mom’s ashes last weekend (as of this writing) and took our last road trip with her to bring her home. Dad seems to be doing better now. Time will tell. It’s yet another waiting game.

New Life

Not so much about starting a new life as starting a new chapter in life. We’ve also been busy helping the kids, Courtney and our son-in-law Esnel, move out of what used to be our home of twenty years, and into their “new to them” house. It’s Esnel’s mother’s house, and it will now become theirs, as she passed away not even a year ago.

There’s a whole ‘nother story there that we won’t go into. Let’s just say that making their new house into their home is going to take some work. Another weekend devoted to helping the kids donate all Ana’s belonging to the Christian Sharing Center to those less fortunate. Now the real work begins…

Cleaning. Painting. Wiring. New ceiling fans. New laundry equipment. You name it, everything necessary to move in and make it their home. But that’s yet another weekend dedicated to other than the Barkyard. Not complaining, just sayin’.

You can imagine what the rest of the wiring looks like
DIY Wiring That Needs Removed

Another weekend to go pick up used laundry equipment 45 minutes away, then transporting it all the way to their new house, at least another 45 minutes from there. Then the half an hour drive back home. They needed something better than the miniature, all-in-one stacked unit that may be good enough for several towels, but not much more.

The motivating factor behind all this is the sooner they’re moved out of the other house, the sooner we can list it on the market, and add the proceeds of the sale to our retirement fund. I still have the remnants of my long lost HO scale empire that spanned two rooms looking for a new place to live. And three motorcycles in the garage that need a new home.

Rats!

That’s right. I said rats. At least a dozen of them having a party in our Barkyard! I’m sitting here one night in data central working on the casting mold design for the switches and look up at the surveillance system monitor to see not one, not two, but nearly a dozen rats running around the Barkyard!

Up and down the massive oak tree trunk. Out from under the house to the corner of the deck. Then beneath it. Then out from under the other side of it, and back again. It’s freaking me out! I haven’t seen any rats for such a long time that it doesn’t make sense that we now have so many all at once. Not sure what happened, but I’m not pleased at all.

The only thing I can think of is they recently cut down most of the trees across the street all around the high school, dislocating countless squirrels, and most likely these rats too. All I know is it’s time to order more rat traps. And poison. Well, not exactly poison, but the stuff that swells up inside them until they literally explode from the inside out.

So far I’ve sent six of them to their graves, four of them in traps, two of them bloated and barely able to move until they passed. Folded one in half, and feet away from where the trap was set. Like I said earlier. Death is involved. Haven’t seen any of the remaining “dirty dozen” in over a week, but that doesn’t mean they’re all gone. Yet.

A Break In The Action

Today is the first day of the first weekend I haven’t something else that needed done for somebody else! Finally I’m able to do something for the Barkyard! Today is the first day of my nine day staycation! The entire week of the Fourth of July, bookended by both weekends. And I’ve done a number of things that needed done for quite a while now.

Like updating this post for one. Cleaned up all the rat droppings on the garage floor and arranged things so there aren’t a tripping hazards everywhere I need to step. I wanted to do that last weekend but had to take my last road trip with mom to deliver her ashes to dad’s. Then had to help move the kids “new to them” washer and dryer to their new place.

So I actually didn’t feel guilty spending time to sync the computers as well as update to the drive synchronization web page I created to help me keep track of everything. Imagine having four different computers, all with their own version of things I’ve worked on over the past few decades.

Some are broken into pieces and spread over different drives because one drive large enough for all of it didn’t exist at the time. I lost a considerable amount of that history from 2012 to 2014, with no backups. Mainly family photos and renovations at the other house. I have a total of six photos from 2014. Sad.

Obviously needed a better backup plan. Along those lines, that web page tracks three of those computers. I may even add the fourth. Eventually. As I ran the comparisons of areas that change frequently, I added the common ones I usually keep in sync across all three computers. Essentially a redundant backup. Next step is identify single point failures.

Nice Slice
Nice Slice. You Should See The Fan.

Broken Into Pieces

Speaking of broken into pieces, I about sliced my finger off, breaking a couple blades off the new computer fan I just installed in the old computer in the process! Ouch! Those puppies are SHARP! Well now I have a deep slice in my fingertip, bleeding everywhere, and a new fan that needs replaced. Again.

Things went from a periodic bearing growl from the old fan to increased volume from the increased airflow of the new fan to shake, rattle, and roll from the imbalance of missing blades! I was in the process of looking for the model number of the power supply fan and reached in the open case to lift it without thinking these things were dangerous.

I don’t know how many times in the past I’ve stopped a cooling fan with just my fingers without a thought of getting injured. These things aren’t generally that powerful and it doesn’t take much to stall the motor. Not these new ones! They run faster, with more torque, and knife edged blades. Talk about a recipe for disaster! Lesson learned.

Oops. Missing Blades.
Oops. Missing Blades.
Sharp Blades Cut Into Each Other. And Me.
Sharp Blades Cut Into Each Other. And Me.

Rats! Again!

I hadn’t seen any rats for weeks after the initial culling, but tonight they’re back for a reprise, what looks like the remaining half dozen I failed to kill the first time around. But this time I’m seeing smaller ones too, like the size of mice. Even worse, I’m seeing mating action to make even more of the little bastards!

I still have a number of traps strategically placed under the corners of the deck where the rats like to scurry up into the slots in the concrete post bases on either side. But even though they’ve been tripped and reset time and time again, still nothing in them! I thought maybe we’d scared them off. Nope. Need a better mouse trap…

Nick had sent me a Facebook link to some contraption on a Facebook group as a starting point, but of course you have sign up for the group and a wait for a moderator to add you. I don’t mind that as much as jumping through their hoops and answering their 20 questions only to be ignored. Fuck them. Didn’t really want to join their fucking group anyway.

The gist of it is an ammo container from Horrible Freight, modified with two holes cut in either end. The idea is to place yummy food just the other side of a larger opening with a hardware cloth mesh blocking access to the enticing bait just the other side of it, forcing them to the other end which leads to the trigger of a trap just inside it.

Death Trap
Death Trap

Death Trap

My first thought is for all the time and effort to make the modifications to a bunch of these ammo boxes, the time is better spent designing a 3D printed solution that’s ready to use hot off the build plate. Time to switch gears from the switch casting design and focus on a new, more deadly approach. We’ll call it “Death Trap”.

I have the proof of concept prototype printed within a day. The second generation versions are geared toward chamfered edges and glue in mesh pieces. Printing the mesh in place added hours to the print time, so the second gen uses a separate mesh that takes maybe 20 minutes to print and glue in place.

I even added an embossed “Death Trap” moniker to the cover. But even with the gen 2 mods, the box takes ~12 hours to print and the top another ~8 hours. Basically a day per Death Trap. Even worse, there isn’t enough filament on a single spool to print two entire Death Traps! There’s roughly 330 meters of filament on a 1Kg spool, a little over 360 yards.

If the figures are to be believed, the top takes 71.46 meters and the box another 107.56 meters. Doing the math, that’s 78.13 and 117.53 yards, respectively. In any case, twice that is more than 330 meters, at a little over 358 meters. I just bought four spools of white and I’m already down to one after printing four Death Traps!

Prototype Death Trap Base With "Tree" Supports
Prototype Death Trap Base With “Tree” Supports

Double Trouble or Death Trap Jr.?

At first I tried simply halving the rat sized version into a mouse sized version, but it ended up being slightly too small. Another hastily designed prototype hot off the presses, er, printer, lead to a second generation with the same features as the rat sized version, i.e. beveled edges and glued in mesh. Even a top with the embossed “Death Trap” logo.

So now both printers are hard at work printing Death Traps, the new one the large rat sized version and the old one the mouse size versions. But half sized means one eighth the print volume, so the mouse sized versions take only a few hours each. For comparison, the top takes only 18.61 meters and the base just 22.93 meters.

The Death Traps are specifically designed around the dimensions of the Victor M035 Mouse and M205 Rat traps. I originally printed the mouse versions in black, but it appears just the heat from sunlight is enough to deform them. New ones in white are coming soon.

So far, they’ve caught zero rats or mice. Sadly, I did managed to snap a squirrel though. No more leaving them set them during the day. In the past we may have gutted and dressed out that squirrel for a meal, but these Florida squirrels are tiny compared to the ones I grew up with in Ohio. He’s on his way to the dump or incinerator with the trash pickup.

Taking The Win(s)

While I may not have caught all the rats, at least i caught half of them. Still wondering where they came from and why such a large number of them? At this point I’m taking the win. From the research I’ve done, rats are leery of something new to the environment, so it may take some time after introducing the Death Trap for them to get acclimated. Time will tell.

Another win I’m taking is the week off for July 4th along with both the weekends surrounding it. Well, at least the weekend before. The Saturday of the weekend after was helping the kids move most of their stuff to their new digs. But that was the only big interruption of progress.

The biggest recent win for me by far is getting the old Tevo Tarantula Pro 3D printer back online and cranking out the prints. When I bought the new, bigger one to replace it, it promised to be faster, but the old one continues to run circles around it. I thought I pushed it to its limits before, but accidentally set it to slice even faster and it still keeps printing!

Fixing The Floor (Again)

I was finally able to get the plywood floor of the office sliced in half and properly supported. Because the actual office floorboards are the original porch decking, they slope toward the back wall at ¼” per foot, for a total drop of 2″ over the nearly 8′ width. I placed a 4’x8′ sheet of ¾” plywood over it, supported in the middle by 1×4 and a 2×4 at the back edge.

Since the porch porch has settled of the century the house has been here, and continues to settle, I overcompensated a bit, just in case. The first 2′ of the 4′ width of the plywood sheet is raised ¾” by the 1×4 and the remaining 2′ another ¾” for a total of 1½” by the 2×4.

The problem was both supports shifted away from where they originally started out and the plywood became “spongy” and “bouncy” and anything sitting on the plywood bounced right along with it. I didn’t dare stack anything for fear of it toppling over when I walked on it.

Nick gave me his battery powered circular saw that made quick work of it. That is, once I had everything off the plywood, the carpet pulled back, and the centerline measured and marked. Why cut it in half you ask?

Better Than Ever

Because it’s much easier to lift out half that sheet of plywood, leaving the desk and computers in place, then place the supports where they belong and fasten everything together. With that done and the carpet back in place, now it’s solid as a rock, just like I wanted it to begin with. Better than ever!

Now I want to extend the areas under my desk and off the end under the work cell so everything is at the same height. It’s bothersome having the ¾” plywood just end where my feet hit the floor under my desk, with a similar situation under the work cell. But that’s a problem for future me as they say.

We cleaned out my closet, and the only thing I kept was a single polo shirt and my motorcycle boots. Everything else is gone. And with that, I’m going back to getting things done. Time to start making room for all my HO scale stuff still sitting in the corner room over at the other house. And styrene model kits. And file cabinet. And… You get the idea.

Making Room

I accomplished a lot of the things on my list, not as much as I wanted to get done, but I never do. Making room for the most recent acquisitions in the closet was a big goal for me over my time off, and I managed to get most everything stuffed in the closet, but there’s still more to be done there.

The idea is to make room for all my bins, currently sitting on top the file cabinets, over on the cabinet at the foot of my bed where all those recent acquisitions used to sit. Mission almost accomplished. But now I need lights in the closet to see what I’m doing.

I had to take time away from that task to look into it. To that end, I feel another Lighting project coming on… I’ll spare you the details and save them for another post. When I put in the new closets, it was long past when we rewired the house, and before I tore them out the originals didn’t have electricity run to them either. Battery power it is.

Stay tuned for more updates on that and the progress of moving what’s left of my HO scale empire from the other house out here. I feel a bookshelf layout coming on… Nope. Not until we’re able to run train the the Barkyard again!

 

 

It’s Alive! 3D Printer Resuscitation

It’s official! I finally managed to get that old Tevo Tarantula Pro (TTP) 3D printer back online. It’s been sitting on the shelf with the new printer for over a year now, useless and just taking up space. With even more recent acquisitions, space is at a premium. I’m to the point where if I can’t get it working, it has to go to reclaim the wasted space.

Thankfully it didn’t come to that. But I was ready to start parting out the old TTP, either to use for other projects or to sell online. If you’ve read this post about its demise, you know it’s been the mainstay of much of our Barkyard “imagineering”. It left us in the lurch when it bit the dust.

The new Sunlu S9+ printer has been a steady source of new prints and inspiration, and continues to pump ’em out, so it’s not like we need another 3D printer. But… We already have one and it sure would be nice if it worked. Spoilers. It does work. As well as it ever did. In fact, it still has that damned offset to the right and the top that I remember!

Hot Off The Presses… er, Build Plate

So What’s The Problem?

Essentially the problem is me. At least the reason it hasn’t been fixed until now is my fault. The original problem was the wires flexing enough that the hot end heater circuit became intermittent, causing a massive clog the hot end just couldn’t recover from. Mainly because I broke everything trying to get it apart.

The reason I say the problem is me is because it took me so long to finally get fed up with the situation and finally do something to resolve it. I tried to put everything together after ordering and receiving a new hot end, back when it first failed, but was never able to get it to reliably PID tune the nozzle heating.

If that sounds like gibberish, it means that any heating related elements need to be “tuned” to function properly, without going into “thermal runaway”, a condition where the temperature continues to rise out of control. The last thing we need is a “fire starter” in the house. We’ll get back to PID tuning in a bit.

Totally Irreparable Hot End

An Incorrect Assumption

At the time, I thought the replacement’s use of inline connectors was causing too much noise for the electronics to deal with and put it aside for later. Later never came. All that needed done was to remove the those connectors and solder the leads together as one solid connection from the heater and thermistor back to the controller.

It was never a high enough priority to choose to take the time to do that. If you’ve ever taken apart the print head of a 3D printer, you’ll understand the dread of doing so. It never goes back together the same way it was before taking it apart. And it never goes together correctly the first time. Or the second. Or the third. You get the idea.

Another problem is where to work on it. Once it’s torn apart, everything has to go back together, working or not. Since I share my workspace with my work computer during the week, I’d have to move it out of the way come morning. That doesn’t leave much time to get things done at all. Starting after supper and working until midnight, maybe 6 hours.

Heavily Damaged Hot End Fan Shrouds

Where Did I Leave Off?

I decided Monday evening to try to figure out where I’d left off way back when, tearing into it after supper. First I had to sift through the “tin” of 3D printer parts. It was an opportunity to sort things together that share a common use, like bowden tube and the related push connectors, and refresh my memory of what all was in there.

I found both the old and new thermistors along with the old heating element. I don’t plan on using it since the new one’s already in place. Using the old one would require taking the heat break and hot end back apart again just to swap them. The idea is to just remove the connectors and solder the wires together.

Next is taking the print head apart. There are several parts that come together to make a complete print head. The main assembly that “contains” everything is the fan shroud with three separate cooling fans, one dedicated to the heat break, essentially a heat sink with fins that it screws to directly. The two others on either side to provide work cooling.

The heat break has a cooling fan so it doesn’t melt the end of the bowden tube or the filament. It’s meant to provide a path to guide the filament to the hot end and nozzle. The hot end, with its heater, thermistor, and nozzle fits into the bottom of the heat break. The hot end is where the solid filament is turned into molten, oozing plastic, and forced out the nozzle.

Heat Break and Hot End Relative to Print Head Fan Shroud

Making Quick Work Of It

Because the hot end parts use connectors, it’s easy to disconnect them and move them out of the way. The connectors are snipped free and the wires stripped in preparation for soldering. Turns out the thermistor that came with the replacement hot end is the wrong one! Well, let’s just say it wasn’t the one the firmware was expecting.

In general, the type of thermistor and its characteristics are “baked” into the firmware when it’s built, at “compile time” as they say. There’s no way to change it once it’s built and loaded onto the controller short of changing it, rebuilding it, and reloading the new version. When I first got it, Nick was the one who built the firmware. Not sure where the source code is now…

After much searching on the interwebs, I found a WordPress page dedicated to the TTP, and true replacement thermistors meant for it listed there. I ordered a set of ten, just in case the original is bad. They’re also replacements for one of Nick’s printers as well. They come with a 1 meter pigtail, so my thought is I’ll just dress one into the harness.

Old Thermistor, Far Left, Out of Focus and New Heating Element Wiring, Center

Change Of Plan

Doing anything with the harness looks like it would be a nightmare. Change of plan. I’ll just use the old thermistor. After all, as far as I know there was nothing wrong with it. I just snipped it out of the circuit back then when I found the predrilled hole for it in the replacement hot end was bigger than the original.

After some fiddling with it and the old hot end I discovered that predrilled hole in the original was deeper than the thermistor was inserted, as if it was meant to rely on the heat being radiated and not conducted through direct contact with it. There was no thermal paste or any other means of conducting the heat from the metal of the hot end to the thermistor.

Thankfully getting the old thermistor in place is as simple as inserting it into the predrilled hole and clamping it in place with the original screw and washer. Soldering the wires back together takes some “fixturing”, but with the help of the “third hand”, I made quick work of it. I even remembered to put the heat shrink on the wires before soldering them!

New Heating Element Wires Won’t Accept Solder?

Make That Change Of Plans

Happy with the relative ease of restoring the old thermistor to the circuit, it’s time to tackle the heating element. Now I know why the thermistor was easy… Because the heating element is refusing to cooperate. Not so much the element itself as the wires connected to it. There’s no amount of flux or heat that will allow the solder to “wet” them!

Now I know why they had connectors! Not sure if it’s aluminum or steel wire, but you can’t get solder to sweat onto either of them. I’ll never understand why any electronics manufacturer would use anything but copper wire. How much money did they save? Those connectors, crimp terminals, and assembly had to cost more than copper.

When I saw the silver color of the wire, I just assumed they were tinned copper. Wrong! As much as I wanted to avoid taking the hot end apart, looks like I’ll have to now. There’s no other way to gain access to the heating element. And just as I feared, I stripped one of the tiny 3mm grub screws in the process!

Print Head Assembled and Wires Neatly Dressed

What’s In The Big Prize Stash?

Of all the small, metric hardware we have, grub screws aren’t in the inventory. Then I remember Nick gave me one of his old hot ends from a different printer. Maybe it has one? Score! It’s a smidge longer, but it should work. Problem solved. Time to solder the old heating element in place.

The red, braided cover is more difficult to “strip”, but the flush cutters manage to cut it back far enough to strip the actual insulation. Lighting strikes twice as I remember to install the heat shrink before soldering again! Time to shrink things in place with the battery powered heat gun.

After struggling with getting the new heating unit out and installing the old one in its place, it’s time to put things back together. That’s easier said than done, but a LOT more than I thought would get done in one evening! It only takes three tries to get everything back together and ready to test!

Giving The Hot End “The Boot”

Third Time’s A Charm?

The first try is a bust when I realize the hot end interferes with one of the work cooling fans in the shroud. Let’s loosen and strip those grub screws some more! The next try is because I didn’t have the thermistor clamped down enough and it just pulled out. Let’s loosen and strip those grub screws even more! Third time better be the charm!

By now I’m using the small needle nose pliers to “cinch” down those grub screws that last little bit. I didn’t realize it at the time, but the nozzle on one of those work cooling fans was cracked and falling to pieces. I zip tie what’s left of it together enough to get the screws in place. Until it cracks and one of the screws falls out!

The other nozzle was totally deformed into a crescent moon shape, pretty much pinching it off. A little work with the heat gun and a screwdriver opens it back up, albeit haphazardly and crooked. I searched for replacements online, but don’t know what those things are called. It will be good enough to test with and at least they’re accessible.

Ready For Initial PID Tune and Testing

The Big Test

Getting everything connected and plugged in and turned on is a big step toward testing the repair, but first things first. Time to do a PID tune on the nozzle heater. This is where the hot end replacement failed the first time around. Had I known then what I know now, this thing would have been working a lot sooner.

So what the Hell is a PID tune? PID is short for Proportional, Integral, Derivative. It’s actually the parameters were tuning for the heating control system. Proportional is exactly what is sounds like, a proportional response to the heater given feedback from the thermistor.

The Integral part is like a long term averaging, so as not to overreact. Derivative is more responsive to the rate of change of the thermistor feedback, the faster the change, the faster it responds. The three taken together allow for a fast response to a given input, without overshooting the value, with small excursions around the setpoint.

Amazing First Time Nozzle Temperature Curve

Absolutely Amazing

It’s incredible how close the thermal response is to ideal the first time through tuning! It’s like this thing was never offline. Without going into too much more detail, many 3D printers use Marlin as the base source code for building the printer’s firmware. The printer is commanded using GCode and Marlin (“M”) commands.

For example, to start the PID tune process, an “M303” command is issued. It takes parameters, like which heating element to tune, what target temperature to use, and how many cycles to run before completion. In our case we’re tuning the nozzle heater, so the command would be: “M303 E0 S210 C10”.

The end result is a new set of parameters to replace the existing parameters with. This should be done any time the nozzle assembly is modified to account for any variations or changes in the heating characteristics. In our case, this becomes: “M301 P40.10 I5.44 D73.92”, where P is the Proportional value, I is the Integral value, and D the derivative value.

The Moment Of Truth

One last thing to do, extrude some filament and verify the nozzle is heating as expected and no thermal runaway occurs. I set the controls to extrude 50mm and it’s looking good! I command another 50mm and… Schmidt! It’s extruding alright, AND PUSHING THE HOT END OUT RIGHT ALONG WITH THE FILAMENT!!!

That’s all she wrote for tonight. The printer is on the shelf and out of the way for work tomorrow. I’m not taking it all back apart tonight. Without new grub screws to replace the stripped out ones, it wouldn’t make any difference anyway. There’s no way to fix this until the grub screw assortment I ordered gets here Wednesday.

Still, it’s very encouraging that everything else is working. None of those problems from the first time around. If there’s a lessons learned from all of this, it’s don’t trust it when they say it’s compatible with your particular brand. It’s not. Another is hex keys and screws are easily stripped with excessive force, especially when they’re small.

A Two Day Wait Just For Two Set Screws

The Suspense Is Killing Me

I hope it lasts… But seriously, the wait for the grub screw assortment to arrive is torture, not knowing if this is really going to fix the printer. It arrived early in the afternoon, so I was able to get right to it once I was done with work for the day. I’ve had this thing apart so many times now I could do it blindfolded. Not that I’d want to mind you.

No way to know if pushing the hot end out caused any other issues until it comes apart. A close inspection reveals everything is clean. For whatever reason it’s giving me fits trying to get that hot end back into the heat break, but in the struggle, I realize the “flat” on the hot end connector appears in one of the grub screw holes. Hmmm…

I wonder if that’s what caused the loose fit? If that flat isn’t close to perpendicular to the grub screw, it may seem tight, but won’t be. Because it threads into the hot end, it’s at a slight angle when the hot end is square to the heat break. This time it gets aligned with the flat and the grub screw tightened down along with the other one.

Drum Roll Please

This print head has been apart and back together so many times, the bowden tube is fighting me now. The way the push in connectors work is they “bite” into the outside of the tube using some type of one way clutch to allow inserting the tube but preventing it from being pushed back out. Only depressing the release ring will allow it to push back out.

Over time, the repeated insertions leave a permanent “ridges” that refuse to push back through that clutch. The only way to fix it is to replace the bowden tube, which is exactly what I did. The connector threads into the top of the heat break and holds the end of the tube tight against the top of the hot end so no molten plastic can leak out.

The old one was a bit short anyway, so now’s a good time to replace it. Filled with new confidence, it’s time to test this latest incarnation. First a PID tune, then the extrusion test. It works! The hot end stays put and I can repeatedly extrude filament! No movement of the hot end whatsoever! SUCCESS!!!

Back To Basics

The next hurdle is to adjust the Z offset, that is to say the offset from when the BLTouch sensor detects the build plate and the nozzle contacts it. This has always been a hassle and a long term struggle to properly adjust that distance. Whether the first layer adheres to the build plate or not hangs in the balance.

Too much and the nozzle crashes into the build plate. Not enough and the first layer just sticks to the nozzle and not the build plate. Somewhere in between is the balance where prints just stick or they don’t. It’s a painful process of cancelled prints and minute adjustments and more test prints.

Until this time. I actually found an article online on how to precisely measure this offset in one operation. Without going into too much detail, the secret is to turn off the “soft limits” that stop the head travel before actually reaching the desired adjustment. That’s the piece of information I’d been missing this whole time.

Probably The Best Test Cube From This Printer So Far!

The Old Standby

With the Z offset within a couple hundredths of a millimeter, it’s time for a test print to see if the printer really works. The good old 20mm calibration cube is the best choice. I don’t want to have to reslice it right now, plus I know it’s worked on this printer in the past, and it only takes 25 minutes or so. Off we go.

I’d forgotten how much louder the stepper motors are on this printer. Definitely spoiled by the silent stepper drivers on the new printer. Not sure what’s different this time around, but it’s the best test cube I’ve ever seen this printer print! No elephant’s foot. No layer shift. None of the artifacts I seem to remember in the past.

I AM ECSTATIC! This is beyond awesome. This is beyond belief. I cannot believe the old printer is back online and working as well as it ever did! I cannot believe I did not do this this sooner! It’s May of 2025 and the printer failed February of 2024. Considering this all came together in a couple evenings, I should have made the time long ago!

A Few More Tweaks

I planned on getting to this point a long time ago. I even bought a second Raspberry PI 4 to control it. It just sat there this whole time, unused and ignored. Thankfully it was already configured and ready to go when I needed it. There’s only one thing that still needs some work. The PI cam. It’s oriented in the portrait mode.

Recently I figured out how to tie into the camera stream using the browser and VLC. So I was a little confused when the Octoprint version was correct yet portrait mode but the streamed version was rotated 90°! A little more digging and I figured out how I managed that.

There’s a setting in OctoPrint for “Classic Webcam” that allows flipping both horizontally and vertically and well as rotating by 90°. Now they’re both rotated 90° and portrait mode! Then I realized the PI 4 controller for the new printer is standing vertically compared to the old one that’s still horizontal and it dawns on me it’s the internal camera mount.

OctoPrint Camera Settings for Stream, Snapshot, and Time Lapse

More Tweaks

The see through case for the PI 4 only has two mounting holes, not four. The problem with that is if the orientation is wrong, i.e. portrait mode in this case, then the only other option will still be portrait. The case itself must be rotated the extra 90°. I designed a new mount for the case back then, but only printed one because that’s all I needed at the time.

So that’s the first real print job for the printer, printing its own vertical PI 4 case mount. I used the original sliced version, but soon regret that choice once I remember the problems it had printing the first time. Not only did it have a brim that didn’t stick to the build plate, the small hole features also cause headaches.

Those small features invariably end up sticking to the nozzle and not the build plate, which ends up grabbing other parts of the print and ripping them free from the build plate, dragging the whole mess along until finally cancelling the print. In this case, it’s something even more stupid, the filament “jammed” on the spool and caused it to stop extruding!

After spooling out nearly 10 meters (~33 feet) of filament, I finally manage to untangle the snag on the supposed “non tangle spool”. It’s hard to describe, but once the tension is released from the filament, an entire layer springs loose and somehow the other wraps manage to overlay the loose end. This traps it beneath them once tension is restored.

Unfortunately, the more tension, the tighter it pulls down over the end being fed to the extruder. May as well tie it in a knot at that point. The extruder actually pulled the spool off the counter, filament dryer and all! The extruder drive gear nearly ground through the filament when it stopped spooling out.

With the rewound spool in place, I extrude 200mm of filament, 50mm at a time, to ensure it didn’t cause a clogged nozzle or other issues with the extruder. Not sure why this particular spool of white PLA is so snag prone, but it’s jammed twice now, once for the new printer and now once for the old one.

Even More Tweaks

Back to the drawing board, or in this case, SketchUp. Once I finally found the original design on disk, I made a quick change to put down a solid first layer, then draw the small features on top of that. If the first layer isn’t sticking, there are other issue that need addressed. But this trick has worked for me on other designs, e.g. Run In Stands.

The nice thing about new STL is I can slice without the brim. In fact, I don’t even need a skirt! Another trick I learned from the new printer is how to add enough of a “primer line” to the startup GCode for every print. Essentially it moves to the edge of the build plate and extrudes two thin lines, side by side, enough to ensure the nozzle is flowing.

The skirt accomplishes the same task, but sometimes doesn’t stick and causes more problems than it solves. Those primer lines are just enough to gets things started. The next print is a success, but I realize that the nozzle temperature in the slicer was still set to 200°, not 210°. It’s not going to hurt this print, but I fixed it for next time.

Next steps are to glue the freshly printed PI 4 mount parts together and replace the existing mount with the new one. I’ve described the process in detail elsewhere, but the short version is I use a liquid acrylic solvent to “weld” the PLA parts together, similar to styrene cement for building plastic model kits or PVC cement for plastic plumbing pipe.

In similar fashion, the best strength is obtained obtained in 24 hours, so I let the new mount assembly set up overnight then swapped it out with the old one the next morning. I had forgotten how much I detest those mini tripods I bought all those years ago. At the time, I thought they’d be useful for my job, but they didn’t work out.

Instead they ended up here at home and holding up the PI 4 controllers for both the 3D printers. They’re study enough, with telescopic legs to adjust to unlevel surfaces, but the ball “joint” that allows the camera mount to swivel is way too loose. No matter how hard I cinch down on the set screw’s stupid little plastic handle, it ALWAYS ends up loose again!

The PI 4 Case on the New Mount on the Annoying Tripod

The Final Tweaks

Guess I should stop complaining about it since it only matters when I tell OctoPrint to capture a time lapse of a print. Even then unless I fabricate some overly complicated “Extendo Mount” contraption to hold it further away and higher off the build plate, the capture is too close. The PI camera for the new printer is an 8MP version, but the setup could be better.

The PI camera for the old printer is an older 5MP version that has problems with low light. Even with the bright office light in the ceiling fan on, the time lapse still looks dark. There may be some other settings I can adjust in the Linux OS itself, but since I don’t usually capture a time lapse anyway, what’s the point?

The last thing I want to figure out is why prints on the old printer are ALWAYS offset from the origin, the front left corner of the build plate. I would usually take this into account when slicing, but it’s not an exact science. When I was printing the “Glow In The Day” clocks, they were sized to require nearly the entire build plate and nearly impossible to adjust.

The Offending Setting Causing Those Blasted Offsets

Even more Googling reveals it’s the Cura slicer and not baked in offsets in the printer’s Marlin firmware. In fact, I tracked it down to the actual settings file Cura uses when it wouldn’t let me update the offset values. Turns out they’re not actually “offsets” at all, but rather print head dimensions to the corners measured from the nozzle.

The default print strategy is to print the first layer of copy 1, then first layer of copy 2, then second layer of copy 1, then second layer of copy 2. The sole reason for those settings to exist is to allow printing multiple copies of the same print to finish sequentially, i.e. completely print all layers of copy 1 then completely print all layers of copy 2.

Unfortunately, when  the “Apply Extruder offsets to GCode” is checked, the slicer automatically adds those printhead offsets to the actual GCode values when slicing. This is so the printhead can avoid collisions with the other print(s).  Not sure where to tell it to print each copy sequentially, but I don’t plan to use the feature anytime in the near future either.

To be sure I re-sliced the test cube and moved it as close to the front left corner as possible. Both the slicer and OctoPrint appear to have built in safeguards to avoid printing outside the edges of the build plate. Looking at the GCode it leaves us about 5mm away in both X and Y. The closest I can get is 1.999 x 1.999 away from the origin (0, 0).

Finally Figured Out How To Get Rid of That Blasted Print Offset!

The Final Tests

A quick test print of the re-sliced calibration cube shows it’s right there at the front corner. It also clearly shows the slicer settings leave a lot to be desired compared to those used to slice the earlier near perfect print. In the Cura slicer there are really too many settings to display all at once, but there’s a way to select which settings are visible.

I need to figure out what those settings were that used to visible to fix that extra buildup of plastic at the corners and the ridges where the infill meets the walls. Also looks like there was some under extrusion on that top layer. This cube looks terrible compared to that first blue one. Another possibility is this is a different filament.

Those tweaks will have to wait until after the real final test print though. Printing the PI mount was a good test, albeit a short one at just shy of an hour, but the true test is the one that takes 6 hours or more. For that we’re printing the last eight run in stands I need for the Mikado’s tender.

That calls for a new slice since the standard one I use has only six and takes more than 5½ hours on the new printer. Had to laugh when the slicer told me 4 hours! The curious thing is it took about the same amount of time to print eight of them on the old printer as it did six on the new one. Ironically, the new one is supposedly faster than the old one.

Printing The Run In Stands

There must be another hidden setting I’m neglecting because all the print speed settings are the same between the two printers. I did notice it seems like the old printer is moving faster than the new printer using the same slicer settings. Guess it’s time to push the new one to its limits just to see when prints start to fail. Maybe an overall acceleration limit?

That’s a problem for future me as they say. For now, I’m thoroughly pleased with the performance of the old printer. It’s everything it used to be and nothing unexpected. I take that back. I did run into something unexpected when trying to narrow down those offsets. The X and Y range is supposed to be 240mm, but the Y axis hits mechanical limits at 230mm?

Unexpected Discoveries

I remember when Nick and I originally put this together we had to move the Y limit switch just past the end of the one mounting screw to where is was just holding on. Maybe that center rail the print bed rides on needs adjusted away from the front panel? There may be another 10mm to be had. Hopefully there’s an extra 10mm in the timing belt too.

The X axis looks like it could go on forever. Well, at least until it reaches its mechanical limits, well past 250mm anyway. The limiting factor at this point is the flexible metal build plate, limiting the build area to about 232mm, maybe 233mm, in both directions.

I tested the Z limit of 260mm as well, but both the harness and bowden tube to the print head contact the top crossmember well before that, before 240mm anyway. I doubt I’ll ever be printing anything that tall, but if I do, that’s what the new printer is for. Its build volume is 310mm x 310mm x 400mm.

For now it’s working, and working as well as it ever did. Considering the limits of the build plate, I’m not going to take things apart just to get that last 10mm out of the Y axis when it’s more like 2mm-3mm to be had. I’ll use the big printer. It’s quicker and easier. Well, it will be quicker once I figure out the slicer settings!

Thanks for tagging along and stay tuned for the next adventure.

 

 

 

 

 

 

Adding I2S Sound

Another Project?

Yes. Another. Project. And no, it’s not yet another passenger car lighting project! I can hear you rolling your eyes from here…

This time it’s about adding sound to anything that you please using an Arduino ESP32-S3 Super mini and an I2S amplifier. But I’m jumping the gun here going on about the specifics already. Let me start at the beginning, with a little history on our “sound projects”…

A Little History

We started looking at “sound enabling” our equipment years ago. January of 2020 to be exact. The idea was to couple an Arduino and one of those “cheap” MP3 player modules as a low cost sound option. When compared to the cost of retail sound offerings available, often for hundreds of dollars or more, the motivation is obvious.

Long story short, those “cheapo depot” MP3 DFPlayers turned out to be absolutely unreliable. Nothing but junk. No amount of tinkering or tweaking could guarantee operation without having to “ruthless reset” everything. We ended up mothballing the project indefinitely. Well, at least until I could find a more reliable solution.

It was quite an effort to get as far as we did, but it left us with a reusable software implementation based on the concept of a “playlist”. The backend (Arduino) serves up the playlist in JSON format to the front end, a browser based user interface (UI), served up via WiFi from files stored on the backend.

MAX98357 I2S decoder amplifier
MAX98357 I2S decoder amplifier

New Found Motivation

Enter the idea of the I2S interface. Not the I2C interface. I2S, short for Inter Integrated circuit Sound, developed by Philips back in the ’90s for stereo equipment interconnections to share audio streams between components, both internal and external. The more I read about it, the more I was convinced this was the solution I was looking for.

Being the electronics and audio buff I was growing up, I’m surprised I hadn’t heard more about it at the time. Late to the party, I found some folks online using various I2S audio decoders in their projects and settled on the MAX98357 based decoder. It has a built in 3W amplifier, with a somewhat odd 0-21 volume range, but whatever. At least it works!

But I’m skipping ahead again. While the Maxim hardware does everything for us, it requires a LOT more horsepower from the Arduino to handle converting and the streaming the audio data to the decoder hardware. When I say a LOT more horsepower, I mean at least an ESP32-S3 (dual core) to handle the load.

ESP32-S3
ESP32-S3

Time To Order Parts

I’ve never used an ESP32-S3 so I don’t have any to experiment with. Don’t have any of those Maxim decoders either, seeing as how I’m just now reading about them. While the Arduinos I’ve been using aren’t a dime a dozen, they aren’t ten dollars a piece either. They’re roughly twenty dollars for three of these “high horsepower” ones.

The Maxim decoders are about five for fifteen dollars. The only thing missing is an SD card reader. They may make an Arduino package that has one already included, but I haven’t looked for one (yet). I found five for $7.50. So far grand total of $7 + $3 + $2.50 = $12.50! That’s not including the micro SD card to store the sound files on.

That’s an order of magnitude (10x) less than the retail price of a low end sound system! Last time I bought a 32GB micro SD card was years ago, but it was ~$7.50. So let’s say $20 vs. $200. Sold! Thinking about it, maybe there’s a version with enough flash storage onboard to eliminate the need for a card reader altogether. Depends on the number and size of the files I guess.

The next step is to bring that old MP3Player project out of mothballs and see if we can breathe new life into our aspirations for sound.

What’s Next?

Time to start working the old software into a new project to meet our needs. The old project is one of the older ones and doesn’t have any of our latest improvements, like themes and OTA progress indication. But the first thing to do is get rid of the DFPlayer stuff, then update to using LittleFS in lieu of the old SPIFFS library.

I’ll try not to get into too much detail about the software, but that’s what we’re talking about, so… If you’re not familiar with Arduino speak, the Serial Peripheral Interface Flash File System (SPIFFS) is deprecated. The replacement recommendation is the Little File System (LittleFS). This is used to read files like the HTML web files (internal flash) and sound files (SD card).

Those libraries are “built in” to the specific Arduino hardware platform, unlike some of the others we use, like ArduinoJson and I2S_Audio that perform specific tasks regardless of platform. Fortunately, this sketch doesn’t need much else beyond those and the WiFi libraries.

Eventually the code we use to encapsulate the audio functionality will have its own library, but for now it’s part of the sketch to ease debug. Thankfully most of the playlist handling code doesn’t need much modification. Really the only “major” change is implementing looping in software where it used to be hardware driven with those junk MP3 modules.

Sounds Easy Enough…

The software is already pretty close, at least the UI code is, sans the equalizer settings. The looping is “commented out” until the backend Arduino code gets updated to implement it in software. The messaging piece is already there, it’s just adding the logic necessary to emulate what the old hardware used to do for us automatically.

The neat thing about the existing backend code is it already responds to event messages from the old hardware when the previously played track finishes playing. It should be easy enough to substitute the event processing for the new hardware, tracking the current looping mode to determine which track is next, if any.

Most of the effort on the UI is getting everything updated to use the latest improvements, which involves comparing the older existing code with current versions from other projects, like OiffceLighting, LithoPhaneLEDs, and PassengerCarLighting2812. We added two new themes for PassengerCarLighting2812 recently, highlighted in the Latest Evolution Lighting post.

ESP32-S3 Super Mini
ESP32-S3 Super Mini – Small Enough For The Latest Evolution Projects

Development Concerns

While we’re talking about adding themes, that brings up another “issue” with using Arduinos, at least when it comes to uploading files to them. The Arduino IDE, with the proper uploader installed, will upload all files in the “data” folder to the flash file system on the Arduino. No problem there as long as you can find and install the proper uploader package.

Right now each and every project has to have its own “data” folder with a “themes” subfolder in it. Any change, or in this case addition, in any one project must now be manually propagated to every other project to keep everything in sync. Similarly, all the CSS and javascript files suffer the same fate. Basically any shared common files.

There may be a way to use symbolic file links in place of the actual files, but I haven’t tried it yet. Hopefully the IDE won’t have problems with the file system interface using symbolic links. If that works, it will allow one set of files to be maintained and all projects can link to that “master” set. But let’s get this deployed before we go mucking around with something else…

Some More History

Just a little more. I promise. If you want A LOT More History, I’ve tacked it on the end of this post.

We started on this latest adventure going on six months ago as of this writing. But I let myself get sidetracked with other projects, Hurricanes, etc. You name name it, I got distracted by it. Some of those distractions were acquisitions and the ensuing investigations of their installed electronics, like battery power and sound systems.

The I2SAudio project was put on the back burner for at least a few months while all that was going on. But all the basics were there and working. We’re able to play sound files stored on the micro SD card from the UI. Only dynamically building out the looping buttons based on the playlist was left to do.

Past tense. That’s done now too. That leaves expand/collapse of the playlist in the UI. I swear I have code somewhere from past experiences with a javascript/CSS based “twisty” implementation. I’m hoping that I can leverage it, but like most things in my favorite place, somewhere, it will never be found quickly nor easily.

Making More Work For Myself

Defeated by wasting time looking for it, I tried yet another internet search. Unlike the first few searches that turned up nothing useful, encouraging me to look for that old code, this one came back with a new HTML5 construct I didn’t even know existed. The <details> and <summary> tags provide a built in expand/collapse function without the need for code behind it.

At first I thought this was the quick and dirty way to get there from here. WRONG! The entire playlist tree in the UI is built dynamically from the playlist data received from the backend. Using nested HTML <ul> and <li> elements, we build the hierarchy one entry at a time. Each <li> element has a <span> that contains the actual “name” of the entry in the tree.

All these elements are given a specific CSS class to correctly render in the browser. Without going into too much more detail, it’s important to note that any selection clicks made in the UI on any of those elements in the playlist tree get “bubbled up” to the top level element, in this case the top level containing <ul> element.

Why does this matter? Because now in the javascript event handler we have to figure out which one of potentially hundreds of elements was clicked on, then backtrack and modify the CSS class of the affected element(s) to indicate selection visually. Before adding the new elements, this boiled down to one of the three element types already mentioned. And it worked. Past tense.

Why Did You Break It?

After modifying the javascript dynamic generation function to add the new <details> and <summary> elements, all of a sudden NOTHING WORKS! So here we are weeks, if not months later, still fixing the “quick and dirty” way. But at least it’s working now. Even the CSS needed modifications to work with both versions.

I commented out the old, working version of code as I progressed with the new version. Boy am I glad I did! I went back and made it selectable using a single flag to indicate whether to use the old or the new version. My thought is maybe I’ll come back to this some day and figure out how to make it all work without the newer HTML5 constructs.

So why in the world would I want to come back and redo this, potentially breaking everything yet again? Looking back at how each level of the hierarchy needs more and more of these <details> <summary> blocks, it’s apparent these were meant to hide large blocks of HMTL, most likely upper level <div> element containers, not each and every nested element of a tree.

I’ll spare you and save those particulars and details for later. At this point, the only thing left to do for the existing UI is figure out why it stops selecting down to the lowest level for all child items except the first child of the parent selection. What did you just say? A picture is worth a thousand words…

I2SAudio UI Screen Shot
I2SAudio UI Screen Shot Showing Only First Group Completely Expanded

There, I Fixed It

Well, not really. That can wait until we know this is really the UI paradigm that best fits what it is we’re trying to accomplish here. What you see is essentially an MP3 player interface, with play, pause, stop, next, previous, etc. There’s also a set of looping selections, based on the top level selection, in this case Genre, Artist, Album, or Track.

But those “classifications” don’t really fit either. Function type seems more suited for Steam Whistles and Diesel Horns than Genre. Not sure how to classify Single Chime vs. Three Chime, but Artist isn’t it. Road Name seems a better fit than Album for C&O vs. CN. Track may fit, kind of, but I think you get the idea.

The good thing is these classifications are all easily configurable as part of the playlist. But keep in mind for every new classification, there must be a corresponding addition to the CSS to accommodate it.  The other thing to keep in mind is they can also be directly tied to the currently selected theme settings, like the “Teal Mobile” theme used in the above screenshot.

A New Look?

Regardless, the UI is going to need a facelift moving forward. Now what that should like like, I have no idea. Guess I need to look at some of those sound systems on the market to get an idea what theirs looks like. But even then that may not be the best fit for our application.

When it’s all said and done, we have everything we need in place whenever we finally figure out what it’s supposed to look like. Most of the commercial products I’ve seen tend to break up sounds into an intro, sustain, and ending portion, stringing them together, starting with the intro, then looping the sustain part, and finally play the ending to finish up.

Not sure how “quill” will work, but that’s a problem to solve another day. I’m sure there are other “features” we’ll need to add as we go, but for now we have a reliable, extensible solution. With that in mind, I’m wondering if we have the capability to play two tracks at once.

Stuck thinking in that MP3 player mindset, I just issue a stop, then play a new track. Wonder what happens if I don’t stop the currently playing track? I did a deep dive into the library code already to see for sure what was going on for other issues I ran into, but it would be easier to just modify my code and see what happens. Probably a kernel panic!omg lol

 

A Look At The Hardware

Originally just an ESP8226 was used for the MP3Player project, more than adequate to communicate with those POS DFPlayer modules over a 9600 baud serial connection. But even that simplicity was unreliable, or rather, the modules themselves are unreliable.

Fast forward to now, using I2S audio technology, proven over decades. But there’s a price to pay when it comes to the control side of things. Beyond the extra horsepower, the full sized ESP32-S3 is a sizeable piece of hardware, consuming nearly an entire half sized breadboard. In fact, to have space for anything else, we used two of those half size breadboards side by side!

The ESP32-S3 module itself is stout enough to hold the two breadboards together once plugged in. There are only two other components required, but to be sure there was space for them AND the connections without having to run half the connections under the Arduino, two side by side are better than one.

I2S Audio Breadboard And Size Comparison
I2S Audio Breadboard And Size Comparison, “Super Mini” vs. Full Size Dev Module

The full sized S3 module is labelled with an abbreviation of the project and its last IP “triplet”. This is absolutely necessary for me to keep my sanity. When “rooting” through a box of old projects with probably a dozen Arduinos inside, it’s maddening having to plug in each and every one just to see what it’s running and what IP to use in the browser.

The two purple modules are the actual I2S decoders, one for the left channel, one for the right. Notice only one is connected. That’s because the decoder can also combine both channels into a single mono output as well. Good enough for what we’re doing. The actual formula is (L + R)/2. The mode is selectable with a single input, left, right, or both.

The blue module standing up next to the speaker is the micro SD card reader. All the audio files are stored on a 32GB micro SD card. The S3 reads the files and converts the audio to an I2S stream that the decoders turn into audio output to the speaker with over 3 watts of audio power! More than enough for our needs.

The speaker is a leftover from one of our Bachmann Ten Wheeler projects. We replaced the old tender bottom half with a new one, complete with “updated” electronics for chuff sound. Still the same tired old 9V hiss generator connected to a chuff switch… That only activates twice per revolution. Not very realistic, but at least the new red painted wheels look nice.

In any case, the speaker in the old bottom half became a “spare”. IIRC we ended up with at least three if not four “spares” this way. I designed and 3D printed the speaker enclosure, hoping to give the tired old 1W 8Ω speaker a fighting chance to sound good. It helps, but with its limited response, there’s not much else that can be done.

Something’s Different

You may have noticed a difference between the full sized S3 and other Arduinos, the number of USB connections. One is the standard Program Upload and Serial Monitor port. The other is for JTAG debug. JTAG is short for Joint Test Action Group, which defines a means of getting “inside the hardware”, essentially allowing the equivalent of attaching test probes inside the chip.

Apologies, that’s a very dumbed down explanation of a fantastic innovation in hardware development, also proven over decades. We won’t need that low level debug ability. At least, not yet. More pertinent to our discussion is which is which? The one that works is the one we’re looking for. Just that simple. The other is enabled and configured using the board settings.

The obvious difference with these “Super Minis” is their size. They’re so small it presents a problem when labelling. There’s no big metal can to stick the sticker on. Haven’t tried it yet, but probably have enough room on the back for a sticker. They also run hot to the touch. Hotter than their full size counterparts for sure. Beware.

That’s Not The Only Difference

Another difference with these S3s, and even the ESP32-C3 Super Minis, is the actual board selection. They only have one USB port, but good luck finding the correct board for your particular flavor of Chineseum. Nick had ordered a set of the C3 and S3 Super Minis and gave me a sample of each.

Even though the silkscreen on the C3 says it’s a specific type, selecting that type in the Arduino IDE board manager does not allow me to communicate with it. It also causes build errors that go away when selecting the generic ESP32-C3 Dev Module. What’s interesting is there are contact pads on the PC meant for “pogo pin” connections.

The C3s I bought have more contacts than the one Nick gave me. It’s a crap shoot when dealing with any of these “dime a dozen” Chineseum parts regardless of where they’re sourced. It would be helpful if the competition to mass produce knockoffs of knockoffs to make of profit didn’t make it impossible to get anything more than basic information, let alone good information.

That’s the nature of the beast. It would be different if paying more for quality actually worked in this case. Been suckered by that before with these things. About the only way for me to know is if they can be trusted is to order from an Amazon seller I’ve dealt with in the past that I feel can be trusted. Sometimes even that isn’t enough. Caveat Emptor.

What’s A “Pogo Pin”?

These were designed in the ’70s for testing integrated circuits and other micro circuits. Basically they’re a spring loaded pin the provides positive pressure on a mating contact pad. I hadn’t seen them is common use until using a Raspberry PI Zero. The I/O is limited on the PI Zero, but an expansion board can provide more USB connections.

The expansion board “piggybacks” on the original PI Zero, making connection via pogo pins on the expansion board that mate to a set of built in pads on the PI. These Super Minis are the only other commercially available products that I’ve seen them on.

That’s not to say you have to use pogo pins to make the connection. It’s just another solder pad, it just doesn’t have the plate thru hole. You can just solder wires directly to them, but be sure to strain relieve the wires. Don’t depend on the pad to hold the wires in place or you’ll find yourself in the situation where the pad got lifted off the board and went with the wire.

 

The Particulars

If you’re already familiar with HTML, feel free to skip over this. For those unfamiliar with HTML, it’s basically a page description “language”, a means of describing a page of text, images, graphics to a browser and how to present the various elements of the page, even dynamic elements like Data Driven Documents (D3). We use that to display current sensor data for our block controller.

With Cascading Style Sheets (CSS), we can tell the browser what colors to use, what font/size/color, whether to left, center, or right justify, etc. for every element! Javascript adds another dimension of dynamic interaction between the page and browser without the need to reload everything from the web server for every action, even override the default event handling.

We’ve mentioned a number of HTML elements used. I think the <details> and <summary> tags are self explanatory, but one item of note is the <details> tag has an “open” attribute that, when set, expands to display everything between the <details> and closing </details> tag. Otherwise, just the items between the <summary> and closing </summary> tag are displayed.

More Details

A division tag, or <div>, is a sort of container, meaning everything between the <div> and closing </div> it to be treated in a similar fashion. Generally it will have a CSS class or classes associated with it, sometimes even an id. The corresponding CSS  describes how to present these items to the browser, even whether to display or hide the entire division.

The unordered list <ul> and list item <li> tags are a means of grouping similar items together, like a list of bullet points. CSS can describe exactly whether you want bullets, squares, triangles, or nothing at all in front of each list item. Unordered simply means it’s not a ordered (numbered) list <ol> type, which has it’s own styling settings.

Each list item can have its own child element(s), like the <span>, or even another unordered list, with its own list items, in nested fashion. Each level in the hierarchy can have its own presentation style described with CSS. For example, present the highest level items with a light red background color, the next level down as light yellow, the next light green, the last light blue.

Even better, CSS can tell the browser to invert the item when “moused over”, swapping the color of the background and the font, without having to write javascript event handler code to monitor for when the mouse is actually over the item. Same with currently “focused” items. More complex CSS “selectors” can provide finer control over browser actions.

Developer Tools

If you’d like to learn more about HTML, CSS, and javascript, there are plenty of resources available online for free. For example, W3 Schools, has tutorials for just about anything you’d like to learn about coding. I find it to be an invaluable tool for HTML, CSS, Javascript and jQuery, Python, SQL, etc.

If you’d like to see what’s happening “under the hood” of your browser, try opening the “developer tools”. Each different browser has its own way to enable this mode, but in Chrome, my browser of choice, simply press the F12 key. I use it to monitor and debug my code ALL THE TIME!

Here’s where I spend most of my time when adding and troubleshooting new features. The screen shot shows the developer tools inspecting the javascript “Console” log. Starting at the top, it captures the tail end of the Connect message response from the backend, including the playlist and themes data used to build the UI presentation.

I2S Audio UI Developer Tools
I2S Audio UI Developer Tools Example For Javascript Console

Below that is the beginning of parsing the JSON message into actions and dispatching to those specific action handlers. The repeated “WebSocket.js:254” message demonstrates the looping behavior as each new action is dispatched, in this case power, then version, then volume which is dispatched to its corresponding handler.

It lives at “WebGenAudio.js:108”, or line 108 in the WebGenAudio.js file. This handler was “registered” with the main WebSocket.js handler for all web socket communication between the front end (UI) and the backend (Arduino). The power and version messages are common to every project because they all have a Power button and a software version field in the Settings.

Not every project uses audio though. All the audio related processing is contained in the WebGenAudio.js file. Similarly, all themes based processing is contained in the WebThemes.js file and again, action handling for themes is registered with the main WebSocket.js web socket handler.

This amount of information ion the console log is obviously very verbose. Not to worry, there are a number of predefined “log levels” that are turned on or off with the flip of a “switch” at the top of code. Turn them on as needed to troubleshoot then turn them off for “production” code.

Styling Tools

All the audio related styling is contained in audio.css rather than clutter the main.css file with styling only useful to audio projects. The themes module has a livery.css file to describe the various color choices available. It is included by the main.css by default, available to all subsequent styling files.

This is deliberate and part of our modular architecture. If you want it, include it. If not, don’t. Themes is really the only “baked in” choice, but if not wanted or needed, a default livery.css file can be provided or its inclusion in main.css removed altogether.

The developer tools allow you to view all the HTML elements AND their associated CSS styling in the HTML “Elements” tab, just to the right of the javascript “Console” tab. The secret magic trick to using Elements is the “select” tool at the very left of all those tabs. Click it to enter select mode, then go and click on the element of choice and it will take you to that part of the document.

If you don’t make a selection then wonder why clicking isn’t working the way it should, it’s because the browser is still in select element mode. Click the “select” tool again to exit selection mode. Don’t ask me how I know…

I2S Audio Developer Tools Elements
I2S Audio Developer Tools Elements – HTML And CSS Selectors and Properties

CSS Selector Tools

Earlier I mentioned CSS “selectors”. Essentially these are a shorthand for telling the browser, when you see this, do this. For example, we generally assign the “button” class to a button declaration in the HTML source file. The corresponding selector would be “.button” in the CSS file.

If different buttons have a different id, e.g. id=”play” vs. id=”pause”, then “#play” and “#pause” would be the corresponding CSS selectors. These are simple examples, but there are much more complex selectors available, like providing a visual “highlight” when the mouse travels over an element or dimming a button when it’s disabled.

We use these constructs and even more complex ones to transform those awful looking default “radio” buttons like like the classic car, old style radios with mechanical pushbuttons. We even override the awful “File Upload” to match all our other button styling. And it’s all done with a CSS definition. And it’s all handled by the browser! NO OTHER CODE REQUIRED.

The developer tools Elements above displays both the selected element HTML, and its associated style information below in the “Styles” window, including the selectors used to determine how to present it. You can even poke and prod values into the element style to play with various settings without having to edit, save, and reload the page. Very powerful and I use it quite a bit.

 

A LOT More History

We started looking at “sound enabling” our equipment years ago. January of 2020 to be exact. The idea was to couple and Arduino and one of those “cheap” MP3 player modules as a low cost sound option. When compared to the cost of sound offerings available, often for hundreds of dollars more, the motivation is obvious.

If I can throw together something acceptable feature-wise for a handful of dollars, it’s a no brainer. The emphasis here is a fairly limited feature set. The cheapo depot MP3 player modules are meant for one thing, and one thing only. Controlling an MP3 player with a minimum parts count.

It provides a built in amplifier with 30 level volume control to directly drive a speaker, and it is LOUD! It also has a micro SD card slot for storing the music files, inaccessible from the Arduino using a dreadfully slow and antiquated 9600 baud serial connection, and a minimal interface for standalone operation via a handful of external components. And they’re JUNK!

Originally just an ESP8226 was used for the MP3Player project, more than adequate to communicate with those POS modules over a 9600 baud serial connection. I remember owning a number of 9600 baud modems back in the ancient times, but seriously, that’s how bad those modules were to work with.

If you’ve ever lost a 9600 baud modem connection back in the day while downloading a file, and had to restart all over again when it happened, you know how unreliable they are. Same with these modules, with the same lack of warning.

ABSOLUTE JUNK!!!

That’s right, these DFPlayers are ABSOLUTE JUNK!!! After spending months on end working with these things, it was apparent they would NEVER run reliably. If there is a way, I certainly couldn’t find the magic combination of software and hardware to make them work without constantly getting into a “zombie” state.

Once they’re “zombies”, the only way to bring them back to life is a hardware reset. It appears that the digital noise from the Arduino side of things is just not conducive to reliable operation. I never tried them in stand alone mode, but then again, that’s not the mode of operation we require. I’m not building a “Walkman™”.

It wasn’t all wasted effort though. I did eventually manage to create a workable user interface built around their feature set, and some of those features are rather impressive for the price, like built in equalizer modes, e.g. Classic, Rock, Jazz, etc. Another useful feature is the looping capability. Now if they just worked…

Mothballing The Project

It was quite an effort to get as far as we did, and it left us with a reusable software implementation based on the concept of a “playlist”. The backend (Arduino) serves up the playlist in JSON format to the front end, a browser based user interface (UI), served up via WiFi from files stored on the backend.

The UI relies on HTML, CSS, and javascript to render a modern presentation. The playlist is presented in a hierarchical “tree” fashion, e.g. Genres, Artists, Albums, Tracks. The front end communicates with the backend via a “Web Socket” connection, essentially a bi-directional communication channel that “sits on top of” the HTML connection.

But unlike the HTML connection, immediate updates to the UI can be made without having to “refresh” the page and wait for everything to load, all the files served from the backend again. A “click” to play a track from the playlist in the UI is sent via the web socket to the backend, it starts playing the track, then responds to the UI to keep things in sync.

 

Gratuitous Starship Troopers Reference FTW!

Want To Know More?

If you’d like to know more about this or other Barkyard RR projects, leave us a comment! You’ll need to create a user first though. In this day and age, it seems like every grifter and con man is constantly spamming sites to the point where we’d spend more time moderating the comments than doing anything useful. We hope you’ll understand.

The only way we have to get around the spam is to ask for a verifiable email address. Until you verify your address, your account remains in limbo, so to speak. We’re not selling your data, that’s not why we’re here. We’re not “monetized” in any way. But if you’re concerned, please refer to our privacy statement.

If you’d like to see more of this type of content, please let us know. If you’d like to get a look at the sketch code or the web page code or need links to what parts we’re using or just have a general observation, please, feel free to drop us a comment. We’ll get back to you as soon as we can.

If that isn’t your cup of tea, then use the Contact Us page. You’ll still need a valid email address though, especially if you want a response! This will take longer since we have to actively moderate submissions vs. the automated user account and email activation handling.

Thanks for following along. Stay tuned. We’ll have more soon!

 

Latest Evolution Lighting

This will be a combination lighting controller and latest acquisition update. It all started when I was searching for a USA Trains GP9 like the one I bought years ago. When I bought the SD40s, I also bought some spare trucks, with the idea of modifying the 4 axle GP9 into a 6 axle SD24. When I first bought the GP9, they were plentiful. But now that I want another, good luck finding one!

The same thing happened with the 2-6-6-2 Mallet. What used to be plentiful was no longer available anywhere. Perseverance paid off. I finally managed to find the Mallet, but so far, no such luck with the GP9. What I did find was a Bachmann full baggage car for both the green and creme “Pennsylvania Limited” set and the B&O “Royal Blue” set.

I was always somewhat disappointed that there were only two cars with our first B&O “Royal Blue” set, so I was really excited to see there was another car that matched them. Beyond that, the three green and creme “Pennsylvania Limited” cars were obviously matched, right down to the combination car only having the creme for the passenger half.

Royal Blue Baggage Car
Royal Blue Baggage Car

But that left the two solid green LGB coaches looking like oddballs sitting ahead of the combination car. Now with the full baggage car, it will balance them, perhaps as economy coaches? Or the three matched cars can be used for one train while the solid green full baggage and two solid green coaches can make up another train.

Pennsylvania Limited Baggage Car
Pennsylvania Limited Baggage Car

More Acquisitions?

Regardless, half of them have our next gen lighting controllers installed, and the other half don’t. In fact, the last car I installed the latest version in was the combination car. I had replaced the existing oversized battery box installation with a smaller version that fit entirely in the original 9V battery case. But let me back up and explain where I was going with that.

The 3D printed ones work just fine, but we don’t really need 11 – 12 hours of continuous operation. That means we don’t really need that size battery either. Some of them boast 2800mAH while others just 2000mAH, that is to say they’re labelled as such. Then again, I’ve seen 2000mAH 18650 cells labelled and sold as 5000mAH too.

The oversized, 3D printed battery box that replaced the original 9V battery case in the first and next gen designs was specifically designed around that battery size (654065, or 6.5mm x 40mm x 65mm), just slightly bigger than the outline of the original 9V case. So the thought is what if we can find a smaller battery that will fit, along with the electronics?

Oversized Battery Box
Oversized Battery Box

I found a number of smaller batteries that will fit in the original case. There are 750mAH, 850mAH, and 1000mAH candidates in various form factors that fit. I bought a handful of each to test with. Turns out the 1000mAH battery fits best, which is nice since it will give us the longest run time as well.

More Lighting Controllers?

The 1000mAH battery fits nicely, with room to spare for the battery monitor/charge circuit board, and an Arduino Wemos D1 mini (ESP8266). Unfortunately, I’ve had nothing but problems with them! From issues with Windows drivers not being able to upload new program versions to failure to serve the web page files reliably via WiFi once programmed.

When they work, they work well. When they don’t, which is most of the time, it’s very frustrating to say the least. Already short on time, I don’t have any extra, let alone two weeks for messing around with, “Why doesn’t this blasted thing work now?” Until the latest round of Windows updates, at least my laptop was able to communicate with their CH340 chip. But no longer!

There has to be a small form factor Arduino that’s much more reliable than these pieces of… junk. I try to keep up with the latest innovations, but with the time constraints already mentioned, can’t be as thorough as I’d like. Thankfully Nick found these “super mini” versions of the ESP32C3 and ESP32S3 Arduinos, even more tiny, and more powerful.

The Latest Evolution Lighting
The Latest Evolution Lighting

Nick had sampled some and gave me a C3 and an S3 to experiment with after telling him my long, sad Wemos D1 story. But my hopes of having a quick fix quickly disappeared after trying to compile the code for the new C3 target. More time chasing gremlins, or in this case, yet another way of doing the same thing in the same family of parts!

More Problems?

How many different ways can they screw around a simple watchdog timer reset function? Apparently as many as the number of different types of ESP32 that exist. My code is now full of #ifdefs around every chunk of code for every different type of Arduino used!

If you’re not familiar with the concept of an #ifdef, it’s a way of including or excluding parts of the code based on whether a flag is defined or not. In this case, #ifdef ESP8266 vs. #ifdef ESP32 vs. #ifdef ARDUINO_ESP32C3_DEV vs. #ifdef ARDUINO_ESP32S3_DEV vs… You get the idea.

After yet another week of fumbling around and refactoring code I was no closer to anything that worked. The lighting controller is based on the FastLED library for the addressable LED strips. Without getting into too much detail, it forces the user to declare what Arduino pin to use at compile time, meaning it can’t be configured later, at runtime, from a config file.

After spending even more time searching issues around using the FastLED library with the ESP32C3, I found a number of different threads with people saying the C3 doesn’t have enough horsepower to handle FastLED and WiFi, saying it can barely handle WiFi! Great! After all this, I still don’t have a working model. But at least it can serve up the revised UI…

Royal Blue UI
Royal Blue UI

Squashing Bugs

Some of those folks recommend using the Adafruit NeoPixel library instead, so in the process of bringing together all the next gen and latest Arduino technology, I decided to refactor our LEDInterface to add yet another type that uses NeoPixel instead of FastLED. But even after the switch, still nothing! I’m beginning to think I’m cursed.

I added reading pins and such from the config file as well. In the process of debugging why it couldn’t correctly pull the default color, I stumble across the issue. Rather than duplicate code, I decided to share the piece that converts a CSS string color value into the red, green, and blue components to set the LEDs to…

Except it always returns black when using the hexadecimal #rrggbb form! For example, the color of the amber glow of those kerosene lamps is coded as #140600, i.e. red = 20, green = 6, blue = 0. But I must have missed a line when combining the two functions because it always returned black (0, 0, 0) and not amber (20, 6, 0). Yep. You guessed it. It was working all along!

Confidence restored, I even found a way to workaround that FastLED limitation of having to know the pin at compile time! You just ask for all of them, then select the one you want to use at run time based on the config file value! Another ESP32 “breaking” change was in the ledc interface, rendering all our code for the 5050 PWM LED strips useless. So I fixed that too.

Pennsylvania Limited UI
Pennsylvania Limited UI

The Latest Evolution

So when we talk about the “latest evolution”, we’re talking about replacing the already small Arduino NodeMCU 12E and Wemos D1 mini boards with these even more tiny, more powerful, “super mini” Arduinos. I’ve been working with a larger version of the ESP32S3 to experiment with I2S sound! I’ve totally reworked to old MP3Player sketch to use I2S and have a working prototype!

If you’re familiar with our “Themes” option, you may have noticed we’ve added a few new ones here. If not, they’re accessed by clicking on the Themes button, which presents a list of the various predefined color schemes based on different railroad liveries to select from. For example, a Pennsylvania Limited Green and Cream scheme didn’t exist. Until now.

We already had a B&O Gold, Blue, and Gray scheme for more modern F units, but we had to create an entirely new B&O Royal Blue scheme. Clicking the desired livery in the list presented sets it as default color scheme for the UI to use. If that sort of thing isn’t important to you, that’s fine. But it’s important to me, and it’s easy enough to add new liveries as desired.

Beyond that, early testing of the new 1000mAH battery yields more than 4 hours of operation. Compared to that, I’d say the 2800mAH markings were closer to the mark than the 2000mAH, but that frees up those batteries for other things, like sound!

I’m really excited about the latest evolution and the ability to add lighting to these Bachmann cars using the original 9V battery case. With just a few mods to add a power switch and charging port, all the electronics fit! And that’s a good thing too, because those other two Royal Blue cars still have the original incandescent bulbs, just begging for an upgrade!

What’s Next?

It would really be nice if we could recharge the battery from track power. Trying to access the charging port in the side of the battery box on the underside of the car can be difficult. I usually end up having to lift it off the track to be able to plug in the USB charging cable. But none of the passenger cars have track power pickups anyway. They would have to be added.

It’s really more for equipment that already has power pickups installed, like the USA Trains “cabeese” that still rely on the archaic 9V battery. Unfortunately, they’re internal and it takes some doing to gain access to replace them when they’re dead. Wouldn’t it be nice if that track power could recharge one of these LiPo cells instead?

But that’s a project for another day. I think I need to get the infrastructure back into running order before I worry about something like that!

Stayed tuned. More to come…

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Latest Acquisitions – Part IV

So here we are again. More acquisitions? What gives? When are we going to turn our attention to track and infrastructure improvements so we can run all this new equipment? Have some patience, we’re getting there! Slowly but surely, we’re creeping up on the improvements necessary to once again run trains. But until then, I can’t pass up a good deal.

I was a bit late getting into large scale. Too late to acquire these items I wanted when they first came out. And nearly too late to grab them now, before they’re no longer available. Period. But I’m disappointed with the choices available nowadays. That’s not to say I haven’t purchased new equipment, be it Bachmann, LGB, or USA Trains. Mostly USA Trains.

I’d love to have the opportunity to purchase another GP9, with the sole purpose to convert it to an SD24, but they’re no longer available! That alone prompted me to act when the GP38s, SD40s, and F7s became available. I’d love to buy more, but the issue becomes where to store them when not operating. Not to mention that without improvements, we’re not operating. Period.

A new heavyweight diner
New Heavyweight Diner

When Opportunity Knocks…

Fresh off my recent scores on eBay, I thought I’d satisfied that desire to fill the roster with more transition era steam power. We have umpteen Bachmann ten wheelers already. More than enough, to be honest. And I still have new drive mechanisms and shells yet to be assembled! The new to me Aristocraft 2-8-2 Mikado and 4-6-2 Pacific fit the bill nicely.

The added bonus of sound for both was encouraging. It’s fun to see these “antiquated” systems, still working, and still in use today! I’m working on an Arduino based I2S audio system to complement the motor/block controller system to replace all that antiquated electronics. But until the ESP32 version of DCC-EX is more mature and I adapt the motor controller to its specifications, that will have to wait.

For now, I’ve been “lurking” on some of the Garden scale forums that still exist, looking for ideas and keeping in touch with the latest in the hobby. That’s an oxymoron right there. Most of the folks in this scale are “antiquated”, just like the technology. And only folks that made it this far have the funds available to afford it! So when opportunity knocks…

Diner Kitchen Area
Diner Kitchen Area

Time To Join

Part of my morning routine includes reading my Facebook “news” feed. We won’t go into the political ramifications of that statement, but suffice it to say I only check in on Facebook once a day. It’s about all the “news” I can take. This particular morning though, I’m greeted by a new post on the Large Scale Central page, a new listing of an Aristocraft heavyweight B&O passenger set, including a 4-6-2 Pacific and tender!

So right away I want to know more, but can’t post until I join! The only drawback of “lurking” on a site. It doesn’t take long though and the moderators added me quickly. Quickly enough to be the first to respond to the post! That post set things in motion and led to these new acquisitions. But let’s go through the steps it took the get this new equipment to my door.

Right off the bat, the only drawback is I already have a B&O 4-6-2 Pacific #5300! I’m thinking that 3 can become an 8 real quick with one of my metallic paint pens. The number boards may take some doing too, but easily within the realm of possibility. Next are the passenger cars. Five absolutely awesome Aristocraft heavyweight passenger cars. The two coaches are duplicates, but with some renumbering, not a problem.

Another B&O Pacific
Another B&O Pacific

This Ain’t Amazon Free Shipping

Well, the name of the coach will need to change too, but… Shipping is the issue here. The price ain’t bad, $750 for the lot, but I’m thinking the shipping is going to kill the deal. At least on eBay you have an idea what you’re looking at going in. This is a total unknown. In fact, that’s how I approached the post, “I’m curious as to the shipping to 32757”.

Our first PMs back and forth are his estimates from another transaction, over $300! But he tells me he’ll get an estimate from USPS and UPS and choose the lesser unless I have a preference. As long as it’s NOT FedEx, I’m fine with whatever’s least expensive. The estimated total is somewhere between $250 and $260. So now I’m looking at a thousand dollars for something that was a deal at $750.

Now I’m wondering if I should have haggled over the price, but his reply was unexpected. The shipping came to $236.39, but he said just make it $200 for a total of $950, with an expected arrival of the day before my birthday! I thanked him for the birthday present and put the check in the mail.

Old School

Wait. What? That’s right. I said “Check’s in the mail”. I asked if PayPal was acceptable or what he had in mind for payment. His reply was “I don’t do PayPal, a personal check or bank check only”. Yep. I can’t remember the last time I wrote a check, let alone where my checkbook is. Like I said, most of the folks in this scale are “antiquated”. I even asked if he wanted a picture of the check to use his phone bank app to deposit it.

Nope. Snail mail is fine… I did manage to find my checkbook. He got my last check! Time order more? Maybe. He got my last stamp too! Definitely time to get more of those. Talking about it now, I totally forgot to get a book when I picked up my prescription at Publix yesterday. Oh well. Next time.

I was surprised that he shipped the whole kit and kaboodle without first receiving the check from me as he originally stated. I dropped the check in the mail to him, along with a letter explaining why the address and phone number didn’t match. I mean after all, those checks are going on twenty years old now. We haven’t had that landline for more than a decade, and we’ve lived here in Mount Dora at least a decade now too. Time flies…

Shipping Box, Poinsettia for Scale
Shipping Box, Poinsettia for Scale

The Unboxening

Except when you’re waiting on the package with your birthday present to yourself that is. But it gets here on time, as expected, and I am totally amazed. This packing job is definitely to be admired! Quite the work of art actually. He actually managed to fit everything into one box! And it’s all padded with precisely cut and constructed blue insulation foam inserts! Definitely a work of art.

One by one I extract each and every item, packed in their original boxes. Everything’s here. An RPO baggage car, two coaches, an observation car, a diner, the 4-6-2 engine and tender. All in the B&O “Royal Blue” livery. Time to inspect my birthday haul.

The first item is the diner. After all, he did say the sink counter was loose, so I figured I ‘d better have a look at that first. Sure enough, it’s loose and rattling around inside. Not only that, but the interior lighting doesn’t appear to work either. Time for a closer look.

The Fixening

These Aristocraft heavyweight passenger cars are somewhat complex. To get to the screws that hold the roof to the car, the car ends first need to be removed to gain access, with another set of screws that hold them to the car body. Once the roof is off, the twin power rails that line it and provide power to the four incandescent bulbs are visible, along with the spring contacts on the body that connect them.

I test the bulbs with the bench power supply and they’re all in working order. The same can’t be said for the LED table lamps in the dining area. Near as I can tell from what little I’ve found online about these cars, there’s a circuit card between the underside of the floor and the actual car bottom. And of course no user serviceable items there. The remedy is to send the car to Aristocraft for repair.

Yep. Not an option. Guess I’ll have to take my chances not screwing everything up. I decide to take the time to map out the three floor sections and create a schematic diagram of the electronics on that small, square circuit board, sandwiched between the floor and car bottom. Essentially it’s a full wave bridge rectifier and a pair of current limiting resistors.

 

Small Circuit Card
Small Circuit Card

Not What I Expected

I was thinking one of the diodes on the circuit card was either open or shorted, but that wasn’t the case. Feeding power to it in both polarities, the table lamps’ LEDs lit right up. Feeding power to the trucks, the LEDs light when the power switch is on. Hmmm… I wonder if it’s those contacts between the floor segments causing the problem? Only one way to find out.

I say the LEDs lit right up. But in actuality, the LEDs are all in series with one another. Four of them are on one floor section and the other four on another. I had to jumper them to complete the circuit to get them to light. But they did light. So everything is working. The only electrical item in question is the contacts between the floor sections.

With the necessary information collected, I reassemble the floor sections, paying special attention to ensure the contacts are in place and aren’t bent the wrong way or otherwise malformed. But even so, nothing is lit! I carefully use a jewelers screwdriver to bridge the contacts and find one that isn’t connecting, even after taking special care. Copper tape to the rescue!

Floor Segments And Contacts
Floor Segments And Contacts

Making It Work

I use scissors to cut the ¼” wide copper tape into two ⅛” pieces. Wrapping one of the pieces over the end of the jewelers screwdriver, I insert it into the gap between the two contacts. Lights on! Well, table lamp LEDs anyway. The bulbs along the roof still aren’t illuminated. After taking the roof off again and bending the spring contacts up to make contact, the ceiling bulbs are now working too.

One last issue to resolve with one of the truck pickups. Once again using the jewelers screwdriver, I identify the culprit contacts and insert the other piece of copper tape. There. Now everything works as expected. I can set the car on a piece of track and apply power to just the track and have everything illuminated.

Now for that sink counter from the kitchen prep area. I’m thinking it may look more like stainless steel with a coat of that Molotow chrome paint. Not so much though. Even so, I get out the hot melt glue gun and secure it over the two floor sections where it belongs. I don’t have much confidence in how long it will hold though since it was previously attached with hot melt glue that failed.

Sink Counter Reattached
Sink Counter Reattached

Checking The Rest

One by one I check out the remaining passenger cars. Both the coaches are missing windows in the vestibule door as well as the diner. Some are tumbling around, loose in the boxes, but in the end, two are totally missing. I use a toothpick to apply some wood glue along the top and bottom gaps of the windows I do have to keep them in place, allowing enough time for the glue to set up before reassembling.

The RPO baggage car is a disappointment. It must have been a newer model because those gawdy, awful looking 14V bayonet base bulbs and sockets just aren’t scale. The fact that they’re visible from the clerestory windows and it’s obvious what they are is just the beginning. Why they chose 14V bulbs instead of what appear to be 24V bulbs in all the other equipment is a mystery.

The engine is operational and all the detail parts are included and still in the original packaging. The only thing missing is the air compressor. All the plumbing to and from it is there, just no compressor. Thankfully the other Pacific has it and can be used to design a model to 3D print a replacement. Eventually. I’m thoroughly pleased with my purchase and can’t wait to get them out on the rails and running. Someday.

All About Me

That’s pretty much what everything boils down to. It has to wait on me to do it. As much as I’d love to have help, it’s just me doing most of this. Ann does a good job on the garden side of things, but ever since we took out the pond and the waterfall fell into disrepair, it’s been the opposite. She actually cut down the trees that had grown to just the right scale size, all because she couldn’t see past them!

And it’s not like I had a say in the matter. There one day, gone the next! Oh well. Without them to protect the bridge and abutments, those were soon destroyed by the pups too. Now we have nothing to replace that span. Nothing but a giant, empty gap remains! Working on a way to hide that pond and use it as a reservoir for a new waterfall and waterwheel driven mill off the end of the deck.

Still quite a bit of “imagineering” needed here though. Add it to the list of things for me to do… Someday. If this all sounds a bit depressing, to a certain extent it is. When most of my day goes toward making income and not making my dream railroad come true, it’s bound to be slow going. But even slow progress is progress!

More to come. Stay tuned.