This is the upgraded version of our original project: I2C Encoder. We have added some new improvements. Most importants are the support of the RGB encoders, the extension of the addressing to 7bit and a new shape.

After the first version of the I2C encoder we collected all the suggestions and we made this new upgraded version!

New features:

  • It’s support the standard rotary encoder and the RGB encoder
  • It’s possible to set all the 7bit of the I2C address trough a SMD jumper
  • Dimension of 25x25mm or 0.98×0.98in
  • With the castellated holes is possible to connected several boards on the 4 sides
  • Possibility to solder the pull-up resistor on the I2C bus
  • 3 General Purpose pins. (GP pins)
  • 256byte of internal EEPROM divided in the 2 bank of 128 byte
  • Advanced configuration respect the first version


This new version is powered by the PIC16F18344. Respect to the MCU on the first version, it has more GPIO and the EEPROM memory.

The new design of the board support both the standard encoders and the illuminated RGB encoders.

Moreover, there are the castellated holes on all the 4 sides of the PC, in this way will be possible to connect multiple board by soldering them.


GPIO configuration:

There are also 3 configurable GPIOs organized with the same footprint of a RGB LED. They are called GP1 GP2 and GP3.
But in case you are using the RGB encoder, the configurable GPIOs are only 2: GP1 and GP2.

  • PWM: In this way you can add a RGB LED
  • OUTPUT: You can use the pins as standard digital output.
  • Analog: The pins are connected to the internal ADC of the PIC. In this way you can add sensors or potentiometer
  • Input: You can use the pins as standard digital input. Plus you can configure also the interrupt on the edges

Interrupt configuration:

The INT pin is an open-drain output, and it’s used to send an interrupt to the master.

The interrupt is active low, and have multiple sources where it’s possible to mask.

Interrupt source:

  • Encoder push button pressed
  • Encoder push button released
  • Encoder is moved clockwise
  • Encoder is moved counterclockwise
  • The counter value reach the maximum value
  • The counter value reach the minimum value
  • The GP pins changed when configure as digital input

I2C register:

This is the preliminary version of the internal registers:

Now it is possible to configure the Counters register to work as int 32bit or as float numbers IEEE 754.
There is also the possibility to set the Increment step, which meas that it’s possible to set of how much the Counter Value is increased or decreased at every encoder step.

However, you can add “Accessory to be soldered” into your order according to your preference. There are 4 types of encoders. All have 20 pulses for rotation:

  • EC11 with handle 20mm long and 6mm diameter.
  • EC11 with handle 15mm long and 6mm diameter.
  • Bourns PEC11L-4120F-S0020 with handle 20mm long and 6mm diameter.
  • Bourns PEC11L-4020F-S0020 no dent with handle 20mm long and 6mm diameter.

The RGB Encoder will be available on November 2018!

Check our firmware updates and more examples on Github.

For more details, please visit our hackaday page here.

Check out our product description video:

You can purchase this item in our Tindie and eBay store: