Coder Social home page Coder Social logo

graphiclcd_serial_backpack's Introduction

GraphicLCD_Serial_Backpack

Modification of SparkFun GraphicLCD_Serial_Backpack 10/4/2018

Multiple modifications and bug-fixes from the original SparkFun Firmware

  1. Updated code to compile under Atmel Studio 6.2

    PROGMEM changed from old version of Atmel studio, had to add "const" to the static char statement.

  2. Serial buffer overflow handing

    With a fast enough processor (Particle Photon in my case) it was possible to overrun the serial buffer. Firmware now uses the TX pin as a overflow flag. TX pin is set HIGH when the serial buffer gets 1/2 full. Once the buffer is empty the TX pin goes LOW.

  3. Serial Buffer modification

    Variable bufferSize was uint8_t and BUF_DEPTH was 256, so at 'full' buffer bufferSize would be 256 which doesn't fit in 8 bits. Changed BUF_DEPTH to 255 to facilitate uint8_t size pointers for ALL serial buffer access. This fixes the full buffer problem AND speeds up buffer access as it's 8 bit math rather than 16 bit

  4. Bugfix writedata across chip boundary

    on the Small display, when writedata crossed the 64 byte boundary into the 2nd chip the in-chip X (column) doesn't auto-reset to 0 and instead picks up wherever the 2nd chip X last was. Added code in writedate to force chip 2's X to 0 when X crosses 63->64 byte boundary

  5. Fast Text write

    Small Display only (someone else write the large display). Modified the draw text algorithm to optimize when drawing text on a full row boundaries (ie Y = 0,8,16, etc) Much, much faster as full row only does write rather than read/modify/write

  6. Fast area fill

    Small Display only. Modified the area fill algorithm to optimize for filling full rows a byte at a time when possible.

  7. Implement Serial Test function code 0x01

    Byte following the 0x01 is the 'target byte'. Host should send continuous stream of 'target bytes' after that. If the received byte does not match the target byte then an X is written to the LCD. Over an extended test time, the number of X's displayed indicates the number of transmission errors.

  8. Implemented debug bits

    if DEBUG_IO is defined in glcdbp.h then use PB4/5 as information bits. Look at ks0108b.c WaitReady routine as example. Turn PB5 HIGH when entering the routine and LOW when exiting the routine. This is only as example, use to delineate routines when you do your own firmware development

  9. Implemented Trigger function code 0x08

    use in conjunction with PB4/5 debug information bits above. Function 0x08 causes PB5 to toggle HIGH/LOW for use in signal capture when troubleshooting firmware routes.

graphiclcd_serial_backpack's People

Contributors

sixerdoodle avatar

Watchers

 avatar

graphiclcd_serial_backpack's Issues

Changing PORTC pins

Great job!!. I have designed Sparkfun GraphicLCD_Serial_Backpack PCB with few modification in PORTC (commands) to connect 64x128 GLCD with TS12864A-2 chipset (KS0108) as listed below but after change the pins in the io_support.h, LCD is showing some changes in brightness during demo() and noting is showing even with change in the POT 10K.
#define EN 0 // PC0 => PC2
#define RS 1 // PC1 => PC0
#define R_W 2 // PC2 => PC1
#define RESET 3 // PC3
#define CS1 4 // PC4 => PC5
#define CS2 5 // PC5 => PC4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.