v2.0.0 library update and EEPROM modules

A project log for High Resolution Absolute Encoder - Arduino & Pi

Bourns ACE-128 Absolute Contacting Encoder - 128 positions - with I2C interface - Arduino & Raspberry Pi libraries

Alastair YoungAlastair Young 06/23/2019 at 20:310 Comments

v2.0.0 is checked in and should appear in the library manager soon.

Release notes:

The code has all been combined into the ACE128.h file so we can use #defines in there to turn on and off bits of unused code for different projects. So when I say uncomment #define below I mean in the ACE128.h library file itself. These don't work from your .ino file beacuse of the way the Arduino IDE compiles stuff.

This is a major release upgrade due to the following two non backward compatible changes introduced to remove little used code and save FLASH.

  1. MCP23008 support is no longer enabled by default. Uncomment #define ACE128_MCP23008 to turn it back on.
  2. Direct pin attachment is no longer enabled by default. Uncomment #define ACE128_ARDUINO_PINS to turn it back on. This will turn off I2C pin expander code - I figure nobody uses both. If you do, let me know.

New Features

  1. Support for SAM controllers e.g. MKR series Arduinos. This is actually just not calling the EEPROM stuff for these units, as they don't have EEPROM. This means that by default they cannot save state, which brings us to:
  2. Support for I2C EEPROM to save state. Enable this by uncommenting #define ACE128_EEPROM_I2C. It will use a chip at address 0x50 by default.
  3. Support for disabling the EEPROM code altogether to save flash. Uncomment #define ACE128_EEPROM_NONE for this. This is the default for the SAM units and removes the EEPROM constructors.
  4. New board revision 3.1. Supports an I2C EEPROM chip. Rounded corners to be easier on the ziploc bags.
  5. Reworked ACE128test.ino with lots of comments - this is now the primary usage instructions. Also now supports serial display by default with I2C LCD as an option. Direct connect LCD support removed.
  6. added two examples ace128_0x20 and ace128_0x38 for module customers to test their units out of the box.