Ultra cheap displays

Posted on
  • Sorry for being sort of out of topic, I'm not advertising, I don't work for them, I just hope to be useful to somebody... I believe they did a typo:

    http://store.apollodisplays.com/store/Pr­oductDetail/F-51900NCU-LW-AIN_F51900ncul­wain-57-In-Color-Passive-Qvga-Cstn-Led

    (that's 0.99$ for a 320x240 rgb display, the version with CFL backlight is same price). Unfortunately they seem to ship only to english speaking countries, so I'm out of luck, otherwise I would have got 10 just for the sake of it, even without knowing how to interface them to anything!
    I suggest you grab them if you can, sounds like a very good deal, doesn't it?

  • Odd that the picture shows a display with much lower specs (for which $1 would not be as ridiculous a price for)

  • Let me know if anyone gets one shipped!

  • Just seen at mouser.com,
    End-of-Life: Considered obsolete and has been discontinued by the manufacturer

  • True... if you find anything of comparable spec at this price, be it EOL or not, and from a provider which ships to Italy make me a shout ;)

  • Not that cheap, but still a good price is this Display for less than 5€ including delivery.
    I had to wait about 4 weeks for delivery.
    I have a module ready for that, it works fine on SPI.

  • @JumJum I'm still waiting for mine to arrive :)

    @Loop the display looks interesting - the datasheet seems to imply that it's 8 bit parallel data, which could cause a problem though...

    320 * 240 * 16 bits = 153600 bytes, which is 3x more memory than Espruino has in total! And it might need driving continuously to keep the picture updated.

    You'd have to be pretty careful with how you drove it... I guess you could store a black and white image in Espruino and could try and send that out via SPI.

    @JumJum's one has a controller on-board which has it's own memory, so it's quite a lot easier to interface to.

  • @Loop i would totally agree with Gordon and the CSTN technology would be pain for your eyes
    @JumJum you refer a very nice display, i've placed an order right now :)
    I have modified the SSD1351 OLED Driver to drive this ST7735R Display (1.8" 128x160):
    http://www.sainsmart.com/arduino-compati­bles-1/lcd-module/sainsmart-1-8-spi-lcd-­module-with-microsd-led-backlight-for-ar­duino-mega-atmel-atmega.html

  • @Kalus, could you please share the driver ? I still have one somewhere in my big box.

  • @JumJum yes, for sure (sorry i had been at the hospital for some days). It's runcode but it could be easily converted to a Driver like the SSD1351 :

    SPI1.setup({ mosi:A7, sck:A5, baud:2000000 });
    
    function connect (/*=SPI*/spi, /*=PIN*/dc, /*=PIN*/cs, /*=PIN*/rst, callback) {
      cs.write(1); // disable
      dc.write(0); // command
      rst.write(0); // reset
      var cd = function (c,d) {
        dc.write(0); // command
        spi.send(c);
        if (d!==undefined) {
          dc.write(1); // data
          spi.send(d);
        }
      };
      setTimeout(function() { // 20ms delay
        rst.write(1); // un-reset
        setTimeout(function() { // 120ms delay
          cs.write(0); // enable
    
          // cd(0x01); // ST7735: Software reset
          // wait 120ms
          
          // cd(0x00); // ST7735: No Operation
          
          // cd(0x10); // ST7735: SLPIN Sleep in & booster off
          cd(0x11); // ST7735: SLPOUT Sleep out & booster on
          // cd(0x12); // ST7735: PTLON Partial mode on
          // cd(0x13); // ST7735: NORON Partial off (Normal)
          
          // cd(0x38); // ST7735: IDMOFF Idle mode off
          // cd(0x39); // ST7735: IDMON Idle mode on
          
          // cd(0x20); // ST7735: INVOFF Display inversion off
          // cd(0x21); // ST7735: INVON Display inversion on
          cd(0x26,8);  // ST7735: GAMSET Gamma curve select
          // cd(0x28); // ST7735: DISPOFF Display off
                
          // cd(0x30,[psl15_8, psl7_0, pel15_8, pel7_0]); // ST7735: PTLAR Partial start/End address set
          // cd(0x34); // ST7735: TEOFF tearing effect line off
          // cd(0x35, telom); // ST7735: TEON Tearing effect mode set & on
          
          // ST7735: MADCTL Memory data access control (rotation, mirror, rgb/bgr, refresh order)
          cd(0x36, 0xC0); // horizontal128, vertical160, connector at bottom, no mirror
          // cd(0x36, 0x00); // horizontal128, vertical160, connector at top, no mirror
          
          // ST7735: COLMOD Interface pixel format 
          cd(0x3a, 5); // 5 =  16bit/pixel
          
          // ST7735: Panel function Command List
          // cd(0xB1,[rtna3_0, fpa5_0, bpa5_0]); // ST7735: FRMCTR1 In normal mode (Full colors)
          // cd(0xB2,[rtnb3_0, fpb5_0, bpb5_0]); // ST7735: FRMCTR2 In Idle mode (8-colors)
          // cd(0xB3,[rtnc3_0, fpc5_0, bpc5_0, rtnd3_0, fpd5_0, bpd5_0]); // ST7735: FRMCTR3 In partial mode + Full colors
          // cd(0xB4, nla_c); // ST7735: INVCTR Display inversion control
          // cd(0xB6, [no1_0_sdt1_0_eq1_0, ptg1_0_pt1_0]); // ST7735: DISSET5 Display function setting
                
          cd(0x29); // ST7735: DISPON Display on
    
          cs.write(1); // disable
          if (callback!==undefined) callback();
        }, 120);
      }, 20);
    
      return Graphics.createCallback(128,160,16,{ setPixel : function(x,y,col) {
        cs.write(0); 
        dc.write(0);spi.send(0x2a);     // ST7735: CASET Column address set
        dc.write(1);spi.send([0,x,0,127]);
        dc.write(0);spi.send(0x2b);     // ST7735: RASET Row address set
        dc.write(1);spi.send([0,y,0,159]);
        dc.write(0);spi.send(0x2c);     // ST7735: RAMWR Memory write
        dc.write(1);spi.send([col>>8,col]);
        cs.write(1);
      }, fillRect : function(x1,y1,x2,y2,col) {
        cs.write(0); 
        dc.write(0);spi.send(0x2a);     // ST7735: CASET Column address set
        dc.write(1);spi.send([0,x1,0,x2]);
        dc.write(0);spi.send(0x2b);     // ST7735: RASET Row address set
        dc.write(1);spi.send([0,y1,0,y2]);
        dc.write(0);spi.send(0x2c);     // ST7735: RAMWR Memory write
        dc.write(1);
        var p = [col>>8,col, col>>8,col, col>>8,col, col>>8,col,
                 col>>8,col, col>>8,col, col>>8,col, col>>8,col];
        var i=(1+x2-x1)*(1+y2-y1)+8;
        while ((i-=8)>8) spi.send(p);
        p = [col>>8,col];
        while (i-->0) spi.send(p);
        cs.write(1);
      }});
    }
    
    var g = connect(SPI1, A3, B10, B11, function() {
      g.clear();
      g.drawString("Hello",0,0);
      g.setFontVector(20);
      g.setColor(0,0.5,1);
      g.drawString("Espruino",0,10);
    });
    
  • How about alternate digikey's NHD-C0216CZ-FSW-FBW-3V3-ND
    It's 2x16 char display, transflective (low power reflective or LED backlighted), SPI like sending commands, and avoids memory bloating. Unit price around 11 USD.
    The maker also has a 160x160 I2C bus B &W display (limitation: can't read back pixels)
    After some thoughts, it's probably the best compromise. A 5-way rock button attached to it should be enough to make simple nav menus, like digital watches or data loggers.

    Graphical display should be by the mobile phone using serial BT transmission.

  • Hey @Loop, @DrAzzy, @Gordon. Yes that was a typo, and we didn't catch it till someone had already placed the order. We honored the price of .99 cents, and lost money on the order, but we care about customer service. As of right now we only ship to the U.S. and Canada, but hopefully by the end of the year we will be shipping to other parts of the world. We have a very wide range of displays, and we are adding more more displays everyday. Keep an eye out at http://store.apollodisplays.com - and if there is ever anything we can help you with, be sure to give us a a shout.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Ultra cheap displays

Posted by Avatar for Loop @Loop

Actions