dtv2ser is a small hardware device that bridges TLR’s dtvtrans protocol used to communicate with a DTV via a RS232 interface to your Mac or PC. By using an internal or external serial-to-USB adapter the dtv2ser provides dtvtrans access for all modern PCs where the original dtvtrans parallel cable cannot be used.

The data flow is as follows:

DTV <--dtvtrans--> dtv2ser <--RS232--> USB2Serial <--USB--> Mac/PC


The dtv2ser package currently consists of the following parts:

  1. Hardware
    • 1. board: internal prototype with ATmega8 and RS232 connected via MAX232A and external USB/serial dongle
    • 2. board: protoype design (cvm8board) with published schematics containing ATmega8 in a USB-Stick-like board with FT 232 RL based USB-to-serial chip running at 14.54760 MHz. Limited number of boards were available but now sold out.
    • 3. board: off-the-shelf Arduino 2009 board with minimal adapter HW running an ATmega168 with 16 MHz. This is the current design (as of v0.5) and suitable for all users that want to build their own dtv2ser device.
    • all have 3 LEDs for Status: “Ready”, “Transmit”, “Error”
    • wiring for the dtvtrans DB-9 joystick connector
  2. dtv2ser Server Firmware
    • full dtvtrans command set
    • a full featured firmware with rich command set
    • full description of the dtv2ser serial protocol
    • high speed UART serial transfer 115.2 kbps up to 230.4 kbps
    • hardware RTS/CTS handshaking, 8 bit data, parity none, 1 stop bit
    • config parameters settable during runtime and storable in EEPROM
    • includes AVR bootloader that allows to upgrad the firmware directly via serial and without an ISP
  3. dtv2sertrans Client Tool
    • dtv2sertrans command line tool (similar to original dtvtrans tool)
    • python module for dtv2ser communication
    • portable: runs on Mac, Linux and Windows
    • requires PySerial


  • Version 0.5 – 11.12.2010:
    • size: 1128081
    • md5: f6df968c33acf6d806ad4d785fdbc804
    • minor bug fix release
    • added support for Arduino 2009 boards
  • Version 0.4 – 28.9.2008:
    • size: 1120051
    • md5: 4b8b372d5d078a91c86649d49f4753ee
    • added full dtvtrans 1.0 support (load, save, run, init)
    • added full flash support (sync, dump, map, program, erase, …)
  • Version 0.3 – 3.3.2008:
    • size: 1060708
    • md5: 71c2cba9a53df4d7e521ee7dc1f7e545
    • added fast transfer for dtvtrans 1.0
    • added AutoType and JoyStream
    • added fully automatic bootstrap for mini-modded DTV
  • Version 0.2 – 29.11.2007:
    • size: 1020063
    • md5: fa151986e1ea142c4c07d340c6364720
    • added dtv2ser+usb device schematic and board
    • added ‘boot’ command
    • added serial bootloader for AVR
  • Version 0.1 – 11.09.2007:
    • size: 362418
    • md5: 984ca9c048ae1a6d3c2707d42754e32d
    • initial public release

The archive contains all GPL’ed source code for the dtv2ser server firmware, pre-compiled firmware, the Mac/PC client written in Python (running on Mac OS X, Linux, and Windows), and the schematic for the Hardware.



My dtv2ser connected to my modded DTV (blue case) and attached to my Keyspan USA-HS19 USB-to-Serial adapter.

My development setup: MacBook Pro (left) connected via dtv2ser to my DTV (blue box).

Arduino 2009 board connected as a dtv2ser device to my good old DTV mod.

11 thoughts on “dtv2ser

  1. Pingback: Lallafa’s Blog » dtv2ser 0.4 released!

  2. Pingback: dtv2ser 0.5 released « Lallafa’s Blog

  3. Hi Dirk,

    unfortunately, all cvm8board prototype pcbs are already sold out.
    But, I just released version 0.5 with Arduino 2009 support. Now you can easily build your own dtv2ser device.

  4. Hi giox,

    Yes, changing the MCU variable should do the trick. Actually I just build a firmware for the ATmega 328 and put it on the Arduino page. Since I don’t own this device the version is considered experimental and all feedback is very welcome!

    You wrote: “portable: runs on Mac, Linux and Windows”.
    Well, I only see *nix files (files needing bash) and python files in the subdirs.
    Did I miss something?

    List of used hardware: PC with Windows 7 64bit (python & pyserial installed), Arduino Duemilanove with Atmega328P-PU flashed with your “dtv2ser-0.5b-250000-arduino2009-atmega328.hex” (green LED on after flashing) and a C64DTV2.

    • Yes it runs on windows. All files required for windows are shipped in the zip.
      You only need the python files. They are platform independent.
      Make sure to use a python 2.x and not 3.x.

      The main binary dtv2sertrans is shipped as directly executble on a *nix machine (hence the env call), but it works to simply run the script on windows by calling:

      python.exe dtv2sertrans …

Leave a Reply