Final Technical Issues and Coping Methods

Written Evaluation:

The most problematic aspect of this project occurred in the last week where I encountered a wide range of technical difficulties that threatened the successful completion of the project in the form that I intended. This was incredibly stressful and frustrating as the project had, prior to this point, been technically operational. The original issue was that the DVD player starting playing up and behaving temperamentally which affected the wired up remote’s ability to activate the sound. In terms of devising a solution, I decided to buy a replica Surround Sound System and wire up a spare remote that I had previously bought.

41b0bBbW4OL._SL1000_

 

However, further complications arose where both the existing and new Surround Sound systems suddenly wouldn’t play in Surround mode as all sound effects are outputted through each individual speaker, as opposed to travelling between the speakers. Upon discussing this with the Course Team, they advised me to continue investigating and problem solving as much as possible on the lead up to my critique as this is a technical issue that is out of my control. Although I am boosted by this leeway and support, I felt incredibly disheartened and concerned that a project I had been working on so extensively and so passionately was not coming to fruition in the intended way. However, it was crucial to remain positive and to continue to be explorative, experimental and exhaustive even in these emotional, difficult stages of the project. On the morning of the Hand In, I sought help from Audio Technician Aaron with the intention of testing the DVD that had originally worked a few days prior on his Surround Sound system. After this failed, he noticed a flaw in the settings of the export and therefore we re adjusted the formatting and tested it which worked successfully. This was a huge relief as I have been so upset about it not working after so much effort, passion and hard work. However, it has still not been fully resolved but I will work methodically and promptly over the next two days to ensure that all technical components are successfully operational for the Critique.

Next Steps:

  • Test this new DVD with both the Phillips Surround Sound Players
  • Test the new wired remote with the DVD player and the Arduino set up
  • If this doesn’t work, consider using the Panasonic as I have

Vibration Pillow Trouble Shooting

Earlier today, the first thing I did when in the cabin was to fix the Vibration Pillow as this was causing me much stress as it is one of the most central elements to the project and we are fast approaching the deadline. It is incredibly frustrating that it had been working so successfully for so long however I was hopeful that there was a logical and fixable solution as my tests have demonstrated that the pillow still has the capacity to vibrate and therefore it is likely that it is a wiring or code issue.

The first step was to revert the code and wiring back to what it was when the pillow was operating successfully.

This was:

#include <Chrono.h>
#include <LightChrono.h>
Chrono myChrono;

int LED = 12;
int BUTTON = 4;
int PILLOW = 2;
int REMOTE = 8;
long lightsDelay = 4.17 * 60 * 1000L;
long vibrationDelay = 1000L;

boolean toggle = false;

void setup()
{
Serial.begin(9200);
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT);
pinMode(PILLOW, OUTPUT);
pinMode(REMOTE, OUTPUT);
digitalWrite(LED, HIGH);
digitalWrite(PILLOW, HIGH);
digitalWrite(REMOTE, HIGH);
myChrono.restart();
myChrono.stop();
}

void loop()
{
Serial.println(myChrono.elapsed());
if (myChrono.hasPassed(vibrationDelay + 38000L) && toggle == true) {

digitalWrite(PILLOW, LOW);
}
if (myChrono.hasPassed(vibrationDelay + 55000) && toggle == true) {

digitalWrite(PILLOW, HIGH);
}
if (myChrono.hasPassed(vibrationDelay + 63000) && toggle == true) {

digitalWrite (PILLOW, HIGH);

}

if (myChrono.hasPassed(vibrationDelay + 115000) && toggle == true) {

digitalWrite (PILLOW, LOW);

}
if (myChrono.hasPassed(vibrationDelay + 120000) && toggle == true) {

digitalWrite (PILLOW, HIGH);

}
if (myChrono.hasPassed(vibrationDelay + 224000) && toggle == true) {

digitalWrite (PILLOW, LOW);

}
if (myChrono.hasPassed(vibrationDelay + 230000) && toggle == true) {

digitalWrite (PILLOW, HIGH);

}
if (myChrono.hasPassed(lightsDelay) && toggle == true) {
toggle = false;
myChrono.stop();
lightsOn();

}
if (digitalRead(BUTTON) == HIGH && toggle == false)
{
//Serial.println(“pressed”);
toggle = true;
digitalWrite(LED, LOW);
//remote press//
digitalWrite(REMOTE, HIGH);
delay(100);
digitalWrite(REMOTE, LOW);//this is like pressing the button once
//////////////
myChrono.restart();
}
}
void lightsOn() {
//Serial.println(“on”);
digitalWrite(LED, HIGH);

}

