translation missing: en.general.accessibility.skip_to_content

I2C NavKey - 7 Function Joypad (White)

by Duppa
SKU 3794
£14.99 inc VAT
£12.49 ex VAT
4 in stock.

The I2C NavKey is a perfect solution to make a perfect HMI without using precious resources.

The I2CNavKey is a small board that includes a 7 functions joypad. The joypad has 4 directional keys plus a central button and a rotary ring. It is controllable with the I2C bus, and it’s possible to configure 16 different I2C addresses. The I2CNavKey has also 3 configurable GPIOs with the same footprint of RGB LED. This 3 GPIOs can be configured independently in 4 different way: input, output, PWM and analog input. Since the I2CNavKey is a I2C slave, it has a series of 8 bit registers where it’s possible to configure different parameters,it’s also possible to detect when the buttons are pressed or when the ring is rotated. It also has an open-drain output pin used as interrupt output. This pin is used to notify to the master when some event happens in the I2CNavKey, the source of interrupt can be customized. Last but not least, it has also 256 bytes of EEPROM.

The I2C NavKey has 4 directional key plus a central push button. It’s possible to detect when the keys are pressed and when released, the central push button can be detected also when it is double pushed.

The I2C NavKey has also central wheel that can be rotated left and right. It’s possible to read the central wheal in the same way of the I2C Encoder V2, there are 4 registers:

  • CVAL: Current value of the Encoder.This value changes every time the encoder rotates.
  • CMAX: Maximum value that CVAL can reach
  • CMIN: Minimum value that CVAL can reach
  • ISTEP: How much the CVAL has to increment at each and every encoder step.

These 4 registers can be 32bit signed int, or as float numbers IEEE 754.

  • I2C bus works up to 400kHz
  • Possibility to add the pull-up resistors on the I2C bus.
  • Possibility to customize the I2C address by soldering the 4 SMD jumpers
  • Open-drain Interrupt output pin, so no need to continuously poll the devices
  • There is a 5 pin JST-XH header
  • There are 3 General Purpose pins. (GP pins)
  • 256 byte of internal EEPROM divided into 2 banks of 128 byte
  • Voltage range is 2.5V to 5V
  • Dimension of the device is 42.5×42.5mm or 1.67×1.67in
  • 4 mounting holes with 3mm diameter
  • Open source firmware
PIN I/O Type Function
GND Power Ground reference for logic
VCC Power Positive supply for logic
SDA I/O I2C Data
SCL I I2C Clock
INT OD Open-drain interrupt output

The I2C NavKey is powered by the MCU PIC16F18345. Inside of this MCU, there is a specific firmware that takes care of the functionality of the I2C NavKey and also the I2C communication with the external world. The I2C NavKey has several registers where is’t possible to configure the board. E.g. detect when a key is pressed etc. All the functionalities are described in the datasheet.

Address Range Name Description Dimension Default Value
0x00 GCONF General Configuration 1 Byte 0
0x01 GP1CONF GP 1 Configuration 1 Byte 0
0x02 GP2CONF GP 2 Configuration 1 Byte 0
00x03 GP3CONF GP 3 Configuration 1 Byte 0
0x04 - 0x05 INTCONF INT pin Configuration 2 Byte 0
0x06 - 0x07 ISTATUS Interrupt Status 2 Byte 0
0x08 I2STATUS Secondary Interrupt Status 1 Byte 0
0x09 FSTATUS Fade Process Status 1 Byte 0
0x0A - 0x0D CVAL Counter Value 4 Byte 0
0x0E - 0x11 CMAX Counter Max Value 4 Byte 0
0x12 - 0x15 CMIN Counter Min Value 4 Byte 0
0x16 - 0x19 ISTEP Increment Step Value 4 Byte 1
0x1A GP1REG I/O GP1 Register 1 Byte 0
0x1B GP2REG I/O GP2 Register 1 Byte 0
0x1C GP3REG I/O GP3 Register 1 Byte 0
0x1D DPPERIOD Double Push Period 1 Byte 0
0x1E FADEGP Fade Timer Step of GP Ports 1 Byte 0
0x1F GAMMAGP1 Gamma Correction on PWM of GP1 1 Byte 0
0x20 GAMMAGP2 Gamma Correction on PWM of GP2 1Byte 0
0x21 GAMMAGP3 Gamma Correction on PWM of GP3 1 Byte 0
0x7E IDCODE I2CNavKey Unique Code 1 Byte 0x5B
0x7F VERSION I2CNavKey Version 1 Byte 0x11
0x80 - 0xFF EEPROM EEPROM Memory 128 Byte 0

There are also 3 configurable GPIOs organized with the same footprint of an RGB LED. They are called GP1, GP2, and GP3. Possible Configuration

  • PWMIn this way, you can add an RGB LED.
  • AnalogThe pins are connected to the internal ADC of the PIC. In this way, you can add sensors or potentiometer according to your project needs
  • OutputYou can use the pins as standard digital output
  • InputYou can use the pins as standard digital input. Plus you can configure also the interrupt on the edges

In case of usage as PWM, there is also the possibility to enable the gamma correction. There are 8 type of gamma corrections: Gamma1 (linear), 1.8, 2.0, 2.2, 2.4, 2.6 and 2.8.

The I2C NavKey has an external interrupt, the INT pin, that became low when some event occurs. The event source is configurable in the configuration register. The INT pin is open drain, this means that a pull-up resistor is required. The I2C NavKey has an internall pull-up that can be activated.