10. EEPROM settings reference

This section documents all of the settings that are stored in the Motoron’s 128-byte non-volatile EEPROM memory. Most of the Motoron’s settings are stored in RAM and must be set after the Motoron powers up using the commands documented in Section 9. However, there are several settings related to the Motoron’s communication interfaces that are stored in EEPROM to ensure that they will be correct as soon as the Motoron powers on.

  • The Offset of each setting is the location where it is stored in the Motoron’s EEPROM memory. You can use this offset with the “Write EEPROM” and “Read EEPROM” commands.
  • The Type specifies how many bits the setting occupies, and says whether it is signed or unsigned.
  • The Data specifies how the data for that setting is encoded in the Motoron’s memory.
  • The Default is the value the setting has on a new Motoron.
  • The JMP1 low entry is the value the Motoron will use for the setting if the JMP1 pin is low when the Motoron is starting up.
  • The Range is the allowed set of values for the setting, if applicable. Trying to use a value outside of this range could result in unexpected behavior.
  • The Arduino library field shows the methods in the Arduino library that can be used to access the setting (besides the general-purpose writeEeprom and readEeprom methods).

The term “bit 0” refers to the least significant bit of a variable. Unless otherwise specified, all multi-byte settings use little-endian byte ordering, meaning that the least-significant byte comes first.

List of EEPROM settings

Device number

Offset 1
Type unsigned 14-bit
Data
  • Offset 1: lower 7 bits of device number
  • Offset 2: upper 7 bits of device number
Default 16
JMP1 low 15
Range 0 to 16383
Arduino library void writeEepromDeviceNumber(uint16_t number)

For I²C Motorons, the device number should be between 0 and 127 and it is the I²C address the Motoron will use.

For serial Motorons, the device number should normally be between 0 and 127. If you have enabled 14-bit device numbers in the serial options, then the device number can be as high as 16383. The device number is used in Pololu protocol commands to address a specific Motoron or group of Motorons (see Section 7).

Alternative device number

Offset 3
Type unsigned 14-bit, plus a single bit to enable the feature
Data
  • Offset 3: lower 7 bits of number, plus 0x80 if the feature is enabled
  • Offset 4: upper 7 bits of number
Default Disabled
JMP1 low Disabled
Range 0 to 16383, or disabled
Arduino library void writeEepromAlternativeDeviceNumber(uint16_t number)
void writeEepromDisableAlternativeDeviceNumber()

If this setting is enabled, the Motoron will respond to any Pololu protocol commands sent to its alternative device number or the primary device number. This setting only applies to Motorons with a serial (UART) interface.

Communication options

Offset 5
Type 8-bit
Data
  • Bit 0: 7-bit responses
  • Bit 1: 14-bit device number
  • Bit 2: ERR is DE
  • Bits 3–7: reserved, should be 0
Default 0 (all options disabled)
JMP1 low 0 (all options disabled)
Arduino library void writeEepromSerialOptions(uint8_t options)

This setting only applies to Motorons with a UART serial interface. Each bit (when set to 1) enables the corresponding feature as described in Section 7.

Baud rate / baud divider

Offset 6
Type unsigned 16-bit
Data 16000000 bps divided by the desired baud rate
Default 115200 bps
JMP1 low 9600 bps
Range 245 bps to 250000 bps
Arduino library void writeEepromBaudRate(uint32_t baud)

This setting determines the bit rate used on the RX and TX lines of Motorons with a serial interface.

The Motoron’s baud rate can be set as high as 1 Mbps, but 250 kbps is the highest baud rate we recommend using. See Section 7 for details.

Response delay

Offset 8
Type unsigned 8-bit
Data time in units of microseconds
Default 0
JMP1 low 0
Range 0 to 255
Arduino library void writeEepromResponseDelay(uint8_t delay)

This setting specifies an additional delay that the Motoron will perform before sending a serial response. This can be useful in systems where another device is reading data from the Motoron and needs some time to switch from transmitting to receiving.

Related Products

Motoron M3S256 Triple Motor Controller Shield for Arduino (Connectors Soldered)
Motoron M1T550 Single I²C Motor Controller (Header Pins Soldered)
Motoron M3H550 Triple Motor Controller for Raspberry Pi (Connectors Soldered)
Motoron M3S550 Triple Motor Controller Shield for Arduino (Connectors Soldered)
Motoron M1T256 Single I²C Motor Controller (Header Pins Soldered)
Motoron M2T256 Dual I²C Motor Controller (Header Pins Soldered)
Motoron M2H18v18 Dual High-Power Motor Controller for Raspberry Pi (Connectors Soldered)
Motoron M2S18v18 Dual High-Power Motor Controller Shield for Arduino (Connectors Soldered)
Motoron M3H256 Triple Motor Controller for Raspberry Pi (Connectors Soldered)
Motoron M2T550 Dual I²C Motor Controller (Header Pins Soldered)

Related Categories

Motoron Motor Controllers
Log In
Pololu Robotics & Electronics
Shopping cart
(702) 262-6648
Same-day shipping, worldwide
Menu
Shop Blog Forum Support
My account Comments or questions? About Pololu Contact Ordering information Distributors