LCD music display

Legible notes that don't cost a fortune

Similar projects worth following

The battle to display music has ranged from originally printing & taping hundreds pages together.

To the ridiculously large full sized TV.

To the ridiculously small & expensive tablet.

To the ridiculously small & cheap portable monitor.

The lion kingdom's goal was always a cheap & large 2 page display, replicating the original book format.  The easiest way to get there was 2 monitors in portrait mode.  Cheap portable LCD monitors finally started appearing in 2019, but they weren't really cheap enough to dedicate to nothing but showing music.

The lion kingdom's stock of obsolete laptops finally reached an age where they were never going to be used again & cheap HDMI to LCD converters abounded.  They were the venerable LTN156AT24 & LP156WH4.  They both had 40 pin connectors & LED backlights.  They both ran on 6 bits per channel.  The point had arrived where a dual 15.6" 1366x768 display just might be possible for under $100. 

1366x768 might be just enough resolution to replace paper if the RGB channels were used as pixels & the text was cropped.  It still remaned a much cheaper option than 1920x1080 panels.

The mane problems with these panels are they're really tall & the electronicals take a lot of space.  Besides the HDMI converter, they would need a raspberry pi, HDMI cables, & power supply.

Finding a suitable LCD controller is manely about finding one with the right cable.  All LCD controllers seem to do the same basic conversion from HDMI to a certain number of LVD pairs & they all have a header for powering a backlight inverter.  None of the converters outside China had a 40 pin cable.  They all had 30 pin cables.  The goog finally came up with a bang good match.

This is the same controller board sold by millions of sellers on, but it's the only one which specifically shows a matching 40 pin connector & describes entering a 1366x768 6 bit mode.  They're all based on the same Novatek NT68676 chip.

