Difference between revisions of "MyMenu"

From Land Boards Wiki
Jump to navigation Jump to search
Line 76: Line 76:
 
** Driver can be installed from the Arduino IDE - search "Adafruit MCP23008"
 
** Driver can be installed from the Arduino IDE - search "Adafruit MCP23008"
 
* [https://github.com/douggilliland/lb-Arduino-Code/tree/master/libraries/LandBoards_MyMenu/examples MyMenu card example code]
 
* [https://github.com/douggilliland/lb-Arduino-Code/tree/master/libraries/LandBoards_MyMenu/examples MyMenu card example code]
 +
 +
=== Display Library - V2 Version ===
 +
 +
* V3 Version uses Oli Kraus' u8x8 library (part of u8g2 library)
 +
* Oli Kraus' u8g2 OLED library
 +
* Library can be installed through Arduino IDE
 +
* Optional Land Board Menu System Code for OLED Displays - uses u8g2
 +
** Sketch uses 8,354 bytes (25%) of program storage space. Maximum is 32,256 bytes.
 +
** Global variables use 780 bytes (38%) of dynamic memory, leaving 1,268 bytes for local variables. Maximum is 2,048 bytes.
  
 
=== Driver/Example code ===
 
=== Driver/Example code ===

Revision as of 13:37, 25 January 2020

MyMenu-CCA-X3 5793-800px.jpg

Features

MyMenu is a self contained menu system with these features:

  • 0.96" OLED
  • Menu Pushbuttons
    • 5 Way Keypad (Up, Down, Left, Right, Select)
  • Direction, Select buttons
  • 2-wire I2C (VCC, GND, CLK, DATA) interface
    • Selectable I2C address in range 0x20-0x27 (resistor install option)
    • Interrupt output line on button press
  • MCP23008 I2C Port Expander
  • OLED connection - mounts OLED to card and shares I2C connection to Host
  • 3 LEDs
  • 49x49mm card with (4) 4-40 mounting holes

MCP23008 I2C Port Expander

Data Sheet

GPIO Port Map
GP0 - LED D3
GP1 - LED D2
GP2 - LED D1
GP3 - Select button 0 = pressed
GP4 - Right button
GP5 - Down button
GP6 - Up button
GP7 - Left button

OLED Display

  • On ebay...
  • There are several versions
  • MyMenu requires
    • 4-pin I2C version
    • Rev X1-X3 requires pin Ordering VCC, GND,

Rev X3 Connectors

The card has a 5-pin, 0.1" spacing connector. The connector has I2C connections (CLK and DATA) plus an Interrupt line.

  1. GND
  2. VCC
  3. SDA
  4. SCL
  5. INT

The card has a 4-pin, 0.1" spacing connector for daisy-chaining. The connector has I2C connections (CLK and DATA).

  1. GND
  2. VCC
  3. SDA
  4. SCL

Arduino Libraries

  • The Display library is decoupled from the MyMenu library and requires a separate install

MyMenu Card Library/Examples

  • MyMenu library on GitHub
    • Can download the ZIP file and use the ZIP library installer
  • Card requires the Arduino Adafruit MCP23008 library
    • Needs to be installed separately from the MyMenu library
    • MCP23008 is the I2C interface chip that communicates with the buttons and LEDs
    • Tested with Adafruit MCP23008 library version 1.0.1
    • Driver is used to talk to the buttons/LEDs on the MyMenu card
    • Driver can be installed from the Arduino IDE - search "Adafruit MCP23008"
  • MyMenu card example code

Display Library - V2 Version

  • V3 Version uses Oli Kraus' u8x8 library (part of u8g2 library)
  • Oli Kraus' u8g2 OLED library
  • Library can be installed through Arduino IDE
  • Optional Land Board Menu System Code for OLED Displays - uses u8g2
    • Sketch uses 8,354 bytes (25%) of program storage space. Maximum is 32,256 bytes.
    • Global variables use 780 bytes (38%) of dynamic memory, leaving 1,268 bytes for local variables. Maximum is 2,048 bytes.

Driver/Example code

Parts List