-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the 'pico-timecode' wiki!
'pico-timecode' is an Open-Source solution for LTC Timecode, using the RP2040's PIO blocks to count time divisions and render the LTC waveform. It works with all common frame rates, with/with-out drop frame operation. It also has the ability to read LTC from an external device, and sync to it.
LTC Timecode is used in the TV/Movie industry as a way to synchronize video and audio recordings, which offers improvements in workflow and (most importantly) decreases overall editing time.
This technology has been implemented in 2 custom PCBs; firstly the (now renamed) 'PT-Papa' board based around the Raspberry Pico board, with Waveshare OLED screen module and input/output connectors.

Secondly with the 'PT-Thrifty' board based around the Waveshare RP2040-Zero. 'PT-Thrifty' aims to make LTC accessible to DIY/budget film-makers, and thus it uses a minimum of components. It has a UI with single button and RGB LED, the control of the device is achieved by navigating through a map of states.
There are some demonstrations of 'pt-thrifty' here: https://www.youtube.com/playlist?list=PL1t1GwpUNc-VbEAXxscaxrPQlrt16c4yX
As the project is Open-Source it's intended to be customized for other implementations.
This is a low cost project, but obviously cost is a factor of the implemented features. PT-Thrifty aims to be the lowest possible cost, and in the minimum form can be built for under $25!
- RP2040-Zero 'control' board : $3-$5
- PT-Thrifty 'interface' PCB : $5
- PT-Thrifty components and replacement TCXO : $15
You can also add displays (OLED or 7/14-segment LED), batteries, enclosures, etc...
The code for the project is written in micro-Python, with the core logic in the pico-timecode.py file. This can be run on its own as a technology proof/test script.
The extra functionality to run the features of the boards are coded in separate files, which should be copied as main.py to the target board/PCB. There is also a libs folder which contains code from other projects, used with their permissive licenses.
'pico-timecode' is licensed under the MIT license, and is free to use in other projects. Since the core is the PIO code, this could easily be re-used in projects which are coded in C or other language.
The accuracy of the LTC Timecode is derived from the accuracy of the XTAL used on the RP2040 board, for the custom board it's recommended that the stock XTAL be replace with a more accurate TCXO (temperature compensated crystal oscillator). The stock XTAL is OK for testing or a short duration (say 4hours), but will be adversely affected by changes in temperature/environment.
The TCXO will meet the desired spec of less than 1/2frame drift in 8hours of operation.
Further more 'pico-timecode' can be calibrated against a 'know good' time source, though this is not strictly needed.
Once you have recorded your audio and video files, they will likely only have LTC in the audio tracks. The professional video editors (Premier Pro and DaVinci) have in-built tools for synchonizing with LTC.
There are also some (commercial) stand-alone applications which might be of interest.
- Tentacle Timecode Tool : https://tentaclesync.com/downloads
- Sidus TC Link : https://www.sidus.link/sidusTc/software
For the Open-Source enthusiasts.
I even found reference that someone was working on LTC capability for FFMPEG: https://git.sr.ht/~jmaibaum/ffmpeg/commit/86286f59426090d618f6badc90fbc532b0e404dc