Shop OBEX P1 Docs P2 Docs Learn Events
Noritake VFD Display Timing — Parallax Forums

Noritake VFD Display Timing

russ christensenruss christensen Posts: 84
edited 2009-02-05 23:28 in Propeller 1
Hi, I am using the Noritke 112x16 Display avaliable at Parallax to debug output and also when my robot is fully ready to display information such as temperature (using a ds1620), time (ds1302 on ppdb), and eventually speed of the robot as well.· what i'm wondering is if there is a way to buffer the data going to the display and send it all at the same time, or to tell the chip when i'm done sending data and display it all at once, i'm getting a mean flicker every time it redraws.· I'm only redrawing it every second since thats the update time on the temp chip and the clock (no need to display milliseconds since the precision isn't that high on the clock).· Does anybody know a way to do this, or if the vfd has a backbuffer type redraw?· Thanks in advance!· Just for kicks i'm gonna submit my code on here, seeing as this is my first spin experience, i'm sure the code is awful, so please don't laugh.· [noparse]:)[/noparse]·

Russ

Comments

  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2009-02-05 16:44
    Russ,

    When you redraw are you clearing the screen? You don’t want to clear the screen each time you update or this will cause flicker. If you can get away with it, set up your draw routines to just home the cursor and redraw this way. This also happens on LCD displays. Take care.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Chris Savage
    Parallax Engineering
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-02-05 17:06
    Russ,

    There is nothing wrong with the look of your code! In fact, it's even heavily commented. Nice work!
    I suspect (as usual) that Chris is right on the track with the flicker issue. [noparse]:)[/noparse]

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Check out: Protoboard Introduction , Propeller Cookbook 1.4 & Software Index
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS
  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2009-02-05 17:13
    Well, to be honest I didn't look at his code. I was offering a suggestion for the most common issue with this. So I am assuming he's clearing the screen each redraw. [noparse];)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Chris Savage
    Parallax Engineering
  • russ christensenruss christensen Posts: 84
    edited 2009-02-05 17:23
    tbh, the comments were added post thought so if you read my code you'd understand my thought process.·

    chris: i was indeed clearing the screen every redraw, i was under the assumption that this is the easiest way to get back to the origin.· is there any code examples floating around that demonstrate positioning with this vfd?· i briefly looked at the obex, but didn't see anything about the vfd, lots about other serial lcd's but they look like they are operating differently.· I'd love some code examples i could look at in spin that show off the capability of this device.· thanks a lot for the help!·
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-02-05 17:23
      serial.str(string($1B, $40))                      ' send vfd init string
      repeat                                            ' start display loop
    '    if CurTemp==OldTemp                            ' had this in to only redraw display if temp changed
    '      Pause_ms(10)                                 ' removed it when i added clock since it would have
    '    else                                           ' to update every second anyways
          serial.tx($0C) 
    
    
    



    ...Like I said.. "as usual"... <SMIRK> Good call.

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Check out: Protoboard Introduction , Propeller Cookbook 1.4 & Software Index
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS
  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2009-02-05 17:37
    Russ,

    Typically on an LCD, and so on the VFD too, I would redraw the screen by repositioning the cursor at the home position. Most displays have a HOME command and the Noritake Display is no exception. Instead of using the command $0C, use $0B. This will position the cursor in the top-left position of the current window (the screen, if you haven’t defined any windows). You can do this at high speed without display flicker. The only thing is if you’re drawing less data you have to remember to space over the old data. For example, if you printed the following line:
    RESULTS: 213
    


    And later you redraw and the value changes:
    RESULTS: 12
    


    Then you could have the following display if you didn’t account for the difference in characters. It is for this reason I will often use fixed positions and pad small values. I hope this helps. Take care.

    RESULTS: 123
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Chris Savage
    Parallax Engineering
  • russ christensenruss christensen Posts: 84
    edited 2009-02-05 17:47
    Thanks so much for that information about the home position.· I didn't see it anywhere in the datasheet so i assumed it didn't exist.· [noparse]:)[/noparse]· And i figured out about having to space over existing characters about 10 minutes before your post.· [noparse]:)[/noparse]· As always you guys have been a great help!

    Russ

    p.s. you mentioned windows.· I suppose your talking about what i saw on noritakes website about having seperate regions of the screen displaying different things.· is there a place i can go for documentation on that feature?· it would be very handy for the project i'm working on.· Thanks again!
  • russ christensenruss christensen Posts: 84
    edited 2009-02-05 18:36
    to sort of answer my own question, i put in a request to noritake for a full specification for the display. since i now know how to communicate with it by sending the hex codes i should be able to figure out the windows and whatnot. my other question still stands though, specifically, is there a way to concatenate strings/bytes of data for transmitting all at the same time. what i'd like to do is be able to pass in either this var or memory address into a function who's sole purpose is to send the data to the display. thanks in advance!

    russ
  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2009-02-05 20:14
    Russ,

    That is what I was going to suggest. Unfortunately we are not allowed to publish the full specification. It must be requested directly from Noritake. We can only list the brief. That is why the App Note tried to cover as many commands as I could fit into it.

    I’m not sure it provides much more information than the AppNote, but Jon Williams did write a Nuts & Volts article on the display. You can find it at the following link. It’s the one called, “Going with the Glow”. I hope this helps. Take care.

    http://www.parallax.com/Resources/NutsVoltsColumns/NutsVoltsVolume7/tabid/450/Default.aspx

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Chris Savage
    Parallax Engineering
  • russ christensenruss christensen Posts: 84
    edited 2009-02-05 23:28
    I got the full spec and i have to say this thing has some really neat features.· if anybody is looking for a nice display for their projects definately consider this one (although i think it does use a bit more power than lcd's of the same size).· tonight i will endevor to get custom windows set up of different sizes so i can only draw what i need to, and redo the code to update the different area's.· it'll be interesting to see how sending multiple serial commands from different cogs will pan out.· will probably have to have some flags set or something.· or maybe it'll buffer ok who knows.· that'll be fun to figure out.· [noparse]:)[/noparse]· but thanks again for all your help, this community has greatly exceeded·my expectations yet again.

    Russ
Sign In or Register to comment.