Why does it need perl?

The MS-AVR application is written primarily in C, small part in assembly.

The perl is needed to make code maintenance easier. For example global.h contains a struct config_t with lines like:

uint8_t awev; // After-start Warmup Percent enrichment add-on value

Perl is used to make varstr.h and magicstr.h to convert the elements of config_t into strings that get loaded into the flash, so that the // comment string can be displayed on the lcd in the appropriate menu (GenBoard/MenuSystem), particularly mtt c.

MS-AVR can dump it's configuration to the serial port with menu mcd, the above line becomes


(if the value if the given enrichment is 04 hexadecimal).

The edited (config or tables) datafile can be converted by Perl to menucommands that can be sent via serialport, see GenBoard/InitialConfig.

This is very convenient.

The time of compiling is also written into the flash (compile_time.h) with the help of a perl script.

Many systems have Perl installed by default.

To install Perl on inferior operating systems (Windows to the uniformed ;-), activeperl is a good choice.

You can choose to follow RunningProgOnWin? page, the very first step is getting perl anyway.

Download the 8.6MB Perl 5.6.1 MSI package, and the 2MB Microsoft MSI installer package if required.

The rest of this section should not be needed if one follows RunningProgOnWin?.

For using the GenBoard/Firmware/BootLoader you also need to install the Win32::SerialPort module. Win32::SerialPort isn't directly available with Active Perl 5.6, but it requires Win32::API which is, so start ppm from command prompt (C:\Perl\bin\ppm or use the Menu Shortcut) and type "search Win32::API", and then "install 1" (needed because it might find two modules starting with Win32::API). That should complete successfully. Next, download Win32::SerialPort from and unzip it to a local directory. You can then open a DOS prompt and cd into the directory to run "perl Makefile.PL", "perl" to test (don't worry about errors :-), then finally "perl" to install it.

I couldn't get the automated install of Win32::API to work so I downloaded it from:, unzip and install instuctions are included in README. -johan