They also have different cables for connecting a converter board to a 40 pin or 30 pin panel.  Presumably they all connect to the same Novatek board.  Sadly, trying different cables by mail ordering from China could take years.

  • Software

    lion mclionhead2 days ago 0 comments

    Making a minimal confuser actually do minimal confusing is a lot harder than it used to be.  For decades, the raspberry pi foundation has labored to run as much as possible as slowly as possible.  With much coercing, it can be made to just run fvwm on X11.  The key commands are

    apt install fvwm

    xinit /usr/bin/fvwm2&

    /usr/share/fvwm/system.fvwm2rc has to be copied from somewhere else.  It needs an option in system.fvwm2rc to disable the reader's window border.

    Style "Reader" NoTitle, HandleWidth 0

    Sadly, the current versions of fvwm no longer support keeping a window on top.  That has to be done in the program.

    Then, there are commands to try to slow down the mouse speed.

    xinput --list-props "PixArt USB Optical Mouse"
    xinput --set-prop "PixArt USB Optical Mouse" "libinput Accel Speed" -1

    The lion kingdom believes the mouse speed still needs a kernel hack to be slow enough.

    The server pi needs to export NFS to the client pi so they can access the music files.

    The decision was made to finally make the Cinelerra toolkit a standalone library with the ability to strip out all its video editing features.  It works quite well as a minimal retro interface, only taking 18 minutes to compile on a 1B.  As simple as it is, it's still takes a beast to do all the listbox, textbox, & menu operations a toolkit has to do.

    Since it's not a dual head confuser, the mouse only works on 1 monitor.  It's a bit contorted to have a mouse 3 octaves away from the screen.  It definitely needs a mouse stand on top of the panel.

    Despite all the hype about a pointing device which can draw, annotations are going to slow page turns way down.  In its simplest form, every page would optionally have 2 annotation layers, a foreground & background.  Each layer would have 16 possible colors, including transparent.  The resolution wouldn't be able to use RGB subdivisions.  Annotations would go in a separate file with flat images & flags saying if an image was used.

    It needs to support 1/2 a page turn so every page can be shown on the screen with the pointer.  The client confuser needs to poll the annotation file for updates.  The annotation file needs to be in RAM along with all the music images.  The client would have to reload the entire file when it changed.  To speed this up, the annotation file can start with a table of contents, showing what revision each page is on.  The client can reload just the latest revision of 1 page.

    Then of course, the server needs a full paint program, 1/2 page turn buttons, draw, erase, color palette, layer, save file, brush size, brush type, but no undo is required.  The 2 layers need different color palettes.

    There's still a dream of just running it without RGB subdivisions, on the dual head 4B, with its horrible aliasing.  Page turns with annotations would be a lot faster.  The mouse would work on both screens.  The networking protocol, NFS, half page turns would go away.

  • Stand version 3

    lion mclionhead4 days ago 0 comments

    A new batch of stands came off the printer.

    Featuring all new latches

    Much easier access to the electronicals.  Farther placement back.  Flaps to keep it from sliding forwards.

    New confuser placement.

    Plans continued for a pointing device.  All attention turned from trackballs back to an old fashioned mouse in the short term, eventually being replaced by a trackpad.

    So the Elan 33059 isn't documented anywhere, but it's similar to a more common Synaptics described on

    The ribbon cable pinout doesn't match, but the Elan version otherwise has the same signals as the Synaptics.  The test points are even labeled 

    TD - PS2 data

    TC - PS2 clock

    T13_R - right button

    T14_L - left button

    T19_RR - scroll right

    T20_RU - scroll up

    T21_RL - scroll left

    T22_RD - scroll down

    TN - ?

    TP - ?

    Source code is scarce.  The best example was

    There were comments about the source code working with an Elan chip.  It bit bangs the PS2 pins.  Sadly, a quick test showed TN & TP are not USB pins.  

  • Setup 1

    lion mclionhead7 days ago 0 comments

    The fastest possible setup yielded this.

    A giant 500W Dell power supply made barely enough pixies to feed 3 raspberry pi's.  

    It was a bit weird to turn pages with the buttons.  It was hard to turn pages with the left paw, but anything was better than the ipad.  A 3rd button on the left side might aid the left paw.  Ventilation was worse.  It's going to be brutal in hot weather.

    It needs to be 5mm farther back.  The magnet holders need to be without walls so they can sit farther back.  There's a case for bolting it on the back so it can go a few inches farther back.  Maybe the viewing angle can be more horizontal.  Making it completely fold when not in use would require a major overhaul of the cables.

    The back needs panels to keep it from sliding forward.  The corners need latches.  The confusers all need to go under the instrument instead of on top of it.  Maybe that would free up enough space for a pointing device.

    As cramped as it is, it's a function of what $30,000 in annual rent can afford.  Want more space?  Pay $50,000 in rent or $80,000 after everyone moves back.

    The pointing device is the next big deal.  Selecting files without a GUI is really slow.

    There's not enough room for a mouse pad anywhere.  Alternative pointing devices have gotten nosebleed expensive.  The cheapest solution is the mighty $20 Perixx trackpad.

    It's 76x64mm.

    Good trackpads are hundreds of doll hairs.  Good trackballs start 3x more expensive than mice & a are bit bulkier than trackpads.

    It's been 25 years, but balls have retro appeal & lions remember having a better experience with them than pads.  Based on the memory, a trackball would be a better match than a trackpad for a stationary application.   All modern trackballs are just upside down mice with optical sensors pointing up.

    The best trackball is the $33 Kensington Orbit

    No dimensions are given, but it's as wide as a paw.  

    There is a thumb operated trackball

    But this would be impossible to draw annotations with.

    There is a lot of interest in reusing macbook track pads as standalone devices, but the track pads themselves are SPI devices connected by a very fine pitch ribbon cable to the mane board.  The brain that converts the keyboard & trackpad to a USB signal is on the mane board.  

    The touch pads extracted with the LCD panels have undocumented ELAN 33059 chips but appear to use I2C.  The internet has never figured out how to use these.

    There was a desire long ago to make a pointing device out of a webcam that tracked a blinking LED.  It might be too low in resolution & too consuming of space.

    Both trackballs & trackpads are harder to draw on than mice.  Given the need to draw annotations, using a phone as a trackpad may be the best option.  An interface which takes both a stylus & paw is a big win.  The phone can also show the recording interface.  There's a lot of adware for using phones as trackpads.  

  • Raspberry pi 4 busted

    lion mclionhead06/06/2021 at 04:41 0 comments

    The goal was to plug the monitors into the existing 4B which is used for sound processing.  Things were going well with the raspberry pi 1B on a single monitor, but the 4B does not support 1366x768.  The problem is it's a very uncommon mode in modern times so it was phased out in order to support dual HDMI.  

    They offered an explanation of the compromise:

    They do mention supporting a close 1360x768 resolution.

    There's no way to disable scaling on the Novatek NT68676, so 1360x768 always has aliasing which makes it worthless for showing text.  No scaled mode would allow individually addressing RGB triplets.

    It would have been a bad day for anyone who just spent $200 on portable monitors of 1366x768 resolution.

    There is a way to change the language which isn't documented anywhere.  That allowed lions to search for a non existent way to disable scaling.

    That leaves daisychaining the last 2 raspberry pi 1B's.   There were once 3, but lions unwisely stripped the HDMI header from 1 to minimize its footprint.  Many thoughts go through a lion's mind about the affordability of getting 2 new 1920x1080 monitors vs wrangling multiple raspberry pi's.  

    Relying on the sound processor to drive 2 displays & have enough clockcycles for sound processing always was a risky move.

    Xorg can be run in 8 bit mode to get the fastest page turns.  This requires adding another line to /boot/config.txt


    8 bit mode caused aliasing in the X direction, yet another unsupported mode.  The best it could do was 16 bit.


    Page turn speed vs depth:

    8 bit: 25fps

    16 bit: 25fps

    24 bit: 12fps

    Faster page turns may be possible by writing to the framebuffer directly, but 25 was good enough.

    With a simple network protocol & a bag of network cables, the 2 pages finally showed.

    Next comes a power system.  The combined panels draw 1.1A at 12V.  The PI's draw a few more amps at 5V.

  • Displaying the 1st page

    lion mclionhead06/04/2021 at 18:53 0 comments

    Rotating the framebuffer on a raspberry pi required editing /boot/config.txt & adding 


    to the top. 

    It's essential for the pointer to move in the right direction, since the lion kingdom plans on using a standard X11 pointing device.

    A growing list of configuration settings will be required to disable screen blanking & drive 2 screens.

    The Cinelerra toolkit amazingly compiled for ARM pretty easily.  Compiling Cinelerra for ARM would be problematic because all the 3rd party libraries are written in assembly language.  After a few pixel mangling functions, the text finally appeared.

    It was the 1st time a lion had a scanned piece of music in more than its original 12" height, on a practical display.

    A key feature ended up being splitting each pixel into RGB triples to get more vertical resolution.

    If all the pixels were white, it would be just 1366x768 instead of 4098x768.

    This version loaded all the pages from 300dpi PNGs, stretched, & cropped to fill the panel on the raspberry pi.  It was too slow to be practical.  The slowest step was decompressing the PNG files.  It needs to load an uncompressed image format which has already been converted directly to the framebuffer format on a faster confuser.  

  • Prototype version 2

    lion mclionhead06/04/2021 at 04:28 0 comments

    This one folded up.  It had clearances for cables.

    The cables may have to go out opposing sides when 2 monitors are side by side.  

    Alignments were a lot worse because loctite superglue doesn't set as fast as hobby glue, but it still managed to clear the buttons.

    The single latch was a disaster.  It needs 2 latches in the corners, but that's where the magnets are.

    The next task was displaying something useful, which would require native X11 programming because of the lack of clockcycles.  Tiny confusers running native software are still better than buying a $4,000,000 room to fill with tower PC's just to run a different language.

  • Prototype version 1

    lion mclionhead06/02/2021 at 06:09 0 comments

    The hardest part in an operation like this is the enclosure.

    Each panel would have its own stand.  The stand would attach by magnets & fold up.  It was too big to fit on the print bed, thus began the brutal experience of modeling & gluing 10 pieces.  The dimensional accuracy of a model split into many pieces is horrible.

    Tolerances were bad enough to keep it from folding up.  The wires took up a lot of space.

    The LVD cable needed the living daylights bent out of it to fit in there.

    The magnets held it on.  It needed a hair more clearance over the buttons.

    Viewing angle was as bad as expected.  It may end up being a single page if 2 pages are too far apart.

    Rear panel either came out too narrow or the LCD panel came out too wide.  Rear panel doesn't need a solid sheet.  LCD panel needs gaps to route cables next to the panel.  

    Might have to leave it unfolded & make a bigger cover.

  • LCD controller test

    lion mclionhead05/31/2021 at 03:36 0 comments

    2 weeks later, the bang good controllers arrived pretty bang fast.  They worked without any 6 bit reconfiguration.  The monitors have to be on before the pi in order to get Linux to detect the right resolution, though the Novatek clearly stretches whatever comes from HDMI to the LCD's native resolution.  There's some kind of communication from the panel to the Novatek to HDMI, informing the pi of the native resolution.  This might also tell the Novatek the right encoding.

    They both ran with the backlight header feeding 12V directly into the 40 pin connector.  They could run on as low as 8V, though this sucked more current.  They both needed 1.5A at 12V.  The viewing angle on these was really narrow.  Forgot how bad the viewing angle on cheap laptops was, 10 years ago.

    LG LP156WH4

    LG scaling 1920x1080 to 1366x768

    Samsung LTN156AT24

    The next step is the enclosure, the HDMI cables, the user input, & the software.

