Halloween Hogwarts Express
by smigs in Craft > Costumes & Cosplay
378 Views, 3 Favorites, 0 Comments
Halloween Hogwarts Express
"I'm back!" said Smigs to the Halloween Instructables contest!! This year's round of Summer deliberations led to my daughter asking me to build the Hogwarts Express from Harry Potter. Though, this build would complement her Hermione costume, it also presented a number of challenges I immediately recognized. First, I would have to build two cars (you need to have a passenger AND engine car) and I would need to pull them!. Second, how do I generate smoke -- I was told this was an absolute must. Some items I had perfected from previous builds (already published on this site -- check them out!) such as incorporating music and train sounds. But because I also use these builds to generate new skills and learn new techniques, I wanted to make sure I could invoke some form of upgrade on what I had previously done.
Soon after deciding on what the project would be, I went ahead and made my initial list of requirements, which of course would be modified based on available time and effort to implement. Due to the complexity of the build, and a 2-week work trip I had to go on in the beginning of October, I started basically on 1 September.
Supplies
I used a ton of different items. Some were reusing items lying around my house for too long, while others had to be specifically purchased. I'll do my best to capture the most important ones here, but like so many things on Instructables, the designer should easily be able to swap parts out or change the design to accommodate their own needs.
- 3/4" and 1/2" plywood: for the base of both cars
- Insulation foam: for the sides of the cars -- to help keep it light
- Arduino Mega: controls relays for LEDs at the front and around the engine as well as relay to control smoke generator
- Raspberry Pi 4: overall control of logic and sends commands to Arduino to control relays
- Digiamp+: This is a hat for an RPi that's used to interface with speakers -- it's an amp. It seems discontinued most places which is a huge bummer so I asked ChatGPT where I could get another and it found one for reasonably cheap (~$35)
- Passive wired speakers: These I had lying around from a sound system my wife no longer used and was gathering dust in my basement. These were perfect for use with the Digiamp+
- Relays: Used to control the on/off of LEDs and smoke generator (these are similar to what I used)
- Voltage Converter: Used to step down my drill battery 19V to whatever I needed
- Smoke generator: Bought it from an online vendor which after a bit of correspondence said it should suit my need
- 5/8" Vinyl tubing: Fits over the hole in the smoke generator so I can route smoke from there to the smoke stack
- LED strips: purchased from Amazon and wrapped around the engine. Each LED was individually addressable
- Wooden discs: Used to help with the wheel assembly
- Headlight LEDs: Also purchased from Amazon and blazed a path while trick-or-treating at night
- Fairy LEDs: At least that's what I call them. They were arranged around the exterior of both cars and just plugged into a USB power bank
- Generic common boards: from the local home store to build the frame of the cars
- Vent pipe: Used for smoke stack (found it on the side of the road)
- Aluminum flashing: Used to wrap around the frame I made for the engine
- Two Radio Flyer Wagons: I had to rebuild one that I found on the side of the road. The other is the same one appearing in all my prior builds
- MDF board: Used for the roofs and other smaller areas to cover on the train
- 3D printer: Made some custom parts like the sign in the front, the wheels design, and some letters for other signs
- Spray paint: Used to bring the entire train to life
- Velcro strips: Used to secure the foam, speakers, and other various parts to the train body
Requirements
The past several years I've kept a comprehensive Google Docs file about what the build should and shouldn't do. Inevitably things move out of scope as the time grows closer. I basically already mentioned these, but I wanted to have music, smoke, train sounds, and controllable lights. Additionally, both cars had to easily be inserted and removed from the Radio Flyer wagons.
The new feature for this year was I wanted to eliminate the physical buttons that I have used previously and instead have a web interface via my daughter's iPad have all the controls for the train. This was done to eliminate having a nest of wires -- which I still had -- but also to have a reason to learn about REST APIs. Despite having successfully done it, I did rely perhaps a bit too much on ChatGPT to provide help. But overall, I was pleased with the outcome.
The other super tight constraint I had to abide by was being able to fit both train cars into the back of my father-in-law's truck. This is done so that we can easily transport the creation. Luckily, I end up getting to reuse any given year's Halloween build at least 3 times during the year. The first is Halloween itself, the second is at a July 4th neighborhood parade, and the last is at my daughter's trunk-or-treat for the following Halloween.
Working on the Base
I needed two Radio Flyer wagons this year. One I already had in my possession which I reuse each year at Halloween. The other I luckily found on the side of the road. The wood was unfortunately rotted out, but the wheels, handle, and rest of the hardware were in fine condition. After throwing away the rotted wood, I used my existing wagon as a guide for the dimensions needs on the refurbished one. Using plywood cut to the proper lengths, I was able to easily remake the wagon.
After that it was a simple matter to arrange the interior with two-by-four lumber to make a frame and then screw a 4ft-by-2ft sheet of plywood to the frame so that I can easily pull the entire assembly in and out of the wagon.
Framing Out the Cars
Overall this step lends itself to a ton of flexibility. The designer can choose their dimensions and determine a method that works for them. In my case I knew what the length/width/height had to be due to the truck constraint. So given those dimensions, I used a ton of common board to start framing out a base on each car, adding some 2"-by-2" posts and attaching them at the top to basically make a big rectangular box. This was essentially the design for the passenger car.
The engine car took a little more planning. In that case I had to have the engine itself and a smaller box for the conductor (e.g. Dobby the house elf) to sit in and run the train. After conferring with my better half on dimensions, we landed on a design that made us happy.
The rest went up rather quickly and there's not a ton of detail to add here about it.
Building the Engine
This was going to be the tricky part. I had to have a cylindrical engine resting on a flat piece of plywood AND be able to accommodate a smoke stack coming out of it. I looked at a variety of options for how to do this.
I thought I was going to use a cylindrical concrete form from the local home store to do this. Then I'd be able to cut a hole in it for the smoke stack and wrap it in aluminum flashing. Unfortunately, the length of the forms were not what I needed (I required something around 3-4 ft), so this method was abandoned.
Next, I scoured the internet for sturdy cylindrical tubes. I required a diameter of about 17" and either the tubes with that diameter were too expensive or just didn't exist at the lengths I needed. So this didn't pan out.
What I landed on was to buy super thin (1/8") circular wooden discs from Amazon and stack them, using cut pieces of an old wooden closet rod I had saved, as the supports between discs. This kept the entire assembly light weight and offered a large opening to fit the smoke stack.
The last part was to figure out how to mount a cylindrical tube to a flat, rectangular base. The solution I used was to take 2 pieces of common boards and cut out a crescent which would cradle the cylinder when I laid it down. Hopefully it's apparent from the picture.
After this was completed, it was a relatively simple matter to wrap the entire object in aluminum flashing. Luckily, I was able to secure the pieces of flashing to the different rods placed all around the perimeter of the assembly.
Finally, I drilled a hole through each of the discs to accommodate the nylon tube which would begin at the smoke generator and at the top of the smoke stack.
Building the Sides of the Passenger & Conductor Car
Now it was time to use the insulation foam I purchased. I decided to use the insulation so I could keep the cars light weight overall and not spend a ton of money on plywood. The downside with using the foam is to make sure it's not a super cheap-o kind (which unfortunately was the case for me this year) and if there are any exposed parts, you will absolutely need to paint it with primer first or cover the exposed parts with painter's tape prior to spray painting because the spray paint will, in fact, melt the foam.
To cut holes for windows, I had a template lying around, traced it out with a Sharpee marker, and then used my styrofoam cutting tool (which I highly recommend purchasing) to cleanly cut all the holes.
Once the foam was cut and primed, it was a simple matter of picking a warm day to begin spray painting. Afterwards, I decided to secure the foam panels to the wooden frame via velcro strips I had lying around so that I could easily remove it when storing it.
A similar process was followed for the conductor car and since it was a much smaller footprint, took a lot less time
Adding the Passenger Platform
All of these old-timey locomotives have a platform in the rear of their passenger car you can access via a door. The Hogwarts Express was no exception. It had an overhang on the roof, and then a platform with railings one could hold onto.
For the platform piece itself, I had some scrap pieces of plywood lying around that I fixed to the common board on the back of the car. The railings were also using the letfover pieces of plywood that I cut with my jigsaw to the proper shape. To mimic the railings: I was absolutely going to use the remaining pieces of my leftover wooden closet rods that had helped me with the engine part of the build. This would serve to prevent me from buying something else AND get it out of my garage :) All of this came together very nicely.
For the door, I left an opening that was fairly narrow but looked proportionally right. I additionally had pieces of 1/8" plywood lying around from previous projects, so after cutting those to length, I sandwiched some insulation foam between them, painted it, added hinges, and voila! -- had a door. The exact same procedure was used for the door on the conductor car too. (The astute reader -- or maybe the person too bored to do their chores who's using reading my 'Ible as an excuse to not do it -- might ask: how do you fasten hinges to this if it's made of super thing plywood and foam? Great question. The answer is on the side of the door opposite the hinges, I just added a small wooden block that I could drill the screws into to hold it)
Remaining Design Accoutrements
The only other things left to do (before decorating it) that weren't electronics was to attach a roof, wheels, and signage.
For the roof, this was pretty simple overall. I wanted the roof to curve which means I needed to cut some wooden pieces that had a dome shape to them with which I could fasten the roof to. This also implied that the roof had to be made of flexible, thin material that wouldn't break under the strain. At the local home store, I saw 4ft-by-8ft sheets of MDF for about $12 -- so that was my guy! I fastened the curved wooden pieces to the top of each car, measured the appropriate size of the MDF for each, cut them, and finally screwed it down. That all went swimmingly.
For the wheels, I thought this part was kinda fun. I'm bad at cutting wooden circles. I try and try, but it could be better lol. Nonetheless, I cut out wooden circles for my next steps -- which I'll get to later -- and I wanted to make the wheels look more realistic. I found a few pictures online of what they should look like. Armed with those, I found my favorite, and went to Tinkercad to design it. I made it super thin so it would print quickly (about 1/8") and the idea would be print it, paint it, glue it to the wooden circles, and then attach them to the wooden infrastructure via wood screws. Printing 12 of those wheels, at about 9 hrs./wheel, took ~108 hours or almost 5 days. It was cool to have my printer just go 24/7 :)
For the signs, I needed some custom pieces. My wife found some really nice plaques at the dollar store which I painted, but I needed letters to attach to the plaques. This was simply done via 3D printing them. Again, I turned to Tinkercad and determined the right sizes etc, printed them, painted them, and then glued them to the signs.
The remaining bits were all of the cool decorations in store for the passenger car. My wife found some cheap Harry Potter and Hermione Granger stuffies to sit in the car, as well as chocolate frogs (3D printed), crawling spiders, signs/posters looking for a wanted Sirius Black, and all kinds of other fun elements which made the train pop and come to life
Electronics
This part is always my favorite. I benefited greatly from last year's X-Wing development to slow-my-roll, and draw out what the circuits should look like and figure out how many drill batteries I'd have to use etc. This made the entire implementation go soooo smoothly.
So I did that.
I landed on 2 drill batteries. One for the uber power-hungry LEDs at the front of my train, and one for the remaining electronics. The Digiamp+ for the RPi can consume any voltage up to about 30V I believe, so that could easily eat the 19V I provided to it. The Arduino could be powered from the RPi via the USB connection between them. The smoke generator needed 12V, so I stepped the voltage down via a step-down converter I bought from Amazon last year for the X-Wing. Most parts also needed to be integrated with relays to control their ON/OFF state. The layout and wiring of everything went pretty smoothly.
The harder part was writing the code to control it. It really consisted of 3 pieces:
- Write the overall Python code to control the logic, music/sounds, and send control signals to the Arduino regarding the relay state of the LEDs and smoke generator.
- Write the Arduino code to actually turn lights and smoke ON/OFF
- Write the Javascript/REST API interface to interact with the controls via a web interface
The first two I had basically done in my prior Halloween builds, so this went quickly. The last item took a fair amount of time. Without boring you too much, the first step is always to ask ChatGPT to get you started. From there, it was web searches and talking to people at work more knowledgeable than myself to get their feedback. Eventually this came together really nicely. The very last step of it was to setup the RPi as a Wifi access point which I could connect her iPad to in order to pilot the controls.
Powering It Up
After all the assembly, painting, 3D printing, wiring, and code writing, it was time to fire it up about t-minus 2 days to Halloween. I am happy to report it worked great! And, 2 days later, no Gremlins got into the system so it still booted!
One last outstanding question the astute reader might have is: "Hey, how did you connect the trains?". Great question. The answer is I took the handle from one, wrapped two small chains around it and hooked it into some metal clips I had on the conductor car. In this way, by pulling the front conductor car, I could pull both. And it wasn't too heavy or too strenuous, so my lightweight build paid off.
Halloween itself was magical! My little had a wonderful time dressed as Hermione, while I was Dumbledore, and my wife was Prof. McGonagall. As we were trick-or-treating, I had a number of the usual folks I see once-a-year tell me how awesome the project was. One huge group of kids we passed by had a dad that asked me "hey, are you the Star Wars guy from last year?". Of course I am buddy, of course I am :) We additionally had lots of folks ask if they could stop to take pictures with their own kiddos and ask me questions about how I built it and what's on tap for next year.
I was pretty happy with how this turned out. It took a while, and though having a 2-week field trip for work didn't help with moving things forward, it nonetheless came together. I'm ready to start planning for next year!
Next Steps
I think I mentioned earlier that I get multiple opportunities within 365 days from Halloween to use my build. These are:
- Halloween itself
- A neighborhood July 4th parade the following Summer
- My daughter's trunk-or-treat at her school the following year
- Random walks through the neighborhood to wake people up :)
There are 2 upgrades I want to work on -- and I already bought parts :)
- Automated wheel spinning of the 3 wheels on each side of the conductor car: this involved linking all the wheels together and then driving it with a motor. I've purchased the motor and already started the design process
- Verbal recognition of my daughter's magical commands and having the train perform the corresponding response. This required some Alexa/AI type interface so I kind of wanted to see where I could go with this. I can imagine this would be applicable to future builds as well.
Thanks for reading!