Lascar Electronics EL-USB-2
The Lascar Electronics EL-USB-2 is a USB-based temperature and humidity logger.
See Lascar Electronics EL-USB-2/Info for more details (such as lsusb -vvv output) about the device.
Hardware
- Silicon Labs C8051F321 8051-based USB microcontroller
 - Microchip 24LC256 32kB EEPROM
 - Sensiron SHT11 Temperature/humidity sensor
 
Photos
Protocol
Commands
| Bytes | Command | 
|---|---|
| 0x00 0xff 0xff | Load device configuration structure.
 A 3-byte header is returned first in which the first byte is 0x02, and the second and third bytes are the length of the configuration structure to follow, as a little-endian integer representing the number of bytes. Different devices in the EL-USB series have differently-sized configuration structures.  | 
| 0x01 0xnn 0xnn | Save device configuration structure.
 The second and third bytes are the length of the configuration structure to follow, as a little-endian integer representing the number of bytes. The device responds with a single byte with value 0xff when the configuration has been saved.  | 
Device configuration structure
| Offset | Size | Value | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x00 | 1 | Device type
  | ||||||||||||||||||||||||||||||||||||
| 0x01 | 1 | Unused | ||||||||||||||||||||||||||||||||||||
| 0x02 | 16 | NULL-terminated device name, 15 chars max | ||||||||||||||||||||||||||||||||||||
| 0x12 | 1 | Start time, hour (0-23) | ||||||||||||||||||||||||||||||||||||
| 0x13 | 1 | Start time, minute (0-59) | ||||||||||||||||||||||||||||||||||||
| 0x14 | 1 | Start time, second (0-59) | ||||||||||||||||||||||||||||||||||||
| 0x15 | 1 | Start date, day (1-31) | ||||||||||||||||||||||||||||||||||||
| 0x16 | 1 | Start date, month (1-12) | ||||||||||||||||||||||||||||||||||||
| 0x17 | 1 | Start date, year (year - 2000) | ||||||||||||||||||||||||||||||||||||
| 0x18 | 4 | Unsigned little-endian, seconds remaining until logging starts | ||||||||||||||||||||||||||||||||||||
| 0x1c | 2 | Unsigned little-endian, samplerate (seconds between samples) | ||||||||||||||||||||||||||||||||||||
| 0x1e | 2 | Unsigned little-endian, number of stored samples | ||||||||||||||||||||||||||||||||||||
| 0x20 | 1 | 
  | ||||||||||||||||||||||||||||||||||||
| 0x21 | 1 | 
  | ||||||||||||||||||||||||||||||||||||
| 0x22 | 1 | Temperature alarm high (value + 40) * 2 | ||||||||||||||||||||||||||||||||||||
| 0x23 | 1 | Temperature alarm low (value + 40) * 2 | ||||||||||||||||||||||||||||||||||||
| 0x24 | 4 | unknown (00 00 00 3f, 00 00 80 3f) | ||||||||||||||||||||||||||||||||||||
| 0x28 | 4 | unknown (00 00 20 c2) | ||||||||||||||||||||||||||||||||||||
| 0x2c | 2 | unknown (00 00) | ||||||||||||||||||||||||||||||||||||
| 0x2e | 2 | Device-specific configuration | ||||||||||||||||||||||||||||||||||||
| 0x30 | 4 | Firmware version (ASCII, not NULL-terminated | ||||||||||||||||||||||||||||||||||||
| 0x34 | 2 | Unsigned little-endian, serial number | ||||||||||||||||||||||||||||||||||||
| 0x36 | 2 | unknown (00 00) | ||||||||||||||||||||||||||||||||||||
| 0x38 | 1 | Relative humidity alarm high (value * 2) | ||||||||||||||||||||||||||||||||||||
| 0x39 | 1 | Relative humidity alarm low (value * 2) | ||||||||||||||||||||||||||||||||||||
| 0x3a | 2 | unknown (00 00) | ||||||||||||||||||||||||||||||||||||
| 0x3c | 4 | unknown (00 00 00 00) | 
Device-specific information
The 16-bit field at offset 0x2e in the configuration structure has different meaning depending on which type of device sent it. It can be either a 16-bit little-endian integer or a bitfield.
| EL-USB-2 | 
|---|
| 0x00 | Celcius | 
| 0x01 | Fahrenheit | 
Resources
TODO.