Skip to content
mungewell edited this page Dec 26, 2025 · 2 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 be the lowest cost timecode device (less than $25 per device) 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.

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

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.

Clone this wiki locally