Skip to the content
2 layers94 × 57.5 mmROM reader, the printed circuit board in 3D

Fiat Lancia Tester modules reader for ROMs preservation

Size
94 × 57.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
49
Nets
74
Pads
223
Tracks, vias
474, 43
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
20 Apr 2024
Updated
2 Aug 2026

Overview

ROM reader is an open-source printed circuit board by trwgQ26xxx, from the trwgQ26xxx/FLT_module_reader repository on GitHub. It is a 2-layer board of 94 × 57.5 mm with 49 parts on 74 nets, routed with 474 tracks and 43 vias.

It is built around the ATMEGA128A-AU and CH340G. Its parts include 16 capacitors, 14 resistors, 5 connectors, 4 diodes and 2 ICs. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

2

README

README.md

Fiat Lancia Tester \ Alfa Romeo Tester \ Check Up 1 module reader

Dedicated module reader for FLT\ART\CU-1 ROMs archiving.

FLT_DUMPERS NEW_ROM_READER ROM_READER_87C510_ADAPTER

Contact : trwgQ {leechers not welcome} 26 {remove spaces} xxx {remove spaces} {at} proton {dot} me

Disclaimer

I do not consent to the use of all or part of the project for commercial purposes!

Nie wyrażam zgody na wykorzystanie całości bądź części projektu w celach zarobkowych!

License

Shield: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

CC BY-NC-SA 4.0

Directories organization

  • firmware - MCU firmware, written in C.
  • pc_software - PC software, written in Python.
  • PCB - Reader PCB project, designed in KiCad.
  • ADAPTERS - Adapter PCB projects, designed in KiCad.
  • DS - data sheets of used components

Usage

WindowsLinuxmacOS
reader COM[number]./reader /dev/ttyUSB[number]./reader /dev/wchusbserial[number]

For example:

WindowsLinuxmacOS
reader COM1./reader /dev/ttyUSB0./reader /dev/wchusbserial300

where /dev/wchusbserial300 (on macOS), /dev/ttyUSB0 (on Linux) or COM1 (on Windows) should be actual serial port name of connected ROM reader.

Basic instructions

  1. (optional step) search_ports script can be used to identify ROM reader serial port name.

The ROM reader uses the CH340 serial chip, which can be identified by the VID/PID values of 1A86/7523, respectively.

SEARCH_PORTS

  1. Connect the ROM reader to the PC. Running the program on a PC without a connected module will result in an error.

NO_MODULE

NO_MODULE_WIN

  1. If a module is connected, the reader detects which ROMs are present in the connected module. In this example, we have a module with all three (ROM A, B, and C). If at least one ROM is installed (which will always be the case, since ROM B must be present), the program will prompt you to enter a prefix for the files that will be saved on the PC. I entered M99A_IT as an example. After confirming by pressing Enter, the ROM data dumping process begins:

MODULE_ABC

MODULE_ABC_WIN

  1. Data integrity is continuously checked using CRC while downloading individual blocks (each block is 512 bytes). In most cases, it may be advisable to repeat the dumping operation twice, disconnecting and reconnecting the ROM module to clean the contacts slightly. Finally, individual files containing the ROM data are saved to the PC:

STORED_FILES

STORED_FILES_WIN

The process is similar for other modules. Here is an example if the module contains only ROM A and B:

MODULE_AB

or ROM B only:

MODULE_ABC

The program reads the contents of only the ROMs that are present in the module.

RAM adapter

The RAM adapter is used for SRAM testing. It was primarily constructed to test the M48Z02 (used in FLT/ART) and the M48T02 (used in CU-1). The RAM adapter takes the form of a standard FLT ROM module. Additionally, it requires a connection to a supplementary 2-pin connector with the #WR signal, which is not present on the DSUB-25 connector of the ROM.

NEW_RAM_ADAPTER

Before usage, the RAM adapter must be configured to the correct RAM variant using solder bridges (SB1 - SB3) on the PCB. The configuration is as follows:

RAMSizeSB1SB2SB3
M48T02, M48T12, M48Z02 and M48Z122kBOFF1-21-2
M48T08, M48T18, M48Z08 and M48Z188kBOFF1-22-3
6225632kBON2-32-3

The supported commands are:

  • RAM_test ram_type serial_port, for example: ./RAM_test M48T02 /dev/ttyUSB0

This command tests the SRAM battery and SRAM memory. The supported SRAM types (ram_type) for this command are:

ram_typeSizeType
M48T022kBbattery-backed SRAM with RTC
M48Z022kBbattery-backed SRAM
M48T088kBbattery-backed SRAM with RTC
M48Z088kBbattery-backed SRAM
S6225632kBSRAM

RAM_TEST

  • RAM_clock_cmd ram_type command serial_port, for example ./RAM_clock_cmd M48T02 set /dev/ttyUSB0

Executes an RTC-specific command. The command (command) can be:

commandDescription
startStarts the internal oscillator and enables normal clock operation.
stopStops the internal oscillator, which saves battery power if the SRAM is left on the shelf for an extended period.
setSets the current time.
resetResets all registers, stops the internal oscillator, and sets the time to 0:0:0 on 1-1-2000.

The supported SRAM types for this command are:

ram_typeSizeType
M48T022kBbattery-backed SRAM with RTC
M48T088kBbattery-backed SRAM with RTC

RAM_CMD

  • RAM_clock_read ram_type serial_port, for example ./RAM_clock_read M48T02 /dev/ttyUSB0

