Skip to the content
PCBKitNew board
2 layers50 × 30 mmTapeDispenser, the printed circuit board in 3D

An open-source recreation of the "Welcome to Kilnettle" tape dispenser from Father Ted.

Size
50 × 30 mm
Copper layers
2
Thickness
1.6 mm
Parts
15
Nets
25
Pads
47
Tracks, vias
61, 0
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
2 Mar 2024
Updated
14 Oct 2025

Overview

TapeDispenser is an open-source printed circuit board by stephenjdc, from the stephenjdc/TapeDispenser repository on GitHub. It is a 2-layer board of 50 × 30 mm with 15 parts on 25 nets, routed with 61 tracks and 0 vias.

It is built around the ESP-12E. Its parts include 5 resistors, 3 diodes, 2 connectors, 1 IC and 1 transistor. It belongs with the ESP8266 boards of this library.

Main components

1

README

readme.md

Kilnettle Shrine Souvenir Tape Dispenser

image

Blog post: https://stephencoyle.net/kilnettle

If you'd like to build your own tape dispenser, which tells you how much you've used, and blesses you afterwards, you have two choices.

  1. Leave out a pencil and paper one night before bed, and hope that by the morning God will have written down the instructions.
  2. Clone this repo, buy the required parts, a 3D printer, and get to work. Here's an assembly tutorial.

Please note that, while the dispenser does aim to fairly accurate, it's not perfectly accurate as it doesn't adjust for the amount of tape used. In the code I've just split the error, so it will tend to overshoot the measurement when a roll is full, and undershoot a bit when it's empty. Given we're only dealing with one-inch resolution, I feel like it's probably fine. You can tweak the code if you want to try and improve on this. There's also is a no-code way to tweak it, detailed below.

License

Feel free to make/reuse/modify this project for personal use. In the unlikely event that you're planning to spin up a large-scale production line to make thousands of these, I'd really recommend doing a few more revisions on the code and the models. In which case, I'm available at a very reasonable rate.

Parts list

Electronics

  • 1× ESP8266 or similar (e.g. I used an ESP-12E)
  • 1× IR photodiode (3mm)
  • 1× IR LED (3mm)
  • 2× 1k resistors
  • 2× 10k resistors
  • 1× 220Ω resistor
  • 1× 2N3904 transistor (or similar)
  • 1× LED (colour of your choice, I recommend red)
  • 1× 26mm diameter speaker
  • 1× 18mm × 12mm slide switch (or any that fits the space on the model)
  • Battery contacts for 2x AAA batteries (e.g. Keystone 5204, 5226, 5213)

There are included KiCAD files which you can use to create a PCB for this, but you could also use point-to-point soldering or stripboard (see below).

PCB Legend
PCB LabelComponentDescription
R11K resistor
R2220R resistor
R31K resistor
R410K resistor
R510K resistor
D1PhotodiodeSmall black LED
D2IR LEDSmall clear LED
D3Indicator LEDRed LED
LS1Speaker
Q12N3904 Transistor
U1ESP8266
J1GND
J2+3V

Dispenser body

These parts are 3D-printable (in the models folder)
  • 1× tape dispenser body
  • 1× tape dispenser lid (which holds the spool)
  • 1× battery compartment cover
  • 1× tape spool
  • 1× "Greetings from Kilnettle" text
These parts are not 3D printable
  • 1× 33mm × 5mm hacksaw blade (for tape cutter)
  • 1x 25mm × 1mm steel rod (for example, cut from a large paperclip)
  • 2× AAA batteries
  • 1x roll of sticky tape with ~27mm inner diameter and ~56mm outer diameter. I used this one.

Instructions

I'm gonna keep these fairly sparse, and following what I did. But there's no right way to do it. In the very unlikely event that you actually want to make one yourself, and run into trouble, feel free to message me with any questions. The video version may also be more useful!

  1. Use PlatformIO to build and upload the included sketch, and build and upload the filesystem image.
  2. 3D print the included files.
  3. Insert the battery clips into the slots in the battery container. Note which side has holes for the positive and negative tabs to slot into.
  4. Fit the slider switch into the hole above the battery compartment. Either glue into place, or like I did, use a soldering iron to melt and smush the little nubs to fix it in place.
  5. Fit the IR photodiode and LED into the holes on the sides of the lid. They should be a fairly tight fit; push them all the way in. I added a little drop of superglue to keep them fixed in place.
  6. Add the speaker. It should click into place at the front of the body, though I added a little hot glue just to be sure. If you aren't using the PCB, it might be easier to add the transistor and resistor on or near the speaker itself, then tuck all that in with the speaker.
  7. Solder some wires to the battery tabs and switch.
  8. Follow the rest of the schematic to attach all the parts. If you aren't using the PCB, use the thinnest wire you feasibly can, and route the wires as best you can to allow the case to close. I'd recommend leaving a decent bit of slack, and regularly trying to fit the lid on to make sure all is fitting well.
  9. Once that's done, I'd recommend testing it out1, so you can check the software is flashed properly before you finish fitting things into place.
  10. Pop on the lid, if you're happy everything is working. The tabs at the back should clip into place in the case.
  11. Superglue the section of hacksaw blade in place on the front of dispenser. Make sure to put the sharper side facing up, if there is one, so it cuts the tape nicely.
  12. Attach the "Greetings from Kilnettle" text to the left side of the dispenser body (left when looking at the bladed end).
  13. For the spool, thread the steel rod through the hole in its centre. Add a drop of glue and line it up so that it protrudes an equal amount on either side. It should then press fit into the tape, and you can set it into the dispenser.
  14. Insert batteries (be careful to put them in the right way round), pop on the battery cover, and all being well, you should now be able to switch it on and enjoy your dispenser!

