LCD Display Question

Discussion about Modding the XBOX, including hardware and software hacks.
Post Reply
User avatar
xman
Posts: 1289
Joined: Wed Jul 04, 2012 2:30 pm
Location: Sydney, Australia
Has thanked: 55 times
Been thanked: 168 times

LCD Display Question

Post by xman »

Is the LCD display limited to a 4 line 20 character display?. Can I go say an 8 line 40 character and then double the font size?. Is it possible to run twin 4 line 20 character displays by hooking the "Column" or character data wires to both displays and the top 2 "Row" or line data wires to one display and the bottom 2 "Row" or line data wires to the other display so one display will show the normal info of the LCD top half and the second LCD will display the lower half.? Front panel of the Xbox isn't an issue with this project as the displays won't be mounted in a Xbox from panel.
User avatar
professor_jonny
Posts: 1296
Joined: Thu Jul 05, 2012 5:41 am
Location: New Zealand
Has thanked: 66 times
Been thanked: 196 times

Re: LCD Display Question

Post by professor_jonny »

i think that was in the advancedsettings.xml i may be wrong but the wiki would know he is good like that :-)

bad sadly he is broken :-(
User avatar
Oldxboxusa
Posts: 145
Joined: Tue Aug 28, 2012 5:47 pm
Has thanked: 14 times
Been thanked: 3 times

Re: LCD Display Question

Post by Oldxboxusa »

Yes it is limited, and for now the advanced settings.xml has the wrong code inside for that. the right code (this is what i use) is:

Code: Select all

<advancedsettings>
<disablemodchipdetection>false</disablemodchipdetection>
<useddsfanart>true</useddsfanart>
<thumbsize>256</thumbsize> 
<fanartheight>512</fanartheight>
<displayremotecodes>false</displayremotecodes>
<ftpshowcache>true</ftpshowcache>
<lcd>
 <rows>4</rows> # Number of rows to use for the LCD.
 <columns>20</columns> # Number of columns to use for the LCD.
 <address1>0</address1> # Memory address for row 1.
 <address2>20</address2> # Memory address for row 2.
 <address3>64</address3> # Memory address for row 3.
 <address4>84</address4> # Memory address for row 4.
 </lcd>
</advancedsettings>
User avatar
Oldxboxusa
Posts: 145
Joined: Tue Aug 28, 2012 5:47 pm
Has thanked: 14 times
Been thanked: 3 times

Re: LCD Display Question

Post by Oldxboxusa »

Or this one:
LCD.xml for ym2004a
Fence
Posts: 1
Joined: Wed Jan 07, 2015 12:42 pm

Re: LCD Display Question

Post by Fence »

It probably won't happen in the XBMC4Xbox itself (considering the amount of effort in finding an appropriate library, compile in the same package while keeping it under the limited RAM amount available on the machine).
We are the pioneers in providing 70-417 toefl and with 100% exam pass Download mcse 2008 our latest passguidegmat and mcsa online training ccna or pass real exam
psyko_chewbacca
Posts: 213
Joined: Fri Oct 05, 2012 5:19 pm
Location: Québec, Canada
Has thanked: 21 times
Been thanked: 125 times

Re: LCD Display Question

Post by psyko_chewbacca »

There are bigger Character LCDs out there.

40x4 HD44780-compatible are easily available. The only issue is that these require one extra data line to interface them so physically, you might have trouble interface it to your modchip(Xecuter 3, SmartXX V3 and OPX and upcoming XBlast Lite could work).

KS0073 compatible LCDs have pseudo-SPI serial mode so they could theorically be connected to any modchip. I did not check to see if units bigger than 20x4 are made.

In any case, you'll have some coding to do in every program you wish to use the LCD.
In the case of the HD44780-compatible, you'll need to control an extra IO line to interface "E2" signal on LCD. You'll need to use a GPIO pin on SmartXX or XBlast. In the case of the Xecuter 3, you'll have to use one of the data line DB0 to DB3 and interface LCD in 4-bit mode(XBMC talks to LCD in 4-bit mode already). In closed-source programs like modchip OSes, you'll end up seeing gibberish on X3(if interfaced in 8-bit mode) and partial (but readable) screen usage in SmartXX.

KS073-compatible will likely be easier to interface especally if you have a Xenium (which already does SPI). For all the other modchips, you'll need to bit-bang SPI through the LCD port of the modchip. Of course closed source programs will only show gibberish but will possibly fine in Xenium OS.

I don't even think XBMC has support for anything bigger than 20x4. You'll have to improve code in place for that.

So it is possible but it's a lot of work.
User avatar
professor_jonny
Posts: 1296
Joined: Thu Jul 05, 2012 5:41 am
Location: New Zealand
Has thanked: 66 times
Been thanked: 196 times

Re: LCD Display Question

Post by professor_jonny »

Why dont they use i2c screens straight off the eprom bus at the lcp connector? there is support for it in xbmc but i have never seen it utilised for an lcd display.

A bit off topic but one thing that would be nice if we were able to enable 240p display modes by forcing an unused or specific mode to for pixel perfect emulation using i2c, it seems you cant do it from the xdk

http://rex.xbox-scene.com/I2C/i2c-prog.html
psyko_chewbacca
Posts: 213
Joined: Fri Oct 05, 2012 5:19 pm
Location: Québec, Canada
Has thanked: 21 times
Been thanked: 125 times

Re: LCD Display Question

Post by psyko_chewbacca »

Yep that could be a solution. You're not supposed to clutter the SMBus which such peripherals but hey, you're not supposed to force data signals off a system bus(D0/LFRAME)... So to hell with conventions!

Simple 8-bit I2C IO expander will do it for data. Backlight might require something more if you want to control brightness with more than 2 states.
User avatar
professor_jonny
Posts: 1296
Joined: Thu Jul 05, 2012 5:41 am
Location: New Zealand
Has thanked: 66 times
Been thanked: 196 times

Re: LCD Display Question

Post by professor_jonny »

there is only four things on the bus there cant be that much trafic on there I dont see why we could not squeeze a few packets in there it would make things easer than having a clpd in the mix off the lcpbus.

The micro, Video Encoder, Temperature Monitor and the EEPROM, and i believe it comes direct out of the mcpx?.

if you had a micro in between a screen and i2c you could have Basic lcd control during a game or as such.
psyko_chewbacca
Posts: 213
Joined: Fri Oct 05, 2012 5:19 pm
Location: Québec, Canada
Has thanked: 21 times
Been thanked: 125 times

Re: LCD Display Question

Post by psyko_chewbacca »

Yes I think these are all the devices connected to the SMBus.

MCPX is master of this bus but I think I saw somewhere that the PIC initialize the video encoder chip at boot. It could make sense as a good design practice in the eventuality that Microsoft would have wanted to change to a new Video Encoder IC that requires a different init routine. It's cheaper to write a new program for the PIC than to recode HDL code of the MCPX and generate a new ASIC revision! Anyway it's not really relevant to the question here.

Putting a LCD on the SMBus will generate a lot of traffic, especially when running XBMC as it constantly refreshes it. It might make the LCD's refresh rate a little slow. I don't remember what's the frequency of the SMbus on the Xbox but assuming it's 100KHz, refreshing the whole LCD would take 12,8ms in the absolute best case(20 * 4 * 16 bits back to back, no interval, no wait, no special characters) for a 20x4 LCD; double that for a 40 * 4 and so on.

Putting a micro is a good solution to manage backlight and decode I2C(replaces IO expander). However, I don't think it would be advisable to give it bus mastering capabilities. Even when a game is running, it might be possible that the executable or kernel would want to send data on the SMBus, creating a mess if both devices try to send at the same time(MCPX and custom micro that is).

The upside of this whole idea is the elimination of most delay routines in the program code when refreshing the LCD. LPC is too fast for HD44780 refresh rate and so a delay must be added between each packet. SMBus frequency is slower than HD44780 refresh rate. You'd still need delays on LCD function commands(like CLEAR SCREEN or moving the cursor).
User avatar
Oldxboxusa
Posts: 145
Joined: Tue Aug 28, 2012 5:47 pm
Has thanked: 14 times
Been thanked: 3 times

Re: LCD Display Question

Post by Oldxboxusa »

I figured out that on some ks0066 lcd that are HD44780 compatible, there are no adjusting over xbmc. Or is this a problem with my configuration?
Some time there where weird characters on that LCD that i have (yayou ym2004a 20x4 lcd).
In every tutorial and in the description for lcd that comes with the smartxx v3 i see that every lcd must have a resistor.
But on the ym2004a there both backlight and contrast are working with +5V (according to the datasheet).
When i go into the smartxx os there is the option for the lcd, everything works - but one thing is curious, when the lcd goes on (i think it is initialized at this time) only the first and the third line are with blocks (blocks = black contrast blocks).

Is this normal by this LCD?
psyko_chewbacca
Posts: 213
Joined: Fri Oct 05, 2012 5:19 pm
Location: Québec, Canada
Has thanked: 21 times
Been thanked: 125 times

Re: LCD Display Question

Post by psyko_chewbacca »

Oldxboxusa wrote:I figured out that on some ks0066 lcd that are HD44780 compatible, there are no adjusting over xbmc. Or is this a problem with my configuration?
Some time there where weird characters on that LCD that i have (yayou ym2004a 20x4 lcd).
In every tutorial and in the description for lcd that comes with the smartxx v3 i see that every lcd must have a resistor.
But on the ym2004a there both backlight and contrast are working with +5V (according to the datasheet).
When i go into the smartxx os there is the option for the lcd, everything works - but one thing is curious, when the lcd goes on (i think it is initialized at this time) only the first and the third line are with blocks (blocks = black contrast blocks).

Is this normal by this LCD?
Maybe the units you have are not properly clocked . Clock timing issues could cause problem when tight timing is used to transfer data to LCD, like weird characters or improperly initialized LCD. Remember you're on a PIII running a 733MHz and those LCDs latch data normally at 250KHz max. If SmartXX is cromwell-based (really it is, I'm sure!), then it's not multi-threaded and thus, you have to have a good balance between LCD refresh speed and UI responsiveness(while you are transfering data, Xbox CPU is stalled to accomodate data transfer to LCD at much lower speed between each byte sent). So longer delay means more compatibility with slower LCDs but makes SmartXX OS navigation less responsive.

