Coder Social home page Coder Social logo

e-tkt's Introduction


teaser_4

E-TKT: anachronic label maker

Andrei Speridião 2022 - http://andrei.cc


table of contents


🙃 what is it?

étiquette f (plural étiquettes)

"ticket, memorandum, attach, stick, pierce, sting, to be sharp, goad, puncture, attach, nail"

  1. tag, label
  2. prescribed behavior

E-TKT is a DIY label maker that mixes both old fashioned and contemporary technology to create something as simple as... Labels!


🎥 see it working 🎥


🤔 why?

TLDR: curiosity, technical challenge and of course organizing stuff.

motex3

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.

low_DSC8695 copy annotated

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!


...anachronism 🤓

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.


⚙️ how does it work?

how

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.


💡 features

🌟 highlights

  • 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);

📱 web app

  • 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;

🔌 device

low8522 low8574 low8501

  • 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;

🧩 components

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

⚡ electronics

Schematic_e-tkt_2022-05-30

Power

  • 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).

Logic Level

  • As the ESP32 uses 3.3v logic, we need this conversion for parts that are running on higher voltage (servo and hall sensor).

Press

  • The servo uses 6v, higher voltages tend to damage it.

Carousel

  • NEMA stepper, driver and a hall sensor to match the position origin.

Wifi reset

  • A tact button that when pressed while booting, clears the saved credentials.

Feeder

  • Reduced stepper motor along with its standard driver.

User interface

  • Running on 3.3v an I²C OLED display and two LEDs (no need for resistors).

🧵 3D printing

16 parts in total, using approx 200g of PETG filament.

exploded

📐 All the .stl provided are in the correct orientation for optimal printing:

  • 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

🎛️ Settings

  • Layer height: 0.25mm
  • Infill: 20%
  • Wall line count: 3 + 1 (Cura usually adds the later together with the infill)
  • Top/bottom layers: 4

🛠️ to do


🌑 process 🌘🌗🌖🌕

I - Experiment (Mar/2021)

  • 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)

  • 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)

  • 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)

  • 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.

🦝 - Extras

🔤 label printing improvements along the way

low_DSC8701 copy 2


🤸 all the 3d printed iterations

low_DSC8689 copy


📚 libraries

Framework: Arduino

Environment: NODEMCU-32s @3.3.2


⚖️ license

MIT @ Andrei Speridião

If you ever build one, I would love to know ;)

...for more: andrei.cc

e-tkt's People

Contributors

andreisperid avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.