Countdown Timer for Predator Gauntlet

Hello. New here and thinking that I may need to use Arduino for a prop for a friend of mine.
I'll start off with: I have not used Arduino for anything, but willing to learn and will look around to see if I can find what I'm looking for. However, I have used simple circuits and PCBs. I also have a habit of over-thinking things, so looking for any options.

He wants me to build a gauntlet like in the Predator movies, but he'd like a countdown timer in addition to it.

I've been looking and I've seen binary clocks, and clocks/timers with standard numerals, but nothing in the Yautja (Predator) numerals, so I'll have to do something more custom.

I'm sure that standard countdown timers shouldn't be TOO difficult, however the problem is that there's not really a consensus I've found about the numerals.

The gauntlet will have 4 windows corresponding to individual digits (10 minute, minutes, seconds, 1/10 second) and at least three momentary switches: Set Minutes, Set Seconds, Start Countdown (Maybe a fourth to reset the timer) and powered by a battery. (probably a rechargeable battery via USB, depending on what's needed.)

While I was looking around, I saw a store that has 2 packs of dual alphanumeric displays (14-segment), which I think could possibly work. Otherwise, I would be using 40 individual LEDs that turn off in sequence as the time counts down.

Would this project be feasible while remaining small enough for a wrist-mounted gauntlet?

Any suggestions or advice is helpful.

What about a "10 second" window?

I suggest you spend some time with a great book called the Arduino Cookbook. Skim it from cover to cover and stop on parts that are pertinent to your project. If my memory is correct your project is in there in parts but I am not sure about the numbers but you can do that with a dot matrix, OLED, etc display if you want.

That would probably work out better than what I was thinking, although I'm sure once the initial timing is figured out, it shouldn't be TOO difficult to adjust up or down as needed.

I've looked online at Books A Million and Barnes & Nobel and saw several books called or close to called Arduino Cookbook. Are you talking about the one by Michael Margolis, or a different one?

Also, for the numbers while I was looking around, I had found 14 segment LED displays.. I'm wondering if something like this would work, if I get two and have one positioned above the other.
This is what I was thinking of:
Display Segment on Amazon

Hola evibrian,
This is a very ambitious project, but if you can imagine it and code it, it can be done! I have a friend asking me for something very similar. I am not a "Predator" movie wizard by any means, but I did look up the Yautja numerals, and did see that 14 LED segments are used, but it is a very different layout than a typical 7 segment LED. I did not research if there are any PCB boards ready made your project ...although I can imagine it's been done before. Without knowing your previous coding experience (in C/C++), I would ask you this.... How quickly and easily do you expect this to be accomplished? How accurate does the timer need to be... do you need a RTC (Real-Time-Clock)? Do your momentary switches require a debounce delay? Can you code a switch case statement? These questions are by no means meant to be discouraging, but to visualize the path in front of you. There are many great resources available to get you on your Arduino journey if your are truly just starting out.

https://www.reddit.com/r/predator/comments/j0ugtx/an_updated_graphic_of_the_yautja_alphabet_updated/

Thank you.
I figured a 14 segment display would be the way to go and easier on space than ~40 or so individual LEDs. In the link above there's a 2-pack, with each board having 4 numerals. I figured having one above the other could work.

As far as your questions:
Previous coding experience - I've gone to college (albiet not a great college since it's not around anymore) for computer programming where they taught us Visual Basic, C++ and COBOL (of all things.) I haven't used it, so it may be a refresher if it's needed.

How quickly do I need this to be accomplished: Ideally everything would be done around September, so I have about 3/4 of the year.

How accurate does it need to be: I'll have to ask my friend that.

I've seen videos of other props like this, and looks like they only do a 50 second countdown. But most of these videos are over or near 10 years old.
Predator 1 gauntlet

Suggested parts list:

Arduino Pro Mini or Pro Micro. BUT GET 3.3V VERSION

HT16K33 module.

Li-po pack, maybe 1800~2000mAh

TP4056 charging module with your choice of USB socket.

Above are all easy to find, this next one not so much:

14 or 16 segment digits, red, COMMON CATHODE

I'll be a contrarian here (no surprise to anyone who knows me!!) and announce that this would be much easier if it were built around one of those ESP32 with onboard OLED or TFT combo boards. You'll need to create (copy) a Yautja font but that's likely far less work than assembling multiple components, including 14-segment displays.

