Andrei Speridião 2022 - http://andrei.cc
"ticket, memorandum, attach, stick, pierce, sting, to be sharp, goad, puncture, attach, nail"
- tag, label
- prescribed behavior
E-TKT is a DIY label maker that mixes both old fashioned and contemporary technology to create something as simple as... Labels!
The initial spark for this project came from an ordinary manual labeling device that I bought to organize my workshop. I was VERY UPSET when I noticed that it was basically rubbish, getting broken and unusable after just a few operations. This little plastic hook (circled in red) grabs a gated cog (the white plastic part below) to feed the tape forward. I tried to fix and reinforce it, but the failure was unavoidable because there seems to be a critical flaw in the project: it is too weak for the lateral resistance imposed.
I knew I could easily buy a brand new modern electronic thermal label printer (such as Brother), but something about the vintage embossed finish fascinated me. Also, these new models use expensive proprietary cartridges that create a lot of trash after use.
After all, even though the pressing mechanism was poorly made, the characters' carousel was pretty sturdy and sharp. So I thought: can I build over its principles to create a functional device? If so, then why not make it physical-digital?
...why bother mixing an archaic printing method with current automation and connectivity features? Because why not? It was a technological blind spot to be explored!
I've later realized that it was what I’ve been attracted to. According to Wikipedia:
“An anachronism (from the Greek ἀνά ana, 'against' and χρόνος khronos, 'time') is a chronological inconsistency in some arrangements, especially a juxtaposition of people, events, objects, language terms and customs from different time periods”.
The point is: even though the process is digitalized, the resulting label is totally old school and there is no easy way of telling if it wasn't made in the traditional way.
An ESP32 commands the label production and also serves an on demand web application to any device connected in a local network.
Neither internet is needed, nor installing any app.
The whole process of connecting the E-TKT machine to a local network and then launching the app is aided by a small OLED display that provides instructions and a dynamically generated QR code with the URL, according to the IP attributed by the WLAN.
The web app provides text validation, special characters, a preview of the exact size of the tape, an option to select the desired lateral margins and also real-time feedback during the printing (also present on the device screen). There are also commands for attaching a new reel, manually feeding and cutting the tape.
The label production itself uses the same mechanical principles as the original machine did, but is now automated. A stepper motor feeds the tape while another selects the appropriate character on the carousel according to a home position acquired by hall sensor. Then a servo motor imprints each character by pressing the carousel to the tape. That happens successively until the end of the desired content, when there is a special character position to cut the label. A light blinks to ask for the label to be picked.
- No need for internet, app installation, data cables or drivers;
- Use from any device that is connected to a local network and has a web browser: desktop, tablet, smartphone;
- Compatible with ubiquitous and cheap 9mm generic tape (DYMO-compatible);
- Instant preview: what you see is what you’ll get;
- Real time check for character validity;
- Label length estimation;
- Margin modes: tight, small (1 space each side) or full (max input length);
- Buttons for special characters: ♡ ☆ ♪ $ @
- Reeling function: for when a new tape reel must be installed;
- Manual commands: feed & cut;
- Minimum label size to allow for picking it up;
- OLED screen + LED feedback:
- Instructions for configuring the wifi;
- QR code/URL for easily accessing the web app;
- Real time progress;
The estimated cost is around $70 (USD) without shipping, as of May 2022.
# | TYPE | SUBSYSTEM | PART - DESCRIPTION | QTY | REF |
---|---|---|---|---|---|
1 | structure | - | 3D print filament - PETG (~200g used) | 0.2 | link |
2 | structure | - | screw - M3x40mm | 1 | link |
3 | structure | - | screw - M3x20mm | 17 | link |
4 | structure | - | screw - M3x18mm | 3 | link |
5 | structure | - | screw - M3x16mm | 2 | link |
6 | structure | - | screw - M3x8mm | 6 | link |
7 | structure | - | screw - M3x6mm | 10 | link |
8 | structure | - | screw - M4x12mm | 1 | link |
9 | structure | - | hex nut - M3 | 10 | link |
10 | structure | - | washer - M3 | 9 | link |
11 | structure | - | silicone pad feet - 8x2mm | 4 | link |
12 | mechanic | extruder | spring - 7mm ⌀ x 6mm length | 1 | link |
13 | mechanic | carousel | pressing carousel - MOTEX / CIDY | 1 | link |
14 | mechanic | carousel | bearing - 608ZZ | 1 | link |
15 | mechanic | extruder | bearing - 623ZZ | 2 | link |
16 | mechanic | extruder | extruder gear - MK8 40 teeth / 5mm axis | 1 | link |
17 | electronic | - | dual side prototyping PCB - 0.1" pitch - 50x70x1.6mm | 1 | link |
18 | electronic | carousel | hall sensor - KY-003 | 1 | link |
19 | electronic | carousel | stepper motor - NEMA 17HS4023 | 1 | link |
20 | electronic | carousel | stepper driver - A4988 | 1 | link |
21 | electronic | extruder | stepper motor (28BYJ-48 5V) & driver (ULN2003) | 1 | link |
22 | electronic | press | servo - Towerpro MG-996R | 1 | link |
23 | electronic | carousel | neodymium magnet - 2mm ⌀ x 3mm length | 1 | link |
24 | electronic | - | ESP32 WROOM nodeMCU | 1 | link |
25 | electronic | level | 4-channel I2C-safe Bi-directional Logic Level Converter - BSS138 | 1 | link |
26 | electronic | UI | OLED screen - 128x32px 0.91" | 1 | link |
27 | electronic | UI | LED - white PTH 2x5x7mm square | 2 | link |
28 | electronic | power | step down - 6V - LM7806 | 1 | link |
29 | electronic | power | power supply - 7V 5A | 1 | link |
30 | electronic | power | DC-005 Power Jack Socket | 1 | link |
31 | electronic | wifi reset | tact switch - 6x6x4.5 | 1 | link |
32 | electronic | - | wiring - solid (prototype) | 1 | link |
33 | harness | - | USB type-A to micro-B data cable | 1 | link |
34 | harness | - | wiring (harnesses) - flexible, flat | 1 | link |
35 | harness | - | header jumper connector | 1 | link |
36 | harness | - | male header - 0.1" pitch | 2 | link |
37 | harness | - | female header - 0.1" pitch | 2 | link |
38 | harness | - | female connector - 8 pin 0.1" pitch dupont | 1 | link |
39 | harness | - | female connector - 3 pin 0.1" pitch dupont | 4 | link |
40 | harness | - | female connector - 4 pin 0.1" pitch dupont | 2 | link |
41 | consumable | - | label tape - 9mm DYMO compatible | 1 | link |
- 7-12v to be provided by an external power supply with at least 35w to deal with servo peaks current while pressing the label. It supplies the stepper drivers directly.
- 6v out of the L7806 step down and is provided for both the servo and hall sensor.
- 3.3v is provided by the ESP32 WROOM board (as in its logical ports).
- As the ESP32 uses 3.3v logic, we need this conversion for parts that are running on higher voltage (servo and hall sensor).
- The servo uses 6v, higher voltages tend to damage it.
- NEMA stepper, driver and a hall sensor to match the position origin.
- A tact button that when pressed while booting, clears the saved credentials.
- Reduced stepper motor along with its standard driver.
- Running on 3.3v an I²C OLED display and two LEDs (no need for resistors).
- A_bottom
- B_wall (support)
- C_wall_track (support)
- D_pillar_1
- E_pillar_2
- F_pillar_3
- G_pillar_4
- H_pillar_5
- I_top (support only in the K_top_tapefeed area)
- J_top_screenholder
- K_top_tapefeed (support)
- L_caroulsel_cube
- M_carousel_hallholder
- N_carousel_coupling_1
- O_carousel_coupling_2
- P_press
- Layer height: 0.25mm
- Infill: 20%
- Wall line count: 3 + 1 (Cura usually adds the later together with the infill)
- Top/bottom layers: 4
- Bugfix
- Manufactured PCB
I - Experiment (Mar/2021)
![](https://user-images.githubusercontent.com/15098003/171269435-a1eabe78-d058-4b14-b9b8-7042359a4fe9.jpg)
![](https://user-images.githubusercontent.com/15098003/171266687-53a73713-336d-4699-8519-36c1fee7fe87.jpg)
![](https://user-images.githubusercontent.com/15098003/171266690-c338b383-6c45-4988-a514-cbe023b817e1.jpg)
![](https://user-images.githubusercontent.com/15098003/171266692-844232aa-3745-4fb7-bd0b-297d777bfdfe.jpg)
- Using Arduino mega, communication via serial.
- Carousel homing with infrared sensor + one missing “teeth” led to inconsistent results and misalignment.
- Testing with SG-90 servo, but it was too weak to press the tape.
II - Communication (Mar/2021)
![](https://user-images.githubusercontent.com/15098003/171271137-047c1efe-4b0d-4ffa-89ae-fdf83de84ba9.jpg)
- Experiments using ESP8266 with self served app + receiving commands, still isolated from the main functionality.
- Wifi manager.
- First sketches for the web app user interface.
III - Printing Proof (Mar-Jun/2021)
![](https://user-images.githubusercontent.com/15098003/171270262-9f8ceb2b-e115-4352-a3b1-6360cd4fbad0.jpg)
![](https://user-images.githubusercontent.com/15098003/171267768-e6e015c3-7fb8-4503-b86c-f03fbfc35ec0.jpg)
![](https://user-images.githubusercontent.com/15098003/171270457-baede1ce-9c57-4d44-8273-3d6d641cf2dc.jpg)
![](https://user-images.githubusercontent.com/15098003/171267777-4ca52132-f6d2-474c-9dab-73be09f6ba98.jpg)
![](https://user-images.githubusercontent.com/15098003/171270251-9266059e-45cc-42d0-b61b-a94420f4c889.jpg)
![](https://user-images.githubusercontent.com/15098003/171270255-0aaaba71-c84d-4d2f-8185-9c065bfe8207.jpg)
![](https://user-images.githubusercontent.com/15098003/171270257-b90879b7-23a1-4bcd-b342-f9718806bfac.jpg)
![](https://user-images.githubusercontent.com/15098003/171268968-bc88c09d-b3c5-4562-9fdf-482efd6d7768.jpg)
- Stronger MG-996R servo resulted on successful tag printing.
- Hall sensor for homing with precision.
- Carousel direction on clockwise only to avoid tape screwing.
- Migration for the ESP32.
- Dual core tasks: one serves the network/app and the other controls all physical operations.
IV - Consistency and Usability (Sep-Oct/2021)
![](https://user-images.githubusercontent.com/15098003/171294518-0ee089ec-255e-46a0-abe0-e298e0d07006.jpg)
![](https://user-images.githubusercontent.com/15098003/171293788-a3c86e39-3c88-48ff-a122-75b7ea9d374d.jpg)
![](https://user-images.githubusercontent.com/15098003/171293793-1dca584e-916c-40a4-add9-b05708c3230d.jpg)
![](https://user-images.githubusercontent.com/15098003/171293818-2b2414f0-f8f0-498c-aa39-45508902d81a.jpg)
![](https://user-images.githubusercontent.com/15098003/171293826-48109b19-11f2-4779-9642-5519e0dd244f.jpg)
![](https://user-images.githubusercontent.com/15098003/171293852-4b092ac5-6451-4703-9160-5ec2a5f6b692.jpg)
![](https://user-images.githubusercontent.com/15098003/171293895-25f8f618-5549-4cfc-b32f-48ae933e61ac.jpg)
![](https://user-images.githubusercontent.com/15098003/171294180-9392b450-8d6c-4aad-9176-0f81f5f763c9.jpg)
- More compact device, with smaller stepper motor for the carousel.
- Tested using NFC to open web app on smartphone, failed (security standards?).
- OLED display to help on configuration and feedback.
- QR code as an alternative to quickly open web app.
- Improvements on web app usability and visuals.
V - Optimization, Extras and Documentation (May/2022)
- Implemented special symbols.
- Few printing optimizations.
- Documentation with texts, schemes, photos and video.
Framework: Arduino
Environment: NODEMCU-32s @3.3.2
- waspinator/[email protected]
- madhephaestus/[email protected]
- ottowinter/[email protected]
- alanswx/[email protected]
- olikraus/[email protected]
- ricmoo/[email protected]
MIT @ Andrei Speridião
If you ever build one, I would love to know ;)