This version is:* derived from Firmware v1.2 sources* ported MSP430 architecture* tested on msp430g2452 and msp430g2211* built from scrap parts

Following are a hand-drawn schematic and the accompanying "routing" diagram (note that there are a pull-up resistor and a pull-down capacitor missing on ¬RST, but the one on P1.3 is handled by P1REN):

You can have a look at the repository for my changes, its origin is the v1.2 sources.

There are currently three different branches:* with_crystal_sync uses an external 32 KHz Xtal for clock calibration* master uses the factory-calibrated values instead, eliminating the need for the external Xtal, and saving a few dozen bytes* 8k_fill removes the debugging code to fill the 8 KB of ROM of the MSP430G2452 with as many TV codes as possible

Most of the changes are hardware related, and can be found in the following functions of main.c:* main: clock setup, hardware configuration, main loop providing low power mode switching* blast_code: timer setup for the carrier* xmitCodeElement: output pin function selection depending on carrier usage

Note that I initially tried to use an interrupt to handle the carrier manually, instead of relying on the Capture/Compare Control Register, which turned out to not work so great, due to the delay function not accounting for the time spent in the interrupt handler.