Difference between revisions of "Lascar Electronics EL-USB-2"
Line 50: | Line 50: | ||
| Transfer logged data. | | Transfer logged data. | ||
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 logged data to follow, as a little-endian integer representing the number of bytes. The | 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 logged data to follow, as a little-endian integer representing the number of bytes. | ||
The device's entire sample memory is then transferred. The number of stored samples (offset 0x2e in the configuration structure) should be checked before interpreting the data; any remaining data in the transfer should be ignored. | |||
|} | |} |
Revision as of 12:00, 27 November 2012
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. |
0x03 0xff 0xff | Transfer logged data.
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 logged data to follow, as a little-endian integer representing the number of bytes. The device's entire sample memory is then transferred. The number of stored samples (offset 0x2e in the configuration structure) should be checked before interpreting the data; any remaining data in the transfer should be ignored. |
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 meanings depending on the type of device. It can be either a 16-bit little-endian integer or a bitfield.
EL-USB-2 |
---|
0x0000 | Celcius |
0x0001 | Fahrenheit |
Resources
TODO.