Building without a PCB

If you're not able to make a PCB, you could use a D1 Mini and some stripboard. See an example layout below that uses an MC01009 board. It uses uses pin headers so that each part can be connected using female jumper wires. Use a rotary tool cutting wheel to trim the board down so it can fit just behind the speaker.

There are some notable differences when using the D1 mini board:

  • EN is pulled up
  • GPIO15 is pulled down
  • There is a voltage divider on ADC0, so R3 and R4 aren't necessary
  • Specify board = d1_mini in platformio.ini
  • Adjust #define ESP8266_Variant in src/main.cpp

Footnotes

  1. You can easily test it without a spool, by waving your finger around in the spool cavity, making sure you block the IR beam a few times. ↩

Parts

15
QtyValueFootprintReferences
210KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR4, R5
21KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R3
2MountingHoleMountingHole:MountingHole_2.2mm_M2H1, H2
1+3V0Connector_Wire:SolderWire-0.5sqmm_1x01_D0.9mm_OD2.1mmJ2
1220RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2
12N3904Package_TO_SOT_THT:TO-92_InlineQ1
1ESP-12ERF_Module:ESP-12EU1
1GNDConnector_Wire:SolderWire-0.5sqmm_1x01_D0.9mm_OD2.1mmJ1
1IR LEDConnector_Wire:SolderWire-0.5sqmm_1x02_P4.6mm_D0.9mm_OD2.1mmD2
1IR PhotodiodeConnector_Wire:SolderWire-0.5sqmm_1x02_P4.6mm_D0.9mm_OD2.1mmD1
1LEDConnector_Wire:SolderWire-0.5sqmm_1x02_P4.6mm_D0.9mm_OD2.1mmD3
1SpeakerConnector_Wire:SolderWire-0.5sqmm_1x02_P4.6mm_D0.9mm_OD2.1mmLS1

Questions

How big is the TapeDispenser PCB?

It measures 50 × 30 mm and has 2 copper layers, 1.6 mm thick.

What parts does the TapeDispenser use?

15 parts, built around the ESP-12E. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the TapeDispenser KiCad files?

From the stephenjdc/TapeDispenser repository on GitHub, at the commit this page was made from: the board is pcb/TapeDispenser.kicad_pcb and its schematic pcb/TapeDispenser.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the TapeDispenser design in my own project?

Its repository states no licence, so its author keeps all rights: ask stephenjdc before reusing the design.

Similar boards

  • 2 layers33.7 × 97.8 mmHAN ESP TSS721, the printed circuit board in 3D

    HAN ESP TSS721

    UtilitechAS/amsreader-firmware

    ESP8266 and ESP32 compatible firmware to read, interpret and publish data to MQTT from smart electrical meters, both DLMS and DSMR is supported

    29 parts470
  • 2 layers43 × 34.3 mmEspway, the printed circuit board in 3D

    Espway

    espway/espway

    Segway-like robot implemented on ESP8266

    37 parts122LGPL-3.0
  • 2 layers25.6 × 23 mmBreakout, the printed circuit board in 3D

    Breakout

    skorokithakis/tiny-ESP8266-breakout

    A very small and basic ESP8266 breakout board

    12 parts115BSD-2-Clause
  • 2 layers104.8 × 72.1 mmSST V2 4, the printed circuit board in 3D

    SST V2 4

    mcbittech/souliss-smart-thermostat-WiFi

    ESP8266 WiFi Smart Thermostat based on Souliss IoT Framework

    53 parts110GPL-2.0
  • 2 layers30 × 65 mmHardpass pcb, the printed circuit board in 3D

    Hardpass pcb

    girst/hardpass-passwordmanager-mirror-of-git.gir.st

    https://git.gir.st/hardpass.git - Seldomly Updated Mirror: Hardpass is a Raspberry Pi Zero based hardware password manager, using passwordstore.org.

    34 parts101GPL-3.0
  • 2 layers82.5 × 22.4 mmWindow Sensor, the printed circuit board in 3D

    Window Sensor

    MakerMeik/Window-Sensor

    Here you will find all the files you need to build an ESP8266-based window sensor whose battery will last for several years. Have a look at my video on Youtube: https://youtu.be/vxbuO1zWo3w

    19 parts67
  • 2 layers49.5 × 30 mmAirpcb smd old, the printed circuit board in 3D

    Airpcb smd old

    issalig/toshiba_air_cond

    AB protocol decoder for toshiba air conditioners

    30 parts65
  • 2 layers100 × 45 mmTranspOtterNG, the printed circuit board in 3D

    TranspOtterNG

    Jana-Marie/transpOtterNG

    Next Generation of TranspOtter.

    63 parts51