I also swapped the normally open and closed terminals to accompany this code – fortunately this worked and the pillow worked! In order to prevent this from happening again, I broke into the circuit of the second vibration pillow in the same way and wired it up to attach it to a plug that is connected to a plug that I have wired up to the relay, therefore I can swap and use both pillows interchangeably.

This video illustrates the vibration and light both working effectively with the press of the switch.

Next Steps: 

  • Test the Sound and the remote (final part of the set up)
  • Finish painting over tape
  • Set up Valence
  • Final tweaks to sound content (test with family and Jon for feedback)
  • Position all technical components under bed securely and neatly

Technical: Vibration Pillow Testing

During my Sound tests yesterday, I was very worried and panicked to find that the vibration pillow was no longer vibrating. This was alarming as I hadn’t physically tested the pillow for a significant amount of time; instead I was using the relay clicking as a signifier that it was working successfully. In hindsight, this was an error as the vibration pillow is a very different component to the relay which is, in essence, just a switch.

Therefore, I realised that this could have happened due to a number of issues. For example, when sorting out the remote control and how it is soldered, Frank moved the normally open and closed terminals around to produce a safer and more sustainable system and this could have contributed to this problem. Additionally, it might be the batteries or that the motor in the pillow had broken. As a problem solving method, I replaced the batteries but this didn’t have an effect unfortunately. Further to this, I placed a wire between the two points of the switch to test whether the pillow still had the capacity to vibrate in order to identify the problem root. It, fortunately, did vibration and therefore confirmed that it wasn’t the motor. Due to the unpredictability of technology, I had ordered a spare of the vibration pillow as a precaution which I picked up from Royal Mail Depot this morning although the priority was to fix the current one as that still has the potential to vibrate. As a further precaution, I ordered two similar pillows off Amazon as back ups; the reason for this is so that I am completely prepared for every eventuality as this is one of THE most important parts of my installation.

These are:

  1. 81FJahJspQL._SX522_
  2. 81MBO+lU8gL._SX522_

 

The reason that I selected these two pillows is that they both appear to follow a similar format to the current one in that they are battery operated and have a simple on/off switch. Henceforth, I am reasonably confident that I can break into the circuit and connect to the relay in the same way as before if required. They are also available on prime which has enabled me to order them and have them delivered on time for the weekend when I am in the Cabin, putting the entire set up together.

 

Evaluation:

  • It is so frustrating that the pillow has stopped working at this late point but I am pleased that I am alerted to the issue and I have a small window of time to solve it
  • I have complied a list of approaches to try to solve the problem that I will work through on Sunday when I am in the Cabin. I will start with trying to move the wiring and code back to where it was originally as this seems to be the simplest method to try initially and the most logical as it worked originally and the motor itself is still functioning when short circuited.
  • To prevent this happening again or in case of any future problems arising, I will create two new plugs where I can connect the connections from the relay terminals to the pillow itself so that I can, hopefully, set up another pillow as a back up if needs be.

 

Next Steps: 

  • Revert the connections and code to what it was when the pillow was working successfully and test to ascertain if this is the issue
  • Connect a new plug format which will enable me to attach a back up pillow if necessary
  • Test new pillows if required – if not, return to Amazon (I am happy with the effect of the existing pillow and keeping this incorporated in the installation would be ideal)

 

 

