choose one
|
AUTOMATIC LABELLING OF STOPS FOR
HAUPTWERK ORGANS
Version 2 Labelling system for kasLABS v3.x
software
The Stop Labelling Project
version 2 labels answers the need for proper
labelling of every organ stop as an organ completes the
loading process.
On the right, you can see a finished stop plate using our
Black Acrylic Stop Plate (showing the St. Anne's Moseley organ),
ready for mounting into a stop jamb housing:On the right, you can see a finished stop plate using our
Black Acrylic Stop Plate (showing the St. Anne's Moseley organ),
ready for mounting into a stop jamb housing: The
(unvarnished) Beech Ply version, which is slightly cheaper,
is shown below it.
1.
THE OPTIONS
The preferred option is to
purchase the minimum required components from KASpencer, and
source the rest of the items yourself. You would then
assemble the stop plate according to the instructions which
follow. The second option, for those who feel that they
cannot solder and cannot assemble the stop plates, is to
order a built and tested stop plate, ready to mount into a
stop jamb housing (which is simple to build and is described
later on this page). Taking the preferred option first,
we discuss the components
for a right stop jamb.
1.1.
Build it yourself You purchase essential components
from KASpencer and source the rest yourself. Then you solder
components to the PCB, and assemble using the required
cabling.
For the labelling functions order the
following from KASpencer:
- PCBs: purchase 1 (20 stops/jamb), 2 (40 stops/jamb), or 3
(60 stops/jamb); -
one Arduino Due pre-loaded with the kasLABS
version 3.2x software;
- one stop plate (either acrylic, or 3mm quality beech ply), state
Left or Right.
In addition, you must source and purchase for yourself,
per PCB:
- 12 x 0.1" 2x7 DIL PCB sockets*,
or 3x40-way 0.1" SIL socket strips**;
- 1 x 0.1" 2x7 DIL PCB pin header, or
1x40-way 0.1" SIL pin strips;
- 1 x 0.1" 2x20 DIL PCB pin header,
or equivalent 0.1" SIL pin strips;
- 12 x 7-pin SPI SH1106 (1.3") OLEDs;
- 1 x DIL IDC 0.1" 2x7
ribbon cable header plugs***;
- 1 x DIL IDC 0.1" 2x20 ribbon
cable header plugs. (*DIL=dual in line;
**SIL=single in line, ***IDC=insulation displacing connector) - a
good supply of 0.05" 40-way ribbon cable and 3mm heat shrink
tubing. To build the stop switch
functions you will also need to
source and purchase:
- 60x 1.3" round illuminated switches for 60 stops (20/40 reduce accordingly);
- 240x spade connectors 120 red, 120 blue for 60 stops
(20/40 reduce accordingly);
- connectors for your chosen encoder & decoder (eg 10 x
40-way 0.1" SIL pin strips); -
1 x 64-port MIDI encoder (may be reduced to 32-port for a 20
stop build); -
1 x 64-port MIDI decoder (may be reduced to 32-port for a 20
stop build); -
1 x 5v PSU, 1 x 9-12v PSU, 1 x USB cable (micro-B to
B-plug); - a good supply of
0.05" 40-way ribbon cable and 3mm heat shrink tubing.
1.2.
Purchase ready-built 60 stop (only)
Stop Plates Please note that there is only a
limited capacity for built & tested stop plates. Order a ready-assembled and tested Stop Plate (specify
material: Acrylic or 3mm Beech Ply & Left or Right) fitted with:
- 60 illuminated stop switches installed and mounted on the
stop plate; - above switches
wired to a 60-way Arduino-based MIDI Encoder, and LEDs wired
to an
OrgautoMatech MIDI Decoder; - 3
x version 2 PCBs, mounted between Stop Switch columns,
fitted with sockets and with 34 x SH1106 1.3" OLEDs
installed; - 1 x Arduino Due
loaded with the kasLABS version v3.2x
software; - 1 x 5v PSU and 1 x 9-12v PSU
for the OrgautoMatech MIDI decoder. You will need to supply
yourself:
- 2 x USB cables (micro-B to B-plug) of length to connect 2
x Arduinos to your
Hauptwerk PC.
Please note that delivery times for your assembled project
will depend upon component and building capacity availabilty, although every
effort will be made to complete it in the shortst time
possible.
2.
STOP PLATE HOUSING
You will
need to house the Stop Plate as the front face of a Stop Jamb
housing, which you will need to construct yourself. The Stop
Plates supplied are somewhat oversize top-bottom and
left-right, and so may be cut to a limited extent to suit
your preferred Stop Jamb size. The measurements of the
panels are shown
on the right, and I repeat them here:
(1) Outer side board: h22.5" x w17.5"; (2) Inner side
board: h22.5" x w9"; (3) Back plate: h22.5" x w10.75";
(4) Top plate: inside 9" x outside 17.5" x back 10.75" x
front (stop plate) 14". These stop jamb housing
dimensions are illustrative only, but they are compatible
with the
dimensions of the stop plates available for this project.
The left and right jambs need not be exactly the same
size – especially if your pedalboard is 30-note, as it will
project less far on the right than the left – the left stop
plate can thus be at a lesser angle. For cosmetics,
consider glueing beading to the edges of the housing.
There is space inside this design to screw battens along the
inside edges of the front, back and sides of the top board
to provide a means of fixing the side boards together securely. A
matching set of battens can be fixed at the base: these can
also provide firm anchorage of the housing to your keyboard
stack platform, possibly by a pair of bolts fitted through
the platform and topped with
wing-nuts. It is likely that your cables for the stop
jamb can be passed directly through the keystack platform
into the stop jamb housing. The cables requiring routing will be: - MIDI OUT cable from the decoder
to your Hauptwerk PC, possibly via a MIDI hub; -
MINI IN cable connecting your encoder (if you source the
components), possibly via a MIDI hub, or a USB cable connecting the Arduino-based
decoder (if the project is built for you), to your Hauptwerk
PC; -
5v supply to the decoder for LEDs in the illuminated
switches; - 9-12v supply to power the decoder, (& encoder
if you source your components - one PSU can be shared);
3. THE PRINTED CIRCUIT BOARDS
(PCBs)
This project was originally built with stripboards for
support & connection of the components. That was a rather
fiddly approach, although quite low cost. More recently
we have completed the design, and have had manufactured, a set
of PCBs to house the OLEDS and their connectors, which
neatens the project no-end, and means that assembly is
quicker and less error prone. Introducing the PCBs has also
enabled other simplifications in that the PCBs can mounted
quickly and securely between the stop switches, without
having to build the infrastructural support that was
required for the stripboards. Three PCBs are required for
each stop jamb if 60 stops are to be serviced. The Central board houses 12 OLEDs and the
Inner & Outer house 11. If your stop jamb housing is of
minimum vertical size, you can score the Inner & Outer PCBs
deeply with a Stanley knife, or similar, on both sides
between the 11th and 12th OLED sockets, and snap the 12th
section off which shortens the PCBs by about an inch.
Here is an image of the PCB front (OLED side):
and
the back (CONNECTOR side) of the PCB:
4. PREPARING THE PCBs FOR THE
OLEDS
Select a PCB for the Central position on the stop plate. Insert twelve 2x7 DIL PCB sockets into the OLED side of
the PCB and solder them carefully from the CONNECTOR side,
ensuring that they are firmly against the board surface. Then insert
the 2x7 and the 2x20 DIL PCB pin headers into position on
the CONNECTOR side and
solder them from the OLED side, again ensuring that they in
good contact with the board surface. If you are using 40-way 0.1"
socket strips instead of DIL sockets, cut the socket strips
to 7-way with a Stanley knife - you may superglue a
pair of these strips together and solder the pair into the adjacent rows of holes in the board if
you wish - this will improve stabilty of the OLEDs. (Likewise
you may cut a 40-way pin strip into two 20-way strips and
use these instead of the 2 x 20 DIL PCB pin headers.) As
you complete the soldering of each connector check
thoroughly for any broken tracks or solder bridges between
tracks, visually, and using a meter. You can then insert the OLEDs
into their sockets: if you insert the pins into the lower
row of holes on the board, the other edge of the OLED can be
supported by the top row of socket below it. The Inner
and Outer PCBs (to the left and right of the stop plate in
the right hand jamb) are identical to the central, but they
only support 11 OLEDs.
5.
PREPARING THE PCB CONNECTING CABLES
When all OLEDs have been mounted, you are
ready to make up the cables which connect each PCB to the
Arduino Due.
5.1 The
14-core, 7-way ribbon for Power & Control between all
three PCBs This
cable connects the inner & outer PCBs power & control lines
to the central PCB socket, which in turn receives those
signals from the Arduino Due via the first 6-ways of its
40-core 20-way DIL PCB connector.
Tear about 15 inches of 14-cores off a length of 40-core ribbon cable.
You will use the cores in pairs (1+2, 2+3 etc) because the
PCB sockets are paired at 0.1" pitch and the ribbon cable is
pitched at 0.05", two cores at 0.1". Fold the cable thus:
This
is a little like cable origami! Keep the red core of the
cable at the bottom when horizontal, and on the right when
vertical. (The red core, number 1, is actually the GND line,
so you may wish to colour it black with a spirit-based fibre
pen in acknowledgement of that fact). These instructions create a three way connector
for use in the right hand stop plate. "Left" and "Right" refer to
"inner" and "Outer" aspects of the stop plate with respect
to the console centre, and are thus reversed for the left
hand stop plate. (All this is to take account of whether
your console and stop jambs are to display your stop names
"Symetrically" or "Identically": read the detailed
software documentation for an explanation of this.
The inner (left hand) fold is easy - just take the left
end and fold it up over the front of the horizontal part of
the cable. The outer (right hand) requires an initial fold downwards and behind the
horizontal part, then upwards and in front of the horizontal
part. The centre fold
is quite complicated: first fold the horizontal cable
backwards to the left, a little off-centre, followed by an
immediate diagonal fold upwards and behind. Then about 2 or
3 inches up, fold the cable forwards and vertically downwards
until level with the lower edge of the left hand side of the
cable. Finally make a diagonal fold at that level, forwards
and to the right. Having got the folds correctly, re-arrange
them until the three vertical segments are more-or-less
evenly spaced. Make the folds secure by applying gentle but
firm pressure - attach tape if necessary. You then have to
attach three DIL IDC 2x7-way plugs to the cable, each in the
same orientation. The plugs should all be directed
downwards, as they will be inserted into the 2x7 pin headers
of the Left, Central and Right, PCBs. Use a vice or an IDC
Crimping Tool. You can get the exact dimensions of the
various sections of the cable from the layout on your stop
plate. Note that the 7th & 8th cores are actually not used, but
should be attached as an aid to stability.
5.2
The Central PCB 40-core 20-way
cable Attach a DIL IDC 0.1" 2x20 header plug to an
approximate
8" length of 0.05" pitch 40-core 20-way ribbon cable
- ensure that the length of the cable is sufficient to be
neatly routed to the Arduino micro-controller. At the other end
of the cable, split the first four cores at the red core
away from the rest of the cable for about 2 inches. Cut a
23-way length of SIL pin strip. Before soldering each pair of
cores to the indicated pins, slide a short length of 3mm
heat shrink sleeve onto each cable pair. Once soldered slide
the sleeve down onto the soldered pin, and use the soldering
iron to shrink the sleeve tightly over the joint, being sure
to cover the entire pin and joint. - split away the
first two cores, remove a centimetre of insulation, twist the conductors together and solder them to the
third pin of the 23-way pin
strip. Although the first of those cores is red, it is
actually the GND line, therefore, colour it black with a
spirit pen; - remove the insulation from the second
pair of cores and twist those conductors together, and
solder them to the first pin of the 23-way
pin strip. This is the +3v3 vdd line; -
remove the insulation from the next four
pairs of conductors, soldering each pair in turn to pins 7
to 10 of the 23-way pin strip. These four
core pairs are
the remaining power & control lines connecting the central
board to Arduino sockets 54-57; - the next two core
pairs
of the ribbon cable have no connection. Therefore you may
strip them back from the cable by about 2 inches, and
when the soldering of the remaining cores is complete, those
conductors may be cut away; - the next four pairs
of cores, constituting pairs 9-12, may be split and soldered
to pins 11-14 of the 24-way pin strip. There is a gap at pin
15; - the remainder of the core-pairs, 13-20 should
be soldered to pins 16-23 of the 23-way pin strip.
As you prepare the
core pairs, note that not all of the pins of the pin strip
receive connections, as some of the Arduino lines cannot be
used, and there are two unused pairs of cores. Remember to
strengthen and isolate each pin as you complete the
soldering, using 3mm heat shrink sleeve. The picture above
shows the DIL IDC 0.05" pitch 2x20 header plug on the right,
and the 23-way pin strip on the left.
5.3 The Inner PCB 40-core 20-way
cable Attach a DIL IDC 0.1" 2x20 header plug to an
approximate
8" length of 0.05" pitch 40-core 20-way ribbon cable.
Ensure that the length of the cable is sufficient to be
neatly routed to the Arduino micro-controller. You may cut away the first eight core pairs from this cable,
and the very last core pair, at about 1 inch from the header
plug, as these cores are not required. Cut two lengths of
pin strip, one with 7 pins and a second with 4 pins.
Although these pins connect to a contiguous series of
Arduino header sockets, an unusual asymmetric gap between
Arduino sockets 7 and
8 necessitates two separate pin strips (!). Core pairs
17+18 to 29+30 must be soldered to pins 1-7 of the first pin
strip, while cores 31+32 to 37+38 must be connected to pins
of the second pin strip. As previously, strip about 1
centimetre of insulation from the cores of each pair, twist
and solder the strands together and slide a centimetre of
3mm heat shrink tubing onto the two wires. After soldering
the pair to the correct pin, slide the heat shrink down onto
the pin and use the soldering iron to shrink the sleeve
tightly onto the soldered joint. This will aid stability and
reduce the risk of the joint failing. The picture below
shows the wiring of the inner (left hand) PCB connector to
the Arduino, with the DIL IDC 0.05" pitch 2x20 plug on the
right, and the pair of pin strips on the left.
5.4 The Outer PCB 40-core 20-way
cable Attach a DIL IDC 0.1" 2x20 header plug to an
approximate
8" length of 0.05" pitch 40-core 20-way ribbon cable.
Ensure that the length of the cable is sufficient to be
neatly routed to the Arduino micro-controller. You may cut away the first eight core pairs from this cable,
and the very last core pair, at about 1 inch from the header
plug, as these cores are not required. Cut a length of
pin strip with 11 pins. Core pairs 17+18 to 37+38 must be
soldered to pins 1-11 of the pin strip. The picture below
shows the right PCB connector pin strip which inserts into
the even numbered sockets 30-50 of the Arduino
DIL socket on its right hand edge. As previously, strip
about 1 centimetre of insulation from the cores of each
pair, twist and solder the strands together and slide a
centimetre of 3mm heat shrink tubing onto the two wires.
After soldering the pair to the correct pin, slide the heat
shrink down onto the pin and use the soldering iron to
shrink the sleeve tightly onto the soldred join. This will
aid stability and reduce the risk of the joint failing.
The picture below shows the wiring of the outer (right hand)
hand PCB connector to the Arduino, with the DIL IDC 0.05"
pitch 2x20 plug on the right, and the pin strip on the left.
5.5 Connecting the PCBs to the
Arduino Due When the PCBs are mounted onto the
stop plate (raise the plastic nuts of a double column of
switches, slide the PCB carefully beneath the nuts, taking
care to protect the OLED displays from damage) in the
correct position, gently tighten the large plastic nuts over
the PCB edges. The default connection method arranges the
stops and their labels in the "Symmetric" arrangement, which
will suit most users. This arrangement allows a three
division organ to have its stop labels arranged such that
when set up to be duplicated across both jambs, the three
divisions are displayed from the centre outwards
(-symetrically-), which probably is the preference for most
users. The documentation of the kasLABS
software explains this in more detail (also referred to in
the text shown in the diagram below) .
First select a suitable mounting position for the Arduino.
Orientate and position the Aurduino such that the cables may
suffer no stress and so that their terminations will be able
to be neatly inserted into the Arduino Header Sockets.
Connect the PCB Interconnecting
cable first (see section 5.1 above). Its central DIL
IDC header plug fits into the 2x7 DIL PCB pin header on the
Central PCB - check that the plug & cable are orientated
correctly with the red GND line (or black if you have used a
fibre pen on it) at the edge of the PCB. Then connect the
Inner and Outer DIL IDC plugs into the 2x7 sockets of the
Inner & Outer PCBs respectively.
NOTE:
When inserting these plugs into the PCB sockets, support the
PCB from beneath, otherwise you may damage the OLEDs if the
PCBs are pressed too firmly against the stop plate. Once
connected, you may fold the cables back on themselves under
the PCBs where they may rest safely out-of-sight.
Connect the Central PCB connector
(see section 5.2 above) into the Arduino's lower edge Header
Socket. This connector also includes the power and control
line connections.
Connect the Inner PCB connectors
(see section 5.3 above) which are on the left in the right
hand stop plate, plug into the Arduino's upper edge Header
Socket. Note that this connector is split into two sections.
The Outer PCB connector
(see estion 5.4 above) which are on the right in the right
hand stop plate, plugs into the Arduino's right hand
edge connector, even numbered sockets.
The image
on the right shows all connections between the three PCBs
and the Arduino Due. Note that the connections for the Inner
and Outer PCB for both stop jambs are influenced by your
choice of whether to arrange your stop labels
"Symmetrically" or "Identically". Please see the detailed
documentation for explanations. The default arrangement,
which is "Symmetric", is
assumed in this document.
6. MOUNTING + CONNECTING THE
ILLUMINATED STOP SWITCHES
Your
stop switches are fitted into the 1" holes cut into the stop
plates. Begin by removing the microswitch and LED
assembly from the back of each illuminated stop switch -
press in, twist, and pull
- the switch is illustrated on the right. Then remove the
large plastic nut on each switch body, and insert the
switch bodies through pairs of round holes at the top and
bottom of each double column of round holes in the stop
platel. Orientate all switches into the same direction. Apply the large nuts
to each and screw them gently down the switch body
stem.
If you have already completed assembly and testing of your
PCBs with their OLEDs, you can lay each PCB OLEDs face down,
onto the stop plate, over the rectangular apertures between
each double column of stop swiches. The PCBs are then
secured by gently tightening the large plastic nuts one by
onw whilst very carefully checking the alignment of the
OLEDs to the rectangular apertures. OLEDs are very easily
broken: you must take care - especially at the delicate
corners of the display surfaces of all OLEDs.
If your PCBs are not yet ready for installation, proceed to
mount your switches into the circular holes applying the
nuts. You may then insert the microswitch and LED asemblies
back into the switches. You will note that the microswitches
have two spade terminals, as do the LED holders too. In each
case, one terminal must be assigned as the "Common" terminal.
In the case of the switch you have a free choice, but in the
case of the LEDs, the common terminal choice is determined
by the polarity of your decoder. We will assume that your
decoder is "common positive" output (as are the ones we
supply), in which case you must identify which terminal on
the LED assembly needs to be positive to light the LED. Try
it with a battery to check - usually the red side of the
microswitch is used as an indicator, but check as you can
never be sure.
6.1 Connecting the Switch and LED
Common Lines First, we will make several long chains of spade
connectors for the common terminals: for a common ground
encoder, make up six chains of ten with blue spades
for the switch commons. For a common positive decoder make
up six chains of ten with red spades for the LED commons: -
for each chain, cut 10
x 2.5 inch lengths of connecting wire (you can use the cores
of the discarded ribbon cable if you have no other); -
strip a
centimetre of insulation from both ends of each length, and
twist the strands together. (Then I always solder the twisted
strands although some say that should not be done
with crimpable spade connectors): -
then
insert each twisted strand into the end of a spade connector
to just beyond the insulation, and until it
protrudes a millimetre or two. Then either: - crimp
the spade's cable retainer with a crimp tool; or -
apply solder and a hot iron, allowing solder to run into the
spade's cable retainer sleeve. Repeat for the remaining spade
chains, but
at the two end spades, attach a longer wire to all but one
of the chains, so that
you can join the six chains together at a later point.
Choose
a side of the micro switches and insert the blue spade
connectors onto the terminals on that side: ensure that they
are very firmnly fixed into place - tighten or loosen the
jaws of the spade connectors if necessary. Then solder each
of the end wires to its neighbour in the next column of
switches: the single remaining unattached wire should
connect to the common ground terminal of the encoder board.
Then connect the second set of 10 red spade chains to each
of the LED terminals previous identified as the positive,
and connect the end terminal wire to the common postive
input of the decoder.
6.2 Connecting the active Switch
and LED Lines
The Switch Connections: The active lines of
the switches must each be connected to an input of the
encoder: connect each switch to the input corresponding to
its stop button position in the sequence. Perhaps the best way of making
these 60 connections is to make up six sets of 10 cores of
ribbon cable each core staggered by the approximate
separation of the switches - about 1.5 inches. Solder or
crimp a red
spade connector onto the end of each core using the method
previously described. The picture below shows an
arrangement for connecting the active switch terminal of
each switch into a ribbon cable strip; note that in the case
of the switch terminals, normally the active terminal spades
should be red. Each spade should be on a core which is about
1.5" shorter than its neighbour, but that distance should be
decided by direct assessment of your stop jamb arrangement.
In most cases, a ten-core ribbon will sit comfortably on the
column of microswitches, nestled between the microswitch
terminals. The length of each cable should be sufficient to
connect to the input ports of the encoder. At the other end of the cable, the
cores should be stripped of their insulation and soldered in
preparation for connection to the appropriate line in the
encoder. Some encoders will require DIL IDC header plugs,
others may use other types of connector whilst several types
have screw-in terminals.
The LED
Connections: The active terminals of each LED must
each be connected to an output port of the decoder: connect
each LED terminal to the ouput port corresponding to the
stop button position in the sequence. Once again, make up
six sets of 10 cores of ribbon cable, each core staggered in
length by the approximate separation of the LED terminals.
Solder a blue spade connector onto the end of each core,
using the method already described. Apart from the colour of
the spade, the picture above shows a suitable arrangement
for connecting the ative LED terminals to the decoder.
Decoders have a variety of connection mechanisms, and you
must use a matching termination method at the other end of
the cable. The OrgautoMatech decoders which are supplied if
you purchase components from KASpencer have screw-in
terminals for the active LED connections, and so you should
carefully match the lengths of the cores to the positions of
their terminal, strip off a centimetre of insulation, twist
the strands and solder the twisted strands to make insertion
into the terminal slots easier.
back to the Projects page
|