Skip to content
stefdev49 edited this page Feb 17, 2016 · 5 revisions

Adding a new GL124 model

Memory layout

Memory layout is configured in gl124_init_memory_layout() in genesys_gl124.c, where registers d0, d1, d2, and e0 to f7 are set. The layouts used are defined in Memory_layout layouts[] in genesys_gl124.h They are copy of the values found in the decoded logs.

GPIO

GPIO are configured in gl124_init_gpio() in genesys_gl124.c, where registers 31 to 38 are set. The values used are defined in Gpio_layout gpios[] in genesys_gl124.h They are copy of the values found in the decoded logs for a low resolution scan, typically 300 dpi since motor for these models doesn't allow o lower resolution.

During scan at higher resolution, the needed bit in GPIO are toggled in the gl124_setup_scan_gpio() function.

Sensor

There is a table of registers dedicated to sensor in genesys_gl124.h . They are identified by the base resolution of the sensor and the sensor id. It is searched by get_sensor_profile() in genesys_gl124.c . Values are extracted from the USB log. The "half ccd" flag is for mode where sensor timings are such that effective resolution is the half of the hardware dpi set.

Clone this wiki locally