Skip to content
mungewell edited this page Aug 14, 2026 · 5 revisions

Welcome to the 'pico-timecode' wiki!

What is 'pico-timecode'?

'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.

'PT-Papa' board

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.

'PT-Thrifty' board

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.

Budget

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...

Code

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.

Accuracy

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.

Working with LTC/Timecode files

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.

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

Clone this wiki locally