February 21, 2023
Description
This is a working replica (and a remix of a Clockspring design) of the Mystic Seer from the original Twilight Zone series
https://en.wikipedia.org/wiki/Nick_of_Time_%28The_Twilight_Zone%29
Here is a link to the Seer in action:
Ever since I was a kid watching Twilight Zone I thought this Mystic Seer was the coolest thing and it still is one of my favorite episodes.
I stumbled across this model made by a gentleman who goes by the name of "Clockspring" on MyMiniFactory.com. He has a very impressive body of work! Check him out! Links to him at the bottom!
Anyway... I think he did an amazing job and I'm very grateful to him for sharing his initial design files. I downloaded and printed the model as he designed it and was very pleased with what he created. I am however a glass half empty kind of guy and all I ever see in most things is what I feel could be improved upon. I hate that about myself sometimes, but it does make me a great product tester.
There were only a few items that I thought needed improved upon because again, I think Clockspring is amazing and did an incredible job with his design.
With that said, and with Clockspring's permission, here are the tweaks I added to his design to come up with my version:
I shortened the lever slot.
I made the lever thicker.
I made the Printer Bracket thicker.
I altered the printer bracket to accommodate a real lock.
I added a printer stop to hold the printer firmly in place.
I purchased a manufactured Seer Head (Bobblehead).
I created an angled, recessed hole to Illuminate the Seer.
I created posts, holes and circle markers to use magnets for the rear cover.
I didn't like how the rear cover just sort of sat there. I think if the print tolerances on all printers were perfect, it would fit snugly for everyone and not be a problem but on my printer, it fit loosely and would not stay in place.
I created little posts that hold small round magnets.
I created holes for the posts in the frame at the correct locations.
I created "circles" on the rear cover at the same locations to properly aid in placing magnets.
Now the cover "sucks closed" easily, stays put and can still be opened easily.
I changed the code slightly
I added a "Mystic Seer" title to each fortune printed with a space after.
I tweaked the Flash Interval and delay intervals
Here are the items you need to build your own Mystic Seer
NOTE: I built several of these for some friends for Christmas, so I didn't hesitate to buy packages of multiple items when they were available. You may want to look around to purchase single items rather than packagers of multiple items. Some item links below are for multiples and are exactly what I purchased.
(1) Thermal Printer: https://www.adafruit.com/product/597
(1) Thermal Printer Power Supply 5V 2A: https://www.adafruit.com/product/276
(1+) Thermal Printer Paper:
Single Roll: https://www.adafruit.com/product/599
(1) Female DC Power Adapter: https://www.adafruit.com/product/368
(1) Micro Controller, Arduino Uno or similar compatible like this one: https://www.adafruit.com/product/2488
(1) Micro Controller Power Supply 9V 1A: https://www.adafruit.com/product/63
(1) Seer Head - BobbleHead: https://ebay.us/vlUsTJ* 2-21-23 Update: This head isn't available right now. Please let me know if you find one somewhere and I'll update the link. Another maker (Joe Guthrie) mentioned this head as an option: Devil head for Twilight zone fortune vending machine by cerberus333 - Thingiverse
(12) Magnets 8mm x 3mm: https://www.amazon.com/gp/product/B07B3SDRCP/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
(1) Spring 9mm x 2mm for Lever Arm:
Full Set: https://www.amazon.com/gp/product/B076XKY3JM/ref=ppx_yo_dt_b_asin_title_o08_s01?ie=UTF8&psc=1
Single Spring: https://www.amazon.com/gp/product/B07Z9D7KGK/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1
NOTE: I found this single spring to be pretty stiff so I used a weaker spring from the Spring set above.
*(1) 5mm Bright White 3V 20mA LED for Seer: https://www.amazon.com/gp/product/B01AUI4VQU/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&psc=1
Note: The Arduino puts out 5 volts, not 3 so the LED is pretty darn bright. A resister could be added to lower the voltage if desired but I directly wired mine to the Arduino and love the look. I don't think the light will get fried any time soon. It isn't on very long and it doesn't get used often.
(1) Cheap 20mm Lock: https://www.amazon.com/gp/product/B082BK1G57/ref=ppx_yo_dt_b_asin_title_o05_s00?ie=UTF8&psc=1
(1) Momentary Push Button 12MM: https://www.amazon.com/gp/product/B07YHJVK5M/ref=ppx_yo_dt_b_asin_title_o07_s00?ie=UTF8&psc=1
M3 bolts and nuts: https://www.amazon.com/gp/product/B07WZL3Z7H/ref=ppx_yo_dt_b_asin_title_o08_s00?ie=UTF8&psc=1
(4) M3 x 8mm (for Printer Bracket)
(5) M3 Nuts
Male to Male Jumper Wires: https://www.amazon.com/dp/B07GD2RP9C/ref=cm_sw_em_r_mt_dp_Z722FbMBG9V15?_encoding=UTF8&psc=1
Male to Female Jumper Wires: https://www.amazon.com/dp/B07GD1D64V/ref=cm_sw_em_r_mt_dp_2922Fb3Y5K87D?_encoding=UTF8&psc=1
NOTE: You will use mostly male ends and only two female ends for the LED. Yes you could solder regular wire to the LED and to the Arduino pins but these jumper wires make it easy all around, plus they can be used for other projects.
(1) Zip Tie to tidy wires inside
(1) Zip Tie mount to hold the wires: https://www.amazon.com/dp/B078P8TPPZ/ref=cm_sw_em_r_mt_dp_6WK0FbHNKQGFX?_encoding=UTF8&psc=1%20
Tools Needed:
Software/Wiring/Code:
You will need a computer with the Arduino IDE Software Installed: https://www.arduino.cc/en/software
Follow this Tutorial to hook up your push button to the Arduino: https://www.arduino.cc/en/Tutorial/Button
NOTE:
The pin-outs in the button tutorial were maintained when Clockspring wrote his Arduino code so just follow it and you will be fine. Follow the tutorial on the Thermal Printer/Arduino Setup: https://learn.adafruit.com/mini-thermal-receipt-printer
You only need to follow the printer tutorial up to the point where the Libraries are installed in the Arduino IDE and you can print a test
The pin-outs to hook up the thermal printer to an Arudino were also maintained by Clockspring so just follow it and you will be fine.
Before you put anything together, do this first!
* Insert the nuts in the box frame
The FIRST thing you should do is get the nuts in place in the frame so that you can attach the printer bracket later. This is by far the worst part of the build and if you assemble it at all first, you could damage whatever you added to the frame when you try to put the nuts in.Line the nuts up with the nut holes for the printer bracket. I did one on each of the 4 corners of the printer bracket and that worked out fine.I used a C Clamp to squeeze the nut into the hole making sure the box is on a flat surface. DO NOT use the c clamp on the box directly or you will damage it. Been there, done that...several times. 😢
Some Misc Notes:
When you print the main box, print it with the napkin holder side down of course and create some supports for both the coin slot and the lever slot. My I3MKIII3 sometimes bridged those gaps fine and other times it did not. The print takes too long to chance it so use some supports. OR, you can use the included mainbox. 3mf which is the exact file I use to print with supports ready to go.
When you print the paper tear off insert, print it with the smallest nozzle and lowest layer height possible. I find this gives the TINY Teeth the best definition and makes tearing the paper off much easier. I printed mine with a .25 Nozzle and .05mm layer height. Overkill perhaps but it definitely made a difference and works much better than the tear off I printed with a standard .4 nozzle and .10 Layer height.* I print the printer bracket out of PETG rather than PLA. PETG is stronger and more flexible. Maybe PLA would be ok. I just went for the PETG and it worked great so stopped there.
For Reference:
ClockSpring's Model I modified is here: https://www.myminifactory.com/object/3d-print-twilight-zone-mystic-seer-thermal-printer-upgrade-48622
ClockSpring's Original Model is here: https://www.myminifactory.com/object/3d-print-47602
My TinkerCad Files are here: https://www.tinkercad.com/things/5CSnxzDJKvO
ARDUINO CODE:
const int numFortunes = 15;
const char* fortunes[] = {
"It is quite\npossible",
"It has been\ndecided in\nyour favor",
"You may\nnever know",
"If you move soon",
"That makes\na good\ndeal of sense",
"Try again",
"There's no\nquestion\nabout it",
"Do you dare risk\nfinding out?",
"What do\nyou think?",
"Your chances\nare good",
"It has already\nbeen taken\ncare of",
"If that's what\nyou really want",
"The answer to\nthat is obvious",
"That's up to \nyou to\nfind out",
"It all depends\non your point\nof view"
};
const int eyePin = 13;
const int leverPin = 2;
const int dirPin = 8;
const int printerTxPin = 6;
const int printerRxPin = 5;
SoftwareSerial mySerial(printerRxPin, printerTxPin);
Adafruit_Thermal printer(&mySerial);
void setup() {
pinMode(eyePin, OUTPUT);
pinMode(leverPin, INPUT);
mySerial.begin(19200);
printer.begin();
randomSeed(analogRead(3));
}
void loop() {
if (digitalRead(leverPin) == HIGH) {
// no need to debounce, since this will take a few seconds to execute
// do some flashy eye stuff
for (int i=10; i>0; i--) {
digitalWrite(eyePin, HIGH);
delay(i15);
digitalWrite(eyePin, LOW);
delay(i15);
}
digitalWrite(eyePin, HIGH);
delay(1);
printFortune();
delay(3000);
digitalWrite(eyePin, LOW);
}
}
void printFortune() {
printer.wake();
printer.setDefault();
printer.justify('C');
printer.setSize('S');
printer.underlineOn();
printer.println(F("MYSTIC SEER"));
printer.underlineOff();
printer.println(F(""));
printer.setSize('L');
printer.println(getRandomFortune());
printer.feed(7);
printer.sleep();
}
String getRandomFortune() {
int randomIndex = random(0, numFortunes);
return fortunes[randomIndex];
}
License:
Creative Commons — Attribution — Noncommercial — Share Alike