Reports.QT411-ISSG History

Hide minor edits - Show changes to output

May 22, 2007, at 09:04 PM by Roy Vanegas -
Changed lines 200-203 from:
to the SPI bus of the Arduino Mini, as follows. (See section 17
beginning on page 161 of the Atmel ATmega 8 datasheet, which is linked
in the ``Links'' section above
, for more.)
to:
to the SPI bus of the Arduino Mini, as follows. (See page 161 of the
Atmel ATmega 8 datasheet, in the ``Links'' section
, for more.)
May 22, 2007, at 09:02 PM by Roy Vanegas -
Changed lines 193-220 from:
!!! [[#links]] Links (datasheets, SPI references, etc.)

* The QT411 Sensor and its Manufacturer:
** Quantum Research Group (QT411 maker): http://www.qprox.com/
** QT411 Product Summary (from Quantum): http://www.qprox.com/products/qslide_qt411.php

* Datasheets (in PDF)
** Quantum Technology's QT411-ISSG QSlide Touch Slider IC Datasheet: http://www.qprox.com/downloads/datasheets/qt411_issg-601.pdf
** ATMEL ATmega 48/88/168 Datasheet (the microcontroller chip inside the Arduino Mini): http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf
** M68HC11E Family of Microcontrollers from Motorola (contains a thorough explanation of SPI): http://www.freescale.com/files/microcontrollers/doc/ref_manual/M68HC11RM.pdf

* Purchase
** Saelig (cheapest of three): http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3025&Category_Code=
** DigiKey (comparable to Saelig): http://www.digikey.com/scripts/us/dksus.dll?KeywordSearch&Keywords=427-1116-1-ND
** Farnell (most expensive of three): http://uk.farnell.com/jsp/search/productdetail.jsp?sku=1099149

* References
** Introduction to Serial Peripheral Interface (Embedded): http://embedded.com/showArticle.jhtml?articleID=9900483
** Serial Peripheral Interface (Wikipedia): http://en.wikipedia.org/wiki/Serial_Peripheral_Interface
** QT401 (Arduino): http://www.arduino.cc/en/Tutorial/Qt401
** Interfacing a Serial EEPROM Using SPI (Arduino): http://www.arduino.cc/en/Tutorial/SPIEEPROM

I purchased the QT411 in the spring of 2007 for $3.45 from Saelig, sans shipping. DigiKey sold it for about $3.51, while Farnell in Europe sold it for a whopping $9.30 (after rate conversion from British Pounds).

[[#index | top]]

----
to:
Changed lines 390-418 from:
to:
!!! [[#links]] Links (datasheets, SPI references, etc.)

* The QT411 Sensor and its Manufacturer:
** Quantum Research Group (QT411 maker): http://www.qprox.com/
** QT411 Product Summary (from Quantum): http://www.qprox.com/products/qslide_qt411.php

* Datasheets (in PDF)
** Quantum Technology's QT411-ISSG QSlide Touch Slider IC Datasheet: http://www.qprox.com/downloads/datasheets/qt411_issg-601.pdf
** ATMEL ATmega 48/88/168 Datasheet (the microcontroller chip inside the Arduino Mini): http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf
** M68HC11E Family of Microcontrollers from Motorola (contains a thorough explanation of SPI): http://www.freescale.com/files/microcontrollers/doc/ref_manual/M68HC11RM.pdf

* Purchase
** Saelig (cheapest of three): http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3025&Category_Code=
** DigiKey (comparable to Saelig): http://www.digikey.com/scripts/us/dksus.dll?KeywordSearch&Keywords=427-1116-1-ND
** Farnell (most expensive of three): http://uk.farnell.com/jsp/search/productdetail.jsp?sku=1099149

* References
** Introduction to Serial Peripheral Interface (Embedded): http://embedded.com/showArticle.jhtml?articleID=9900483
** Serial Peripheral Interface (Wikipedia): http://en.wikipedia.org/wiki/Serial_Peripheral_Interface
** QT401 (Arduino): http://www.arduino.cc/en/Tutorial/Qt401
** Interfacing a Serial EEPROM Using SPI (Arduino): http://www.arduino.cc/en/Tutorial/SPIEEPROM

I purchased the QT411 in the spring of 2007 for $3.45 from Saelig, sans shipping. DigiKey sold it for about $3.51, while Farnell in Europe sold it for a whopping $9.30 (after rate conversion from British Pounds).

[[#index | top]]


----
May 22, 2007, at 09:02 PM by Roy Vanegas -
Changed lines 224-230 from:
should be connected to a microcontroller. For this report, I used an
Arduino Mini microcontroller and copied the pin configurations
exactly as stated on
the datasheet. I wired the DETECT line and the
SPI bus of
the QT411 to the SPI bus of the Arduino Mini, as follows.
(See section 17 beginning on page 161 of the Atmel ATmega 8 datasheet,
which is linked below/
above, for more.)
to:
should be connected to a microcontroller. I used an Arduino Mini
microcontroller and copied the pin configurations exactly as stated on
the datasheet. I wired
the DETECT line and the SPI bus of the QT411
to
the SPI bus of the Arduino Mini, as follows. (See section 17
beginning on page 161 of the Atmel ATmega 8 datasheet, which is linked
in the ``Links'' section
above, for more.)
May 22, 2007, at 08:56 PM by Roy Vanegas -
Added lines 1-304:
----

! QSlide Touch Slider IC Report

Initial preliminary report by [[~roy | Roy Vanegas]], 22 May 2007. A
thorough and definitive report will appear here during summer 2007, as
I work more extensively with the QT411 and SPI.

ThisWiki:/uploads/Reports/qt411-241x200.jpg

The QT411-ISSG is a linear touch sensor in a 14-pin TSSOP (Thin-Shrink
Small Outline Package) casing. It outputs data as a ``7-bit binary
number (0...127) indicating angular position,'' per the datasheet. It
can be used to replace items such as slider elements, faders, volume
controls, and just about anything else that employs a potentiometer to
control an electronic device.

----

!! [[#index]] Index

* [[#the_qt411 | The QT411]]
## [[#dimensions | Dimensions]]
## [[#sensing_element | Sensing Element]]
## [[#breakout_board | Breakout Board]]
## [[#commands | QT411 SPI Commands]]
## [[#pinouts | Pin Descriptions (Pinouts) ]]

* [[#arduino_connections | Arduino Connections]]
## [[#register_description | SPI Register Description of the Arduino]]

* [[#code | Code]]
## [[#sample_code | Sample Code ]]
## [[#debugging_code | Debugging Code]]

* [[#spi | Serial Peripheral Interface (SPI) Bus]]
## [[#spi_acronyms | SPI-Related Acronyms]]

* [[#links | Links (datasheets, SPI references, etc.)]]

----

!!! [[#register_description]] SPI Register Description of the Arduino


[[#index | top]]

----

!! [[#spi]] Serial Peripheral Interface (SPI)

The Serial Peripheral Interface (SPI) bus is a full duplex,
synchronous, data communications link. According to Motorola, SPI's
originators, the SPI bus is made of four signals: Master in/slave out
(MISO), Master out/slave in (MOSI), Serial clock (SCK), and Slave
select (SS), which appears in some datasheets with an overbar above
both ``S'' characters, or with a forward slash before the first S.
Both the Arduino Mini and the QT411 QSlide Touch Slider observe the
SPI serial interface.

Alas, SPI is not standardized, in either hardware or protocol.
Instead, a widely agreed upon definition is recognized. This leads
to variation in the implementation and programming of SPI that
requires special handling of each device.

[[#index | top]]

----

!!! [[#commands]] QT411 SPI Commands

These are the commands that are sent from the Arduino Mini to the QT411. Except for the [@ error status @] command, each returns to the Arduino Mini the Standard Response byte.

:[@ 0x00: null @]:This command will trigger a new acquisition if /SS rises. Otherwise, nothing happens.

:[@ 0x01: calibrate @]: As its title suggests, this command performs a basic calibration of the sensor via 10 acquisition bursts. The host microcontroller should wait for DRDY to rise again after the calibration has completed before shifting commands again.

:[@ 0x03: drift compensate @]: This command performs an incremental compensation on drift. It should be sent to the QT411 about once every ten commands.

:[@ 0x04: error status @]: This command does not return the Standard Response byte. Instead it returns to the Arduino Mini a byte with information such as touch status and sensor type. You may ignore all but bit 1, which reports 1 if a calibration error has been detected; 0 otherwise.

:[@ 0x8T: set touch threshold @]: This is the command that is used to ``tune'' the sensor. Bits 5--0 are used to set the touch threshold. Each bit may be given a value between 0 and 63. Zero should never be used, however.

[[#index | top]]

----

!!! [[#spi_acronyms]] SPI-Related Acronyms

You'll encounter the following acronyms throughout the datasheets
relating to SPI:

* '''SCLK''': Serial Clock
** Generated by the master/host microcontroller, the serial clock, [@SCLK@], synchronizes the MOSI and MISO serial data lines. Data is sampled, or read, by the QT411 on the rising edge of the clock, and it is sent by the QT411 on the falling edge of the clock.

* '''SS''': Slave Select
** Same as Chip Select and triggered by the master, the slave select line chooses with which device to communicate. This line is taken low to allow for communication between the master and the slave. If many slaves are present, only the slave with which the master will communicate is taken low, while the SS lines of all the other slaves are taken high.

* '''CS''': Chip Select
** same as Slave Select

* '''SPIF''': Serial Peripheral Interrupt Flag
** This bit is set when a serial transfer is complete on the ATmega 8.

* '''SPSR''': Serial Peripheral Status Register
**

* '''SPCR''': Serial Peripheral Control Register
**

* '''SPDR''': Serial Peripheral Data Register
**

* '''MCU''': Microcontroller Unit
** The Aruino Mini is the microcontroller unit for this example.

* '''SDI''': Serial Data Input
** same as MOSI on the QT411

* '''SDO''': Serial Data Output
** same as MISO on the QT411

* '''CPOL''': Clock Polarity
* '''CPHA''': Clock Phase
* '''MOSI''': Master Out, Slave In
* '''MISO''': Master In, Slave Out

[[#index | top]]

----

!! [[#the_qt411]] The QT411

----

!!! [[#dimensions]] Dimensions

The dimensions of the QT411 are 4mm x 5mm, ~.15'' x ~.20'',
respectively.

[[#index | top]]

----

!!! [[#sensing_element]] Sensing Element

The sensing element used for this example is a 22-gauge piece of wire.
It was stripped of its insulation and soldered at the 33% and 66%
points, per p2 of the QT411 datasheet marked ``RESISTIVE SLIDER
ELEMENT.'' See the image below.


ThisWiki:/uploads/Reports/sensing_element-1-640x480.jpg


ThisWiki:/uploads/Reports/sensing_element-2-640x480.jpg

[[#index | top]]

----

!!! [[#pinouts]] Pinouts

[@
PIN NAME TYPE DESCRIPTION
1 VDD Power Positive power pin (+2.5 .. + 5V)
2 MISO Output Serial data output
3 /SS Input Slave Select pin. This is an active low input
that enables serial communications
4 SCLK Input Serial clock input. Clock idles high
5 SNS3B I/O Sense pin; connects to both slider ends, each
via separate additional resistors
6 SNS3A I/O Sense pin
7 SNS2B I/O Sense pin; connects to 66% point (from left) of
slider
8 SNS2A I/O Sense pin
9 SNS1B I/O Sense pin; connects to 33% point (from left) of
slider
10 SNS1A I/O Sense pin
11 MOSI Input Serial data input
12 DETECT Output Active high touch detected. May be left
unconnected. (Pin floats ~400us after wake
from Sleep mode.)
13 DRDY Output Data ready output. Goes high to indicate it
is possible to communicate with the QT411.
(Pin floats ~400us after wake from Sleep mode.)
14 VSS Ground Negative power pin.
@]

[[#index | top]]

----
!!! [[#links]] Links (datasheets, SPI references, etc.)

* The QT411 Sensor and its Manufacturer:
** Quantum Research Group (QT411 maker): http://www.qprox.com/
** QT411 Product Summary (from Quantum): http://www.qprox.com/products/qslide_qt411.php

* Datasheets (in PDF)
** Quantum Technology's QT411-ISSG QSlide Touch Slider IC Datasheet: http://www.qprox.com/downloads/datasheets/qt411_issg-601.pdf
** ATMEL ATmega 48/88/168 Datasheet (the microcontroller chip inside the Arduino Mini): http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf
** M68HC11E Family of Microcontrollers from Motorola (contains a thorough explanation of SPI): http://www.freescale.com/files/microcontrollers/doc/ref_manual/M68HC11RM.pdf

* Purchase
** Saelig (cheapest of three): http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3025&Category_Code=
** DigiKey (comparable to Saelig): http://www.digikey.com/scripts/us/dksus.dll?KeywordSearch&Keywords=427-1116-1-ND
** Farnell (most expensive of three): http://uk.farnell.com/jsp/search/productdetail.jsp?sku=1099149

* References
** Introduction to Serial Peripheral Interface (Embedded): http://embedded.com/showArticle.jhtml?articleID=9900483
** Serial Peripheral Interface (Wikipedia): http://en.wikipedia.org/wiki/Serial_Peripheral_Interface
** QT401 (Arduino): http://www.arduino.cc/en/Tutorial/Qt401
** Interfacing a Serial EEPROM Using SPI (Arduino): http://www.arduino.cc/en/Tutorial/SPIEEPROM

I purchased the QT411 in the spring of 2007 for $3.45 from Saelig, sans shipping. DigiKey sold it for about $3.51, while Farnell in Europe sold it for a whopping $9.30 (after rate conversion from British Pounds).

[[#index | top]]

----

!!! [[#arduino_connections]] Arduino Connections

Page 2 of the QT411's datasheet contains a layout of how the QT411
should be connected to a microcontroller. For this report, I used an
Arduino Mini microcontroller and copied the pin configurations
exactly as stated on the datasheet. I wired the DETECT line and the
SPI bus of the QT411 to the SPI bus of the Arduino Mini, as follows.
(See section 17 beginning on page 161 of the Atmel ATmega 8 datasheet,
which is linked below/above, for more.)

[@
QT411 Arduino Mini
-------------------------------
(DRDY) 13 --> 8
(DETECT) 12 --> 9
(/SS) 3 --> 10
(SDI/MOSI) 11 --> 11
(SDO/MISO) 2 --> 12
(SCLK) 4 --> 13

@]

Note that the pin mappings above aren't all direct. For example, /SS
is connected via a 1k resistor. See the image below. (SDI is not
shown in image.)

ThisWiki:/uploads/Reports/qt411_on_breadboard-partial_labels-640x853.jpg

[[#index | top]]

----

!!! [[#breakout_board]] Breakout Board

The breakout board fits inline with the Arduino Mini. Its pins are
spaced at a 2.5mm (~0.01'') pitch, and its dimensions are about 20mm x
20mm, ~0.78'' x ~0.78'', respectively.

Since the QT411 is a tiny SMD chip (see the Dimensions section), I had
to build a breakout board so I could mount the QT411 onto a
breadboard. To build the breakout board, I had to draw up an EAGLE
design. I zipped that design file along with its PS
and PDF equivalents into one [@ tgz @] file:
[[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]].
To uncompress the [@ tgz @] file, simply double-click on it in your
GUI (Windows, Mac, Linux), or extract it via the terminal (in UNIX or
any of its variants, including Macintosh):

[@ tar xvzf QT411_Board_Files.tgz @]

[[#index | top]]

ThisWiki:/uploads/Reports/QT411.jpg

ThisWiki:/uploads/Reports/qt411_breakout_board_next_to_arduino_mini-640x480.jpg

[[#index | top]]

----

!! [[#code]] Code

----

!!! [[#sample_code]] Sample Code

Working sample code is forthcoming.

[[#index | top]]

----

!!! [[#debugging_code]] Debugging Code

To help me to understand the Arduino Mini's SPI bus, I wrote a few small programs to view the behavior of each in big endian format (MSB --> LSB). Each program displays information in three second intervals.

The Arduino pins:
[@

@]

The SPSR (Serial Peripheral Status Register) register:
[@
Changed lines 318-319 from:
Serial.print( "SPCR: " );
to:
Serial.print( "SPSR: " );
Changed line 322 from:
Serial.print( (SPCR & (128 >> step)), DEC );
to:
Serial.print( (SPSR & (128 >> step)), DEC );
Added lines 335-418:

@]

The SPCR (Serial Peripheral Control Register) register:
[@

#define BAUD_RATE 9600
#define SECONDS 3000

void setup()
{
Serial.begin( BAUD_RATE );
}

void loop()
{
static int i;
static int step = 0;

Serial.print( "SPCR: " );

for( i = 7; i >= 0; i-- )
{
Serial.print( (SPCR & (128 >> step)), DEC );
Serial.print( " " );
step++;
}

step = 0;

Serial.println( "\n" );

delay( SECONDS );

return;
}

@]

The SPDR (Serial Peripheral Data Register) register:
[@
#define BAUD_RATE 9600
#define SECONDS 3000

void setup()
{
Serial.begin( BAUD_RATE );
}

void loop()
{
static int i;
static int step = 0;

Serial.print( "SPDR: " );

for( i = 7; i >= 0; i-- )
{
Serial.print( (SPDR & (128 >> step)), DEC );
Serial.print( " " );
step++;
}

step = 0;

Serial.println( "\n" );

delay( SECONDS );

return;
}

@]

All three of the above registers in one program:
[@

@]

[[#index | top]]

----

[[~roy | Roy Vanegas]]
May 22, 2007, at 08:56 PM by Roy Vanegas -
Deleted lines 0-302:
----

! QSlide Touch Slider IC Report

Initial preliminary report by [[~roy | Roy Vanegas]], 22 May 2007. A
thorough and definitive report will appear here during summer 2007, as
I work more extensively with the QT411 and SPI.

ThisWiki:/uploads/Reports/qt411-241x200.jpg

The QT411-ISSG is a linear touch sensor in a 14-pin TSSOP (Thin-Shrink
Small Outline Package) casing. It outputs data as a ``7-bit binary
number (0...127) indicating angular position,'' per the datasheet. It
can be used to replace items such as slider elements, faders, volume
controls, and just about anything else that employs a potentiometer to
control an electronic device.

----

!! [[#index]] Index

* [[#the_qt411 | The QT411]]
## [[#dimensions | Dimensions]]
## [[#sensing_element | Sensing Element]]
## [[#breakout_board | Breakout Board]]
## [[#commands | QT411 SPI Commands]]
## [[#pinouts | Pin Descriptions (Pinouts) ]]

* [[#arduino_connections | Arduino Connections]]
## [[#register_description | SPI Register Description of the Arduino]]

* [[#code | Code]]
## [[#sample_code | Sample Code ]]
## [[#debugging_code | Debugging Code]]

* [[#spi | Serial Peripheral Interface (SPI) Bus]]
## [[#spi_acronyms | SPI-Related Acronyms]]

* [[#links | Links (datasheets, SPI references, etc.)]]

----

!!! [[#register_description]] SPI Register Description of the Arduino


[[#index | top]]

----

!! [[#spi]] Serial Peripheral Interface (SPI)

The Serial Peripheral Interface (SPI) bus is a full duplex,
synchronous, data communications link. According to Motorola, SPI's
originators, the SPI bus is made of four signals: Master in/slave out
(MISO), Master out/slave in (MOSI), Serial clock (SCK), and Slave
select (SS), which appears in some datasheets with an overbar above
both ``S'' characters, or with a forward slash before the first S.
Both the Arduino Mini and the QT411 QSlide Touch Slider observe the
SPI serial interface.

Alas, SPI is not standardized, in either hardware or protocol.
Instead, a widely agreed upon definition is recognized. This leads
to variation in the implementation and programming of SPI that
requires special handling of each device.

[[#index | top]]

----

!!! [[#commands]] QT411 SPI Commands

These are the commands that are sent from the Arduino Mini to the QT411. Except for the [@ error status @] command, each returns to the Arduino Mini the Standard Response byte.

:[@ 0x00: null @]:This command will trigger a new acquisition if /SS rises. Otherwise, nothing happens.

:[@ 0x01: calibrate @]: As its title suggests, this command performs a basic calibration of the sensor via 10 acquisition bursts. The host microcontroller should wait for DRDY to rise again after the calibration has completed before shifting commands again.

:[@ 0x03: drift compensate @]: This command performs an incremental compensation on drift. It should be sent to the QT411 about once every ten commands.

:[@ 0x04: error status @]: This command does not return the Standard Response byte. Instead it returns to the Arduino Mini a byte with information such as touch status and sensor type. You may ignore all but bit 1, which reports 1 if a calibration error has been detected; 0 otherwise.

:[@ 0x8T: set touch threshold @]: This is the command that is used to ``tune'' the sensor. Bits 5--0 are used to set the touch threshold. Each bit may be given a value between 0 and 63. Zero should never be used, however.

[[#index | top]]

----

!!! [[#spi_acronyms]] SPI-Related Acronyms

You'll encounter the following acronyms throughout the datasheets
relating to SPI:

* '''SCLK''': Serial Clock
** Generated by the master/host microcontroller, the serial clock, [@SCLK@], synchronizes the MOSI and MISO serial data lines. Data is sampled, or read, by the QT411 on the rising edge of the clock, and it is sent by the QT411 on the falling edge of the clock.

* '''SS''': Slave Select
** Same as Chip Select and triggered by the master, the slave select line chooses with which device to communicate. This line is taken low to allow for communication between the master and the slave. If many slaves are present, only the slave with which the master will communicate is taken low, while the SS lines of all the other slaves are taken high.

* '''CS''': Chip Select
** same as Slave Select

* '''SPIF''': Serial Peripheral Interrupt Flag
** This bit is set when a serial transfer is complete on the ATmega 8.

* '''SPSR''': Serial Peripheral Status Register
**

* '''SPCR''': Serial Peripheral Control Register
**

* '''SPDR''': Serial Peripheral Data Register
**

* '''MCU''': Microcontroller Unit
** The Aruino Mini is the microcontroller unit for this example.

* '''SDI''': Serial Data Input
** same as MOSI on the QT411

* '''SDO''': Serial Data Output
** same as MISO on the QT411

* '''CPOL''': Clock Polarity
* '''CPHA''': Clock Phase
* '''MOSI''': Master Out, Slave In
* '''MISO''': Master In, Slave Out

[[#index | top]]

----

!! [[#the_qt411]] The QT411

----

!!! [[#dimensions]] Dimensions

The dimensions of the QT411 are 4mm x 5mm, ~.15'' x ~.20'',
respectively.

[[#index | top]]

----

!!! [[#sensing_element]] Sensing Element

The sensing element used for this example is a 22-gauge piece of wire.
It was stripped of its insulation and soldered at the 33% and 66%
points, per p2 of the QT411 datasheet marked ``RESISTIVE SLIDER
ELEMENT.'' See the image below.


ThisWiki:/uploads/Reports/sensing_element-1-640x480.jpg


ThisWiki:/uploads/Reports/sensing_element-2-640x480.jpg

[[#index | top]]

----

!!! [[#pinouts]] Pinouts

[@
PIN NAME TYPE DESCRIPTION
1 VDD Power Positive power pin (+2.5 .. + 5V)
2 MISO Output Serial data output
3 /SS Input Slave Select pin. This is an active low input
that enables serial communications
4 SCLK Input Serial clock input. Clock idles high
5 SNS3B I/O Sense pin; connects to both slider ends, each
via separate additional resistors
6 SNS3A I/O Sense pin
7 SNS2B I/O Sense pin; connects to 66% point (from left) of
slider
8 SNS2A I/O Sense pin
9 SNS1B I/O Sense pin; connects to 33% point (from left) of
slider
10 SNS1A I/O Sense pin
11 MOSI Input Serial data input
12 DETECT Output Active high touch detected. May be left
unconnected. (Pin floats ~400us after wake
from Sleep mode.)
13 DRDY Output Data ready output. Goes high to indicate it
is possible to communicate with the QT411.
(Pin floats ~400us after wake from Sleep mode.)
14 VSS Ground Negative power pin.
@]

[[#index | top]]

----
!!! [[#links]] Links (datasheets, SPI references, etc.)

* The QT411 Sensor and its Manufacturer:
** Quantum Research Group (QT411 maker): http://www.qprox.com/
** QT411 Product Summary (from Quantum): http://www.qprox.com/products/qslide_qt411.php

* Datasheets (in PDF)
** Quantum Technology's QT411-ISSG QSlide Touch Slider IC Datasheet: http://www.qprox.com/downloads/datasheets/qt411_issg-601.pdf
** ATMEL ATmega 48/88/168 Datasheet (the microcontroller chip inside the Arduino Mini): http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf
** M68HC11E Family of Microcontrollers from Motorola (contains a thorough explanation of SPI): http://www.freescale.com/files/microcontrollers/doc/ref_manual/M68HC11RM.pdf

* Purchase
** Saelig (cheapest of three): http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3025&Category_Code=
** DigiKey (comparable to Saelig): http://www.digikey.com/scripts/us/dksus.dll?KeywordSearch&Keywords=427-1116-1-ND
** Farnell (most expensive of three): http://uk.farnell.com/jsp/search/productdetail.jsp?sku=1099149

* References
** Introduction to Serial Peripheral Interface (Embedded): http://embedded.com/showArticle.jhtml?articleID=9900483
** Serial Peripheral Interface (Wikipedia): http://en.wikipedia.org/wiki/Serial_Peripheral_Interface
** QT401 (Arduino): http://www.arduino.cc/en/Tutorial/Qt401
** Interfacing a Serial EEPROM Using SPI (Arduino): http://www.arduino.cc/en/Tutorial/SPIEEPROM

I purchased the QT411 in the spring of 2007 for $3.45 from Saelig, sans shipping. DigiKey sold it for about $3.51, while Farnell in Europe sold it for a whopping $9.30 (after rate conversion from British Pounds).

[[#index | top]]

----

!!! [[#arduino_connections]] Arduino Connections

Page 2 of the QT411's datasheet contains a layout of how the QT411
should be connected to a microcontroller. For this report, I used an
Arduino Mini microcontroller and copied the pin configurations
exactly as stated on the datasheet. I wired the DETECT line and the
SPI bus of the QT411 to the SPI bus of the Arduino Mini, as follows.
(See section 17 beginning on page 161 of the Atmel ATmega 8 datasheet,
which is linked below/above, for more.)

[@
QT411 Arduino Mini
-------------------------------
(DRDY) 13 --> 8
(DETECT) 12 --> 9
(/SS) 3 --> 10
(SDI/MOSI) 11 --> 11
(SDO/MISO) 2 --> 12
(SCLK) 4 --> 13

@]

Note that the pin mappings above aren't all direct. For example, /SS
is connected via a 1k resistor. See the image below. (SDI is not
shown in image.)

ThisWiki:/uploads/Reports/qt411_on_breadboard-partial_labels-640x853.jpg

[[#index | top]]

----

!!! [[#breakout_board]] Breakout Board

The breakout board fits inline with the Arduino Mini. Its pins are
spaced at a 2.5mm (~0.01'') pitch, and its dimensions are about 20mm x
20mm, ~0.78'' x ~0.78'', respectively.

Since the QT411 is a tiny SMD chip (see the Dimensions section), I had
to build a breakout board so I could mount the QT411 onto a
breadboard. To build the breakout board, I had to draw up an EAGLE
design. I zipped that design file along with its PS
and PDF equivalents into one [@ tgz @] file:
[[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]].
To uncompress the [@ tgz @] file, simply double-click on it in your
GUI (Windows, Mac, Linux), or extract it via the terminal (in UNIX or
any of its variants, including Macintosh):

[@ tar xvzf QT411_Board_Files.tgz @]

[[#index | top]]

ThisWiki:/uploads/Reports/QT411.jpg

ThisWiki:/uploads/Reports/qt411_breakout_board_next_to_arduino_mini-640x480.jpg

[[#index | top]]

----

!! [[#code]] Code

----

!!! [[#sample_code]] Sample Code

Working sample code is forthcoming.

[[#index | top]]

----

!!! [[#debugging_code]] Debugging Code

To help me to understand the Arduino Mini's SPI bus, I wrote a few small programs to view the behavior of each in little endian format (LSB --> MSB). Each program displays information in three second intervals.

The Arduino pins:
[@
@]

The SPSR (Serial Peripheral Status Register) register:
[@
Deleted line 10:
static int x = 0;
Changed lines 12-25 from:
Serial.print( "SPSR: " );

for( i = 0; i < 8; ++i )
if( x++ < 8 )
{
Serial.print( (SPSR & ( 128 >> x )), DEC );
Serial.print( " " );
}
else
break;

x
= 0;
to:
static int step = 0;

Serial.print( "SPCR: " );

for( i = 7; i >= 0; i-- )
{
Serial.print( (SPCR & (128 >> step)), DEC );
Serial.print( " " );
step++;
}

step = 0;
Deleted lines 30-117:

@]

The SPCR (Serial Peripheral Control Register) register:
[@

#define BAUD_RATE 9600
#define SECONDS 3000

void setup()
{
Serial.begin( BAUD_RATE );
}

void loop()
{
static int x = 0;
static int i;

Serial.print( "SPCR: " );

for( i = 0; i < 8; ++i )
if( x++ < 8 )
{
Serial.print( (SPCR & ( 128 >> x )), DEC );
Serial.print( " " );
}
else
break;

x = 0;

Serial.println( "\n" );

delay( SECONDS );

return;
}

@]

The SPDR (Serial Peripheral Data Register) register:
[@

#define BAUD_RATE 9600
#define SECONDS 3000

void setup()
{
Serial.begin( BAUD_RATE );
}

void loop()
{
static int x = 0;
static int i;

Serial.print( "SPDR: " );

for( i = 0; i < 8; ++i )
if( x++ < 8 )
{
Serial.print( (SPDR & ( 128 >> x )), DEC );
Serial.print( " " );
}
else
break;

x = 0;

Serial.println( "\n" );

delay( SECONDS );

return;
}

@]

All three of the above registers in one program:
[@
@]

[[#index | top]]

----

[[~roy | Roy Vanegas]]
May 22, 2007, at 09:45 AM by Roy Vanegas -
Changed lines 244-245 from:
is connected via a 1k resistor. See the image below.
to:
is connected via a 1k resistor. See the image below. (SDI is not
shown in image.)
May 22, 2007, at 09:35 AM by Roy Vanegas -
Deleted line 245:
[[Attach:/uploads/Reports/qt411_on_breadboard-partial_labels-640x853.jpg]]
Deleted line 247:
May 22, 2007, at 09:34 AM by Roy Vanegas -
Changed lines 246-247 from:
ThisWiki:/uploads/Reports/qt411_on_breadboard-2272x1704.jpg
to:
[[Attach:/uploads/Reports/qt411_on_breadboard-partial_labels-640x853.jpg]]
ThisWiki:/uploads/Reports/qt411_on_breadboard-partial_labels-640x853.jpg
May 22, 2007, at 09:32 AM by Roy Vanegas -
Changed line 5 from:
Initial preliminary report by [[~roy | Roy Vanegas]], 21 May 2007. A
to:
Initial preliminary report by [[~roy | Roy Vanegas]], 22 May 2007. A
Deleted line 245:
[[Attach:/uploads/Reports/qt411_on_breadboard-2272x1704.jpg]]
May 22, 2007, at 09:31 AM by Roy Vanegas -
Changed lines 6-8 from:
thorough update will appear on this page during summer 2007, as I work
more extensively with the QT411 and SPI.
to:
thorough and definitive report will appear here during summer 2007, as
I work more extensively with the QT411 and SPI.
Changed lines 138-139 from:
The dimensions of the QT411 are 4mm (~.15'') x 5mm (~.20'').
to:
The dimensions of the QT411 are 4mm x 5mm, ~.15'' x ~.20'',
respectively
.
Changed lines 150-152 from:
ELEMENT.'' See the image above/below.
to:
ELEMENT.'' See the image below.
Added lines 243-248:
Note that the pin mappings above aren't all direct. For example, /SS
is connected via a 1k resistor. See the image below.

[[Attach:/uploads/Reports/qt411_on_breadboard-2272x1704.jpg]]
ThisWiki:/uploads/Reports/qt411_on_breadboard-2272x1704.jpg
Added line 303:
Added line 336:
Added line 341:
Added line 374:
Added line 379:
Added line 412:
May 21, 2007, at 11:19 PM by Roy Vanegas -
Changed lines 50-51 from:
!!! [[#spi]] Serial Peripheral Interface (SPI)
to:
!! [[#spi]] Serial Peripheral Interface (SPI)
Changed lines 288-289 from:
To help me to understand the Arduino Mini's SPI bus, I wrote a few small programs to view the behavior of each in little endian format (LSB --> MSB). Each program displays information in three seconds intervals.
to:
To help me to understand the Arduino Mini's SPI bus, I wrote a few small programs to view the behavior of each in little endian format (LSB --> MSB). Each program displays information in three second intervals.
May 21, 2007, at 11:15 PM by Roy Vanegas -
Changed lines 288-289 from:
To help me to understand the Arduino Mini's SPI bus, I wrote a few small programs to view the behavior of each in little endian format (LSB --> MSB). Each program displays information in one second intervals.
to:
To help me to understand the Arduino Mini's SPI bus, I wrote a few small programs to view the behavior of each in little endian format (LSB --> MSB). Each program displays information in three seconds intervals.
May 21, 2007, at 11:13 PM by Roy Vanegas -
Changed line 11 from:
The QT411-ISSG is a linear touch sensor in a 14-pin TSOPP (Thin Shrink
to:
The QT411-ISSG is a linear touch sensor in a 14-pin TSSOP (Thin-Shrink
Changed lines 22-42 from:
* [[#the_qt411 | The QT411]]
## [[#dimensions
| Dimensions]]
## [[#sensing_element
| Sensing Element]]
## [[#breakout_board
| Breakout Board]]
## [[#commands
| QT411 SPI Commands]]
## [[#pinouts | Pin Descriptions (Pinouts) ]]

* [[#arduino_connections
| Arduino Connections]]
## [[#register_description
| SPI Register Description of the Arduino]]

* [[#code
| Code]]
## [[#debugging_code | Debugging Code]]

* [[#files | Files]]

* [[#spi | Serial Peripheral Interface (SPI) Bus]]
## [[#spi_acronyms | SPI-Related Acronyms]]


* [[#links
| Links (datasheets, SPI references, etc.)]]
to:
* [[#the_qt411 | The QT411]]
## [[#dimensions
| Dimensions]]
## [[#sensing_element
| Sensing Element]]
## [[#breakout_board
| Breakout Board]]
## [[#commands
| QT411 SPI Commands]]
## [[#pinouts
| Pin Descriptions (Pinouts) ]]

* [[#arduino_connections
| Arduino Connections]]
## [[#register_description | SPI Register Description of the Arduino
]]

* [[#code | Code]]
## [[#sample_code
| Sample Code ]]
## [[#debugging_code
| Debugging Code]]

* [[#spi
| Serial Peripheral Interface (SPI) Bus]]
## [[#spi_acronyms
| SPI-Related Acronyms]]

* [[#links | Links (datasheets, SPI references, etc.)]]
Changed lines 50-51 from:
!!! [[#spi]] Serial Peripheral Interface (SPI)
to:
!!! [[#spi]] Serial Peripheral Interface (SPI)
Changed lines 70-71 from:
!!! [[#commands]] QT411 SPI Commands
to:
!!! [[#commands]] QT411 SPI Commands
Deleted lines 73-74:
Changed lines 88-89 from:
!!! [[#spi_acronyms]] SPI-Related Acronyms
to:
!!! [[#spi_acronyms]] SPI-Related Acronyms
Changed lines 138-139 from:
The dimensions of the QT411 are 4mm (~.15") x 5mm (~.20").
to:
The dimensions of the QT411 are 4mm (~.15'') x 5mm (~.20'').
Deleted lines 160-177:
!!! [[#files]] Files

Since the QT411 is a tiny SMD chip (see the Dimensions section), I had
to build a breakout board so I could mount the QT411 onto a
breadboard. To build the breakout board, I had to draw up an EAGLE
design. I zipped that design file along with its PS
and PDF equivalents into one [@ tgz @] file:
[[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]].
To uncompress the [@ tgz @] file, simply double-click on it in your
GUI (Windows, Mac, Linux), or extract it via the terminal (in UNIX or
any of its variants, including Macintosh):

[@ tar xvzf QT411_Board_Files.tgz @]

[[#index | top]]

----
Changed lines 249-251 from:
spaced at a 2.5mm (~0.01") pitch, and its dimensions are about 20mm x
20mm, ~0.78" x ~0.78", respectively.
to:
spaced at a 2.5mm (~0.01'') pitch, and its dimensions are about 20mm x
20mm, ~0.78'' x ~0.78'', respectively.

Since the QT411 is a tiny SMD chip (see the Dimensions section), I had
to build a breakout board so I could mount the QT411 onto a
breadboard. To build the breakout board, I had to draw up an EAGLE
design. I zipped that design file along with its PS
and PDF equivalents into one [@ tgz @] file:
[[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]].
To uncompress the [@ tgz @] file, simply double-click on it in your
GUI (Windows, Mac, Linux), or extract it via the terminal (in UNIX or
any of its variants, including Macintosh):

[@ tar xvzf QT411_Board_Files.tgz @]

[[#index | top]]
Changed lines 274-275 from:
!! [[#code]] Code
to:
!! [[#code]] Code
Changed lines 278-290 from:
!!! [[#debugging_code]] Debugging Code

To help me to understand how the Arduino Mini behaves, I wrote a few
small programs to view the behavior of all the pins and of some of

the SPI registers. Each program displays information in one second
intervals.

The Arduino pins:

The SPSR register:

The SPDR register:
to:
!!! [[#sample_code]] Sample Code

Working sample code is forthcoming.
Added lines 286-409:
!!! [[#debugging_code]] Debugging Code

To help me to understand the Arduino Mini's SPI bus, I wrote a few small programs to view the behavior of each in little endian format (LSB --> MSB). Each program displays information in one second intervals.

The Arduino pins:
[@
@]

The SPSR (Serial Peripheral Status Register) register:
[@
#define BAUD_RATE 9600
#define SECONDS 3000

void setup()
{
Serial.begin( BAUD_RATE );
}

void loop()
{
static int x = 0;
static int i;

Serial.print( "SPSR: " );

for( i = 0; i < 8; ++i )
if( x++ < 8 )
{
Serial.print( (SPSR & ( 128 >> x )), DEC );
Serial.print( " " );
}
else
break;

x = 0;

Serial.println( "\n" );

delay( SECONDS );

return;
}
@]

The SPCR (Serial Peripheral Control Register) register:
[@
#define BAUD_RATE 9600
#define SECONDS 3000

void setup()
{
Serial.begin( BAUD_RATE );
}

void loop()
{
static int x = 0;
static int i;

Serial.print( "SPCR: " );

for( i = 0; i < 8; ++i )
if( x++ < 8 )
{
Serial.print( (SPCR & ( 128 >> x )), DEC );
Serial.print( " " );
}
else
break;

x = 0;

Serial.println( "\n" );

delay( SECONDS );

return;
}
@]

The SPDR (Serial Peripheral Data Register) register:
[@
#define BAUD_RATE 9600
#define SECONDS 3000

void setup()
{
Serial.begin( BAUD_RATE );
}

void loop()
{
static int x = 0;
static int i;

Serial.print( "SPDR: " );

for( i = 0; i < 8; ++i )
if( x++ < 8 )
{
Serial.print( (SPDR & ( 128 >> x )), DEC );
Serial.print( " " );
}
else
break;

x = 0;

Serial.println( "\n" );

delay( SECONDS );

return;
}
@]

All three of the above registers in one program:
[@
@]

[[#index | top]]

----
May 21, 2007, at 09:15 PM by Roy Vanegas -
Added lines 74-77:
These are the commands that are sent from the Arduino Mini to the QT411. Except for the [@ error status @] command, each returns to the Arduino Mini the Standard Response byte.

Changed lines 80-90 from:
[@ 0x01: calibrate @]

As its title suggests, this command performs a basic calibration of the sensor via 10 acquisition bursts. The host microcontroller should wait for DRDY to rise again after the calibration has completed before shifting commands again.

[@ 0x03: drift compensate @]


0x04
: error status
0x8T: set touch threshold
@]
to:
:[@ 0x01: calibrate @]: As its title suggests, this command performs a basic calibration of the sensor via 10 acquisition bursts. The host microcontroller should wait for DRDY to rise again after the calibration has completed before shifting commands again.

:[@ 0x03: drift compensate @]: This command performs an incremental compensation on drift. It should be sent to the QT411 about once every ten commands.

:[
@ 0x04: error status @]: This command does not return the Standard Response byte. Instead it returns to the Arduino Mini a byte with information such as touch status and sensor type. You may ignore all but bit 1, which reports 1 if a calibration error has been detected; 0 otherwise.

:[@ 0x8T: set touch threshold @]: This is the command that is used to ``tune'' the sensor. Bits 5--0 are used to set the touch threshold. Each bit may be given a value between 0 and 63. Zero should never be used, however.
May 21, 2007, at 09:04 PM by Roy Vanegas -
Changed lines 74-77 from:
[@ 0x00: null @]

This command will trigger a new acquisition if /SS rises. Otherwise, nothing happens.
to:
:[@ 0x00: null @]:This command will trigger a new acquisition if /SS rises. Otherwise, nothing happens.
May 21, 2007, at 09:03 PM by Roy Vanegas -
Added line 75:
Added line 79:
May 21, 2007, at 09:02 PM by Roy Vanegas -
Changed lines 74-77 from:
[@
0x00: null
0x01: calibrate
0x03: drift compensate
to:
[@ 0x00: null @]
This command will trigger a new acquisition if /SS rises. Otherwise, nothing happens.

[@ 0x01: calibrate @]
As its title suggests, this command performs a basic calibration of the sensor via 10 acquisition bursts. The host microcontroller should wait for DRDY to rise again after the calibration has completed before shifting commands again.

[@ 0x03: drift compensate @]
May 21, 2007, at 08:55 PM by Roy Vanegas -
Changed lines 130-132 from:
!! [[#the_qt411]] The QT411
to:
!! [[#the_qt411]] The QT411

----
Changed lines 177-178 from:
!!! [[#pinouts]] Pinouts
to:
!!! [[#pinouts]] Pinouts
Changed lines 208-209 from:
!!! [[#links]] Links (datasheets, SPI references, etc.)
to:
!!! [[#links]] Links (datasheets, SPI references, etc.)
Changed lines 236-237 from:
!!! [[#arduino_connections]] Arduino Connections
to:
!!! [[#arduino_connections]] Arduino Connections
Deleted lines 277-280:
Pending

[[#index | top]]
May 21, 2007, at 08:53 PM by Roy Vanegas -
Deleted lines 132-136:

[[#index | top]]

----
May 21, 2007, at 08:52 PM by Roy Vanegas -
Changed lines 132-133 from:
ThisWiki:/uploads/Reports/QT411.jpg
to:
Added lines 272-273:
ThisWiki:/uploads/Reports/QT411.jpg
May 21, 2007, at 08:51 PM by Roy Vanegas -
Changed lines 95-96 from:
** Same as Chip Select and triggered by the master, the slave select line chooses with which device to communicate. This line is taken low to allow for communication between the master and the slave. If many slaves are present, only the slave with which to communicate is taken low, all other slaves' SS line is taken high.
to:
** Same as Chip Select and triggered by the master, the slave select line chooses with which device to communicate. This line is taken low to allow for communication between the master and the slave. If many slaves are present, only the slave with which the master will communicate is taken low, while the SS lines of all the other slaves are taken high.
May 21, 2007, at 08:49 PM by Roy Vanegas -
Changed lines 94-96 from:
* '''SS''': Slave Select, same as Chip Select (generated by the master)
** Triggered
by the master, the slave select line chooses with which device to communicate. This line is taken low to allow for communication between the master and the slave. If many slaves are present, only the slave with which to communicate is taken low, all other slaves' SS line is taken high.
to:
* '''SS''': Slave Select
** Same as Chip Select and triggered by the master, the slave select line chooses with which device to communicate. This line is taken low to allow for communication between the master and the slave. If many slaves are present, only the slave with which to communicate is taken low, all other slaves' SS line is taken high.
May 21, 2007, at 08:48 PM by Roy Vanegas -
Changed line 91 from:
* '''SCLK''': Serial Clock (generated by the master)
to:
* '''SCLK''': Serial Clock
May 21, 2007, at 08:48 PM by Roy Vanegas -
Changed lines 92-93 from:
** It is the serial clock of the host microcontroller that synchronizes the data on the MOSI and MISO serial data lines. Data is sampled, or read, by the QT411 on the rising edge of the clock, and it is sent by the QT411 on the falling edge of the clock.
to:
** Generated by the master/host microcontroller, the serial clock, [@SCLK@], synchronizes the MOSI and MISO serial data lines. Data is sampled, or read, by the QT411 on the rising edge of the clock, and it is sent by the QT411 on the falling edge of the clock.
May 21, 2007, at 08:46 PM by Roy Vanegas -
Changed lines 92-96 from:
** It is the serial clock of the host microcontroller that
synchronizes the data on the MOSI and MISO serial data lines. Data
is sampled, or read, by the QT411 on the rising edge of the clock, and
it is sent by the QT411 on the falling edge of the clock.
to:
** It is the serial clock of the host microcontroller that synchronizes the data on the MOSI and MISO serial data lines. Data is sampled, or read, by the QT411 on the rising edge of the clock, and it is sent by the QT411 on the falling edge of the clock.
Changed lines 95-100 from:
** Triggered by the master, the slave select line chooses with which
device to communicate. This line is taken low to allow for
communication between the master and the slave. If many slaves are
present, only the slave with which to communicate is taken low, all
other slaves' SS line is taken high.
to:
** Triggered by the master, the slave select line chooses with which device to communicate. This line is taken low to allow for communication between the master and the slave. If many slaves are present, only the slave with which to communicate is taken low, all other slaves' SS line is taken high.
May 21, 2007, at 08:45 PM by Roy Vanegas -
May 21, 2007, at 08:44 PM by Roy Vanegas -
Changed lines 11-16 from:
The QT411 is a linear touch sensor. The datasheet puts it best: ``The
output data is a 7-bit binary number (0...127) indicating angular
position.''
It can be used to replace items such as slider elements,
faders, volume controls, and just about anything else that employs a
potentiometer to
control an electronic device.
to:
The QT411-ISSG is a linear touch sensor in a 14-pin TSOPP (Thin Shrink
Small Outline Package) casing. It outputs data as a ``7-bit binary

number (0...127) indicating angular position,'' per the datasheet. It
can be used to replace items such as slider elements, faders, volume
controls, and just about anything else that employs a potentiometer to

control an electronic device.
May 21, 2007, at 08:38 PM by Roy Vanegas -
Deleted line 8:
[[Attach:/uploads/Reports/qt411-241x200.jpg]]
Changed lines 10-11 from:
ThisWiki:/uploads/Reports/QT411.jpg
to:
Changed lines 138-139 from:
[[Attach:/uploads/...
to:
ThisWiki:/uploads/Reports/QT411.jpg
May 21, 2007, at 08:34 PM by Roy Vanegas -
Added lines 9-10:
[[Attach:/uploads/Reports/qt411-241x200.jpg]]
ThisWiki:/uploads/Reports/qt411-241x200.jpg
Changed lines 286-287 from:
!!! [[#code]] Code
to:
!! [[#code]] Code
May 21, 2007, at 07:49 PM by Roy Vanegas -
Changed lines 152-153 from:
!!! [[#sensing_element]] Sensing Element
to:
!!! [[#sensing_element]] Sensing Element
Changed line 159 from:
[[Attach:/uploads/Reports/sensing_element-1-640x480.jpg]]
to:
Added lines 162-164:

ThisWiki:/uploads/Reports/sensing_element-2-640x480.jpg
May 21, 2007, at 07:44 PM by Roy Vanegas -
May 21, 2007, at 07:38 PM by Roy Vanegas -
Changed line 23 from:
## [[#sensing_element | Sensing Element]]
to:
## [[#sensing_element | Sensing Element]]
Added line 159:
[[Attach:/uploads/Reports/sensing_element-1-640x480.jpg]]
Deleted lines 161-162:
ThisWiki:/uploads/Reports/sensing_element-2-640x480.jpg
May 21, 2007, at 07:31 PM by Roy Vanegas -
Changed line 21 from:
# [[#the_qt411 | The QT411]]
to:
* [[#the_qt411 | The QT411]]
Changed lines 29-30 from:
** [[#register_description | SPI Register Description of the Arduino]]
to:
## [[#register_description | SPI Register Description of the Arduino]]
Changed lines 32-33 from:
** [[#debugging_code | Debugging Code]]
to:
## [[#debugging_code | Debugging Code]]
Changed lines 37-39 from:
** [[#spi_acronyms | SPI-Related Acronyms]]
to:
## [[#spi_acronyms | SPI-Related Acronyms]]
Changed lines 272-273 from:
The breakout board fits inline with the Arduino Mini and its pins are
spaced at a 2.5mm (~0.01") pitch. Its dimensions are about 20mm x
to:
The breakout board fits inline with the Arduino Mini. Its pins are
spaced at a 2.5mm (~0.01") pitch, and its dimensions are about 20mm x
Deleted line 275:
[[Attach:/uploads/Reports/qt411_breakout_board_next_to_arduino_mini-640x480.jpg]]
May 21, 2007, at 07:28 PM by Roy Vanegas -
Changed line 21 from:
* [[#the_qt411 | The QT411]]
to:
# [[#the_qt411 | The QT411]]
May 21, 2007, at 07:28 PM by Roy Vanegas -
Changed lines 21-27 from:
:[[#the_qt411 |
The QT411]]:[[#dimensions|
Dimensions]]::[[#sensing_element | Sensing Element]]
** [[#breakout_board | Breakout Board]]
** [[#commands | QT411 SPI Commands]]
**
[[#pinouts | Pin Descriptions (Pinouts) ]]
to:
* [[#the_qt411 | The QT411]]
## [[#dimensions
| Dimensions]]
## [[#sensing_element | Sensing Element]]
## [[#breakout_board | Breakout Board]]
## [[#commands
| QT411 SPI Commands]]
##
[[#pinouts | Pin Descriptions (Pinouts) ]]
May 21, 2007, at 07:27 PM by Roy Vanegas -
Changed lines 21-22 from:
:[[#the_qt411 | The QT411]]:[[#dimensions | Dimensions]]
**
[[#sensing_element | Sensing Element]]
to:
:[[#the_qt411 |
The QT411]]:[[#dimensions|
Dimensions]]::[[#sensing_element | Sensing Element]]
May 21, 2007, at 07:26 PM by Roy Vanegas -
Changed lines 21-22 from:
:[[#the_qt411 | The QT411]]:
[[#dimensions | Dimensions]]
to:
:[[#the_qt411 | The QT411]]:[[#dimensions | Dimensions]]
May 21, 2007, at 07:25 PM by Roy Vanegas -
Changed lines 21-22 from:
:[[#the_qt411 | The QT411]]::[[#dimensions | Dimensions]]
to:
:[[#the_qt411 | The QT411]]:
[[#dimensions | Dimensions]]
May 21, 2007, at 07:25 PM by Roy Vanegas -
Changed lines 21-22 from:
* [[#the_qt411 | The QT411]]
: [[#dimensions | Dimensions]]
to:
:[[#the_qt411 | The QT411]]::[[#dimensions | Dimensions]]
May 21, 2007, at 07:24 PM by Roy Vanegas -
May 21, 2007, at 07:24 PM by Roy Vanegas -
Changed line 22 from:
:: [[#dimensions | Dimensions]]
to:
: [[#dimensions | Dimensions]]
May 21, 2007, at 07:24 PM by Roy Vanegas -
Changed line 22 from:
** [[#dimensions | Dimensions]]
to:
:: [[#dimensions | Dimensions]]
May 21, 2007, at 07:23 PM by Roy Vanegas -
Changed line 13 from:
position.'' It can be used to replace items like slider elements,
to:
position.'' It can be used to replace items such as slider elements,
Changed line 25 from:
** [[#commands | SPI Commands]]
to:
** [[#commands | QT411 SPI Commands]]
Changed lines 27-28 from:
** [[#microcontroller_connections | Microcontroller Connections]]
to:
* [[#arduino_connections | Arduino Connections]]
** [[#register_description | SPI Register Description of the Arduino
]]
Changed lines 38-39 from:
** [[#register_description | Register Description]]
to:
Changed lines 44-47 from:
!!! [[#register_description]] Register Description

Pending
to:
!!! [[#register_description]] SPI Register Description of the Arduino
Changed line 53 from:
The Serial Peripheral Interface (SPI) Bus is a full duplex,
to:
The Serial Peripheral Interface (SPI) bus is a full duplex,
Changed lines 71-72 from:
!!! [[#commands]] SPI Commands
to:
!!! [[#commands]] QT411 SPI Commands
Added lines 91-95:
** It is the serial clock of the host microcontroller that
synchronizes the data on the MOSI and MISO serial data lines. Data
is sampled, or read, by the QT411 on the rising edge of the clock, and
it is sent by the QT411 on the falling edge of the clock.
Changed lines 97-99 from:
* '''CS''': Chip Select, same as Slave Select
* '''SPIE''': Serial Peripheral Interrupt Enable
* '''SPIF''': Serial Peripheral (Transmission) Flag
to:
** Triggered by the master, the slave select line chooses with which
device to communicate. This line is taken low to allow for
communication between the master and the slave. If many slaves are
present, only the slave with which to communicate is taken low, all
other slaves' SS line is taken high.

* '''CS''': Chip Select
** same as Slave Select

* '''SPIF''': Serial Peripheral Interrupt Flag
** This bit is set when a serial transfer is complete on the ATmega 8.
Changed lines 110-111 from:
* '''SPI''': Serial Peripheral Interface (created by Motorola)
to:
**
Added lines 113-117:
**

* '''SPDR''': Serial Peripheral Data Register
**
Added lines 119-120:
** The Aruino Mini is the microcontroller unit for this example.
Added lines 122-123:
** same as MOSI on the QT411
Added lines 125-126:
** same as MISO on the QT411
Changed lines 138-140 from:
IMAGE HERE
to:
[[Attach:/uploads/...
Changed lines 146-147 from:
The dimensions of the QT411 are about 4mm (~.15") x 5mm (~.20").
to:
The dimensions of the QT411 are 4mm (~.15") x 5mm (~.20").
Deleted line 166:
Changed lines 170-175 from:
to build a breakout board. The EAGLE file, along with its PS and PDF
equivalents,

so I designed a computer-aided design file in Eagle, then rendered it to
PS, PostScript, and PDF, Portable Document Format. All three files
have been zipped in to one tar
file:
to:
to build a breakout board so I could mount the QT411 onto a
breadboard. To build the breakout board, I had to draw up an EAGLE
design. I zipped that design file along with its PS
and PDF equivalents into one [@ tgz @]
file:
Changed lines 244-245 from:
!!! [[#microcontroller_connections]] Microcontroller Connections
to:
!!! [[#arduino_connections]] Arduino Connections
Changed lines 270-271 from:
!!! [[#breakout_board]] Breakout Board
to:
!!! [[#breakout_board]] Breakout Board
Added lines 276-278:
[[Attach:/uploads/Reports/qt411_breakout_board_next_to_arduino_mini-640x480.jpg]]
ThisWiki:/uploads/Reports/qt411_breakout_board_next_to_arduino_mini-640x480.jpg
May 21, 2007, at 03:30 PM by Roy Vanegas -
Changed lines 21-44 from:
* [[#register_description | Register Description]]

* [[#code
| Code]]

** [[#debugging_code
| Debugging Code]]

* [[#files
| Files]]

* [[#spi | Serial Peripheral Interface (SPI) Bus]]

** [[#spi_acronyms
| SPI-Related Acronyms]]

* [[#the_qt411 | The QT411]]
** [[#dimensions
| Dimensions]]
** [[#sensing_element
| Sensing Element]]
** [[#breakout_board
| Breakout Board]]
** [[#commands | SPI Commands]]

* [[#links
| Links (datasheets, SPI references, etc.)]]

* [[#pinouts | Pin Descriptions (Pinouts) ]]

* [[#microcontroller_connections | Microcontroller Connections
]]
to:
* [[#the_qt411 | The QT411]]
** [[#dimensions
| Dimensions]]
** [[#sensing_element
| Sensing Element]]
** [[#breakout_board
| Breakout Board]]
** [[#commands | SPI Commands]]
** [[#pinouts
| Pin Descriptions (Pinouts) ]]
** [[#microcontroller_connections | Microcontroller Connections]]

* [[#code
| Code]]
** [[#debugging_code
| Debugging Code]]

* [[#files
| Files]]

* [[#spi | Serial Peripheral Interface (SPI) Bus]]
** [[#spi_acronyms
| SPI-Related Acronyms]]
** [[#register_description | Register Description]]

* [[#links
| Links (datasheets, SPI references, etc.)]]
May 21, 2007, at 03:28 PM by Roy Vanegas -
Deleted lines 20-21:
* [[#dimensions | Dimensions]]
Added line 34:
** [[#dimensions | Dimensions]]
May 21, 2007, at 03:27 PM by Roy Vanegas -
Deleted lines 55-63:
!!! [[#dimensions]] Dimensions

The dimensions of the QT411 are about 4mm (~.15") x 5mm (~.20").


[[#index | top]]

----
Added lines 123-131:

!!! [[#dimensions]] Dimensions

The dimensions of the QT411 are about 4mm (~.15") x 5mm (~.20").

[[#index | top]]

----
May 21, 2007, at 03:26 PM by Roy Vanegas -
Changed lines 139-142 from:
[[Attach:sensing_element-1-640x480.jpg]]

[[Attach
:sensing_element-2-640x480.jpg]]
to:
ThisWiki:/uploads/Reports/sensing_element-1-640x480.jpg

ThisWiki
:/uploads/Reports/sensing_element-2-640x480.jpg
May 21, 2007, at 03:24 PM by Roy Vanegas -
Changed lines 124-125 from:
!!! [[#the_qt411]] The QT411
to:
!! [[#the_qt411]] The QT411
Changed lines 132-147 from:
to:
!!! [[#sensing_element]] Sensing Element

The sensing element used for this example is a 22-gauge piece of wire.
It was stripped of its insulation and soldered at the 33% and 66%
points, per p2 of the QT411 datasheet marked ``RESISTIVE SLIDER
ELEMENT.'' See the image above/below.

[[Attach:sensing_element-1-640x480.jpg]]

[[Attach:sensing_element-2-640x480.jpg]]

[[#index | top]]

----
Deleted lines 287-301:
!!! [[#sensing_element]] Sensing Element

The sensing element used for this example is a 22-gauge piece of wire.
It was stripped of its insulation and soldered at the 33% and 66%
points, per p2 of the QT411 datasheet marked ``RESISTIVE SLIDER
ELEMENT.'' See the image above/below.

[[Attach:sensing_element-1-640x480.jpg]]

[[Attach:sensing_element-2-640x480.jpg]]

[[#index | top]]

----
May 21, 2007, at 03:22 PM by Roy Vanegas -
Deleted lines 32-33:
** [[#commands | SPI Commands to QT411]]
Changed lines 38-39 from:
to:
** [[#commands | SPI Commands]]
Changed lines 85-86 from:
!!! [[#commands]] SPI Commands to QT411
to:
!!! [[#commands]] SPI Commands
May 21, 2007, at 03:22 PM by Roy Vanegas -
May 21, 2007, at 03:21 PM by Roy Vanegas -
Deleted line 89:
Deleted line 90:
Deleted line 91:
Deleted line 92:
Deleted lines 93-94:

[[#index | top]]
Added lines 96-97:
[[#index | top]]
May 21, 2007, at 03:21 PM by Roy Vanegas -
Deleted lines 42-43:
* [[#testing_environment | Testing Environment ]]
Added line 88:
[@
Added line 90:
Added line 92:
Added line 94:
Added line 96:
Changed lines 100-101 from:
to:
@]
Deleted lines 137-144:
!!! [[#testing_environment]] Testing Environment

Pending

[[#index | top]]

----
Changed lines 285-288 from:
ThisWiki:/uploads/Reports/sensing_element-1-640x480.jpg

ThisWiki
:/uploads/Reports/sensing_element-2-640x480.jpg
to:
[[Attach:sensing_element-1-640x480.jpg]]

[[Attach
:sensing_element-2-640x480.jpg]]
May 21, 2007, at 03:13 PM by Roy Vanegas -
Changed lines 289-290 from:
ThisWiki:/uploads/Main/sensing_element-1-640x480.jpg
to:
ThisWiki:/uploads/Reports/sensing_element-1-640x480.jpg
May 21, 2007, at 03:12 PM by Roy Vanegas -
Changed lines 291-292 from:
ThisWiki:/uploads/Main/sensing_element-2-640x480.jpg
to:
ThisWiki:/uploads/Reports/sensing_element-2-640x480.jpg
May 21, 2007, at 03:11 PM by Roy Vanegas -
Changed lines 289-292 from:
[[Attach:sensing_element-1-640x480.jpg]]

[[Attach
:sensing_element-2-640x480.jpg]]
to:
ThisWiki:/uploads/Main/sensing_element-1-640x480.jpg

ThisWiki
:/uploads/Main/sensing_element-2-640x480.jpg
May 21, 2007, at 03:03 PM by Roy Vanegas -
Added line 290:
May 21, 2007, at 03:02 PM by Roy Vanegas -
Changed line 5 from:
Initial preliminary report by [[~roy | Roy Vanegas]], 11 May 2007. A
to:
Initial preliminary report by [[~roy | Roy Vanegas]], 21 May 2007. A
Changed lines 70-78 from:
The Serial Peripheral Interface (SPI) Bus is usually a 3-pin, full
duplex, data communications link. The Arduino Mini observes an SPI
Bus, as does the QT411 QSlide Touch Slider.

Alas, SPI, created by Motorola, is not standardized
in either hardware
or protocol.
Instead, a widely agreed upon definition is recognized.
As such, one must exercise caution when wiring and programming
SPI-related devices
.
to:
The Serial Peripheral Interface (SPI) Bus is a full duplex,
synchronous,
data communications link. According to Motorola, SPI's
originators, the SPI bus is made of four signals: Master in/slave out
(MISO), Master out/slave
in (MOSI), Serial clock (SCK), and Slave
select (SS), which appears in some datasheets with an overbar above
both ``S'' characters, or with a forward slash before the first S.
Both the Arduino Mini and the QT411 QSlide Touch Slider observe the
SPI serial interface.

Alas, SPI is not standardized, in either hardware or protocol.
Instead, a widely agreed upon definition is recognized. This leads
to variation in the implementation and programming of SPI that
requires special handling of each device
.
Changed lines 127-130 from:
ThisWiki:/uploads/Reports/QT411_On_Breadboard.jpg

THE
IMAGE ABOVE IS NOT CURRENT AND WILL BE UPDATED SOON!!!
to:
IMAGE HERE
Changed lines 144-148 from:
I designed a computer-aided design file in Eagle, then rendered it to
to:
Since the QT411 is a tiny SMD chip (see the Dimensions section), I had
to build a breakout board. The EAGLE file, along with its PS and PDF
equivalents,

so
I designed a computer-aided design file in Eagle, then rendered it to
Changed line 164 from:
[@
to:
[@
Changed lines 171-180 from:
5 SNS3B I/O Sense pin (to Cs3, Rs3); connects to both
slider ends, each via separate additional 8.2k
ohm resistors
6 SNS3A I/O
Sense pin (to Cs3)
7 SNS2B I/O Sense pin (to Cs2, Rs2); connects to 66% point
(from left) of slider
8 SNS2A I/O Sense pin (to Cs2)
9 SNS1B I/O Sense pin (to Cs1, Rs1); connects to 33% point
(from left) of slider
10 SNS1A I/O Sense pin (to Cs1)
to:
5 SNS3B I/O Sense pin; connects to both slider ends, each
via separate additional resistors
6
SNS3A I/O Sense pin
7 SNS2B I/O Sense pin; connects to 66% point (from left) of
slider
8 SNS2A I/O Sense pin
9 SNS1B I/O Sense pin; connects to 33% point (from left) of
slider
10 SNS1A I/O Sense pin
Changed lines 187-188 from:
14 VSS Ground Negative power pin
to:
14 VSS Ground Negative power pin.
Changed line 232 from:
QT411 Arduino Mini
to:
QT411 Arduino Mini
Changed lines 234-240 from:
(DRDY) 13 --> 8
(DETECT)
12 --> 9
(/SS) 3 --> 10
(SDI/MOSI) 11 --> 11
(SDO/MISO)
2 --> 12
(SCLK)
4 --> 13
to:
(DRDY) 13 --> 8
(DETECT) 12 --> 9
(/SS) 3 --> 10
(SDI/MOSI) 11 --> 11
(SDO/MISO) 2 --> 12
(SCLK) 4 -->
13
Added lines 289-291:
[[Attach:sensing_element-1-640x480.jpg]]
[[Attach:sensing_element-2-640x480.jpg]]
May 21, 2007, at 01:18 PM by Roy Vanegas -
Changed lines 21-44 from:
* [[#dimensions | Dimensions]]

* [[#breakout_board
| Breakout Board]]

* [[#register_description | Register Description]]

* [[#code
| Code]]

* [[#debugging_code
| Debugging Code]]

* [[#files | Files]]

* [[#spi | Serial Peripheral Interface (SPI) Bus]]

* [[#commands | SPI Commands to QT411]]

* [[#spi_acronyms | SPI-Related Acronyms]]

* [[#links | Links (datasheets, SPI references, etc.
)]]

* [[#testing_environment | Testing Environment ]]

* [[#pinouts
| Pin Descriptions (Pinouts) ]]
to:
* [[#dimensions | Dimensions]]

* [[#register_description | Register Description]]

* [[#code
| Code]]

** [[#debugging_code | Debugging Code]]

* [[#files | Files]]

* [[#spi | Serial Peripheral Interface (SPI) Bus]]

** [[#commands | SPI Commands to QT411]]

** [[#spi_acronyms | SPI-Related Acronyms]]

* [[#the_qt411 | The QT411]]
** [[#sensing_element | Sensing Element]]
** [[#breakout_board | Breakout Board]]

* [[#links | Links (datasheets, SPI references, etc.)]]

* [[#testing_environment | Testing Environment ]]

* [[#pinouts
| Pin Descriptions (Pinouts) ]]
Changed lines 120-121 from:
!!! The QT411
to:
!!! [[#the_qt411]] The QT411
Changed lines 143-147 from:
[[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]]. To uncompress the [@ tgz @] file,
simply double-click on it in your GUI (Windows, Mac, Linux), or
extract it via the terminal (in UNIX or any of its variants,
including Macintosh):
to:
[[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]].
To uncompress the [@ tgz @] file, simply double-click on it in your
GUI (Windows, Mac, Linux), or extract it via the terminal (in UNIX or
any of its variants, including Macintosh):
Changed lines 220-223 from:
exactly as stated on the datasheet. I wired the SPI bus of the QT411
to
the SPI bus of the Arduino Mini along with the DETECT line as
follows:
to:
exactly as stated on the datasheet. I wired the DETECT line and the
SPI bus of
the QT411 to the SPI bus of the Arduino Mini, as follows.
(See section 17 beginning on page 161 of the Atmel ATmega 8 datasheet,
which is linked below/above, for more.)
Changed line 263 from:
the SPI registers. Each program display information in one second
to:
the SPI registers. Each program displays information in one second
Added lines 276-286:
!!! [[#sensing_element]] Sensing Element

The sensing element used for this example is a 22-gauge piece of wire.
It was stripped of its insulation and soldered at the 33% and 66%
points, per p2 of the QT411 datasheet marked ``RESISTIVE SLIDER
ELEMENT.'' See the image above/below.

[[#index | top]]

----
May 21, 2007, at 12:08 PM by Roy Vanegas -
Deleted line 18:
Changed lines 21-24 from:
* [[#dimensions | Dimensions]]

* [[#breakout_board
| Breakout Board]]
to:
* [[#dimensions | Dimensions]]

* [[#breakout_board
| Breakout Board]]
Changed lines 27-30 from:
* [[#code | Code]]

* [[#debugging_code | Debugging
Code]]
to:
* [[#code | Code]]

* [[#debugging_code | Debugging Code]]

* [[#files | Files]]

* [[#spi | Serial Peripheral Interface (SPI) Bus]]

* [[#commands | SPI Commands to QT411
]]
Deleted lines 38-41:
* [[#files | Files]]

* [[#spi | Serial Peripheral Interface (SPI) Bus]]
Added line 46:
Added lines 81-92:
!!! [[#commands]] SPI Commands to QT411

0x00: null
0x01: calibrate
0x03: drift compensate
0x04: error status
0x8T: set touch threshold

[[#index | top]]

----
Changed line 187 from:
* Sensor and its Maker:
to:
* The QT411 Sensor and its Manufacturer:
Changed lines 201-207 from:
In the spring of 2007, I purchased the QT411 for $3.45 from Saelig.
DigiKey sells it for about 6 cents more, while Farnell in Europe sells

each for a whopping $9.30 (exchange rate from British pounds to
American dollars on
3 May 2007).

Shipping excluded in the pricing above
.
to:
* References
** Introduction to Serial Peripheral Interface (Embedded): http://embedded
.com/showArticle.jhtml?articleID=9900483
** Serial Peripheral Interface (Wikipedia): http://en.wikipedia.org/wiki/Serial_Peripheral_Interface
** QT401 (Arduino): http://www.arduino.cc/en/Tutorial/Qt401
** Interfacing a Serial EEPROM Using SPI (Arduino): http://www
.arduino.cc/en/Tutorial/SPIEEPROM

I purchased the QT411 in the spring of 2007 for $
3.45 from Saelig, sans shipping. DigiKey sold it for about $3.51, while Farnell in Europe sold it for a whopping $9.30 (after rate conversion from British Pounds).
Deleted line 255:
Deleted line 273:
May 11, 2007, at 04:16 PM by Roy Vanegas -
Changed lines 127-128 from:
[[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz |
[@ QT411_Board_Files.tgz@] ]]. To uncompress the [@ tgz @] file,
to:
[[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]]. To uncompress the [@ tgz @] file,
May 11, 2007, at 04:14 PM by Roy Vanegas -
Changed lines 3-4 from:
[[Attach:myImageName.jpg]]
to:
! QSlide Touch Slider IC Report

Initial preliminary report by
[[~roy | Roy Vanegas]], 11 May 2007. A
thorough update will appear on this page during summer 2007, as I work
more extensively with the QT411 and SPI.

ThisWiki:/uploads/Reports/QT411.jpg

The QT411 is a linear touch sensor. The datasheet puts it best: ``The
output data is a 7-bit binary number (0...127) indicating angular
position.'' It can be used to replace items like slider elements,
faders, volume controls, and just about anything else that employs a
potentiometer to control an electronic device.

----
May 11, 2007, at 04:12 PM by Roy Vanegas -
Deleted lines 2-11:
! QSlide Touch Slider IC Report

Initial preliminary report by [[~roy | Roy Vanegas]], 8 May 2007. A thorough update will appear on this page during summer 2007, as I work more extensively with the QT411 and SPI.

ThisWiki:/uploads/Reports/QT411.jpg

The QT411 is a linear touch sensor. The datasheet puts it best: ``The output data is a 7-bit binary number (0...127) indicating angular position.'' It can be used to replace items like slider elements, faders, volume controls, and just about anything else that employs a potentiometer to control an electronic device.

----
Changed lines 109-110 from:
I designed a computer-aided design file in Eagle, then rendered it to PS, PostScript, and PDF, Portable Document Format. All three files have been zipped in to one tar file: [[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]]. To uncompress the [@ tgz @] file, simply double-click on it in your GUI (Windows, Mac, Linux), or extract via the terminal (in UNIX or any of its variants, including Macintosh):
to:
I designed a computer-aided design file in Eagle, then rendered it to
PS, PostScript, and PDF, Portable Document Format. All three files
have been zipped in to one tar file:
[[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz |
[@ QT411_Board_Files.tgz@] ]]. To uncompress the [@ tgz @] file,
simply double-click on it in your GUI (Windows, Mac, Linux), or
extract it via the terminal (in UNIX or any of its variants,
including Macintosh):
Changed lines 186-187 from:
Page 2 of the QT411's datasheet contains a layout of how the QT411 should be connected to a microcontroller. For this report I used an Arduino Mini microcontroller and copied the pin configurations exactly as stated on the datasheet. I wired the SPI bus of the QT411 to the SPI bus of the Arduino Mini along with the DETECT line as follows:
to:
Page 2 of the QT411's datasheet contains a layout of how the QT411
should be connected to a microcontroller. For this report, I used an
Arduino Mini microcontroller and copied the pin configurations
exactly as stated on the datasheet. I wired the SPI bus of the QT411
to the SPI bus of the Arduino Mini along with the DETECT line as
follows:
Changed lines 211-212 from:
The breakout board fits inline with the Arduino Mini and its pins are spaced at a 2.5mm (~0.01") pitch. Its dimensions are about 20mm (~0.78") x 20mm (~0.78").20mm x 20mm.
to:
The breakout board fits inline with the Arduino Mini and its pins are
spaced at a 2.5mm (~0.01") pitch. Its dimensions are about 20mm x
20mm,
~0.78" x ~0.78", respectively.
Added line 246:
May 09, 2007, at 03:42 PM by Roy Vanegas -
Deleted lines 102-103:
[[Attach:QT411_On_Breadboard.jpg]]
May 09, 2007, at 03:41 PM by Roy Vanegas -
Changed lines 101-104 from:
ThisWiki:/uploads/Reports/IMG_0515.JPG

[[Attach:a.jpg]]
to:
ThisWiki:/uploads/Reports/QT411_On_Breadboard.jpg

[[Attach:QT411_On_Breadboard.jpg]]
May 09, 2007, at 03:38 PM by Roy Vanegas -
Changed lines 103-107 from:
[[Attach:myImageName.jpg]]
to:
[[Attach:a.jpg]]
May 09, 2007, at 03:36 PM by Roy Vanegas -
Added lines 13-14:
[[Attach:myImageName.jpg]]
May 09, 2007, at 03:35 PM by Roy Vanegas -
Added lines 100-101:
Added lines 104-105:
May 09, 2007, at 03:34 PM by Roy Vanegas -
Changed lines 100-101 from:
to:
[[Attach:myImageName.jpg]]
May 09, 2007, at 03:33 PM by Roy Vanegas -
Changed lines 99-100 from:
ThisWiki:/uploads/Reports/IMG0515.JPG
to:
ThisWiki:/uploads/Reports/IMG_0515.JPG
May 09, 2007, at 03:32 PM by Roy Vanegas -
Changed lines 99-100 from:
ThisWiki:/uploads/Reports/QT411.jpg
to:
ThisWiki:/uploads/Reports/IMG0515.JPG
May 09, 2007, at 03:31 PM by Roy Vanegas -
Changed lines 99-100 from:
ThisWiki:/uploads/Reports/QT411-295x221.jpg
to:
ThisWiki:/uploads/Reports/QT411.jpg
May 09, 2007, at 03:30 PM by Roy Vanegas -
Deleted lines 12-15:

[[Attach:IMG_0515.JPG]]
Changed lines 99-100 from:
Pending
to:
ThisWiki:/uploads/Reports/QT411-295x221.jpg

THE IMAGE ABOVE IS NOT CURRENT AND WILL BE UPDATED SOON!!!
May 09, 2007, at 03:24 PM by Roy Vanegas -
Added lines 13-16:

[[Attach:IMG_0515.JPG]]
May 09, 2007, at 03:04 PM by Roy Vanegas -
Added lines 42-43:
Pending
Added lines 99-100:
Pending
Added lines 107-108:
Pending
Deleted line 166:
Changed lines 213-314 from:
[@
void setup( void )
{
Serial.begin( 9600 );
}

void loop( void )
{
// RX
Serial.print( "RX (DDD0): " );
printInteger( digitalRead( DDD0 ) );
Serial.println();

// TX
Serial.print( "TX (DDD1): " );
printInteger( digitalRead( DDD1 ) );
Serial.println();

// Digital 2
Serial.print( "Digital 2 (DDD2): " );
printInteger( digitalRead( DDD0 ) );
Serial.println();

// Digital 3
Serial.print( "Digital 3 (DDD3): " );
printInteger( digitalRead( DDD3 ) );
Serial.println();

// Digital 4
Serial.print( "Digital 4 (DDD4): " );
printInteger( digitalRead( DDD4 ) );
Serial.println();

// Digital 5
Serial.print( "Digital 5 (DDD5): " );
printInteger( digitalRead( DDD5 ) );
Serial.println();

// Digital 6
Serial.print( "Digital 6 (DDD6): " );
printInteger( digitalRead( DDD6 ) );
Serial.println();

// Digital 7
Serial.print( "Digital 7 (DDD7): " );
printInteger( digitalRead( DDD7 ) );
Serial.println();

// Digital 8
Serial.print( "Digital 8 (DDB0): " );
printInteger( digitalRead( DDB0 ) );
Serial.println();

// Digital 9
Serial.print( "Digital 9 (DDB1): " );
printInteger( digitalRead( DDB1 ) );
Serial.println();

// Digital 10
Serial.print( "Digital 10 (DDB2): " );
printInteger( digitalRead( DDB2 ) );
Serial.println();

// Digital 11
Serial.print( "Digital 11 (DDB3): " );
printInteger( digitalRead( DDB3 ) );
Serial.println();

// Digital 12
Serial.print( "Digital 12 (DDB4): " );
printInteger( digitalRead( DDB4 ) );
Serial.println();

// Digital 13
Serial.print( "Digital 13 (DDB5): " );
printInteger( digitalRead( DDB5 ) );
Serial.println();

// AD0
Serial.print( "AD0 (DDC0): " );
printInteger( digitalRead( DDC0 ) );
Serial.println();

// AD1
Serial.print( "AD1 (DDC1): " );
printInteger( digitalRead( DDC1 ) );
Serial.println();

// AD2
Serial.print( "AD2 (DDC2): " );
printInteger( digitalRead( DDC2 ) );
Serial.println();

// AD3
Serial.print( "AD3 (DDC3): " );
printInteger( digitalRead( DDC3 ) );
Serial.println( "\n\n" );

delay( 1000 );
}
@]
to:
Pending
May 09, 2007, at 03:02 PM by Roy Vanegas -
Added line 323:
Added line 325:
May 09, 2007, at 03:02 PM by Roy Vanegas -
Added lines 23-24:
* [[#debugging_code | Debugging Code]]
Added lines 314-329:

!!! [[#debugging_code]] Debugging Code

To help me to understand how the Arduino Mini behaves, I wrote a few
small programs to view the behavior of all the pins and of some of
the SPI registers. Each program display information in one second
intervals.

The Arduino pins:
The SPSR register:
The SPDR register:

[[#index | top]]

----
May 09, 2007, at 01:49 PM by Roy Vanegas -
Changed line 154 from:
* Datasheets
to:
* Datasheets (in PDF)
Changed lines 156-159 from:
** ATMEL ATmega 48/88/168 Datasheet (the microcontroller chip inside the Arduino Mini):
** M68HC11E Family of Microcontrollers from Motorola (contains a thorough explanation of SPI):
to:
** ATMEL ATmega 48/88/168 Datasheet (the microcontroller chip inside the Arduino Mini): http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf
** M68HC11E Family of Microcontrollers from Motorola (contains a thorough explanation of SPI): http://www.freescale.com/files/microcontrollers/doc/ref_manual/M68HC11RM.pdf
May 09, 2007, at 01:38 PM by Roy Vanegas -
Changed lines 155-158 from:
** ATMEL ATmega 48/88/168 Datasheet (the microcontroller chip inside the Arduino Mini)
** M68HC11E Family of Microcontrollers from Motorola (contains a thorough explanation of SPI
)
** Quantum Technology's QT411-ISSG QSlide Touch Slider IC Datasheet
to:
** Quantum Technology's QT411-ISSG QSlide Touch Slider IC Datasheet: http://www.qprox.com/downloads/datasheets/qt411_issg-601.pdf
** ATMEL ATmega 48/88/168 Datasheet (the microcontroller chip inside the Arduino Mini
):
** M68HC11E Family of Microcontrollers from Motorola (contains a thorough explanation of SPI):
May 09, 2007, at 01:34 PM by Roy Vanegas -
Changed lines 148-149 from:
!!! [[#links]] Links
to:
!!! [[#links]] Links (datasheets, SPI references, etc.)
Added lines 154-158:
* Datasheets
** ATMEL ATmega 48/88/168 Datasheet (the microcontroller chip inside the Arduino Mini)
** M68HC11E Family of Microcontrollers from Motorola (contains a thorough explanation of SPI)
** Quantum Technology's QT411-ISSG QSlide Touch Slider IC Datasheet
May 09, 2007, at 01:16 PM by Roy Vanegas -
Changed lines 29-30 from:
* [[#links | Links]]
to:
* [[#links | Links (datasheets, SPI references, etc.)]]
May 09, 2007, at 01:14 PM by Roy Vanegas -
Changed lines 15-16 from:
* [[#dimensions]] | Dimensions]]
to:
* [[#dimensions | Dimensions]]
May 09, 2007, at 01:14 PM by Roy Vanegas -
Changed lines 15-16 from:
* [[#dimensions] | Dimensions]]
to:
* [[#dimensions]] | Dimensions]]
May 09, 2007, at 01:13 PM by Roy Vanegas -
Changed lines 15-16 from:
* [[#dimensions] | Dimensions]
to:
* [[#dimensions] | Dimensions]]
May 09, 2007, at 01:13 PM by Roy Vanegas -
Changed lines 46-49 from:
The dimensions of the QT411 are about 4mm (~.15") x 5mm (~.20"),
and the breakout board is about 20mm (~0.78") x 20mm (~0.78
").
to:
The dimensions of the QT411 are about 4mm (~.15") x 5mm (~.20").
Changed lines 192-193 from:
The breakout board fits inline with the Arduino Mini, and is spaced at 2.5mm pitch.
to:
The breakout board fits inline with the Arduino Mini and its pins are spaced at a 2.5mm (~0.01") pitch. Its dimensions are about 20mm (~0.78") x 20mm (~0.78").20mm x 20mm.
May 09, 2007, at 01:08 PM by Roy Vanegas -
Changed lines 46-49 from:
The dimensions of the QT411 are about 4mm (~.15'') x 5mm (~.20''),
and the breakout board is about 20mm (~0.78) x 20mm (~0.78).
to:
The dimensions of the QT411 are about 4mm (~.15") x 5mm (~.20"),
and the breakout board is about 20mm (~0.78") x 20mm (~0.78").
May 09, 2007, at 01:07 PM by Roy Vanegas -
Changed lines 15-16 from:
to:
* [[#dimensions] | Dimensions]
Changed lines 44-45 from:
!!! Dimensions
to:
!!! [[#dimensions]] Dimensions
May 09, 2007, at 01:07 PM by Roy Vanegas -
Added lines 15-16:
Added lines 44-53:
!!! Dimensions

The dimensions of the QT411 are about 4mm (~.15'') x 5mm (~.20''),
and the breakout board is about 20mm (~0.78) x 20mm (~0.78).


[[#index | top]]

----
May 09, 2007, at 01:01 PM by Roy Vanegas -
Changed lines 31-32 from:
* [[#pintouts | Pin Descriptions (Pinouts) ]]
to:
* [[#pinouts | Pin Descriptions (Pinouts) ]]
May 09, 2007, at 01:00 PM by Roy Vanegas -
Changed lines 161-162 from:
Page 2 of the QT411's datasheet contains a layout of how the QT411 should be connected to a microcontroller. For this report I used an Arduino Mini and copied the pin configurations exactly as stated on the datasheet. I wired the SPI bus of the QT411 to the SPI bus of the Arduino Mini along with the DETECT line as follows:
to:
Page 2 of the QT411's datasheet contains a layout of how the QT411 should be connected to a microcontroller. For this report I used an Arduino Mini microcontroller and copied the pin configurations exactly as stated on the datasheet. I wired the SPI bus of the QT411 to the SPI bus of the Arduino Mini along with the DETECT line as follows:
May 09, 2007, at 12:51 PM by Roy Vanegas -
Changed lines 161-162 from:
Page 2 of the QT411's datasheet contains a layout of how the QT411 should be connected to a microcontroller. For this report I used an Arduino Mini and copied the pin configurations exactly as stated on the datasheet. I wired the SPI bus and the DETECT line as follows:
to:
Page 2 of the QT411's datasheet contains a layout of how the QT411 should be connected to a microcontroller. For this report I used an Arduino Mini and copied the pin configurations exactly as stated on the datasheet. I wired the SPI bus of the QT411 to the SPI bus of the Arduino Mini along with the DETECT line as follows:

[@
QT411 Arduino Mini
-------------------------------
(DRDY) 13 --> 8
(DETECT) 12 --> 9
(/SS) 3 --> 10
(SDI/MOSI) 11 --> 11
(SDO/MISO) 2 --> 12
(SCLK) 4 --> 13

@]
Added line 176:
May 09, 2007, at 12:44 PM by Roy Vanegas -
Added lines 32-33:

* [[#microcontroller_connections | Microcontroller Connections]]
Added lines 159-165:
!!! [[#microcontroller_connections]] Microcontroller Connections

Page 2 of the QT411's datasheet contains a layout of how the QT411 should be connected to a microcontroller. For this report I used an Arduino Mini and copied the pin configurations exactly as stated on the datasheet. I wired the SPI bus and the DETECT line as follows:

[[#index | top]]
----
May 09, 2007, at 12:34 PM by Roy Vanegas -
May 09, 2007, at 12:29 PM by Roy Vanegas -
Added line 31:
* [[#pintouts | Pin Descriptions (Pinouts) ]]
May 09, 2007, at 12:27 PM by Roy Vanegas -
Added lines 5-6:
Initial preliminary report by [[~roy | Roy Vanegas]], 8 May 2007. A thorough update will appear on this page during summer 2007, as I work more extensively with the QT411 and SPI.
Changed lines 9-10 from:
This page is a work in progress. A thorough update will appear on 8 May 2007, with modifications throughout summer 2007 as I work more extensively with the QT411 and SPI. Last edited: 4 May 2007.
to:
The QT411 is a linear touch sensor. The datasheet puts it best: ``The output data is a 7-bit binary number (0...127) indicating angular position.'' It can be used to replace items like slider elements, faders, volume controls, and just about anything else that employs a potentiometer to control an electronic device.
May 04, 2007, at 07:38 PM by Roy Vanegas -
May 04, 2007, at 07:20 PM by Roy Vanegas -
Changed lines 3-4 from:
! QT411-ISSG QSlide Touch Slider IC Report
to:
! QSlide Touch Slider IC Report
Added lines 79-80:
[[#index | top]]
Added lines 85-86:
[[#index | top]]
May 04, 2007, at 07:12 PM by Roy Vanegas -
Added lines 15-16:
* [[#register_description | Register Description]]
Added lines 19-20:
* [[#spi_acronyms | SPI-Related Acronyms]]
Added lines 31-36:
!!! [[#register_description]] Register Description

[[#index | top]]

----
Changed lines 52-53 from:
!!! SPI-Related Acronyms
to:
!!! [[#spi_acronyms]] SPI-Related Acronyms
May 04, 2007, at 07:08 PM by Roy Vanegas -
Changed lines 38-39 from:
* [[#index | top]]
to:
[[#index | top]]
Changed lines 63-64 from:
* [[#index | top]]
to:
[[#index | top]]
Added lines 81-82:
[[#index | top]]
Added lines 115-116:
[[#index | top]]
Changed lines 134-135 from:
Shipping exluded in the pricing above.
to:
Shipping excluded in the pricing above.

[[#index | top]]
Added lines 144-145:
[[#index | top]]
Added lines 252-253:
[[#index | top]]
May 04, 2007, at 07:07 PM by Roy Vanegas -
Changed lines 11-12 from:
!! Index
to:
!! [[#index]] Index
Added lines 38-39:
* [[#index | top]]
Added lines 63-64:
* [[#index | top]]
May 04, 2007, at 07:04 PM by Roy Vanegas -
Added lines 23-24:
* [[#testing_environment | Testing Environment ]]
Changed lines 67-68 from:
!!! Testing Environment
to:
!!! [[#testing_environment]] Testing Environment
May 04, 2007, at 12:00 PM by Roy Vanegas -
Added lines 13-14:
* [[#breakout_board | Breakout Board]]
Added lines 128-133:
!!! [[#breakout_board]] Breakout Board

The breakout board fits inline with the Arduino Mini, and is spaced at 2.5mm pitch.

----
May 04, 2007, at 11:52 AM by Roy Vanegas -
May 04, 2007, at 11:37 AM by Roy Vanegas -
Changed lines 75-76 from:
!!! Pinouts
to:
!!! [[#pinouts]] Pinouts
Changed lines 106-107 from:
!!! [[@links]] Links
to:
!!! [[#links]] Links
May 04, 2007, at 11:36 AM by Roy Vanegas -
Deleted lines 20-21:
etc.
Deleted lines 74-77:
!!! [#links] Links

----
Changed lines 106-107 from:
!!! Links
to:
!!! [[@links]] Links
May 04, 2007, at 11:35 AM by Roy Vanegas -
Changed lines 7-8 from:
This page is a work in progress. A thorough update will appear on 8 May 2007, with modifications throughout the summer as I work with this sensor more. Last edited: 1 May 2007.
to:
This page is a work in progress. A thorough update will appear on 8 May 2007, with modifications throughout summer 2007 as I work more extensively with the QT411 and SPI. Last edited: 4 May 2007.
Changed lines 19-20 from:
* [[#references | References]]
to:
* [[#links | Links]]
Changed lines 77-78 from:
!!! References and Datasheets
to:
!!! [#links] Links
May 04, 2007, at 11:32 AM by Roy Vanegas -
Changed lines 13-20 from:
[[#code | Code]]

[[#files | Files]]

[[#spi | Serial Peripheral Interface (SPI) Bus]]

references
to:
* [[#code | Code]]

* [[#files | Files]]

* [[#spi | Serial Peripheral Interface (SPI) Bus]]

* [[#references | References]]
May 04, 2007, at 11:31 AM by Roy Vanegas -
Changed lines 13-14 from:
[[#code]] Code
to:
[[#code | Code]]
May 04, 2007, at 11:30 AM by Roy Vanegas -
May 04, 2007, at 11:29 AM by Roy Vanegas -
Changed lines 13-16 from:
[[#linker]] code

[[#linker | lsdkjfsdj]]
to:
[[#code]] Code
Changed lines 132-133 from:
!!! Code
to:
!!! [[#code]] Code
May 04, 2007, at 11:28 AM by Roy Vanegas -
Changed lines 19-20 from:
spi
to:
[[#spi | Serial Peripheral Interface (SPI) Bus]]
Changed lines 27-28 from:
!!! Serial Peripheral Interface (SPI)
to:
!!! [[#spi]] Serial Peripheral Interface (SPI)
May 04, 2007, at 11:02 AM by Roy Vanegas -
Changed lines 71-72 from:
!!! [#files]Files
to:
!!! [[#files]] Files
May 04, 2007, at 11:01 AM by Roy Vanegas -
Changed lines 17-18 from:
files
to:
[[#files | Files]]
Changed lines 71-72 from:
!!! Files
to:
!!! [#files]Files
May 04, 2007, at 11:00 AM by Roy Vanegas -
Changed lines 13-14 from:
[[#linker]]code
to:
[[#linker]] code

[[#linker | lsdkjfsdj]]
May 04, 2007, at 10:59 AM by Roy Vanegas -
Changed lines 13-14 from:
code
to:
[[#linker]]code
May 04, 2007, at 10:52 AM by Roy Vanegas -
Changed line 114 from:
* The QT411
to:
* Sensor and its Maker:
Changed line 118 from:
* Purchase the QT411
to:
* Purchase
Added lines 123-129:
In the spring of 2007, I purchased the QT411 for $3.45 from Saelig.
DigiKey sells it for about 6 cents more, while Farnell in Europe sells
each for a whopping $9.30 (exchange rate from British pounds to
American dollars on 3 May 2007).

Shipping exluded in the pricing above.
May 04, 2007, at 10:43 AM by Roy Vanegas -
Changed line 115 from:
** Quantum Research Group: http://www.qprox.com/
to:
** Quantum Research Group (QT411 maker): http://www.qprox.com/
May 04, 2007, at 10:42 AM by Roy Vanegas -
Changed lines 115-117 from:
*Quantum Research Group: http://www.qprox.com/
*QT411 Product Summary (from Quantum): http://www.qprox.com/products/qslide_qt411.php
to:
** Quantum Research Group: http://www.qprox.com/
** QT411 Product Summary (from Quantum): http://www.qprox.com/products/qslide_qt411.php
Changed lines 119-123 from:
** test
*Saelig (cheapest of three): http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3025&Category_Code=
*DigiKey (comparable to Saelig): http://www.digikey.com/scripts/us/dksus.dll?KeywordSearch&Keywords=427-1116-1-ND
*Farnell (most expensive of three): http://uk.farnell.com/jsp/search/productdetail.jsp?sku=1099149
to:
** Saelig (cheapest of three): http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3025&Category_Code=
** DigiKey (comparable to Saelig): http://www.digikey.com/scripts/us/dksus.dll?KeywordSearch&Keywords=427-1116-1-ND
** Farnell (most expensive of three): http://uk.farnell.com/jsp/search/productdetail.jsp?sku=1099149
May 04, 2007, at 10:41 AM by Roy Vanegas -
Changed line 119 from:
* test
to:
** test
May 04, 2007, at 10:40 AM by Roy Vanegas -
May 04, 2007, at 10:40 AM by Roy Vanegas -
Added line 119:
* test
May 04, 2007, at 10:39 AM by Roy Vanegas -
Changed lines 114-122 from:
* Sensor and its Maker:
** Quantum Research Group: http://www.qprox.com/
** QT411 Product Summary (from Quantum): http://www.qprox.com/products/qslide_qt411.php

* Purchase
* Saelig (cheapest of three): http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3025&Category_Code=
* DigiKey (comparable to Saelig): http://www.digikey.com/scripts/us/dksus.dll?KeywordSearch&Keywords=427-1116-1-ND
* Farnell (most expensive of three): http://uk.farnell.com/jsp/search/productdetail.jsp?sku=1099149
to:
* The QT411
*Quantum Research Group: http
://www.qprox.com/
*QT411 Product Summary (from Quantum): http://www.qprox.com/products/qslide_qt411.php

* Purchase the QT411
*Saelig (cheapest of three): http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3025&Category_Code=
*DigiKey (comparable to Saelig): http://www.digikey.com/scripts/us/dksus.dll?KeywordSearch&Keywords=427-1116-1-ND
*Farnell (most expensive of three): http://uk.farnell.com/jsp/search/productdetail.jsp?sku=1099149
May 04, 2007, at 10:38 AM by Roy Vanegas -
Changed lines 119-122 from:
** Saelig (cheapest of three): http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3025&Category_Code=
** DigiKey (comparable to Saelig): http://www.digikey.com/scripts/us/dksus.dll?KeywordSearch&Keywords=427-1116-1-ND
** Farnell (most expensive of three): http://uk.farnell.com/jsp/search/productdetail.jsp?sku=1099149
to:
* Saelig (cheapest of three): http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3025&Category_Code=
* DigiKey (comparable to Saelig): http://www.digikey.com/scripts/us/dksus.dll?KeywordSearch&Keywords=427-1116-1-ND
* Farnell (most expensive of three): http://uk.farnell.com/jsp/search/productdetail.jsp?sku=1099149
May 04, 2007, at 10:36 AM by Roy Vanegas -
Changed lines 112-124 from:
to:
!!! Links

* Sensor and its Maker:
** Quantum Research Group: http://www.qprox.com/
** QT411 Product Summary (from Quantum): http://www.qprox.com/products/qslide_qt411.php

* Purchase
** Saelig (cheapest of three): http://www.saelig.com/miva/merchant.mvc?Screen=PROD&Product_Code=IC3025&Category_Code=
** DigiKey (comparable to Saelig): http://www.digikey.com/scripts/us/dksus.dll?KeywordSearch&Keywords=427-1116-1-ND
** Farnell (most expensive of three): http://uk.farnell.com/jsp/search/productdetail.jsp?sku=1099149

----
May 01, 2007, at 06:55 PM by Roy Vanegas -
Changed lines 7-8 from:
Last edited: 1 May 2007. Strong draft due on 8 May 2007.
to:
This page is a work in progress. A thorough update will appear on 8 May 2007, with modifications throughout the summer as I work with this sensor more. Last edited: 1 May 2007.
Changed lines 13-14 from:
Pending
to:
code

files

spi

references

etc.
May 01, 2007, at 06:45 PM by Roy Vanegas -
Deleted lines 52-55:
!!! Code

----
May 01, 2007, at 06:44 PM by Roy Vanegas -
Added lines 1-2:
----
Added lines 9-16:
----

!! Index

Pending

----
Deleted line 27:
Deleted lines 29-41:

!! Index

----

!!! Code

----

!!! The QT411

----
Changed lines 53-54 from:
!!! Testing Environment
to:
!!! Code
Added lines 57-64:
!!! The QT411

----

!!! Testing Environment

----
May 01, 2007, at 06:42 PM by Roy Vanegas -
Deleted lines 6-17:
!! Index

----

!!! Code

----

!!! The QT411

----
Added lines 9-18:
The Serial Peripheral Interface (SPI) Bus is usually a 3-pin, full
duplex, data communications link. The Arduino Mini observes an SPI
Bus, as does the QT411 QSlide Touch Slider.

Alas, SPI, created by Motorola, is not standardized in either hardware
or protocol. Instead, a widely agreed upon definition is recognized.
As such, one must exercise caution when wiring and programming
SPI-related devices.
Added lines 21-33:

!! Index

----

!!! Code

----

!!! The QT411

----
May 01, 2007, at 06:30 PM by Roy Vanegas -
Added lines 5-6:
Last edited: 1 May 2007. Strong draft due on 8 May 2007.
May 01, 2007, at 06:29 PM by Roy Vanegas -
Added lines 11-12:
----
Added lines 15-16:
----
Added lines 19-20:
----
Added lines 42-43:
----
Added lines 46-47:
----
Changed lines 54-55 from:
to:
----
Added lines 58-59:
----
Added lines 90-91:
----
Changed lines 196-198 from:
[[~roy | Roy Vanegas]]
to:
----

[[~roy | Roy Vanegas]]
May 01, 2007, at 06:28 PM by Roy Vanegas -
Added lines 7-8:
----
May 01, 2007, at 06:26 PM by Roy Vanegas -
Changed lines 179-180 from:
[[~roy]]
to:
[[~roy | Roy Vanegas]]
May 01, 2007, at 06:26 PM by Roy Vanegas -
Changed lines 1-2 from:
! QT411-ISSG QSlide Touch Slider IC
to:
! QT411-ISSG QSlide Touch Slider IC Report
Added lines 179-180:

[[~roy]]
May 01, 2007, at 06:23 PM by Roy Vanegas -
Added line 46:
May 01, 2007, at 06:22 PM by Roy Vanegas -
Changed line 46 from:
[@
to:
[@
May 01, 2007, at 06:22 PM by Roy Vanegas -
Changed lines 45-46 from:
!!! Code
to:
!!! Pinouts
Added lines 47-76:
PIN NAME TYPE DESCRIPTION
1 VDD Power Positive power pin (+2.5 .. + 5V)
2 MISO Output Serial data output
3 /SS Input Slave Select pin. This is an active low input
that enables serial communications
4 SCLK Input Serial clock input. Clock idles high
5 SNS3B I/O Sense pin (to Cs3, Rs3); connects to both
slider ends, each via separate additional 8.2k
ohm resistors
6 SNS3A I/O Sense pin (to Cs3)
7 SNS2B I/O Sense pin (to Cs2, Rs2); connects to 66% point
(from left) of slider
8 SNS2A I/O Sense pin (to Cs2)
9 SNS1B I/O Sense pin (to Cs1, Rs1); connects to 33% point
(from left) of slider
10 SNS1A I/O Sense pin (to Cs1)
11 MOSI Input Serial data input
12 DETECT Output Active high touch detected. May be left
unconnected. (Pin floats ~400us after wake
from Sleep mode.)
13 DRDY Output Data ready output. Goes high to indicate it
is possible to communicate with the QT411.
(Pin floats ~400us after wake from Sleep mode.)
14 VSS Ground Negative power pin

@]

!!! Code

[@
May 01, 2007, at 02:26 PM by Roy Vanegas -
Changed lines 3-4 from:
ThisWiki: Attach:QT411.jpg
to:
ThisWiki:/uploads/Reports/QT411.jpg
May 01, 2007, at 02:17 PM by Roy Vanegas -
Changed lines 3-4 from:
[[ThisWiki:/uploads/Reports/QT411.jpg]]
to:
ThisWiki: Attach:QT411.jpg
May 01, 2007, at 02:17 PM by Roy Vanegas -
Changed lines 3-4 from:
ThisWiki:/uploads/Reports/QT411.jpg
to:
[[ThisWiki:/uploads/Reports/QT411.jpg]]
May 01, 2007, at 02:16 PM by Roy Vanegas -
Changed lines 3-4 from:
[[ThisWiki:Attach:file.jpg | image ]]
to:
ThisWiki:/uploads/Reports/QT411.jpg
May 01, 2007, at 02:15 PM by Roy Vanegas -
Added lines 3-4:
[[ThisWiki:Attach:file.jpg | image ]]
May 01, 2007, at 02:02 PM by Roy Vanegas -
Added lines 36-40:
I designed a computer-aided design file in Eagle, then rendered it to PS, PostScript, and PDF, Portable Document Format. All three files have been zipped in to one tar file: [[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]]. To uncompress the [@ tgz @] file, simply double-click on it in your GUI (Windows, Mac, Linux), or extract via the terminal (in UNIX or any of its variants, including Macintosh):

[@ tar xvzf QT411_Board_Files.tgz @]
Deleted lines 146-149:
!! Board Files
I designed a computer-aided design file in Eagle, then rendered it to PS, PostScript, and PDF, Portable Document Format. All three files have been zipped in to one tar file: [[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]]. To uncompress the [@ tgz @] file, simply double-click on it in your GUI (Windows, Mac, Linux), or extract via the terminal (in UNIX or any of its variants, including Macintosh):

[@ tar xvzf QT411_Board_Files.tgz @]
May 01, 2007, at 02:01 PM by Roy Vanegas -
Changed lines 16-31 from:
* SCLK: Serial Clock (generated by the master)
* SS: Slave Select, same as Chip Select (generated by the master)
* CS: Chip Select, same as Slave Select
* SPIE: Serial Peripheral Interrupt Enable
* SPIF: Serial Peripheral (Transmission) Flag
* SPSR: Serial Peripheral Status Register
* SPI: Serial Peripheral Interface (created by Motorola)
* SPCR: Serial Peripheral Control Register
* MCU: Microcontroller Unit
* SDI: Serial Data Input
* SDO: Serial Data Output
* CPOL: Clock Polarity
* CPHA: Clock Phase
* MOSI: Master Out, Slave In
* MISO: Master In, Slave Out
to:
* '''SCLK''': Serial Clock (generated by the master)
* '''SS''': Slave Select, same as Chip Select (generated by the master)
* '''CS''': Chip Select, same as Slave Select
* '''SPIE''': Serial Peripheral Interrupt Enable
* '''SPIF''': Serial Peripheral (Transmission) Flag
* '''SPSR''': Serial Peripheral Status Register
* '''SPI''': Serial Peripheral Interface (created by Motorola)
* '''SPCR''': Serial Peripheral Control Register
* '''MCU''': Microcontroller Unit
* '''SDI''': Serial Data Input
* '''SDO''': Serial Data Output
* '''CPOL''': Clock Polarity
* '''CPHA''': Clock Phase
* '''MOSI''': Master Out, Slave In
* '''MISO''': Master In, Slave Out
May 01, 2007, at 01:59 PM by Roy Vanegas -
Added line 39:
May 01, 2007, at 01:58 PM by Roy Vanegas -
Changed lines 11-14 from:
!!! Testing Environment

!!!
Acronyms
to:
!!! SPI-Related Acronyms
Added lines 32-33:
!!! Testing Environment
Added lines 36-37:
!!! References and Datasheets
Deleted lines 38-40:

!!! References and Datasheets
May 01, 2007, at 01:57 PM by Roy Vanegas -
Changed lines 3-10 from:
!! Datasheets

!! Serial Peripheral Interface

!! References

!! Code
<!-- test -->
to:
!! Index

!!! Code

!!! The QT411

!!! Serial Peripheral Interface (SPI)

!!! Testing Environment

!!! Acronyms

You'll encounter the following acronyms throughout the datasheets
relating to SPI:

* SCLK: Serial Clock (generated by the master)
* SS: Slave Select, same as Chip Select (generated by the master)
* CS: Chip Select, same as Slave Select
* SPIE: Serial Peripheral Interrupt Enable
* SPIF: Serial Peripheral (Transmission) Flag
* SPSR: Serial Peripheral Status Register
* SPI: Serial Peripheral Interface (created by Motorola)
* SPCR: Serial Peripheral Control Register
* MCU: Microcontroller Unit
* SDI: Serial Data Input
* SDO: Serial Data Output
* CPOL: Clock Polarity
* CPHA: Clock Phase
* MOSI: Master Out, Slave In
* MISO: Master In, Slave Out

!!! Files

!!! Code

!!! References and Datasheets
Deleted lines 145-179:

!! The QT411

!! Index

!! Testing Environment

!! Acronyms

You'll encounter the following acronyms throughout the datasheets
relating to SPI:

SCLK: Serial Clock (generated by the master)
SS: Slave Select, same as Chip Select (generated by the master)
CS: Chip Select, same as Slave Select
SPIE: Serial Peripheral Interrupt Enable
SPIF: Serial Peripheral (Transmission) Flag
SPSR: Serial Peripheral Status Register
SPI: Serial Peripheral Interface (created by Motorola)
SPCR: Serial Peripheral Control Register
MCU: Microcontroller Unit
SDI: Serial Data Input
SDO: Serial Data Output
CPOL: Clock Polarity
CPHA: Clock Phase
MOSI: Master Out, Slave In
MISO: Master In, Slave Out

!! Serial Peripheral Interface (SPI)

!! Files

!! Code

!! References and Datasheets
May 01, 2007, at 01:55 PM by Roy Vanegas -
Changed line 10 from:
% fucking test %
to:
<!-- test -->
May 01, 2007, at 01:54 PM by Roy Vanegas -
Changed line 10 from:
to:
% fucking test %
May 01, 2007, at 01:53 PM by Roy Vanegas -
Changed lines 118-128 from:

!! THE QT411


!! INDEX

!! TESTING ENVIRONMENT

!! ACRONYMS
to:
!! The QT411

!! Index

!! Testing Environment

!! Acronyms
Changed lines 147-151 from:
!! FILES

!! CODE

!! REFERENCES AND DATASHEETS
to:
!! Files

!! Code

!! References and Datasheets
May 01, 2007, at 01:50 PM by Roy Vanegas -
Added lines 117-154:



!! THE QT411


!! INDEX

!! TESTING ENVIRONMENT

!! ACRONYMS

You'll encounter the following acronyms throughout the datasheets
relating to SPI:

SCLK: Serial Clock (generated by the master)
SS: Slave Select, same as Chip Select (generated by the master)
CS: Chip Select, same as Slave Select
SPIE: Serial Peripheral Interrupt Enable
SPIF: Serial Peripheral (Transmission) Flag
SPSR: Serial Peripheral Status Register
SPI: Serial Peripheral Interface (created by Motorola)
SPCR: Serial Peripheral Control Register
MCU: Microcontroller Unit
SDI: Serial Data Input
SDO: Serial Data Output
CPOL: Clock Polarity
CPHA: Clock Phase
MOSI: Master Out, Slave In
MISO: Master In, Slave Out

!! Serial Peripheral Interface (SPI)

!! FILES

!! CODE

!! REFERENCES AND DATASHEETS
May 01, 2007, at 01:44 PM by Roy Vanegas -
Deleted lines 10-11:
[[#target | mio link]]
Deleted lines 116-118:


[[text -> target]]
May 01, 2007, at 01:43 PM by Roy Vanegas -
Changed line 121 from:
[[target | text]]
to:
[[text -> target]]
May 01, 2007, at 01:42 PM by Roy Vanegas -
Changed lines 11-12 from:
[[#text | mio link]]
to:
[[#target | mio link]]
May 01, 2007, at 01:41 PM by Roy Vanegas -
Changed lines 11-12 from:
[[#roy | mio link]]
to:
[[#text | mio link]]
Changed line 121 from:
[[roy]]
to:
[[target | text]]
May 01, 2007, at 01:35 PM by Roy Vanegas -
Changed line 121 from:
[roy]
to:
[[roy]]
May 01, 2007, at 01:35 PM by Roy Vanegas -
Changed lines 11-12 from:
[[#Board Files | roy]]
to:
[[#roy | mio link]]
Added lines 120-121:

[roy]
May 01, 2007, at 01:29 PM by Roy Vanegas -
Changed lines 11-12 from:
[[#target | roy]]
to:
[[#Board Files | roy]]
May 01, 2007, at 01:29 PM by Roy Vanegas -
Changed lines 11-12 from:
[[#target]]
to:
[[#target | roy]]
May 01, 2007, at 01:28 PM by Roy Vanegas -
Added lines 11-12:
[[#target]]
May 01, 2007, at 01:08 PM by Roy Vanegas -
Added lines 11-112:
[@
void setup( void )
{
Serial.begin( 9600 );
}

void loop( void )
{
// RX
Serial.print( "RX (DDD0): " );
printInteger( digitalRead( DDD0 ) );
Serial.println();

// TX
Serial.print( "TX (DDD1): " );
printInteger( digitalRead( DDD1 ) );
Serial.println();

// Digital 2
Serial.print( "Digital 2 (DDD2): " );
printInteger( digitalRead( DDD0 ) );
Serial.println();

// Digital 3
Serial.print( "Digital 3 (DDD3): " );
printInteger( digitalRead( DDD3 ) );
Serial.println();

// Digital 4
Serial.print( "Digital 4 (DDD4): " );
printInteger( digitalRead( DDD4 ) );
Serial.println();

// Digital 5
Serial.print( "Digital 5 (DDD5): " );
printInteger( digitalRead( DDD5 ) );
Serial.println();

// Digital 6
Serial.print( "Digital 6 (DDD6): " );
printInteger( digitalRead( DDD6 ) );
Serial.println();

// Digital 7
Serial.print( "Digital 7 (DDD7): " );
printInteger( digitalRead( DDD7 ) );
Serial.println();

// Digital 8
Serial.print( "Digital 8 (DDB0): " );
printInteger( digitalRead( DDB0 ) );
Serial.println();

// Digital 9
Serial.print( "Digital 9 (DDB1): " );
printInteger( digitalRead( DDB1 ) );
Serial.println();

// Digital 10
Serial.print( "Digital 10 (DDB2): " );
printInteger( digitalRead( DDB2 ) );
Serial.println();

// Digital 11
Serial.print( "Digital 11 (DDB3): " );
printInteger( digitalRead( DDB3 ) );
Serial.println();

// Digital 12
Serial.print( "Digital 12 (DDB4): " );
printInteger( digitalRead( DDB4 ) );
Serial.println();

// Digital 13
Serial.print( "Digital 13 (DDB5): " );
printInteger( digitalRead( DDB5 ) );
Serial.println();

// AD0
Serial.print( "AD0 (DDC0): " );
printInteger( digitalRead( DDC0 ) );
Serial.println();

// AD1
Serial.print( "AD1 (DDC1): " );
printInteger( digitalRead( DDC1 ) );
Serial.println();

// AD2
Serial.print( "AD2 (DDC2): " );
printInteger( digitalRead( DDC2 ) );
Serial.println();

// AD3
Serial.print( "AD3 (DDC3): " );
printInteger( digitalRead( DDC3 ) );
Serial.println( "\n\n" );

delay( 1000 );
}
@]
May 01, 2007, at 01:04 PM by Roy Vanegas -
Changed lines 12-15 from:
I designed a computer-aided design file in Eagle, then rendered it to PS, PostScript, and PDF, Portable Document Format. All three files have been zipped in to one tar file: [[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]]

To
uncompress the [@ tgz @] file, simply double-click on it in your GUI (Windows, Mac, Linux), or extract via the terminal (in UNIX or any of its variants, including Macintosh):
to:
I designed a computer-aided design file in Eagle, then rendered it to PS, PostScript, and PDF, Portable Document Format. All three files have been zipped in to one tar file: [[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]]. To uncompress the [@ tgz @] file, simply double-click on it in your GUI (Windows, Mac, Linux), or extract via the terminal (in UNIX or any of its variants, including Macintosh):
May 01, 2007, at 01:03 PM by Roy Vanegas -
Deleted lines 2-7:
The computer-aided design files, zipped int one tar file: [[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]]

To uncompress the [@ tgz @] file, simply double-click on it in your GUI (Windows, Mac, Linux), or extract via the terminal (in UNIX or any of its variants, including Macintosh):

[@ tar xvzf QT411_Board_Files.tgz @]
Changed lines 11-17 from:
!!
to:
!! Board Files
I designed a computer-aided design file in Eagle, then rendered it to PS, PostScript, and PDF, Portable Document Format. All three files have been zipped in to one tar file: [[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]]

To uncompress the [@ tgz @] file, simply double-click on it in your GUI (Windows, Mac, Linux), or extract via the terminal (in UNIX or any of its variants, including Macintosh):

[@ tar xvzf QT411_Board_Files.tgz @]
May 01, 2007, at 01:00 PM by Roy Vanegas -
Added lines 11-17:
!! Serial Peripheral Interface

!! References

!! Code

!!
May 01, 2007, at 12:59 PM by Roy Vanegas -
Added line 10:
May 01, 2007, at 12:31 PM by Roy Vanegas -
Changed lines 1-2 from:
!QT411-ISSG QSlide Touch Slider IC
to:
! QT411-ISSG QSlide Touch Slider IC
Changed line 9 from:
!!Datasheets
to:
!! Datasheets
May 01, 2007, at 12:30 PM by Roy Vanegas -
Changed lines 1-2 from:
! QT411-ISSG QSlide Touch Slider IC
to:
!QT411-ISSG QSlide Touch Slider IC
Changed line 9 from:
!! Datasheets
to:
!!Datasheets
May 01, 2007, at 12:30 PM by Roy Vanegas -
Changed lines 5-12 from:
To extract the files, simply double-click on the file in your GUI (Windows, Mac, Linux), or extract via the terminal (in UNIX or any of its variants, including Macintosh):

[@
tar xvzf QT411_Board_Files.tgz
@]

!
Datasheets
to:
To uncompress the [@ tgz @] file, simply double-click on it in your GUI (Windows, Mac, Linux), or extract via the terminal (in UNIX or any of its variants, including Macintosh):

[@ tar xvzf QT411_Board_Files.tgz @]

!! Datasheets
May 01, 2007, at 12:29 PM by Roy Vanegas -
Added lines 1-2:
! QT411-ISSG QSlide Touch Slider IC
Changed lines 5-6 from:
Extract:
to:
To extract the files, simply double-click on the file in your GUI (Windows, Mac, Linux), or extract via the terminal (in UNIX or any of its variants, including Macintosh):
Changed line 11 from:
to:
!
May 01, 2007, at 12:26 PM by Roy Vanegas -
Changed lines 1-2 from:
The computer-aided design files, zipped int one tar file: [[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | QT411_Board_Files.tgz ]]
to:
The computer-aided design files, zipped int one tar file: [[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | [@ QT411_Board_Files.tgz@] ]]
May 01, 2007, at 11:55 AM by Roy Vanegas -
Changed line 5 from:
[=
to:
[@
Changed lines 7-9 from:
=]
to:
@]
May 01, 2007, at 11:54 AM by Roy Vanegas -
Changed line 6 from:
tar xvzf QT411_Board_Files.tgz
to:
tar xvzf QT411_Board_Files.tgz
May 01, 2007, at 11:54 AM by Roy Vanegas -
Changed line 6 from:
tar xvzf QT411_Board_Files.tgz
to:
tar xvzf QT411_Board_Files.tgz
May 01, 2007, at 11:53 AM by Roy Vanegas -
Changed lines 5-7 from:
[=tar xvzf QT411_Board_Files.tgz=]
to:
[=
tar xvzf QT411_Board_Files.tgz
=]
May 01, 2007, at 11:52 AM by Roy Vanegas -
Changed lines 5-8 from:
<tt> QT411_Board_Files.tgz </tt>
[= tar xvzf QT411_Board_Files.tgz
=]
to:
[=tar xvzf QT411_Board_Files.tgz=]
May 01, 2007, at 11:52 AM by Roy Vanegas -
Changed line 5 from:
<code> QT411_Board_Files.tgz </code>
to:
<tt> QT411_Board_Files.tgz </tt>
May 01, 2007, at 11:52 AM by Roy Vanegas -
Added line 5:
<code> QT411_Board_Files.tgz </code>
May 01, 2007, at 11:51 AM by Roy Vanegas -
Changed lines 3-7 from:
to:
Extract:

[= tar xvzf QT411_Board_Files.tgz =]
May 01, 2007, at 11:48 AM by Roy Vanegas -
Changed lines 1-2 from:
The computer-aided design files, zipped int one tar file: ThisWiki:/uploads/Reports/QT411_Board_Files.tgz
to:
The computer-aided design files, zipped int one tar file: [[ThisWiki:/uploads/Reports/QT411_Board_Files.tgz | QT411_Board_Files.tgz ]]
May 01, 2007, at 11:47 AM by Roy Vanegas -
Changed lines 1-3 from:
The computer-aided design files, zipped int one tar file: Attach:QT411_Board_Files.tgz
to:
The computer-aided design files, zipped int one tar file: ThisWiki:/uploads/Reports/QT411_Board_Files.tgz

Datasheets
May 01, 2007, at 11:43 AM by Roy Vanegas -
Changed line 1 from:
The computer-aided design files, zipped int one tar file: Attach:QT411_Board_Files.tar
to:
The computer-aided design files, zipped int one tar file: Attach:QT411_Board_Files.tgz
May 01, 2007, at 11:39 AM by Roy Vanegas -
Changed lines 1-3 from:
The Eagle board schematic: Attach:QT411.brd

ThisWiki:/uploads/Schematics/qt411.brd
to:
The computer-aided design files, zipped int one tar file: Attach:QT411_Board_Files.tar
May 01, 2007, at 11:36 AM by Roy Vanegas -
May 01, 2007, at 11:09 AM by Roy Vanegas -
Changed lines 1-5 from:
The Eagle board schematic [[Reports.QT411-Eagle | Smoke Detector]]


Attach:resume
.pdf
to:
The Eagle board schematic: Attach:QT411.brd
May 01, 2007, at 11:06 AM by Roy Vanegas -
Changed lines 4-5 from:
to:
Attach:resume.pdf
May 01, 2007, at 11:03 AM by Roy Vanegas -
Changed lines 1-5 from:
test
to:
The Eagle board schematic [[Reports.QT411-Eagle | Smoke Detector]]



ThisWiki:/uploads/Schematics/qt411.brd
May 01, 2007, at 09:49 AM by Roy Vanegas -
Added line 1:
test