Retrieves the time from the SRAM RTC and prints it on the screen in an infinite loop at a rate of twice per second. Use Ctrl-C to stop the execution of this command.

The supported SRAM types for this command are:

ram_typeSizeType
M48T022kBbattery-backed SRAM with RTC
M48T088kBbattery-backed SRAM with RTC

RAM_CLOCK_READ

Complete procedure to test battery-backed RAM

  1. Use RAM_test to check the RAM battery and RAM memory cells.
  2. If the RAM has an RTC:
  • Execute the reset command to reset the RAM clock.

  • Execute the start command* to starts the internal oscillator and enable normal clock operation.

  • Execute the set command to set the current time.

  • Run RAM_clock_read to verify both the validity of the time and that it increments. If both conditions are met, the RTC is functioning properly.

87C510 adapter

The 87C510 adapter is designed for reading ROMs used in certain Bosch Motronic ECUs. The TMS87C510 is a 64 KB UV-erasable, multiplexed EPROM that supports both 8-bit and 16-bit output modes. The adapter is implemented in the form of a standard FLT ROM module, with the 87C510 configured and wired as ROMB.

87C510_ADAPTER MOTRONIC_ECU

Notes

Atmega64A fusebits should be configured as follows:

ExtendedHighLow
0xFE0xC90x1F

Parts

49
QtyValueFootprintReferences
10100nCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC2, C3, C5, C8, C9, C10, C11, C12, C13, C16
822kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR2, R3, R4, R5, R6, R7, R8, R9
422pCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC6, C7, C14, C15
4MHMountingHole:MountingHole_3.2mm_M3_DIN965H1, H2, H3, H4
2100uCapacitor_SMD:CP_Elec_6.3x7.7C1, C4
210kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R10
22k2Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR11, R12
25k1Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR13, R14
10.5AFuse:Fuse_2512_6332Metric_Pad1.52x3.35mm_HandSolderF1
112MHzCrystal:Crystal_HC49-4H_VerticalY2
14148Diode_SMD:D_SMA_HandsolderingD1
17.3728MHzCrystal:Crystal_HC49-4H_VerticalY1
1ATmega128A-APackage_QFP:TQFP-64_14x14mm_P0.8mmU1
1BUSYLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD4
1CH340GPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU2
1DETECTLED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD3
1ISPConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_HorizontalJ3
1RAM ADAPTER EXTConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_HorizontalJ2
1ROM MODULEConnector_Dsub:DSUB-25_Socket_Horizontal_P2.77x2.84mm_EdgePinOffset4.94mm_Housed_MountingHolesOffset4.94mmJ1
1RSTButton_Switch_THT:SW_PUSH_6mmSW1
1SchottkyDiode_SMD:D_SMB_HandsolderingD2
1TTL_UARTConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_HorizontalJ4
1USB C SOCKETConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ5

More from trwgQ26xxx/FLT_module_reader

2
  • 2 layers78 × 66.5 mmRAM adapter, the printed circuit board in 3D

    RAM adapter

    trwgQ26xxx/FLT_module_reader

    Fiat Lancia Tester modules reader for ROMs preservation

    23 parts2
  • 2 layers78 × 66.5 mm87C510 adapter, the printed circuit board in 3D

    87C510 adapter

    trwgQ26xxx/FLT_module_reader

    Fiat Lancia Tester modules reader for ROMs preservation

    9 parts2

Similar boards

  • 2 layers100 × 100 mmZxevo1010 main, the printed circuit board in 3D

    Zxevo1010 main

    UzixLS/zxevo1010-board

    10x10cm PCB variant of ZX-Evolution project for G738/G706 enclosure

    252 parts26
  • 2 layers99.8 × 99.8 mmVikings Robotics PCB, the printed circuit board in 3D

    Vikings Robotics PCB

    MrBruh/Vikings-Robotics-PCB

    A board with 2 ATMEGA microprocessors for controlling up to 7 DC motors and 4 servos

    261 parts1
  • 4 layers95.9 × 90.2 mmYkts payload, the printed circuit board in 3D

    Ykts payload

    cansat-ptl/cubesat-boards

    YKTSAT Kicad board files - mirror of https://git.yktaero.space/yktaero-dev/cubesat-boards

    156 parts
  • 4 layersRfsniffer, the printed circuit board in 3D

    Rfsniffer

    s3c/rfpirate

    General purpose ISM interfacing hardware based on the CC1101

    140 parts
  • 2 layersCabinate, the printed circuit board in 3D

    Cabinate

    jibonaronno/documentsA

    It is required to change settings using SCLManager.exe when required for new setup.

    75 parts4
  • 2 layers40 × 37 mmLidar, the printed circuit board in 3D

    Lidar

    le-flav-b/VEMAR

    Vehicle for Exploration, Mapping & Air-quality Recon 🪖

    35 parts1

Questions

How big is the ROM reader PCB?

It measures 94 × 57.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ROM reader use?

49 parts, built around the ATMEGA128A-AU and CH340G. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the ROM reader KiCad files?

From the trwgQ26xxx/FLT_module_reader repository on GitHub, at the commit this page was made from: the board is PCB/ROM_reader.kicad_pcb and its schematic ADAPTERS/87C510_ADAPTER/87C510_adapter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ROM reader design in my own project?

Its repository states no licence, so its author keeps all rights: ask trwgQ26xxx before reusing the design.