8 LCDs on 1 CORE :D

This morning I soldered this bunch of 8 LCDs to 1 Core…totally awesome :slight_smile:

The testapp is simple written in C within the “void DISPLAY_Init” section, but what I need is to check if they dont suck too many processor performance etc…

maybe I should write some coundtdown`s or something  for each display, but I dunno how to do this…stryyyyyd, I need you at the chat  ;D  ;D

The next days Ill try if I can connect 16 Displays to the Core, but 1st I wanna check if the 8 works stable…

brb… :slight_smile:

You don’t have to be crazy to DIY here, but it helps…

that is incredibly cool :slight_smile: Its not a dig by any means…but are you actually going to use that many? or is this more a test to see how far you can push the core unit? wouldn’t that chew up a whole bucketload of power?

Writing to any one of the LCDs doesn’t take any longer than any other LCD… but if you have 4x as much screen and you writet to all of it, it’ll take 4x as long… (plus a little bit of overhead)

I think MTE noticed TK’s hint in the function reference and is running with it… it’s fun :slight_smile:

…but are you actually going to use that many? or is this more a test to see how far you can push the core unit? w

Yes, for now I only want to test if its possible and working without big problems, but I see in future mega midirouters / monitors with a big bunch of LCDs to overview all parameters  etc without shortened names/values  :slight_smile:

wouldn’t that chew up a whole bucketload of power?

Ive connected them to my LC-Core and this is powered with an 23A PC-PSU ;)  ;D

Writing to any one of the LCDs doesn’t take any longer than any other LCD… but if you have 4x as much screen and you writet to all of it, it’ll take 4x as long.

Totally right, that I figured out the last hours, because when u need to communicate to the 3rd and above LCD u need to reinitialize every display  before you can write something to it.

ahh sweet as, sounds exciting! :smiley:

Are you already using the new app_lcd/clcd_multi driver I gave doc? :wink:

Best Regards, Thorsten.

I uploaded the driver we used on a MBLC with 4 CLCDs to:

http://svnmios.midibox.org/trunk/modules/app_lcd/clcd_multi/

And the test application to:

http://svnmios.midibox.org/trunk/apps/examples/lcd7/clcd_multi/

Feel free to enhance & test the driver for 8 CLCDs

Best Regards, Thorsten.

Yayyy thank you Thorsten :slight_smile:

Are you already using the new app_lcd/clcd_multi driver I gave doc

Hehe, no, I got a empty C-skeleton and started with coding…

void Init(void)

MIOS_LCD_YAddressSet(0x00, 0x40, 0x80, 0xc0);

  
  void DISPLAY_Init(void)

// LCDs-Initialisation
  MIOS_LCD_TypeSet(MIOS_LCD_TYPE_CLCD, 0x80 | 0x37, 0x80 | 0x25);
  MIOS_LCD_Init();
  MIOS_LCD_TypeSet(MIOS_LCD_TYPE_CLCD, 0x80 | 0x24, 0x80 | 0x23);
  MIOS_LCD_Init(); 
  MIOS_LCD_TypeSet(MIOS_LCD_TYPE_CLCD, 0x80 | 0x20, 0x80 | 0x21);
  MIOS_LCD_Init();
  MIOS_LCD_TypeSet(MIOS_LCD_TYPE_CLCD, 0x80 | 0x22, 0x80 | 0x34);
  MIOS_LCD_Init(); 

//Writing on LCD 1 & 2
  MIOS_LCD_TypeSet(MIOS_LCD_TYPE_CLCD, 0x80 | 0x37, 0x80 | 0x25);
  MIOS_LCD_CursorSet(0x00);
  MIOS_LCD_PrintCString("LCD 1 on  >RD7<");
  MIOS_LCD_CursorSet(0x80);
  MIOS_LCD_PrintCString("LCD 2 on  >RC5<");

//Writing on LCD 3 & 4
  MIOS_LCD_TypeSet(MIOS_LCD_TYPE_CLCD, 0x80 | 0x24, 0x80 | 0x23);
  MIOS_LCD_CursorSet(0x00);
  MIOS_LCD_PrintCString("LCD 3 on  >RC4<");
  MIOS_LCD_CursorSet(0x80);
  MIOS_LCD_PrintCString("LCD 4 on  >RC3<");

and so on......

::slight_smile: maybe not the elegantest way to code, Im not a pro but willing to learn  ;D

Yeh, I have been trying to convince MTE to use the new structure… he’s having a bit of an attack of “fear of the unknown” but I think we’ll give it a shot this weekend and I’m sure he’ll be pleasantly surprised by how much easier it is!

While I’m talking with MTE, we’ll make an 8*LCD version of the driver, and he can learn how to upload to SVN too :slight_smile:

While I’m talking with MTE, we’ll make an 8*LCD version of the driver, and he can learn how to upload to SVN too

hehehehe, Ive done many things the last hour, installed Tortoise and got access to the server, but 1 thing is totally nerving…when I want to connect to a folder I must write everytime my passphrase for 2 times  ??? >:(

…so I only connect in Read-mode for now via webbrowser…

Ok, than I putted all new files into my C-Skel…but when I try to compile I got only this error 

error: missing definition for symbol "_USER_LCD_Select", required by "_output\main.o"

…when I want to connect to a folder I must write everytime my passphrase for 2 times  ??? >:(

Follow my instructions on the wiki - install pageant and that will go away :slight_smile:

when I try to compile I got only this error 

error: missing definition for symbol “_USER_LCD_Select”, required by “_output\main.o”

Will be in the chat in about 30 seconds :wink:

Follow my instructions on the wiki - install pageant and that will go away

Uhm Ive totally overread that, sorry, it works now *happy :slight_smile:

I like the direction in which this is going. Oh btw, whatever happened to mbTV? ;D

8 TFTs on 1 Core  ;D  ;D  ;D  ;D

It works! :slight_smile: coming soon to 8 screens near you :slight_smile:

[me=stryd_one]does the “it’s working” dance![/me]

The “Working Dance”  ;D

http://de.youtube.com/watch?v=m-s7kzx3Dto

ROFLMAO

Gimme some hours to calm down, then Ill document it in the wiki :wink:

Who on earth picked that music, it has nothing to do with the dance… hmm.

Who on earth picked that music, it has nothing to do with the dance… hmm.

Yeh gay music for a gay-dance…  ;D

Sorry for the following writing in german language, but its necessary for correct explanation…

Hallo Thorsten,

Stryd und ich haben jetzt 3 Tage mit dem neuen Treiber rumprobiert, aber stoßen immer wieder auf unerklärliche Bugs…

Pinbelegung der 8 LCDs :

E1=RD7  0x37

E2=RC5  0x25

E3=RC4  0x24

E4=RC3  0x23

E5=RC0  0x20

E6=RC1  0x21

E7=RC2  0x22

E8=RD4  0x34

OK, zuallererst hat Stryd LCD 4 bis 7 (von 0 gezählt natürlich :wink: ) in den Treiber adaptiert, dann schrieb er eine kleine Applikation die wie folgt ablaufen soll :

Poweron -> Hello World x - Messages auf allen Displays -> dann ein langsames scrollen einer Zeichenfolge, daß von LCD 0 startend durch alle LCDs wandert…

Soweit sogut, die Initialmessages (Hello Wolrd x) funktionieren und werden auf allen Displays korrekt dargestellt, die Scrollroutine beginnt und läuft durch LCD 0-4, bleibt dann aber an LCD 5 hängen…LCD 6 wird komplett ignoriert (sprich das Initial-Hello World ist wie eingefroren) und an LCD 7 läuft die Routine weiter durch und beginnt wieder ab LCD0.

Das seltsame nun daran ist, daß sich dieser Ablauf  nach mehrmaligen Powerons/offs immer wieder and den letzten 3 LCDs geändert hat, sprich manchmal durchlief es auch gar nicht mehr die letzten 3 LCDs, manchmal lief es auch perfekt durch alle…

Gut, was wir dann zuerst vermuteten ist, das es ein meiner LC-PSU liegt (meine erste Testumgebung war die LC mit dem PC-Netzteil), gut ich switche heute das ganze mal auf den Traktorizer (PSU mit Entrauschung, anderes Core), aber da waren die Bugs genau dieselben…

Natürlich habe ich auch die letzten 3 Displays getauscht (hab ja 16 Stück hier rumliegen :slight_smile: ) und die Verkabelung mehr wie 10mal gecheckt, ich kann also auf jedenfall mal einen Hardwarefehler ausschliessen und vermute, das der Bug eher am Treiber (definierung der Enable-Pins etc) oder der Applikation liegt, oder auch an beiden…

Auf jedenfall sind wir mal mit unserem Latein am Ende und bitten Dich, doch kurz mal einen Blick die Applikation (Attachment) zu werfen.

Grüße

MTE & Stryd

[app_8clcds.zip](< base_url >/applications/core/interface/file/attachment.php?id=969)

[app_8clcds.zip](< base_url >/applications/core/interface/file/attachment.php?id=4111)

LCDs should never be concurrently handled by the main task (DISPLAY_Init/Tick) and an ISR (Timer())

In fact, I would never control the LCD from an ISR, because if a LCD is busy for more than 640 uS, this could result into MIDI data loss at the input side.

Best Regards, Thorsten.