Connecting Remote Control to Arduino Set Up

Having established two effective connections from the correct areas of the circuit board, the next step was to incorporate these into the existing Technical set up by connecting these two wires to one of the current relays. I originally intended to incorporate a third relay into the set up so that each relay controlled a separate technical component for the sake of easiness. However, this would mean I would need to transfer the entire set up onto a new, larger wooden base and may complicate the arrangement as I would need to attach wires from the relay to the Arduino, the relay to the switch and the relay to the remote. Therefore, I decided that as both relays are actually control boards that have 8 different relay modules, that I would connect the remote to the vibration relay. Hence, the only connects that I would need to make are a wire from In 2 to a specific pin on the Arduino, as stated in the code, in addition to two connections from the normally closed terminal and the common terminal, to the areas of the circuit board on the remote.

IMG_5697IMG_5698

The code that I tested this set up with is as follows:

#include <Chrono.h>
#include <LightChrono.h>
Chrono myChrono;

int LED = 12;
int BUTTON = 4;
int PILLOW = 2;
int REMOTE = 8;
long lightsDelay = 4.07 * 60 * 1000L;
long vibrationDelay = 1000L;

boolean toggle = false;

void setup()
{
Serial.begin(9200);
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT);
pinMode(PILLOW, OUTPUT);
pinMode(REMOTE, OUTPUT);
digitalWrite(LED, HIGH);
digitalWrite(PILLOW, LOW);
digitalWrite(REMOTE, LOW);
myChrono.restart();
myChrono.stop();
}

void loop()
{
Serial.println(myChrono.elapsed());
if (myChrono.hasPassed(vibrationDelay + 1000L) && toggle == true) {

digitalWrite(PILLOW, HIGH);

}if (myChrono.hasPassed(vibrationDelay + 8000) && toggle == true) {

digitalWrite(PILLOW, LOW);

}

if (myChrono.hasPassed(vibrationDelay + 63000) && toggle == true) {

digitalWrite (PILLOW, HIGH);

}

if (myChrono.hasPassed(vibrationDelay + 115000) && toggle == true) {

digitalWrite (PILLOW, LOW);

}
if (myChrono.hasPassed(vibrationDelay + 120000) && toggle == true) {

digitalWrite (PILLOW, HIGH);

}
if (myChrono.hasPassed(vibrationDelay + 224000) && toggle == true) {

digitalWrite (PILLOW, LOW);

}
if (myChrono.hasPassed(vibrationDelay + 230000) && toggle == true) {

digitalWrite (PILLOW, HIGH);

}
if (myChrono.hasPassed(lightsDelay) && toggle == true) {
toggle = false;
myChrono.stop();
lightsOn();

}
if (digitalRead(BUTTON) == HIGH && toggle == false)
{
//Serial.println(“pressed”);
toggle = true;
digitalWrite(LED, LOW);
//remote press//
digitalWrite(REMOTE, HIGH);
delay(100);
digitalWrite(REMOTE, LOW);//this is like pressing the button once
//////////////
myChrono.restart();
}
}
void lightsOn() {
//Serial.println(“on”);
digitalWrite(LED, HIGH);
//remote press//
digitalWrite(REMOTE, HIGH);
delay(100);
digitalWrite(REMOTE, LOW);//this is like pressing the button once
//////////////

}

This code, in essence, describes that when the switch is pressed, the light is turned off and the remote is essentially pressed on it’s play function so that the sound begins. Following this, when the lights turn back on, this simulates an identical remote press so that the audio is paused corresponding with the end of each encounter of the installation. One important part of forming this code was that it needs to signify that the remote is being pressed rather than held down, therefore I have included that the remote needs to be HIGH and LOW in order to simulate this press.

Test 1:

IMG_5775.JPG

IMG_5776

IMG_5845.JPG

