# How to make scrolling LCD Display (marquee)

**URL:** <https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336>\
**Category:** Ignition\
**Tags:** vision\
**Created:** [September 26, 2011, 5:14pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336 "2011-09-26T17:14:39Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![gnguyen](https://avatars.discourse-cdn.com/v4/letter/g/41988e/32.png) [@gnguyen](https://forum.inductiveautomation.com/u/gnguyen)\
**Post date:** [September 26, 2011, 5:14pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/1 "2011-09-26T17:14:39Z")

</div>

Or a new feature request, scrolling property with speed parameter ?

TIA

---

<div class="post-metadata">

**Author:** ![Carl.Gould](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/carl.gould/32/7262_2.png) [@Carl.Gould](https://forum.inductiveautomation.com/u/Carl.Gould)\
**Post date:** [September 26, 2011, 9:23pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/2 "2011-09-26T21:23:56Z")

</div>

I do something like this as the example component in the Module SDK, but other than that, I’ll take it as a feature request.

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [September 27, 2011, 1:18am UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/3 "2011-09-27T01:18:32Z")

</div>

Ask and ye shall receive…

Uses two timers. One indexes through the display itself, the other indexes through the active messages. There’s a property change script that starts the opposite timer when it is not running. So the net effect is like this:

[ul][li]Index the first timer until it finds an active message.[/li]  
[li]Load message into the buffer with spaces padding before and after.[/li]  
[li]Index through the buffer as a substring. Each increment of the index moves the diplayed text one character to the left.[/li]  
[li]After the buffer has been indexed, restart the message indexer to find the next one.[/li][/ul]

Something of a work of art, if I do say so myself-- which, of course, I do. ![:mrgreen:](https://us1.discourse-cdn.com/inductiveautomation/original/1X/d23659b203d2d24d394be983a52adb2fa6fe23d4.gif "Mr. Green")

EDIT All three versions are now in one download at [this post](http://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/17).

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [September 27, 2011, 1:21am UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/4 "2011-09-27T01:21:43Z")

</div>

Although keep it as a feature request. That’d be awesome!

---

<div class="post-metadata">

**Author:** ![gnguyen](https://avatars.discourse-cdn.com/v4/letter/g/41988e/32.png) [@gnguyen](https://forum.inductiveautomation.com/u/gnguyen)\
**Post date:** [September 27, 2011, 5:00am UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/5 "2011-09-27T05:00:26Z")

</div>

Once again Jordan, great imagination at work.  
Thanks.

---

<div class="post-metadata">

**Author:** ![Carl.Gould](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/carl.gould/32/7262_2.png) [@Carl.Gould](https://forum.inductiveautomation.com/u/Carl.Gould)\
**Post date:** [September 28, 2011, 12:02am UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/6 "2011-09-28T00:02:29Z")

</div>

Very clever - nice work!

---

<div class="post-metadata">

**Author:** ![cbabb](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cbabb/32/49029_2.png) [@cbabb](https://forum.inductiveautomation.com/u/cbabb)\
**Post date:** [January 30, 2012, 12:21pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/7 "2012-01-30T12:21:48Z")

</div>

Jordan,

Thanks for posting this…

I’m making some signage and need this functionality… The only problem is that it jumps a bit too much to make the text easily readable as it scrolls…

Can I reiterate the request to make this an object built into the system?

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [January 30, 2012, 1:27pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/8 "2012-01-30T13:27:45Z")

</div>

You can adjust the speed of the scroll using the marquee indexer timer. Remember that this a character scroll and not by pixel.

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [January 30, 2012, 2:31pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/9 "2012-01-30T14:31:18Z")

</div>

This version changes the location of a label to provide a smooth scrolling effect.

EDIT All three versions are now in one download at [this post](http://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/17?u=jordancclark).

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [January 30, 2012, 3:26pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/10 "2012-01-30T15:26:44Z")

</div>

Save as Version 2, but vertical scroll. Also added a pause at the center for easy reading. 🙂

EDIT All three versions are now in one download at [this post](http://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/17?u=jordancclark).

---

<div class="post-metadata">

**Author:** ![cbabb](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cbabb/32/49029_2.png) [@cbabb](https://forum.inductiveautomation.com/u/cbabb)\
**Post date:** [February 1, 2012, 2:15pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/11 "2012-02-01T14:15:03Z")

</div>

Jordan,

That’s awesome and exactly what I need… Thank you!

C

---

<div class="post-metadata">

**Author:** ![jimjohnson](https://avatars.discourse-cdn.com/v4/letter/j/898d66/32.png) [@jimjohnson](https://forum.inductiveautomation.com/u/jimjohnson)\
**Post date:** [October 6, 2013, 2:31am UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/12 "2013-10-06T02:31:46Z")

</div>

Anything new on this subject?

How does the .vwin file above work, and how do I import it and use it?

---

<div class="post-metadata">

**Author:** ![greg.simpson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/greg.simpson/32/3135_2.png) [@greg.simpson](https://forum.inductiveautomation.com/u/greg.simpson)\
**Post date:** [October 7, 2013, 1:17pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/13 "2013-10-07T13:17:47Z")

</div>

You can import a .vwin by right clicking the Windows folder in the project browser and selecting import.

---

<div class="post-metadata">

**Author:** ![bhastie](https://avatars.discourse-cdn.com/v4/letter/b/d6d6ee/32.png) [@bhastie](https://forum.inductiveautomation.com/u/bhastie)\
**Post date:** [April 25, 2014, 4:47pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/14 "2014-04-25T16:47:44Z")

</div>

Nicely done, thanks.  
 ![:prayer:](https://us1.discourse-cdn.com/inductiveautomation/original/1X/e5a7e3b63facc151ea73e3b45db7bdb3d4bdc316.gif ":prayer:")

---

<div class="post-metadata">

**Author:** ![jkelleyus](https://avatars.discourse-cdn.com/v4/letter/j/3bc359/32.png) [@jkelleyus](https://forum.inductiveautomation.com/u/jkelleyus)\
**Post date:** [September 6, 2017, 8:10pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/15 "2017-09-06T20:10:50Z")

</div>

Sorry to dig up an old thread here, but I was looking for examples of a scrolling marquee. This one would display active alarms of a certain severity in our maintenance area(s).

JordanCClark had attached some examples but unfortunately they don’t appear to be on the server anymore.

Can anyone suggest good ways to accomplish this?

Thanks,

John

---

<div class="post-metadata">

**Author:** ![Sanderd17](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sanderd17/32/8735_2.png) [@Sanderd17](https://forum.inductiveautomation.com/u/Sanderd17)\
**Post date:** [September 7, 2017, 9:00am UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/16 "2017-09-07T09:00:44Z")

</div>

Things have changed a bit meanwhile. The template repeater now has a build-in marquee mode. This even works when you only add one template to the repeater.

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [September 7, 2017, 11:21am UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/17 "2017-09-07T11:21:27Z")

</div>

All three versions in one download. Being a code pack rat has its advantages… 😁

[Marquee\_v1-v3\_2017-09-07\_0718\_partial.proj](https://us1.discourse-cdn.com/inductiveautomation/original/2X/6/6c775bad07b79af65d41441fbb9504196a3e0ae1.proj) (34.9 KB)

---

<div class="post-metadata">

**Author:** ![AlThePal](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/althepal/32/3603_2.png) [@AlThePal](https://forum.inductiveautomation.com/u/AlThePal)\
**Post date:** [September 7, 2017, 3:48pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/18 "2017-09-07T15:48:37Z")

</div>

Here’s an update on Jordan’s marquee using `system.gui.transform`. It’s simpler and doesn’t need as many objects or bindings. Just set the root container’s `time` property to the length of time in milliseconds for the message to cross the container. It should cope with different length of container or message.

Multiple messages is left as an exercise for the reader.

[Marquee updated\_2017-09-07.proj](https://us1.discourse-cdn.com/inductiveautomation/original/2X/b/b73e3074b165b7b1024a73bf440946757624fca7.proj) (6.6 KB)

---

<div class="post-metadata">

**Author:** ![prasath.t](https://avatars.discourse-cdn.com/v4/letter/p/898d66/32.png) [@prasath.t](https://forum.inductiveautomation.com/u/prasath.t)\
**Post date:** [November 11, 2021, 1:08pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/19 "2021-11-11T13:08:59Z")

</div>

@JordanCClark @AlThePal

I have tired for multiple messages… i getting message from database to text field…  
i am passing in to text field as string hello, welcome, testing (like this )  
Is there any better way to do it for multiple message… because i am getting the text message from database

my database look like this

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/5/45f4ccc0e5c6a2624dd459482bba6a3ca0141a4f.png)

based on the plant id i am filtering the message to plant and i have message enable option… so when i disable i am not showing that text

can help me to do this in effective manner

Is it possible to pass dataset column to the text box and show message on the screen?

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [November 11, 2021, 7:47pm UTC](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336/20 "2021-11-11T19:47:31Z")

</div>

Version that one-shots a message.

[marquee\_oneshot\_2021-11-11\_1435.zip](https://forum.inductiveautomation.com/uploads/short-url/2zz8pWz6bhCBiWwxOtyWUGnxSJP.zip) (6.6 KB)

[Next page](https://forum.inductiveautomation.com/t/how-to-make-scrolling-lcd-display-marquee/3336.md?page=2)
