-
Notifications
You must be signed in to change notification settings - Fork 0
UX Module
This page captures design choices, design resources and links to concrete designs. Components and technologies are chosen to provide a low cost UX module that can be manufactured in high volume using automated assembly techniques.
All module designs shall include these components:
- A display, typically Pixel based OLED, character based LCD, pixel based LCD, pixel based eInk
- One or more input devices, typically button(s), joystick or Rotary Encoders
- A buzzer/speaker
It should be possible to omit one or more of the standard components by not populating the components and supporting components during assembly. The driver library should auto-detect the absence of components without requiring changes. Driver software may be optimized for size by actively disabling features using predefined preprocessor macros such as: DISABLE_SPEAKER, DISABLE_ROTARY_ENCODER
- A single PCB that can be easily integrated into a microcontroller based product.
- The module can be connected to the host board using a 4/5 pin, 0.1" pitch pin header which allows direct soldering or plug-in via a pin header socket.
- The module can be fastened/stabilized via 4 mounting holes in the PCB – one in each corner.
- I2C interface will be used for communication between micro controller and display/input devices.
- H/W Interface (0.1" pitch pin header)
- GND
- VDD (Voltage supply, typically 3-3.3V)
- SCL (I2C clock)
- SDA (I2C data)
- INT (Interrupt for keypress capture - optional)
- SPK (connected to a buzzer/speaker via a driver MOSFET)
- VDIS? (Display voltage supply, typically 6.5 - 9V) Can be omitted if the display module or UX module contains a boost converter)
Displays can be either a display with a display controller and a flex-PCB cable that can be soldered onto the UX Module, or be a display module with a PCB holding the display, interface circuitry (voltage regulater etc) and a 0.1" pin header for host connection.
- OLED
- 0.96", white, 128x64, CH1115 Shenzhen Allvision Tech N096-6428TSWMG01-H13 (pdf)
- 0.91", white, 128x32 Shenzhen Allvision Tech N091-2832TSWFG04-H15 (pdf)
- LCD (Character)
- LCD (Graphical)
- TODO
- eInk (Monochrome, Bicolor, Tricolor)
- TODO
- Discrete tactile switches in Up, Down, Left, Right, OK, Cancel pattern
- Joystick Digital X, Y, Push
- Rotary Encoder Left/Right/Push via A, B, Switch pins
SMD components will be used, where possible, for automated manufacturing/assembly.
Components should be chosen for high worldwide availability and must have comprehensive design resources (datasheets, 3D design models, SPICE model) and must not be end-of-life.
I2C port expander for reading swiches
Schematic diagrams and PCB will be designed using KiCAD 6 (transitioning to 7)
C++ firmware drivers for display and inputs will be available as part of the module.
MCU and architecture variants is supported via an interface header file.
An interface header file for Arduino API will also be available (requires arduino.h
and its dependencies to be available on the include path)