-
Notifications
You must be signed in to change notification settings - Fork 0
I2C Sensor Addressing
I2C uses a 7-bit addressing scheme (there is also 10-bit addressing but we are not using it). When sending an address over the bus, the address is shifted to the left 1 bit and the least significant bit is used to indicate read or write. It is important to know this because LEGO and 3rd-party sensor manufacturers use the shifted value as the address in their documentation. This shifted value is also used in most other NXT/EV3 programming languages/environments.
ev3dev is different because the Linux kernel uses the unshifted value as the I2C address. This means you will have to convert the value to get the correct address. Shift to the right is the same as divide by 2, so get out your hexadecimal calculator and do some math!
Or for the engineer type folks that prefer tables...
Shifted Address | Unshifted Address | Notes | Shifted Address | Unshifted Address | Notes |
---|---|---|---|---|---|
0x00 | 0x00 | Illegal | 0x80 | 0x40 | |
0x02 | 0x01 | NXT Ultrasonic and many 3rd party sensors | 0x82 | 0x41 | |
0x04 | 0x02 | LEGO Energy Storage | 0x84 | 0x42 | |
0x06 | 0x03 | 0x86 | 0x43 | ||
0x08 | 0x04 | 0x88 | 0x44 | ||
0x0A | 0x05 | 0x8A | 0x45 | ||
0x0C | 0x06 | 0x8C | 0x46 | ||
0x0E | 0x07 | 0x8E | 0x47 | ||
0x10 | 0x08 | Some HiTechnic sensors | 0x90 | 0x48 | |
0x12 | 0x09 | 0x92 | 0x49 | ||
0x14 | 0x0A | mindsensors.com Light Sensor Array | 0x94 | 0x4A | |
0x16 | 0x0B | 0x96 | 0x4B | ||
0x18 | 0x0C | 0x98 | 0x4C | LEGO Temperature Sensor | |
0x1A | 0x0D | 0x9A | 0x4D | ||
0x1C | 0x0E | 0x9C | 0x4E | ||
0x1E | 0x0F | 0x9E | 0x4F | ||
0x20 | 0x10 | 0xA0 | 0x50 | ||
0x22 | 0x11 | 0xA2 | 0x51 | ||
0x24 | 0x12 | 0xA4 | 0x52 | ||
0x26 | 0x13 | 0xA6 | 0x53 | ||
0x28 | 0x14 | 0xA8 | 0x54 | ||
0x2A | 0x15 | 0xAA | 0x55 | ||
0x2C | 0x16 | 0xAC | 0x56 | ||
0x2E | 0x17 | 0xAE | 0x57 | ||
0x30 | 0x18 | 0xB0 | 0x58 | ||
0x32 | 0x19 | 0xB2 | 0x59 | ||
0x34 | 0x1A | 0xB4 | 0x5A | ||
0x36 | 0x1B | 0xB6 | 0x5B | ||
0x38 | 0x1C | 0xB8 | 0x5C | ||
0x3A | 0x1D | 0xBA | 0x5D | ||
0x3C | 0x1E | 0xBC | 0x5E | ||
0x3E | 0x1F | 0xBE | 0x5F | ||
0x40 | 0x20 | 0xC0 | 0x60 | ||
0x42 | 0x21 | 0xC2 | 0x61 | ||
0x44 | 0x22 | 0xC4 | 0x62 | ||
0x46 | 0x23 | 0xC6 | 0x63 | ||
0x48 | 0x24 | 0xC8 | 0x64 | ||
0x4A | 0x25 | 0xCA | 0x65 | ||
0x4C | 0x26 | 0xCC | 0x66 | ||
0x4E | 0x27 | 0xCE | 0x67 | ||
0x50 | 0x28 | 0xD0 | 0x68 | ||
0x52 | 0x29 | 0xD2 | 0x69 | ||
0x54 | 0x2A | 0xD4 | 0x6A | ||
0x56 | 0x2B | 0xD6 | 0x6B | ||
0x58 | 0x2C | 0xD8 | 0x6C | ||
0x5A | 0x2D | 0xDA | 0x6D | ||
0x5C | 0x2E | 0xDC | 0x6E | ||
0x5E | 0x2F | 0xDE | 0x6F | ||
0x60 | 0x30 | 0xE0 | 0x70 | ||
0x62 | 0x31 | 0xE2 | 0x71 | ||
0x64 | 0x32 | 0xE4 | 0x72 | ||
0x66 | 0x33 | 0xE6 | 0x73 | ||
0x68 | 0x34 | 0xE8 | 0x74 | ||
0x6A | 0x35 | 0xEA | 0x75 | ||
0x6C | 0x36 | 0xEC | 0x76 | ||
0x6E | 0x37 | 0xEE | 0x77 | ||
0x70 | 0x38 | 0xF0 | 0x78 | ||
0x72 | 0x39 | 0xF2 | 0x79 | ||
0x74 | 0x3A | 0xF4 | 0x7A | ||
0x76 | 0x3B | 0xF6 | 0x7B | ||
0x78 | 0x3C | 0xF8 | 0x7C | ||
0x7A | 0x3D | 0xFA | 0x7D | ||
0x7C | 0x3E | 0xFC | 0x7E | ||
0x7E | 0x3F | 0xFE | 0x7F |