For this experiment, I positioned the Arduino set up a suitable distance away from the DVD player with the remote slightly tilted up so that it controlled the DVD player. Following this, I pressed the switch and tested whether this would activate the sound which it fortunately did. The issue that arose was that at the end, when the light turned back on and the sound paused, pressing the switch again (indicating another encounter of the installation) meant that the sound didn’t start from the beginning. Instead, it continued playing to the end of the track, therefore indicating that the timing of the Arduino wasn’t quite right in terms of the light.

Evaluation:

  • It is very pleasing that after an extensive and exhaustive testing process to control the Surround Sound via the switch, it finally works and the technical components all operate together validating both the connections and the code.
  • The timings aren’t accurate enough as each pressing of the switch must start with the start of the audio track therefore I will adjust the code hence the light to respond to the correct length of the sound 
  • It is also a good idea, when programming the sound track, to ensure that the audio is on a continuous loop so that it is simply played every time switch is pressed and paused when the light turns on to signify the end of each encounter of the installation. 
  • One concern that cropped up as a result of this test was the fact that on occasion, the DVD player would play/pause without the switch being pressed which makes the entire system very unreliable. This suggests that the way in which the wires (attached to the remote) are connected through the relay in a way that simulates the button press without the switch. Therefore, I will need to carefully look into the way in which these wires are connected to the relay in order to determine why is it behaving in this way. Additionally, it may be worth delving into the code to see if this can be adjusted to resolve this issue as the only action that I want to simulate this button press is the switch.

Next Steps:

  • Insert the correct length of Audio track into light code and test
  • When burning next version of DVD, program so that it is on a continuous loop and test with technical components
  • Finalise the positioning required of remote, DVD player and entire Arduino set up and determine whether the current bedside cabinet is suitable for such dimensions – If not, look at alternatives
  • Carefully and meticulously survey the way in which the remote circuitry is connected to the relay and the code to ensure that the only action simulating the button press is the switch and test.

Cold Soldering the Remote Control

Following the lack of success with the hot soldering, it was clear that the most effective method is cold soldering the wires on to the circuitry for the play function of the remote control. The advantage of this approach, in comparison with the previous one, is that it is not damaging to the connections. However, on the other hand, it is less reliable and secure which has implications in terms of the sensitivity of the connection between the circuitry and the DVD player and therefore I will need to ensure that these connections between the wires and the remote are relatively secure.

The process involved these key stages:

  1. Applying electric paint between the wire and the circuitry that activates the play function – holding the wire down until there is a connection

IMG_5658.JPG

IMG_5676.JPG

The issue that arose with this technique was that, on a number of attempts, the piece of wire was so pernickety that it was very hard to be precise.

2. Therefore, I positioned a piece of black tape either side of the exact locations for such connections in order to be accurate.

IMG_5679.JPG

IMG_5680.JPG

3. Finally, in order to test that these connections were the right ones as well as confirming that the solder hadn’t destroyed the circuitry, I touched the ends of the wires together when facing the DVD player. The idea behind this was to check whether this process, hence the remote control in it’s new state, activates the DVD to play, as intended.

Evaluation:

  • I am pleased that this method has worked and the connections are not adversely affected by the electric paint
  • The tape worked really well in terms of pinpointing and applying paint effectively to the precise areas of the circuit board. However, it is essential that I further consolidate these connections by using glue so that they are as secure and permanent as possible; particularly important when using cold soldering. This is compounded by the fact that the sound is the main element of the piece and it is important that I can rely on the switch to activate it.
  • These experiments indicated that the sensitivity of the positioning is very intricate and temperamental, therefore it is essential that I ascertain the exact position, incorporating distance and height of the remote in relation to the DVD player. This will form part of an extensive testing process where I will continually experiment with the success and ease by which the switch activates the sound.
  • Further to this, I will ensure that when pressing the switch a second time, it plays from the start. The best way for it to do this is if the Sound Mix is on a continuous loop but this will mean ensuring that the code is timed accurately with the sound mix so that at the end of the installation (when the light turns off) the sound is paused. Thus, if the timings aren’t accurate, when the light is pressed again, it will continue the sound mix to the end as opposed to starting the audio track again.
  • Additionally, this has made me realise that the cabinet that I currently have isn’t large enough to store the Arduino circuit board, the DVD player and remote incorporating the exact proximities required.

 