XBMC still uses delay to stall code execution between bytes but maybe it's timing delays are more relax since it can switch thread when waiting in the one managing the LCD. One way way to prove that would be to recompile XBMC with way longer delay routines in the LCD module and test it on your setup.

Finally, when you see a HD44780 compatible LCD with only half it's lines completely black (like first and third line on a 4 line LCD), it means it has not been properly initialized. Contrast issue would have made all 4 lines black. So in your case, SmartXX OS isn't able to properly initialize the LCD.
User avatar
Oldxboxusa
Posts: 145
Joined: Tue Aug 28, 2012 5:47 pm
Has thanked: 14 times
Been thanked: 3 times

Re: LCD Display Question

Post by Oldxboxusa »

thank you psyko_chewbakka. At this point there is no way for me to compile xbmc new from scratch. I don't have those programs for it. But what was fine , is that i must not tinker around the smartxx or the xbox. That means i must live with that problem....
Jimbob7891
Posts: 12
Joined: Tue Apr 10, 2018 1:10 am
Has thanked: 5 times
Been thanked: 1 time

Re: LCD Display Question

Post by Jimbob7891 »

Sorry to bump such a old post but seemed stupid making anuver with so much info here.
I tryed to use the xbox i2c with a lcd a while ago and failed. I was trying to do via linux as at the time i thort would be the best way to start.
I did leave it and forgot all about it untill i found this http://xboxdevwiki.net/SMBus.
Im not a coder but can kind of make sence of this. I also found this https://forum.openwrt.org/t/how-to-add- ... -i2c/28722
I know it for a pi not a xbox but the python i2c driver script is all i looked at it seems to only need the hardware address of the lcd.
Could this be edited for use with the xbox ?
Post Reply