Skip to content

Allows sound playback synchronised to a running, jittery Super 8 projector

Notifications You must be signed in to change notification settings

bimac/SynkinoLC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SynkinoLC

Allows sound playback synchronised to a running, jittery Super 8 projector.

SynkinoLC started as a fork of fwachsmuth/Synkino with the following changes:

  • While the original Synkino utilized two 8-bit ATmega328P microcontrollers (one for the frontend and one for the backend) SynkinoLC incorporates a single, more powerful 32-bit ARM processor through the use of a Teensy microcontroller board.
  • Assembly of SynkinoLC is made simple with only a few off-the-shelf components and no SMD soldering required.
  • The firmware has been optimized to fit the 62K flash of the Teensy LC microcontroller board (with some limitations), but Teensy 3.2 is also supported and allows for full functionality.
  • Unlike the original Synkino, SynkinoLC is not designed for battery operation. Use any micro-USB phone charger as a power supply unit.
  • When connected to a host via USB, SynkinoLC provides direct access to its SD card through MTP (Teensy 3.2 only).
  • SD cards can be formatted directly from SynkinoLC as either FAT16, FAT32, or ExFAT (Teensy 3.2 only).
  • Storing a track numbered 999 (e.g. "999-24.ogg") to the SD card will cause SynkinoLC to automatically start playing it after startup.

Most parts of Friedemann's manual for the original Synkino apply for SynkinoLC as well.

Teensy LC vs Teensy 3.2

When building SynkinoLC, you have the option to use either a Teensy LC or Teensy 3.2 microcontroller board. However, as of the time of writing, Teensy 3.2 microcontrollers are unavailable for purchase due to the current global chip shortage. Although the Teensy LC provides ample processing power for SynkinoLC, it has a few minor limitations related to its smaller flash memory of only 62K (compared to 256K on the Teensy 3.2):

  • The binary patch file for the VS1053b audio decoder (patches.053) cannot be included with the firmware and needs to be supplied by means of the microSD-card.
  • You can store settings for "only" 7 projectors (vs 15 on Teensy 3.2).
  • The USB stack has been omitted - you can't use debugging by means of USBSerial. You can, however, use the Teensy's HW serial interface (TX on pin 1, 31250 baud).
  • SdFat is running in low-mem mode (no support for exFAT, limited to 32GB cards and 64 character filenames).
  • No MTP access to the SD card.
  • No option for formatting the SD card.

Neither of these limitations should have a significant impact on the usability of SynkinoLC.

Building the Firmware

SynkinoLC was created with PlatformIO for VSCode. To install PlatformIO:

  1. Download and install official Microsoft Visual Studio Code. PlatformIO IDE is built on top of it.
  2. Open VSCode Package Manager.
  3. Search for the official PlatformIO IDE extension.
  4. Install PlatformIO IDE.

See the official guide for more details on the VSCode integration.

To build SynkinoLC:

  • open Synkino.code-workspace,
  • select the respective project environment (env:teensyLC or enc:teensy31), and
  • start the build

The firmware won't fit TeensyLC unless SD.h is modified as outlined here. A pre-build script will attempt to patch this file automatically.

Choice of OLED display

SynkinoLC has been designed to work with two types of 1.3" OLED display, based on either SH1106 or SSD1306 driver chips:

  • An SH1106 display module (as used in the original Synkino) can be obtained for little money on aliexpress.com (go for the one that says 1.30"OLED 4-SPI on the back). Other SH1106 modules should work as well, as long as they have identical pin-out (the foot-print for the retaining screws might not be an exact fit though).
  • Alternatively, you can go for Adafruit #938 which is based on an SSD1306 driver (you'll have to cut two traces on the back of the module to enable SPI as demonstrated here)

Just connect the display module to the respective slot on the SynkinoLC PCB - the firmware will automatically detect the type of display used.

Bill of Materials

You'll need the following components to assemble SynkinoLC:

Qty Part Description / Comment
1 SynkinoLC PCB
1 1.3" 128x64 monochrome OLED display, SPI see separate comments above
1 Teensy-LC microcontroller board
1 Adafruit VS1053 Codec + MicroSD Breakout audio processing board
1 Texas Instruments SN74AHC14N inverted Schmitt-trigger
2 SparkFun ROB-09453 line sensor breakout (analog)
1 Bourns PEC11L-4215F-S0015 rotary encoder
1 Cliff CL170842CR (or similar) knob for rotary encoder
1 TDK PS1240P02BT piezo buzzer
2 CUI Devices SJ1-2503A 2.5mm audio jack
2 Tensility CA-2203 (or similar) 2.5mm audio cable, stereo
2 Sullins PPPC071LFBN-RC (or similar) 7 pos female header (for SH1106 display)
1 Sullins PPPC081LFBN-RC (or similar) 8 pos female header (for SSD1306 display)
2 Sullins PPPC141LFBN-RC (or similar) 14 pos female header
2 Sullins PPPC181LFBN-RC (or similar) 18 pos female header
1 Adam Tech PH1-07-UA (or similar) 7 pos male header (for SH1106 display)
1 Adam Tech PH1-08-UA (or similar) 8 pos male header (for SSD1306 display)
2 Adam Tech PH1-14-UA (or similar) 14 pos male header

Click here for a full BOM on octopart.com (with SSD1306 display and not including the PCB). All necessary components should be obtainable for about USD/EUR 80-100 including shipping - depending on your choice of display and PCB service.

About

Allows sound playback synchronised to a running, jittery Super 8 projector

Resources

Stars

Watchers

Forks

Packages

No packages published