Next Steps:

  • Connect to the relay already in the circuit
  • Finalise code for the switch to activate the sound, ensuring that the sound mix starts again each time after pressing the switch
  • Test the switch using the DVD player to determine whether pressing the switch starts the sound in conjunction with the light and the vibration pillow
  • Measure the dimensions with the entire technical components working successfully and determine whether a new cabinet is required.

Testing Circuitry and Hot Soldering

Having already tested the conductivity of the circuit board of the deconstructed remote control, I was confident that it would be easy to solder two wires across to make this connection. However, upon taking it to the EMS, Frank and Craig (Technicians) prodded it with a multimeter in order to pinpoint the exact locations on the circuit board of the play function by measuring current, hence ascertaining the positioning of the wires. Upon finalising this, we scraped a small section of the plastic off to expose the metal, hence opening up the specific piece of the circuit board in order to enhance the conductivity when soldering wires on, as well as creating two easily distinguishable reference points to make the intricate soldering process easier.

Soldering Process:

For the soldering, I made the decision to perform hot soldering as opposed to cold soldering; the reason for this is that hot soldering is much more secure and permanent therefore suiting these connection that need to be neat, tight and lasting. In order to do this, I went to the 3D workshop where Keith assisted me in soldering the two wires to the two pieces of metal in the circuitry to secure these connections as efficiently, safely and steadily as possible. This was a quick process however fully required two people as it was essential to hit the specific points of conductivity precisely.

Following the soldering procedure, I returned the remote to the EMS and with Frank’s assistance, attempted to test it by placing the ends of the two wires together when the control is positioned an appropriate distance and height, facing the DVD player. Unfortunately, this didn’t work and it became apparent that the hot soldering had destroyed the connections, and therefore, this is an unsuccessful method to activate the sound through the switch. This is disappointing after such a lengthy process and taking into consideration time constraints, however I am pleased that I have already ordered another replica remote as a backup incase any unforeseen situations arose. Therefore, tomorrow, I will bring in the new remote and endeavour to cold solder wires with the intention of this working instead. The advantage of the hot soldering approach, and the reason I decided to pursue it originally, is that it is more secure and permanent which suits the intention of this remote control in terms of it’s role in the installation.

IMG_5650.JPG

Evaluation:

  • I am really pleased and reassured by the fact that it is possible to make a strong connection on the circuit board and simulate the pressing of the play button as there is real potential for this approach to work successfully
  • Having said this, it is frustrating that hot soldering hasn’t worked and as a result, has damaged the connections and is therefore unusable.
  • I am pleased that I have planned ahead and made contingency arrangements by ordering, in advance, an additional replica remote so that I can do cold soldering tomorrow, when EMS Intern Frank is still around to offer assistance and guidance in regards to the process. I have also ordered a further remote control purely as a contingency plan just in case this happens again and I need a new control by tomorrow (last day of term/final chance that Frank can help for over a week).
  • The experimentation that I did with a piece of wire and the DVD player demonstrated the importance of distance between the DVD player and the remote control in order for the play button to be successfully activated. For example, if the remote control is positioned too close, or alternatively, too far away from the DVD player then the connection doesn’t work. Therefore, it is imperative that I conduct a series of extensive technical tests in order to determine the precise location in terms of height and distance that the remote control needs to be situated in order to simulate the play button, hence activate the DVD. Since this activation is the most crucial aspect of the installation as a sound piece, it is essential that this positioning is secure, further accentuated by the sensitive and temperamental nature of this connection. This will most likely require a larger cabinet than the current one that I am using but in order to confirm this, I will need to take measurements of the entire set up once complete with all components working successfully.
  • Further to this, in order to ensure the stability of this set up, I will screw down all components in their fixed positions so that they are unmovable.
  • This process has also made me realise the importance of having wires that will stretch, further exemplified by the fact that the connectivity between the remote (that is connected to the entire Arduino set up) and the DVD player is so sensitive.

