1. Disassembly - January 2018
2. Initial Circuitry Plan
Whilst this version is on a breadboard, I plan to move it to a prototyping board to fit within the casing of the Tardis when it’s complete due to it being around the same size as the original circuit board and being able to fit in its place.
3. Assembly (version 1)
Following the breadboard guidance above, I wired up the top LED with the resistors soldered between two wires connecting the bulb and ESP8266
Before soldering these two together, make sure that the bulb is connected the right way around!
Also, when wiring up the LED strips, to remove the silicon saw through the top layer and bend the wire until it simply peels off
The first time the web interface actually appears is the most satisfying moment ever, to test it for both the single LED I used the two example scripts linked at the bottom of the page in resources.
Once both the LEDs work, and you’re happy, push the ESP8266 into the prototype board and solder it in, then check if it boots. If not you’ve connected two of the pins together and you will be stuck in a terrible boot loop (desolder them and it’ll work fine), the lack of booting caused me a lot of confusion!
Whilst this version is on a breadboard, I plan to move it to a prototyping board to fit within the casing of the Tardis when it’s complete because it will be around the same size as the original circuit board and fit in its place.
- I later realised that this probably wasn’t the best way to go around circuit design and that my extra resistors and that running 3 more cables up a very limited space would not fit.
- My new design uses two NeoPixel rings instead, which only require Ground, 5V and digital in cables (where the 5V cable is shared between the two) rings meaning that only 5 cables need to be run up to the roof.
- More holes to be drilled in the roof to help light spread, out of the box the Tardis sheds light really poorly, to allow more light to get to windows as well I’ll cut down the sides of the plastic to allow light straight out.
- You can see a circuit drawing and a ‘real’ circuit diagram to the left.
- To build this I used two Adafruit NeoPixel 5050 rings and an ESP8266, as well as a MQTT (Mosquitto) server hosted in the cloud.
4. Building (again)
- I flashed the ESP8266 with MicroPython to run my software, on boot the ESP8266 connects to WiFi and then runs main.py which handles connecting to an MQTT server and waiting for requests.
- The tardis allows the lamp to be manually flashed, the interior colour changed or notifications to be sent.
- Now when running, I can just call the following commands
lamp0,50,0- sets the lamp colour for one blink
interior0,50,0- changes the interior colour until overridden or rebooted
notify0,50,0- flashes roof and changes interior temporarily to notify
If you fancy building something like this yourself, you can find a copy of the firmware I wrote and the useful uMQTT library here:
- Looking back on the Tardis, I’m really pleased with what I’ve created as an Internet of Things and MQTT device, I was initially planning to use this project solely as a notifications delivery platform.
- uPyCraft is great, as is screen and MFPShell
- I now plan to link the MQTT to Home Assistant, to allow the static colour to match that of a colour scene that I set.
- As for writing for MicroPython on an ESP8266, I’d really recommend ESPTool for Mac to flash, screen (built in to see what’s happening on the console live and run basic commands), MFPShell to push and get files reliably and uPyCraft as a reliable enough IDE.
You can see a video of the finished product below:
Be careful - electrical fires don’t smell nice
The words Doctor Who and Tardis are trademarks of the British Broadcasting Corporation (BBC) since 1996.
No connection to or endorsement is given or implied to or by the BBC.