<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tobi's Corner &#187; LCD</title>
	<atom:link href="http://tobiscorner.floery.net/tag/lcd/feed" rel="self" type="application/rss+xml" />
	<link>http://tobiscorner.floery.net</link>
	<description>... the electronix portal</description>
	<lastBuildDate>Tue, 22 Jun 2010 06:54:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>the LCD module</title>
		<link>http://tobiscorner.floery.net/projects/openwrt/jukebox/the-lcd-module/65</link>
		<comments>http://tobiscorner.floery.net/projects/openwrt/jukebox/the-lcd-module/65#comments</comments>
		<pubDate>Mon, 11 Dec 2006 19:01:20 +0000</pubDate>
		<dc:creator>theFloe</dc:creator>
				<category><![CDATA[jukebox]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[Module]]></category>
		<category><![CDATA[OpenWRT]]></category>

		<guid isPermaLink="false">http://tobiscorner.floery.net/?p=65</guid>
		<description><![CDATA[So here you can find the current testing version of my module. It can be used to display some text but it has still some bugs lcd4wl Sourcecode kmod-lcd4wl_2430-brcm-1_mipsel.ipk Usage: To install the precompiled module download the ipk above and install it: ipkg install kmod-lcd4wl_2430-brcm-1_mipsel.ipk Then insert the module: insmod lcd4wl Using dmesg should show [...]]]></description>
			<content:encoded><![CDATA[<p>So here you can find the current testing version of my module. It can be used to display some text but it has still some bugs <img src='http://tobiscorner.floery.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> <span id="more-65"></span></p>
<ul>
<li><a title="lcd4wl Sourcecode" href="http://tobiscorner.floery.net/wp-content/lcd4wl1.zip">lcd4wl Sourcecode</a></li>
<li><a id="p67" href="http://tobiscorner.floery.net/wp-content/kmod-lcd4wl_2430-brcm-1_mipsel.ipk">kmod-lcd4wl_2430-brcm-1_mipsel.ipk</a></li>
</ul>
<p><strong>Usage:</strong></p>
<p>To install the precompiled module download the ipk above and install it:</p>
<blockquote><p>ipkg install kmod-lcd4wl_2430-brcm-1_mipsel.ipk</p></blockquote>
<p>Then insert the module:</p>
<blockquote><p>insmod lcd4wl</p></blockquote>
<p>Using dmesg should show you what to do next.</p>
<blockquote><p>mknod /dev/lcd c xxx 0<br />
&#8230; where xxx is the major number of your device</p></blockquote>
<p>After creating the device entry you can access your LCD with:</p>
<blockquote><p>echo &#8220;Hello OpenWRT\n\rShow me if it&#8217;s working&#8221; &gt; /dev/lcd</p></blockquote>
<p>for writing to the LCD or</p>
<blockquote><p>cat /dev/lcd</p></blockquote>
<p>to read from the LCD.</p>
<p><strong>Here the supported command: </strong></p>
<blockquote>
<ul>
<li>\n: Puts the cursor to the next line, on the same position</li>
<li>\r: Sets Cursor to the start of the current line</li>
<li>\i: Clear Display</li>
<li>\h: Move Cursor home</li>
<li>\dx: Set Display Status (x=0: off, x=1 on)</li>
<li>\cx: set Cursor (x=0 off, x=1 on)</li>
<li>\bx: set Blink (x=0 off, x=1 on)</li>
<li>\xx: Display shift (x=0 off, x=1 on)</li>
<li>\yx: Shift Direction (x=0 right, x=1 left)</li>
<li>\ax: Cursor increment (x=0 off, x=1 on)</li>
<li>\sx: Cursor shift (x=0 off, x=1 on)</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://tobiscorner.floery.net/projects/openwrt/jukebox/the-lcd-module/65/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>LCD another try?</title>
		<link>http://tobiscorner.floery.net/projects/openwrt/jukebox/lcd-another-try/63</link>
		<comments>http://tobiscorner.floery.net/projects/openwrt/jukebox/lcd-another-try/63#comments</comments>
		<pubDate>Sat, 09 Dec 2006 11:28:16 +0000</pubDate>
		<dc:creator>theFloe</dc:creator>
				<category><![CDATA[jukebox]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[Module]]></category>
		<category><![CDATA[OpenWRT]]></category>

		<guid isPermaLink="false">http://tobiscorner.floery.net/?p=63</guid>
		<description><![CDATA[Today i successfully triggered the /CS line and now I know it&#8217;s working. In measurements before my oscilloscope was to slow to display the changes on the /CS line&#8230; So I conected the /CS line to the display&#8217;s Enable Pin. Moved R/W from A2 to A1 and adjusted my driver. I connected the display, loaded [...]]]></description>
			<content:encoded><![CDATA[<p>Today i successfully triggered the /CS line and now I know it&#8217;s working. In measurements before my oscilloscope was to slow to display the changes on the /CS line&#8230;<span id="more-63"></span></p>
<p>So I conected the /CS line to the display&#8217;s Enable Pin. Moved R/W from A2 to A1 and adjusted my driver. I connected the display, loaded the module and &#8230;. nothing!</p>
<p>So I started my PC Scope Software, connected CH1 to /CS line and GND and &#8230; HARDWARE  NOT FOUND. So I realized the fancy red led was dark and I checked the LPT-cable and the power connection. Hmm shouldn&#8217;t the red led on the power plug be on? Wow the transformer of the power plug din&#8217;t survive the night (btw. it was me going out not the power plug &#8230;). So I opened up a box and searched for a replacement power supply. Found an adjustable switching regulator and connected. The Software begann calibrating and reported: Calibration failed!</p>
<p>O.k. maybe the oscilloscope doesn&#8217;t like the switching power supply because of all this spikes and so&#8230;</p>
<p>But now back to topic: Why did the LCD stay blank&#8230; Maybe the bus interface is somehow to fast for that little display (but it worked with using 3 address lines). Is the Enable signaling correct? I will try using an inverter&#8230;</p>
<p>So I soldered a standard NPN inverted using a 2n3904 and 2 resistors connected everything, reloaded the kernel module and &#8230; nothing! Hmm it would be good having a working oscilloscope&#8230;</p>
<p>After that I think I&#8217;m gonna use the other solution&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://tobiscorner.floery.net/projects/openwrt/jukebox/lcd-another-try/63/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interfacing an LCD</title>
		<link>http://tobiscorner.floery.net/projects/openwrt/jukebox/interfacing-an-lcd/62</link>
		<comments>http://tobiscorner.floery.net/projects/openwrt/jukebox/interfacing-an-lcd/62#comments</comments>
		<pubDate>Thu, 07 Dec 2006 02:48:21 +0000</pubDate>
		<dc:creator>theFloe</dc:creator>
				<category><![CDATA[jukebox]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[Module]]></category>
		<category><![CDATA[OpenWRT]]></category>

		<guid isPermaLink="false">http://tobiscorner.floery.net/?p=62</guid>
		<description><![CDATA[Here I describe how to interface a Character LCD based on HD47780 or compatible controllers. Ext IF # LCD # D0 1 D0 7 D1 2 D1 8 D2 3 D2 9 D3 4 D3 10 D4 5 D4 11 D5 6 D5 12 D6 7 D6 13 D7 8 D7 14 A0 9 RS [...]]]></description>
			<content:encoded><![CDATA[<p>Here I describe how to interface a Character LCD based on HD47780 or compatible controllers.<span id="more-62"></span></p>
<blockquote>
<table border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<th>Ext IF</th>
<th width="50">#</th>
<th>LCD</th>
<th width="50">#</th>
</tr>
<tr>
<td>D0</td>
<td align="center">1</td>
<td>D0</td>
<td align="center">7</td>
</tr>
<tr>
<td>D1</td>
<td align="center">2</td>
<td>D1</td>
<td align="center">8</td>
</tr>
<tr>
<td>D2</td>
<td align="center">3</td>
<td>D2</td>
<td align="center">9</td>
</tr>
<tr>
<td>D3</td>
<td align="center">4</td>
<td>D3</td>
<td align="center">10</td>
</tr>
<tr>
<td>D4</td>
<td align="center">5</td>
<td>D4</td>
<td align="center">11</td>
</tr>
<tr>
<td>D5</td>
<td align="center">6</td>
<td>D5</td>
<td align="center">12</td>
</tr>
<tr>
<td>D6</td>
<td align="center">7</td>
<td>D6</td>
<td align="center">13</td>
</tr>
<tr>
<td>D7</td>
<td align="center">8</td>
<td>D7</td>
<td align="center">14</td>
</tr>
<tr>
<td>A0</td>
<td align="center">9</td>
<td>RS</td>
<td align="center">4</td>
</tr>
<tr>
<td>A1</td>
<td align="center">10</td>
<td>E</td>
<td align="center">6</td>
</tr>
<tr>
<td>A2</td>
<td align="center">11</td>
<td>RW</td>
<td align="center">5</td>
</tr>
<tr>
<td>A3</td>
<td align="center">12</td>
<td>&#8211;</td>
<td align="center"></td>
</tr>
<tr>
<td>+5V</td>
<td align="center">13</td>
<td>VDD</td>
<td align="center">2</td>
</tr>
<tr>
<td>/CS</td>
<td align="center">14</td>
<td>&#8211;</td>
<td align="center"></td>
</tr>
<tr>
<td>/RD</td>
<td align="center">15</td>
<td>&#8211;</td>
<td align="center"></td>
</tr>
<tr>
<td>/WR</td>
<td align="center">16</td>
<td>&#8211;</td>
<td align="center"></td>
</tr>
<tr>
<td>/INT</td>
<td align="center">17</td>
<td>&#8211;</td>
<td align="center"></td>
</tr>
<tr>
<td>GND</td>
<td align="center">18</td>
<td>VSS</td>
<td align="center">1</td>
</tr>
<tr>
<td></td>
<td align="center"></td>
<td>Vo (contrast)</td>
<td align="center">3</td>
</tr>
</tbody>
</table>
<p>Vo &#8230; connect a 10k poti between VDD and GND and the wiper to Vo.</p></blockquote>
<div style="color: red">This is only a test connection and it&#8217;s not very usable by now. You can get some random stuff on your display when other data is transfered on the bus.</div>
<p>For a better bus interface I have to look on the function of the /CS line in more detail so that the LCD doesn&#8217;t get disturbed by misc. data.<br />
To get some data onto the display I modified diag.c the kernel module that is used by OpenWRT to set the Router&#8217;s LEDs and to fetch some keys. diag.c can be found in: /location_where_you_unziped_openwrt/target/linux/packages/diag/src/. I added a own /proc entry called extif. And so I was able to display data that way:</p>
<blockquote><p>echo &#8220;iHello OpenWRT <img src='http://tobiscorner.floery.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> &#8221; &gt; /proc/diag/extif</p></blockquote>
<p>The &#8220;i&#8221; is only there to tell the module to initialize the display first.</p>
<p><strong>My Module</strong></p>
<p>Next step will be that i write a module on my own that handels everything <img src='http://tobiscorner.floery.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <a href="http://tobiscorner.floery.net/?p=65"> &#8211;&gt; Read here more about the module&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tobiscorner.floery.net/projects/openwrt/jukebox/interfacing-an-lcd/62/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The external Interface</title>
		<link>http://tobiscorner.floery.net/projects/openwrt/jukebox/the-external-interface/61</link>
		<comments>http://tobiscorner.floery.net/projects/openwrt/jukebox/the-external-interface/61#comments</comments>
		<pubDate>Wed, 06 Dec 2006 18:50:48 +0000</pubDate>
		<dc:creator>theFloe</dc:creator>
				<category><![CDATA[jukebox]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[OpenWRT]]></category>

		<guid isPermaLink="false">http://tobiscorner.floery.net/?p=61</guid>
		<description><![CDATA[When you disassemble your unit you will find some solder pads right behind the IDE connector. This thread at www.openwrt.org shows the pinout and some pics and howto attach a UART-Chip there. The pinout: ---------- &#62; D0 D1 &#124; &#124; D2 D3 &#124; &#124; D4 D5 &#124; &#124; D6 D7 &#124; &#124; A0 A1 &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>When you disassemble your unit you will find some solder pads right behind the IDE connector. <a href="http://forum.openwrt.org/viewtopic.php?id=7083" target="_blank">This thread</a> at <a href="http://www.openwrt.org" target="_blank">www.openwrt.org</a> shows the pinout and some pics and howto attach a UART-Chip there.</p>
<p><span id="more-61"></span><br />
The pinout:</p>
<table border="0">
<tbody>
<tr>
<td style="width: 50%">
<pre>----------
&gt; D0  D1 |
| D2  D3 |
| D4  D5 |
| D6  D7 |
| A0  A1 |
| A2  A3 |
|+5V /CS |
|/RD /WR |
|INT GND |
| NC  NC |
----------</pre>
</td>
<td style="width: 50%">
<pre>where:
D0 - D7: are the data lines
A0 - A3: are the address lines
+5V: +5V Supply Voltage
/CS: chip select (active low)
/RD: read strobe (avtice low)
/WR: write strobe (active low)
INT: Interrupt input
GND: Signal Ground
NC: Not connected

Note: all signals are 3.3V signals!</pre>
</td>
</tr>
</tbody>
</table>
<p>But adding a UART</p>
<blockquote><p>EXT_IF -&gt; UART -&gt; uC -&gt; Display &amp; Keys</p></blockquote>
<p>is somehow stupid. Because it could look like that:</p>
<blockquote><p>EXT_IF -&gt; Display &amp; Keys</p></blockquote>
<p>So I started reading though the kernel sources and found the UART initialisation process in sbmips.c somewhere in the arch/mips/bcm9&#8230;.. directory. But the function that where used like sb_gpioin didn&#8217;t leed me to success.</p>
<p>So i had a look at gpio.c (same directory as above). This is a kernel module for accessing GPIO (general purpose input output). Here the sb_gpioin and so functions were used again. I tried to hack some new lines there but, let us go to the next try:</p>
<p>kmod-diag: OpenWRT comes with a small module that is used to turn on/off the LED&#8217;s and to fetch some keypresses. While reading the source (diag.c) I realized the function: set_led_extif.</p>
<blockquote><p>volatile u8 *addr = (volatile u8 *) KSEG1ADDR(EXTIF_UART) + (led-&gt;gpio &amp; ~GPIO_TYPE_MASK);</p></blockquote>
<p>The adress of the external interface is between 0xBF800000 and 0xBF80000F. Only the low nibble (the 0&#215;0-0xF) will be seen at the external interface on address lines A0-A3.</p>
<blockquote><p>volatile u8 *addr = (volatile u8 *) KSEG1ADDR(EXTIF_UART) + (address &amp; 0x0F);</p></blockquote>
<p>Where address is the low nibble. Using the pointer *addr data can be read and written.</p>
<blockquote><p>*addr = 0xFF;  // write 0xFF<br />
data = *addr; // read data</p></blockquote>
<p>So that&#8217;s the trick.</p>
<p><strong>But what do /WR, /RD and /CS do?</strong></p>
<p>/WR: The slash (&#8220;/&#8221;) before the signals name tells you that the signal is active low. This means if a write transfer is handled by the bus this signals changes from HIGH to LOW before the transmission and changes back to HIGH after the transmission.</p>
<p>/RD: Same as above but signals that it&#8217;s a read instead of a write operation.</p>
<p>/CS: This signal goes low whenever an address between 0xBF800000 and 0xBF80000F is read or written. This additional signal is necassary do differ between for example 0xBF80000A and 0x2AD3456A (because only the last nibble the &#8220;A&#8221; would be seen on the address lines A0-A3).</p>
]]></content:encoded>
			<wfw:commentRss>http://tobiscorner.floery.net/projects/openwrt/jukebox/the-external-interface/61/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>avrTer</title>
		<link>http://tobiscorner.floery.net/projects/avr/misc-avr/avrter/48</link>
		<comments>http://tobiscorner.floery.net/projects/avr/misc-avr/avrter/48#comments</comments>
		<pubDate>Sun, 12 Nov 2006 10:40:25 +0000</pubDate>
		<dc:creator>theFloe</dc:creator>
				<category><![CDATA[misc AVR]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[T6963]]></category>

		<guid isPermaLink="false">http://www.floery.net/tobiscorner/?p=48</guid>
		<description><![CDATA[AVRTer is not only a Terminal Emulation for AVR, it&#8217;s a Terminal build with an AVR. The Terminal is build with an ATMega8 and a 640x240px GLCD. The Terminal can be used as a RS232 debugger.The Display Routines are from Holger Klabunde. Have a look at his Webpage: http://www.holger-klabunde.de/ The Keyboard routines are based on [...]]]></description>
			<content:encoded><![CDATA[<p>AVRTer is not only a Terminal Emulation for AVR, it&#8217;s a Terminal build with an AVR.</p>
<p style="text-align: center"><img id="image45" src="http://www.floery.net/tobiscorner/wp-content/avrter1.jpg" alt="avrTer 1" width="400" /></p>
<p style="text-align: center"><img id="image46" src="http://www.floery.net/tobiscorner/wp-content/avrter2.jpg" alt="avrTer 2" width="400" /></p>
<p style="text-align: center"><img id="image47" src="http://www.floery.net/tobiscorner/wp-content/avrter3.jpg" alt="avrTer 3" width="400" /></p>
<p>The Terminal is build with an ATMega8 and a 640x240px GLCD. The Terminal can be used as a RS232 debugger.The Display Routines are from Holger Klabunde. Have a look at his Webpage: <a title="http://www.holger-klabunde.de/" href="http://www.holger-klabunde.de/" target="_blank">http://www.holger-klabunde.de/</a></p>
<p>The Keyboard routines are based on the ATMEL Application Note AVR313 and written by V. Brajer.</p>
<p>The ascii logo has been generated using this <a href="http://www.network-science.de/ascii/" target="_blank">online ascii-generator</a>.</p>
<p><strong>Downloads:</strong></p>
<ul>
<li><a id="p44" href="http://www.floery.net/tobiscorner/wp-content/avrter.zip">avrTer Sourcecode</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tobiscorner.floery.net/projects/avr/misc-avr/avrter/48/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>avrDotmatrix</title>
		<link>http://tobiscorner.floery.net/projects/avr/misc-avr/avrdotmatrix/43</link>
		<comments>http://tobiscorner.floery.net/projects/avr/misc-avr/avrdotmatrix/43#comments</comments>
		<pubDate>Sun, 12 Nov 2006 10:37:18 +0000</pubDate>
		<dc:creator>theFloe</dc:creator>
				<category><![CDATA[LED stuff]]></category>
		<category><![CDATA[misc AVR]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[dotmatrix]]></category>
		<category><![CDATA[LCD]]></category>

		<guid isPermaLink="false">http://www.floery.net/tobiscorner/?p=43</guid>
		<description><![CDATA[avrDotmatrix uses a 5&#215;7 dotmatrix display and an ATMega8 to create a nice display with scrolling! avrDotmatrix &#8211; Is a 5&#215;7 LED Matrix Display controlled by a ATMega8 to display scrolling text, time or temperatures. The pattern is generated with multiplexing the 5 matrix columns and setting the correct row bits. This projects is still [...]]]></description>
			<content:encoded><![CDATA[<p>avrDotmatrix uses a 5&#215;7 dotmatrix display and an ATMega8 to create a nice display with scrolling!</p>
<p>avrDotmatrix &#8211; Is a 5&#215;7 LED Matrix Display controlled by a ATMega8 to display scrolling text, time or temperatures. The pattern is generated with multiplexing the 5 matrix columns and setting the correct row bits.</p>
<p align="center"><span style="color: #0000ee; text-decoration: underline;"><a id="p40" class="imagelink" title="avrDotmatrix 2" rel="attachment" href="http://tobiscorner.floery.net/?attachment_id=40">
<a href='http://tobiscorner.floery.net/projects/avr/misc-avr/avrdotmatrix/43/attachment/avrdotmatrix-1' ><img width="72" height="96" src="http://tobiscorner.floery.net/wp-content//avrdotmatrix1.thumbnail.jpg" class="attachment-thumbnail" alt="avrDotmatrix 1" title="avrDotmatrix 1" /></a>
<a href='http://tobiscorner.floery.net/projects/avr/misc-avr/avrdotmatrix/43/attachment/avrdotmatrix-2' ><img width="66" height="96" src="http://tobiscorner.floery.net/wp-content//avrdotmatrix2.thumbnail.jpg" class="attachment-thumbnail" alt="avrDotmatrix 2" title="avrDotmatrix 2" /></a>
</a></span></p>
<p>This projects is still in development and i&#8217;m gonna add a temperature sensor (LM75), a I2C EEProm and maybe a IR receiver for transmitting texts to the display wireless.</p>
<p><strong>Downloads:</strong></p>
<ul>
<li><a id="p42" href="http://www.floery.net/tobiscorner/wp-content/test.avi">Sample Video</a></li>
<li><a id="p41" href="http://www.floery.net/tobiscorner/wp-content/avrdotmatrix.zip">avrDotmatrix Sourcecode</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tobiscorner.floery.net/projects/avr/misc-avr/avrdotmatrix/43/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
<enclosure url="http://www.floery.net/tobiscorner/wp-content/test.avi" length="104032" type="video/x-msvideo" />
		</item>
	</channel>
</rss>