View all 8 project logs

Enjoy this project?



Arsenijs wrote 05/25/2021 at 04:52 point

>>> The point had arrived where a dual 15.6" 1366x768 display just might be possible for under $100

Very much so! I'm compiling information on general reuse of these displays here: #All About Laptop Display Reuse , drop by our chatroom anytime!

>>> All LCD controllers seem to do the same basic conversion from HDMI to a certain number of LVD pairs

Yep! The controllers that you mention specifically, M.NT68676 boards, also need to be programmed with the right firmware to drive 1366x768 panels.

>>> describes entering a 1366x768 6 bit mode.

That sounds good, I didn't know that's what "LVDS mode" meant for these controllers, but it makes sense!

What I'd typically recommend is punching your panel number into the eBay search bar, in your case, you'd get this: . I went and checked - both of your panels have the same pinout, driving requirements and color bit mapping scheme, so if you buy 2pcs of this same controller, it should work with both of the panels. Searching for a panel-specific controller helps you avoid cable troubles, and in case of the eBay link I'm sending, it's also going to come out cheaper!

The second cable you're showing seems like the right deal - you definitely don't need a set of 14 different ones! =D However, you don't even need that cable if you're getting a panel-specific controller, since a panel-specific kit will be coming with the right cable already!

Nice project! Added it to #Laptop Display Things list =)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates