#Daisy-24 - Front panel LCD with push buttons

<div class="text-success lead">
Daisy-24 is a mini I2C terminal which mounts a Winstar 
alphanumeric 16x2 chars LCD module and 4 push buttons.
</div>

DAISY-24 can be soldered directly on the [Terra Board](/terra) PCB and 
used as its front panel display or plugged on a [Daisy](/catalog_daisy) connector. 

<img class="caption" title="Daisy-24 soldered on Terra board" src="daisy24_terra.jpg"/>

When soldered on the Terra board the flat cable is not required because 
all the signals are both on PCB pads (see below) and on Daisy connector. 

<img class="caption" title="Daisy-24 used with flat cable"  src="./daisy24_flat.jpg"/>

If the flat cable is used an insertion key on the connector ensures to plug it 
in the right way.

<img width="640px" class="caption" title="Daisy-24 section and signals on pad" src="daisy24_description.jpg">

##Suitable Daisy connectors

This is the list of suitable Daisy connectors where are available 
the I2C bus signals to use with DAISY-24 module:

| Board | Daisy connector | 
|-----------|-------|
| [TERRA and TERRA-M](/terra) | [D10](/terra_pinout) |
| [TERRA and TERRA-M](/terra) | [D13](/terra_pinout) |
| [TERRA and TERRA-M](/terra) | [D16](/terra_pinout) |
| [TERRA](/terra) | [D17](/terra_pinout) |
| [FOXG20](/FOXG20) + [DAISY-1](/DAISY-1) | [D1](/pinout) |
| [FOXG20](/FOXG20) + [DAISY-1](/DAISY-1) | [D6](/pinout) |
| [FOXG20](/FOXG20) + [DAISY-1](/DAISY-1) | [D8](/pinout) |

If you are using and [Arietta G25](/arietta) the pin to use on J4 are:

| Signal | Description                        | Arietta Pin # | Daisy 24 pin |
|--------|------------------------------------|---------------|--------------|
|  3V3   | Power out 3.3 volt DC              | J4.5          | 3V3          |
|  SDA0  | Data  line bus 0                   | J4.14         | SDA          |
|  SCL0  | Clock line bus 0                   | J4.12         | SCL          |
|  GND   | Ground                             | J4.9          | GND          |

it is possible also to use the second I2C bus available on these pin

| Signal | Description                        | Arietta Pin # | Daisy 24 pin |
|--------|------------------------------------|---------------|--------------|
|  3V3   | Power out 3.3 volt DC              | J4.5          | 3V3          |
|  SDA1  | Data  line bus 1                   | J4.39         | SDA          |
|  SCL1  | Clock line bus 1                   | J4.37         | SCL          |
|  GND   | Ground                             | J4.9          | GND          |


##Code examples

<ul class="nav nav-tabs">
	<li class="nav active"><a href="#python" data-toggle="tab">Python</a></li>
	<li class="nav"><a href="#c" data-toggle="tab">C</a></li>
</ul>


<div class="tab-content">


	<div class="tab-pane fade in active" id="python">
	
		<div id="accordion" class="panel-group">
		
			<div class="panel panel-default">
				<div class="panel-heading">
					<h4 class="panel-title">
						<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">Hello World !</a>
					</h4>
				</div>
				<div id="collapseOne" class="panel-collapse collapse">
					<div class="panel-body">
						@pg='python/daisy24/hello.py' 
					</div>
				</div>
			</div>
			
			<div class="panel panel-default">
				<div class="panel-heading">
					<h4 class="panel-title">
						<a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">Cursor control</a>
					</h4>
				</div>
				<div id="collapseTwo" class="panel-collapse collapse">
					<div class="panel-body">
						@pg='python/daisy24/cursor.py' 
					</div>
				</div>
			</div>
			
			<div class="panel panel-default">
				<div class="panel-heading">
					<h4 class="panel-title">
						<a data-toggle="collapse" data-parent="#accordion" href="#collapseThree">Text contrast control</a>
					</h4>
				</div>
				<div id="collapseThree" class="panel-collapse collapse">
					<div class="panel-body">
						@pg='python/daisy24/contrast.py' 
					</div>
				</div>
			</div>

			<div class="panel panel-default">
				<div class="panel-heading">
					<h4 class="panel-title">
						<a data-toggle="collapse" data-parent="#accordion" href="#collapseFour">Font size</a>
					</h4>
				</div>
				<div id="collapseFour" class="panel-collapse collapse">
					<div class="panel-body">
						@pg='python/daisy24/font.py' 
					</div>
				</div>
			</div>

			<div class="panel panel-default">
				<div class="panel-heading">
					<h4 class="panel-title">
						<a data-toggle="collapse" data-parent="#accordion" href="#collapseFive">Push-button and backlight</a>
					</h4>
				</div>
				<div id="collapseFive" class="panel-collapse collapse">
					<div class="panel-body">
						@pg='python/daisy24/readkey.py' 
					</div>
				</div>
			</div>
		</div>
	</div>

	<div class="tab-pane fade" id="c">
		<div class="tab-pane fade in active" id="python">
		
			<div id="accordion" class="panel-group">
			
				<div class="panel panel-default">
					<div class="panel-heading">
						<h4 class="panel-title">
							<a data-toggle="collapse" data-parent="#accordion" href="#collapse11">Hello World !</a>
						</h4>
					</div>
					<div id="collapse11" class="panel-collapse collapse">
						<div class="panel-body">
							@pg='c/daisy24/hello.c'
						</div>
					</div>
				</div>

				<div class="panel panel-default">
					<div class="panel-heading">
						<h4 class="panel-title">
							<a data-toggle="collapse" data-parent="#accordion" href="#collapse12">Backlight control</a>
						</h4>
					</div>
					<div id="collapse12" class="panel-collapse collapse">
						<div class="panel-body">
							@pg='c/daisy24/backlight.c' 
						</div>
					</div>
				</div>

				<div class="panel panel-default">
					<div class="panel-heading">
						<h4 class="panel-title">
							<a data-toggle="collapse" data-parent="#accordion" href="#collapse13">Push-buttons</a>
						</h4>
					</div>
					<div id="collapse13" class="panel-collapse collapse">
						<div class="panel-body">
							@pg='c/daisy24/key.c' 
						</div>
					</div>
				</div>

			</div>
		</div>	
	</div>
</div>

##Troubleshootings

The DAISY-24 uses two I2C addresses on I2C bus 0. One for the LCD and 
another one for the I2C I/O expander used to read the four push buttons
and turn on the LCD backlight

The LCD address is fixed at **0x3E**.

The I/O expander I2C address usually is **0x27** but could change to 
**0x3F** for some batch of DAISY-24 which using a different chip 
version as listed below:

| Chip mounted | I2C address | How to use the ablib class      |
|--------------|-------------|---------------------------------|
| PCF8574T     |        0x27 | ablib.Daisy24()                 |
| PCF8574AT    |        0x3F | ablib.Daisy24(exp_address=0x27) |

<br/>
It is possible to probe which is the address used with the 
<b>existI2Cdevice</b> function available in ablib.py as shown in this
example:

@pg='python/daisy24/hello.py'



#Related links

* [Schematic in pdf format](http://terzo.acmesystems.it/download/schematics/schematic_daisy24.pdf)
* [Winstar display model WO1602I-TFH-AT# datasheet](http://www.acmesystems.it/download/datasheets/LCD-1.pdf)
* [Philips PCF8574 datasheet](http://terzo.acmesystems.it/download/datasheets/PCF8574.pdf)

@shop='DAISY-24'
@shop='FLAT-20CM'
@shop='TERRA'
@shop='LCD-1'