Next Steps: 

  • Bring in remote control and remove back using previous method to reveal the circuitry
  • Cold solder wires using electric paint onto the points of activation
  • Test by touching the ends of the wires together and experimenting with whether this simulates the pressing of the play/pause button or not on the DVD player
  • Connect to a relay and to the existing circuit and test using switch to activate the pressing of this button
  • Write code for this and test for accuracy 
  • Conduct extensive experimentation into the positioning required of the remote in relation to the DVD player for the switch to successfully simulate the play button of the remote, hence activate the DVD.
  • Measure the DVD player, Arduino Circuit board and remote control in order to determine the dimensions required for the cabinet in order to store all the technical components involved in the installation.

 

 

Remote Control Testing and Investigating Alternative Options

Following yesterday’s concerns as to whether the remote control that has been taken apart will be able to be soldered, I contacted Aaron who originally advised me to utilise the remote control method as the easiest approach to controlling the Surround Sound through the switch (the intention of this technical exploration).

Screen Shot 2017-04-13 at 01.09.54.png

Screen Shot 2017-04-13 at 13.03.11.png

Aaron advised me to bring in the remote where we could experiment with the possibility of cold soldering, in order to determine if there is a way to secure connection to activate the play button or not. He also briefly explained that there is a way to use an interface to trigger a separate system with individual audio outputs that could work as a surround sound system, however we agreed to talk about this in further depth face to face.

Meeting with Aaron: 

  • Aaron tested the conductivity of the inside of the remote by placing a fork between the pieces of circuit board that correspond to the play/pause function and testing whether this triggers the DVD player to play which it did. This therefore proved that there is potential to solder wires onto these pieces of metal, which can then be connected to a relay and controlled by the Arduino. 
  • In case this soldering doesn’t work for whatever reason, Aaron also discussed the potential of using his Mac mini and separate audio outputs that would act as the surround sound speakers. The issue with this approach is I would need to develop a way for the Arduino to play an audio file from my computer/device adding a further dimension of complexity to this technical element.

Mini Evaluation:

  • It is such a relief and really promising that there is a way to activate the DVD player through placing a piece of wire across the two pieces of circuitry that control the play function, proving that this method has the potential to work. The next step is to work with Frank, The EMS Intern to delve into how I can solder two pieces of wire from these pieces of the circuit board to a relay.
  • In case the soldering doesn’t work and taking the time pressure into account, I will also investigate further into the potential of using separate audio outputs and an interface to control and trigger the Surround Sound file through a computer HDMI connected system. This is a considerably more complex approach and could pose problems in terms of determining a method and programming code that will easily enable the Arduino to trigger the file from when the switch is pressed. Additionally, it won’t be a surround sound system, instead individual audio outputs which will present practical problems in terms of positioning them in the bed whilst connected to a laptop or device. Therefore, this is a method that I will keep as a back up as it is not ideal and is time consuming in terms of developing knowledge and expertise in areas that I am not currently familiar with.

 

Next Steps: 

  • Test using a multimeter with Frank (EMS Intern) and Craig (Electronics technician) to locate the exact area that activates the play function
  • Solder two strips of wire onto this area and test again with the DVD player to ensure that it works
  • Assuming it does, connect these two pieces of wire to the corresponding terminals of a relay and incorporate into existing circuit
  • Order another replica remote incase it is needed at short notice as a contingency option
  • Continue to research and explore alternative options and how they can be technically and practically achieved and incorporated into my existing electronics work as well as assessing to what extent they support the project intention