Skip to content

Commit

Permalink
Merge pull request #16 from CircuitSetup/v2
Browse files Browse the repository at this point in the history
V2 - Lots of new functionality & bug fixes thanks to Thomas Winischhofer (A10001986)
  • Loading branch information
CircuitSetup authored Sep 5, 2022
2 parents 587ec1c + 1f61244 commit 5dd80aa
Show file tree
Hide file tree
Showing 68 changed files with 6,916 additions and 1,818 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
89 changes: 32 additions & 57 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,74 +5,49 @@

This Time Circuits Display has been meticulously reproduced to be as accurate as possible to the one seen in the Delorean Time Machine in the Back to the Future movies. The LED displays are custom made to the correct size for CircuitSetup. This includes the month 14 segment/3 character displays being closer together, and both the 7 & 14 segment displays being 0.6" high by 0.35" wide.

The Destination Time can be entered via keypad, and the Present Time can keep time via NTP. There is also a time travel mode, which moves the Destination Time to Present Time, and Present Time to Last Time Departed. The startup, keypad dial sounds, and time travel sounds are played using I2S.

[To see some things in the code that could use some work, please see here.](https://github.com/CircuitSetup/Time-Circuits-Display/issues)

## Kits
[Time Circuits Display kits can be purchased here with or without 3d printed parts.](https://circuitsetup.us/product/complete-time-circuits-display-kit/)

[View the instructions for assembling your CircuitSetup.us TCD Kit](https://github.com/CircuitSetup/Time-Circuits-Display/wiki)

### Kit Parts
- 3x Segment displays in (Red, Green, Yellow)
- ESP32 powered control board
- TRW style number keypad (must be disassembled to use number keys, pcb and rubber backing)
- Gels for displays (Red, Green, Yellow)
- Mounting hardware (37x screws for display enclosure to outer enclosure, display PCB to enclosures, speaker mount, keypad mount, 4x small screws for keypad PCB to bezel mount)
- Connection wiring (3x 4p JST-XH for display I2C, 1 7p JST-XH for keypad)
- ESP32 powered control board
- Programmed ESP32 dev board
- TRW style number keypad (must be disassembled to use number keys, pcb and rubber backing)
- Square LED lenses (2x white, 1x red/amber/green)
- RTC battery
- Square keypad LED lenses (2x white, 1x red/amber/green)
- Small 4ohm 3W speaker
- Display time label stickers
- Display stickers
- 3d printed enclosures and keypad housing OR Aluminum enclosures (optional)

## Features
#### Complete Time Circuits functionality with movie sound effects
- Enter any date via keypad
- Time travel to the Destination Time with display effects
- Return from time travel
- Automatic rotation of times gone to or displayed in the movie (optional rotation intervals, or off)
#### Present Time as a clock
- On-board Real Time Clock (RTC)
- Get accurate time from NTP (network time) when connected to a WiFi network
- Support for time zones and automatic DST
- Alarm function (sounds customizable with an SD card)
#### Other features
- Settings interface web portal
- Keypad menu for adjusting various settings, viewing IP address, and WiFi status
- Configurable WiFi connection timeouts and retries
- Optional power-up intro with sound
- Optional sound on the hour
- Optional external fake "power switch"
- Optional external trigger for a time travel event (for other props)
- Option to make time travels persistent over reboots
- SD card support for custom audio files
- 24-hour clock mode for non-Americans
- Night mode (displays off or dimmed)
- Option to make time travels persistent over reboots
- Built-in installer for default audio files in addition to OTA firmware updates


### Display Features
- 1x 3 character 14 segment display
- 10x 1 character 7 segment displays
- I2C interface:
- Red (Destination Time) is 0x71
- Green (Present Time) is 0x72
- Yellow (Last Time Departed) is 0x74
- Color:
- Red 630nm
- Green 570nm
- Yellow 587nm
- Measurements: 8.5" x 1.45" (210.82 x 36.83mm)
- Hole Spacing ([same as LMB aluminum boxes](https://lmbheeger.com/cr852-bluegrey.aspx)):  3.75" x 1.28" - 6 total

### Control Board Features
- Measurements: 4.53" x 4.12" (115.18 x 104.62mm)
- Real Time Clock
- Ability to get time from NTP (via ESP32 wifi)
- Class D Mono Audio Amplifier - 4ohm
- Manual volume control
- SD card slot (sd card not included)
- 2 additional GPIO outputs (13 & 14)
- 1 SPI output
- On board power supply which can take input from 6-20V DC
- ESD filtering to prevent interference
- Can be powered by ESP32 micro USB port

#### Control board pinout
- I2C:
- SCL - 22
- SDA - 21
- SD Card (SPI):
- CS - 5
- MOSI - 23
- MISO - 19
- SCK - 19
- Real Time Clock DS3231M (I2C addr: 0x68):
- SQW - 15 (used to blink LEDs every second)
- Keypad PCF8574T (I2C addr: 0x20):
- INT - 4 (can be used as an interrupt, but is not currently)
- Mono sound output I2S / MAX98357
- DIN - 33
- BCLK - 26
- LRCLK - 25
- Other:
- Keypad White LED - 17
- Keypad Enter Button - 16
- Volume - 32
- Status LED - 2 (nodeMCU)
23 changes: 12 additions & 11 deletions Software/platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -16,30 +16,31 @@ data_dir = src/data
platform = espressif32
framework = arduino
board = nodemcu-32s
platform_packages =
framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git
board_build.f_cpu = 160000000L
board_build.flash_mode = dout
lib_deps =
https://github.com/joeyoung/arduino_keypads/
mathertel/OneButton
earlephilhower/ESP8266Audio @ ^1.9.0
earlephilhower/ESP8266Audio @ ^1.9.7
gianbacchio/ESP8266Spiram @ ^1.0
HTTPClient
WifiClientSecure
adafruit/RTClib @ ^2.0.0
chris--a/Keypad @ ^3.1.1
https://github.com/tzapu/WiFiManager.git
ArduinoJson @ ^6.19.0
ArduinoJson @ ^6.19.4
upload_speed = 921600
monitor_speed = 115200
build_flags =
-std=gnu++11
-mtarget-align
#-DTEST_MODE ;turns on all LEDs on startup
-DTC_DBG ;enables serial debug, and tests displays on startup
#-DUSE_SPIFFS ;use SPIFFS for arduinoespressif32 < 2.0, otherwise use LittleFS - If LittleFS uncomment board_build.filesystem below
#-DIS_ACAR_DISPLAY ;changes the month output to 2 numbers, per the original A Car display
#-DGTE_KEYPAD ;keypad mapping for real GTE/TRW keypad control board
src_build_flags =
board_build.filesystem = LittleFS ;uncomment if using LittleFS - make sure USE_SPIFFS IS commented above
build_src_flags =
-DDEBUG_PORT=Serial
-ggdb
;upload_port = COM4
;debug_tool = esp-prog
;debug_init_break = tbreak setup
;debug_speed = 500
;uncomment the following to use the esp32 exception decoder
#monitor_filters = esp32_exception_decoder
build_type = debug
1 change: 1 addition & 0 deletions Software/src/alt_sound/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Alternative sounds. Copy these to a FAT formatted SD card and leave this card in the slot.
Binary file added Software/src/alt_sound/alarm.mp3
Binary file not shown.
Binary file added Software/src/alt_sound/hour.mp3
Binary file not shown.
Binary file added Software/src/alt_sound/nmoff.mp3
Binary file not shown.
Binary file added Software/src/alt_sound/nmon.mp3
Binary file not shown.
Loading

0 comments on commit 5dd80aa

Please sign in to comment.