It might be able to work, but would depend on the dimensions of the screen.

I've also found these: Hosyond 5 Pcs 0.96 Inch OLED I2C IIC Display Module 12864 128x64 Pixel SSD1306 Mini Self-Luminous OLED Screen Board Compatible with Arduino Raspberry Pi (White)

Do you think these could work as well?

Yes, but the nice thing about the integrated units is that there's less wiring to do. You can also find OLED displays with an attached ESP32. Displays come in many different sizes.

:slight_smile: Yes that is the one, there are now three releases I have read, all are very good.

I'll see if my local Microcenter has anything. I know they have some arduino stuff, so they might have the displays so I can get a better idea on their size.

It's been a while and I've done some digging, like ALOT of digging and I found a solution.

Somehow I managed to stumble upon an old instructable (like 3 years old) that uses a 32x8 LED matrix along with a 16x2 LCD display, and from what I'm able to test, it works well and does what it needs to do.

I have the parts and re-created the wiring schematic and I'm going to use that to convert it over onto a PCB.

I'll likely use the USB to provide power via a power bank a USB with switch.

I'm using EasyEDA to try to create the PCB schematic and would like to know what width should the traces be? At the moment I have them at a default of .254mm and would like any additional feedback (even on the spacing.)

P1 at the top is connecting to the matrix (the other four lines from the matrix connects to the Nano itself.)
And I'm using a 1x10 header footprint for the LCD screen. The buzzer I have detached, but can have it attached if need be.

PCB

A lot of digging? Did you find this in your travels? Uses rectangular leds,
https://www.digikey.ca/en/products/detail/lumex-opto-components-inc/SSL-LX2573SRD/270847?Cat=524729&s=N4IgTCBcDaIGwHYC0BGADAFgJxIHIBEQBdAXyA
a MAX7219 display driver, some handy pics to follow and code hosted by https://www.elkman.net/predator/YautjaCountdown.txt
linked from here:
https://www.therpf.com/forums/threads/another-countdown-timer-gauntlet-using-an-arduino.317899/
and here's the code from the maker, Elkman. Compiled for me no problem, see no reason to think it wouldn't work.
That Arduino Duemilanove is obsolete though. An Uno would work fine but I'd use something smaller such as the Arduino Nano

//We always have to include the library
#include "LedControl.h"

/*
 Now we need a LedControl to work with.
 pin 8 is connected to the DataIn 
 pin 10 is connected to the CLK 
 pin 9 is connected to LOAD 
 We have only a single MAX72XX.
 */
LedControl lc=LedControl(8,10,9,1);

/* we always wait a bit between updates of the display */
unsigned long delaytime=100;

void setup() {
  /*
   The MAX72XX is in power-saving mode on startup,
   we have to do a wakeup call
   */
  lc.shutdown(0,false);
  /* Set the brightness to a medium values */
  lc.setIntensity(0,8);
  /* and clear the display */
  lc.clearDisplay(0);
  
  pinMode(12, OUTPUT);
}

void testSequence() {
  // The decimal point is the most significant bit in this whole mess.
  // Segment g is the least significant bit.
  byte yautjaDigits[10] = {B00000000, B11110001, B11111101, B10100101, // Yautja digits 0-3
    B10111101, B11010111, B10011111, B11010011, // Yautja digits 4-7
    B11111101, // Yautja digit 8, which is the same as 2
    B11111111 // Yautja digit 9
  };
  for (int i = 1; i < 10; i++) {
    lc.setRow(0, 0, yautjaDigits[i]);
    lc.setRow(0, 1, yautjaDigits[i]);
    lc.setRow(0, 2, yautjaDigits[i]);
    lc.setRow(0, 3, yautjaDigits[i]);
    // Twiddle the LED pin to indicate that I changed something
    twinkle();
    delay(1000);
  }
}

void twinkle()
{
  for (int twinkle = 0; twinkle < 6; twinkle++) {
      digitalWrite(12, LOW);
      delay(100);
      digitalWrite(12, HIGH);
      delay(100);
      digitalWrite(12, LOW);
    }
}

void loop() { 
  lc.clearDisplay(0);
  digitalWrite(12, LOW);
  delay(1000);
  testSequence();
  digitalWrite(12, HIGH);
  delay(1000);
}