diff --git a/docs/assignments/week05.md b/docs/assignments/week05.md
index 35b6ed573413bc26a04132782f3465b55fd57ca9..e6250fc849bc873070941e361cf5edf77ce731f7 100644
--- a/docs/assignments/week05.md
+++ b/docs/assignments/week05.md
@@ -2,32 +2,25 @@
 
 ##Results
 
-#IMAGE IMAGE IMAGE IMAGE
+![](../images/wk10_blackdiamondswatch1.jpg)*An analog capacative sensing swatch with a black conductive alum crystal I grew in week 9 (documentation from the future!), Loes Bogers, 2019*
 
-* I made and documented a digital sensor using a bikini clip
-* I made and documented an analog sensor using Danish Kroner coins
 * I used hard/soft connections with conductive thread and perfboard, pushbuttons and conductive fabric. 
-* I integrated the bikiniclip switch into a project: a choker that has an alarm system built-in.
+* I made and documented a switch using snap button
+* I made and documented an analog sensor using capacative crystal I grew in week 9
+* I worked out the Soft Serial communication to read an analog sensor with an FTDI cable (I'd done this before)
+* I made and documented a digital sensor using a bikini clip which I integrated into a project: a choker that sounds an alarm when you try to take it off.
 
-#VIDEO VIDEO VIDEO 
--------
+![](../images/wk05_working.jpg)*Swatch with a digital switch using snaps, Loes Bogers, 2019*
 
-* Document the sensor project as well as the readings got using the AnalogRead of Arduino
-* Upload a small video of the swatches functioning
-
-## Basics, research, inspiration
-
-I'm so excited about this week! I have worked with electronics before but have little experience with soft circuitry and e-textiles. So am very happy about the opportunity to learn more this week (by doing!). 
+<iframe width="560" height="315" src="https://www.youtube.com/embed/4F35IlK6YNA?rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
-During this class I was in Copenhagen so I had to skip this assignment, but I'm catching up now. I had to miss some tutorials, but since I know electronics fundamentals from previous experience and [Fabacademy](https://fabacademy.org/archives/2015/eu/students/bogers.loes/06electronicsdesign.html), I mainly studied the (really helpful and clear!) materials provided by Liza Stark on the [class page](https://class.textile-academy.org/classes/week05/) and [Kobakant](https://www.kobakant.at/DIY/?cat=28). I've been obsessed with this website for years. It's so good. 
+*A choker that beeps when you try to take it off (using a switch made of a bikini clip), Loes Bogers, 2019*
 
-**Danish Kroner Analog sensor by Plusea**
 
-I found these swatches with the Danish Krone slide-switch/softpot by Plusea (Hannah Perner-Wilson) [here](https://www.instructables.com/id/Danish-Krown-Slide-Switch/). Since I was in Denmark this week, I kept a few of my Kroner to try it out!
 
-![](../images/wk05_kroner.jpg)*Some Danish Kroner I kept from my trip this week.*
+## Basics, research, inspiration
 
-**Bikini clip digital switch**
+I'm so excited about this week! I have worked with electronics before but have little experience with soft circuitry and e-textiles. So am very happy about the opportunity to learn more this week (by doing!). 
 
 I went through my sewing kit looking for some textile related hardware that might be conductive. I found this nice metal bikini clip, checked it with the multimeter and BOOM! Found my switch. 
 
@@ -51,60 +44,43 @@ And I found [this page](http://toolswewant.at/category/tools/) via the Kobakant
 
 I think I might be able to make a better contribution there because I enjoy solving problems, learning about technical stuff and working on concrete things. It gives me more grip on understanding *why* I'm doing something that makes me feel comfortable. This is my applied streak I suppose. I also love working with artists because they tend to make very weird problems to solve that I'd never come up with but that are very interesting to work on.
 
-##Exploring conductive materials
-
-###Understanding softpot basics
-
-![](../images/wk05_liza_potmeters.jpg)*Softpot examples from Liza Stark's slides, 2019*
-
-**Varying resistance across**
+##Digital 1: Digital switch made with snap buttons
 
-The basic idea of a (soft or hard) potentiometer is to align a very conductive material with one that has resistance, and designing a physical sliding connector that connects them across. The shape or design can be straight or round or even meandering as shown on this swatch from Kobakant: 
+I made a simple circuit and added a switch to it that I made with snaps you can hammer together. Conductive materials used: conductive thread, conductive textile, the snap buttons, a coin cell holder, and a big LED. Dielectric materials: felt and neoprene. I used clear nailpolish to set the ends of the conductive thread. These were my tools: snap buttons, a hammer, a multimeter, needle, conductive thread, pins, pliers and a pair of scissors.
 
-![](../images/wk05_embroideredpot.jpg)*Embroidered potentiometer, screenshot from [Kobakant](https://www.kobakant.at/DIY/?p=2331)*
+![](../images/wk05_tools_snap.jpg)*Tools used (minus pliers and scissors) Loes Bogers, 2019*
 
-The sliding connector can be any conductive object or material. The further away you put the sliding connector - or: *conductive pointer finger* from the source, the more resistance there will be. If you know the the minimum resistance value and the maximum value, you can even map out pretty precise in-between states (as long as your resistive material increases in a linear way, not all materials behave like that).I started out with some conductive and some resistive thread and tried sewing some lines on my sewing machine. It has a lot of patterns preprogrammed and some of them are pretty nice! So I tried a few of those. 
+![](../images/wk05_frontback.jpg)*Front and back of the swatch, Loes Bogers, 2019* 
 
-Liza Stark's slides made things very simple. 
+I did some tests to check whether the snap buttons would be conductive and laid out the circuit and started sewing it together. 
 
-![](../images/wk05_liza_pot1.jpg)*Basic circuit for a softpot, screenshot of Liza Stark's slide, 2019*
-![](../images/wk05_liza_pot2.jpg)*Basic circuit for a linear softpot/analog switch, screenshot of Liza Stark's slide, 2019*
-![](../images/wk05_liza_pot3.jpg)*Basic circuit for a circular softpot/analog switch, screenshot of Liza Stark's slide, 2019*
+* I pushed the LED through the fabric and bent the holes into circles with pliers for sewing at the back. 
+* I pushed through the legs of the coin cell holder and bent them flat, I then sewed through the holes while passing the connections (this was a bad idea!)
+* I hammered in the snap button on the back: I wound conductive thread around the circle a few times before hammering the back snap onto the fabric to be able to make a connection to the LED
+* I hammered in the snap button on the front: I made sure the legs went through a long piece of conductive fabric, before hammering it to the felt. 
+* I sewed the felt/conductive fabric switch to the neoprene backing and made a trace to the battery holder. 
+* I sewed the LED on and the other end of the coin cell holder. 
+* I checked all the connections with the multimeter, seems great
+* I put in the battery and.....nothing.
 
+**Short caused by the battery holder**
 
-**Tension and test traces**
+I checked the anatomy of the coin cell and the coin cell holder. The + side of the battery is the smooth side AND the entire edge along the side of the disk. Only the textured back is GND.
 
-I wanted to sew some test traces with resistive and conductive thread so I could measure how the resistance changed across (and perhaps consider a voltage divider). 
+![](../images/wk05_batteryfix.jpg)*Fixing the short caused by the batteryclip with a bit of electrical tape, Loes Bogers, 2019*
 
-The resistive thread was ok to sew as long as I went very slowly (my machine has a limiter for this, called "langzaam naaien" that you can toggle on. Pretty nice. I also had to lower the tension a little. I learned that you can adjust the tension on top with the wheel on the left of my machine, and mine has a front loader spool on the bottom that has a little screw you can loosen or tighten to adjust the tension of the bottom thread. 
+ So I realized that the way I sewed on the coin cell holder was connecting to both the + and the - part of the battery, causing a short. I fixed it by putting a littl bit of tape on the side of the battery to make sure the GND part of the circuit was not accidentally also connected to the + side on the edge of the coin cell. Succes!!
 
-It wasn't easy to sew in one continuous line without breaking the thread, but I managed at least one lines. Especially when doing patterns it's annoying when it breaks because you break the pattern and will not be able to continue in exactly the right place. Disrupting the continuity of the patter you're trying to make.
+<iframe width="560" height="315" src="https://www.youtube.com/embed/C4Mrw149P7k?rel=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
-The tension between the threads should be equal so each thread keeps to its own side of the fabric :) 
+*Digital switch swatch working, Loes Bogers, 2019*
 
-<iframe width="560" height="315" src="https://www.youtube.com/embed/sf6oPMbLPzo?controls=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
-
-*Prof. Pincushion on Youtube, explaining tension*
-
-Sewing with the conductive thread was a lot harder to do! I didn't quite get the tension right but did sew a zig zag line which for testing purposes was enough. So I connected my multimeter, put it on the Ohm setting and put my Danish krone across to get some readings!
-
-**Coated vs. uncoated conductive thread**
-
-I thought I was crazy and/or my multimeter was broken because the readings were super erratic. After taking some distance from it (of course this was late in the evening) I realised the conductive thread may have been coated. This means it's still conductive – on the inside - but it's hard to connect to that conductive inside because there's an insulation layer around it. 
-
-Cecilia and I tried to melt away a bit of coating from a piece of thread, using a lighter. After removing the coating on two sides I was able to get readings from a piece of thread. It's easy to break this thread while burning it though, it's so thin. I tried melting some off the stitch I'd already done, but this didn't really work. Also, I would need the stitch to be connecting to the slider all across (so I would need to undress the entire length). I drew the conclusion that uncoated conductive thread would probably be better for making this softpot.
-
-**Sewing machine dramarama**
-
-I found a new thread, barely got one stitch done....and then my machine broke. It has this thing with the pedal that it creates shorts sometimes, driving my machine cray cray. I will have to open it up and dust off the insides and check the connections or connect another pedal (I think I have one somewhere). Ok, well. I see how the basics will work. Moving on to designing the circuit for now. 
+##Digital 2: Bikini clip switch
 
 ###Testing a bikini clip/switch
 
 I found this metal bikini clip that I cut off a bikini once. It's really nice! My multimeter says I can use it (beep beep). Great! Off I go to prototype the digital circuit. Emma Pareschi, our electronics miracle worker at the Amsterdam lab provided us with the basic schematics that helped me quickly put together a circuit with a the digital switch and an LED. I'm not sure why she's opted for a pullup resistor here, maybe because the Arduino has an internal pullup so it's easy to switch between. But I'd say it makes more sense to use a pulldown that keeps the buttonState LOW unless pressed. I know you can change it in the code too, so whatever. But basically it would mean putting the resistor on the other end of the button, the one that connects to GND. @Emma can you explain why you use a pullup and not a pulldown? Does it matter?
 
-
-##Building the digital circuit
-
 ###Using Arduino Uno
 
 Prototyping this with an Arduino was a breeze. I started with a Blink sketch, and then added the code from the Button example that come with the standard install of the Arduino IDE under File >> Examples.
@@ -694,78 +670,206 @@ void loop() {
 
 *Basic code for capacitive sensing with a black diamond, Loes Bogers, 2019*
 
-I translated this circuit into a swatch
+##FTDI cable and soft serial for Attiny
 
-INSERT SWATCH
+Attiny cannot just write to the serial the way an Arduino UNO can, it doesn't have UART. But you can designate any 2 pins as RX (receive) and TX (transmit), and connect an FTDI cable to it. I have a [TTL-232R-5V cable from Farnell](https://www.googleadservices.com/pagead/aclk?sa=L&ai=DChcSEwiCmuXgqpnmAhVP4ncKHTL1B7YYABAAGgJlZg&ohost=www.google.com&cid=CAESQOD2tiG4wFpIijcjbezQf1TpzpW1UCDQloiGTyGls9IPkhgoEnmkyQ_3yWNKi0BYGwm9PdE3MAOL8ymX8S-DY-g&sig=AOD64_3_4kluOTjbSLdEXpBf9BiWpR2YdA&q=&ved=2ahUKEwjTlN7gqpnmAhXDL1AKHciGBtoQ0Qx6BAgZEAE&adurl=&bg=!IiGlITlYQkx731BU_RYCAAAATlIAAAAHCgBLX5I5nWbc1Yk7OzAUaVk9k_alV6ix5mAy9MtC7Ehnd6I79c8HYezbERdSkLG-8JsFcShX-34-URsr1GAowkWwlcDgpFFRVv0HcqyjmQDeYa6y6FITxcZqpVNaRGU-uuHgk8nAmap84jBasw1ghuJaMcdNH4TS4KtIrhP7i1kuTfGqf54QrvnAye8zZFdaIR0cEesxMixzabPfsNB9jsZD5D7i8r1cCjEXvv1IOtp4VXpLgD2fIlQfUHtP2_7vAfejJvv_MfgpwEGdIJyAhEeT6Cm9CP2sl6XOouIfUOjDkYyuBk9nKiIr5hjRuAVqpA0ABmEKS3Y56tB-uJ3a1ih4D_0UcJ-hiyynolf5JcPi1Q1U83_9I7XcMcHXX_kyLIfD6oh6Ef57Ha4aZmGw) (also comes in a 3.3V version which is nice for wearables). You have to install a bunch of drivers to use them, which can be a bit of a pain but I already have them installed. You can find the [drivers here] (https://www.ftdichip.com/Products/Cables/USBTTLSerial.htm). If you're not sure you can check whether the drivers are installed by plugging in the FTDI cable and checking under \> Ports in Arduino IDE to see if another serial port shows up. Which it did! 
 
+![](../images/wk10_driveinstall_check.jpg)*Seeing if the cable shows up, if it does you already have the necessary drivers, Loes Bogers, 2019*
 
-##Building an analog needle felt squeeze sensor
+Then you can use the Software Serial library in the Arduino sketch by adding ``` #include <SoftwareSerial.h>  ``` at the top of the sketch. You can write to the serial using similar commands, just not capitalized like you normally would. 
 
-I had this conductive wool so started off making a sensor with that. I saw it [here](https://www.kobakant.at/DIY/?p=7795) first :)
+```serial.begin(baudrate);```
+```serial.println(values);```
 
-**The schematic**
+**Connecting the FTDI cable to a circuit**
 
-**Multimeter reading**
-Unstable reading of the dot but somewhere beteen 200-300ohm without squeezing, to totally conductive (beeeeeeep!) when I squeeze it. The kobakant tutorial suggest to mix in some normal wool to make it more resistive but I don't have that lying around so will just make do here for now but I can see how this would give me a rather limited range. So let's see how far we can stretch it. 
+I just used the FTDI cable for calibrating in the prototype stage, so it sufficed to connect it with some jumpers and a bread board. Note: TX is always connected to the RX of another device, and RX to TX.
+ 
+* VCC to VCC
+* GND to GND
+* TX to the pin designated as RX in the ATtiny code!
+* RX to the pin designated as TX in the ATtiny code!
 
-**Code: analogRead to serial**
-This difference in resistance reads on between 1000 and 1023 on the analogRead pushed to serial. It only occasionally drops below. So thats a pretty small spectrum.
+![](../images/wk10_ftdicable_schematic.jpg)*How I wired up the FTDI cable to a circuit with a capacative touch sensor and an attiny, Loes Bogers, 2019*
 
-**Code: constrain() and map()**
-I map the 24 step range to a range of 0-255 (the range I can drive a LED with later, using pulse width modulation.
+I set up the serial connection for an analog input swatch I still had to make for week 5. 
 
-**Code: analogRead to plotter**
-Can be handy because more visual. Use right syntax though.
+```
+//https://www.instructables.com/id/Capacitive-Sensing-for-Dummies/
+//https://www.arduino.cc/en/Tutorial/Smoothing
 
-**Code: AnalogWrite or Pulse Width Modulation to fade LED**
-Sends it as a wave that we perceive as continous. 
+#include <CapacitiveSensor.h>
 
-**Code: smooth()** 
+#include <SoftwareSerial.h>   when using ATtiny and FTDI cable
 
-What does this do? 
+#define rxPin 1   //    if using FTDI cable and attiny > connect to TX of other device
+#define txPin 0   //  if using FTDI cable and attiny  > connect to RX of other device
+SoftwareSerial serial(rxPin, txPin);  //if using FTDI cable and attiny
 
-Array
+//send at pin 4, receive at pin 3, 1-10M ohm resistor between
+CapacitiveSensor cs_3_4 = CapacitiveSensor(3, 4); // 1-10 megohm resistor between pins 4 & 3, pin 3 is sensor pin, add wire, foil
 
-Average
+const int numReadings = 10;     // size of array/number of readings to keep track of (higher = slower)
+int readings[numReadings];      // the readings from the analog input
+int readIndex = 0;              // the index of the current reading
+int total = 0;                  // the running total
+int average = 0;                // the average
 
-I used a delay of 100 milliseconds to be able to read the readings from the serial monitor more easily, but it made the LED fading jittery and it would fade away very slowly. Turning down the delay at the end to 50 milliseconds made it more responsive. 
+void setup() {
 
-###Wool dot swatch
+  // initialize serial communication with computer:
+//  Serial.begin(9600);           //start serial communication via USB cable
+  serial.begin(115200);       //if using FTDI cable and attiny
 
-**Hard/soft connections**
+  cs_3_4.set_CS_AutocaL_Millis(0xFFFFFFFF); // turn off autocalibrate on channel 1 - just as an example Serial.begin(9600);
 
-*The dot*
-One connection to GND via pulldown resistor, one connection to AnalogRead pin on side, and on the other side connected to VCC. So three connection point to connect this sensor swatch.
+  //initatialize readings array setting all values to 0
+  for (int thisReading = 0; thisReading < numReadings; thisReading++) {
+    readings[thisReading] = 0;
+  }  
+}
 
-*LED*
-I'm adding the LED because it's nice to be able to get feedback. And it's a very nice LED! One leg to a PWM pin, one to GND
+void loop() {
 
-**Sketching a design**
+  // subtract the last reading:
+  total = total - readings[readIndex];
+  
+  // read from the sensor:
+  readings[readIndex] = cs_3_4.capacitiveSensor(30);
+  
+  // add the reading to the total:
+  total = total + readings[readIndex];
+  
+  // advance to the next position in the array:
+  readIndex = readIndex + 1;
 
+  // if we're at the end of the array...wrap around to the beginning
+  if (readIndex >= numReadings) {
+    readIndex = 0;
+  }
 
+  // calculate the average:
+  average = total / numReadings;
+  
+  // send it to the computer as ASCII digits
+//  Serial.println(average);  // if using Arduino serial
+  serial.println(average);       // if using FTDI cable and attiny
 
-##Building another analog circuit
+  delay(10); // arbitrary delay to limit data to serial port
+}
 
-Here are my Kroner! Sitting on a paper circuit sketch. I collected some very nice leather samples from the lab for making swatches now that I know my rolling pin is a leather wheel :) The basic swatch consists of a a conductive trace to VCC, a resistive trace going to a pin that can do an analogRead, and connected to GND via a pulldown resistor. The Kroner is the wiper hand that connects the two traces at a position you can adjust by sliding it along the traces. 
+```
+*Code using Software Serial, an ATtiny and capacitive sensing*
 
-![](../images/wk05_kronerschematic.jpg)*Does this count as a schematic? ;) Loes Bogers, 2019*
+<iframe width="560" height="315" src="https://www.youtube.com/embed/-kNWvzDM0sc?rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
-###Using Arduino Uno
+*The readings coming in, plotted to the serial plotter, Loes Bogers, 2019*
 
+<iframe width="560" height="315" src="https://www.youtube.com/embed/dIWBhHkzgtQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
+*The capsensing rock fading an LED, Loes Bogers, 2019*
 
 ```
-CODE CODE CODE
+
+//https://www.instructables.com/id/Capacitive-Sensing-for-Dummies/
+//https://www.arduino.cc/en/Tutorial/Smoothing
+
+#include <CapacitiveSensor.h>
+
+#include <SoftwareSerial.h>   when using ATtiny and FTDI cable
+
+#define rxPin 1   //    if using FTDI cable and attiny > connect to TX of other device
+#define txPin 2   //  if using FTDI cable and attiny  > connect to RX of other device
+SoftwareSerial serial(rxPin, txPin);  //if using FTDI cable and attiny
+
+//send at pin 4, receive at pin 3, 1-10M ohm resistor between
+CapacitiveSensor cs_3_4 = CapacitiveSensor(3, 4); // 1-10 megohm resistor between pins 4 & 3, pin 3 is sensor pin, add wire, foil
+
+const int numReadings = 10;     // size of array/number of readings to keep track of (higher = slower)
+int readings[numReadings];      // the readings from the analog input
+int readIndex = 0;              // the index of the current reading
+int total = 0;                  // the running total
+int average = 0;                // the average
+int brightness = 0;              // initialize delay time at 0
+
+void setup() {
+
+  // initialize serial communication with computer:
+//  Serial.begin(9600);           //start serial communication via USB cable
+  serial.begin(115200);       //if using FTDI cable and attiny
+
+  pinMode(0, OUTPUT); //add LED and 330ohm resistor on pin 1 (PWM pin)
+
+  cs_3_4.set_CS_AutocaL_Millis(0xFFFFFFFF); // turn off autocalibrate on channel 1 - just as an example Serial.begin(9600);
+
+  //initatialize readings array setting all values to 0
+  for (int thisReading = 0; thisReading < numReadings; thisReading++) {
+    readings[thisReading] = 0;
+  }  
+}
+
+void loop() {
+
+  // subtract the last reading:
+  total = total - readings[readIndex];
+  
+  // read from the sensor:
+  readings[readIndex] = cs_3_4.capacitiveSensor(30);
+  
+  // add the reading to the total:
+  total = total + readings[readIndex];
+  
+  // advance to the next position in the array:
+  readIndex = readIndex + 1;
+
+  // if we're at the end of the array...wrap around to the beginning
+  if (readIndex >= numReadings) {
+    readIndex = 0;
+  }
+
+  // calculate the average:
+  average = total / numReadings;
+  
+  // send it to the computer as ASCII digits
+//  Serial.println(average);  // if using Arduino serial
+  serial.println(average);       // if using FTDI cable and attiny
+
+  brightness = constrain(average, 0, 700);
+  brightness = map(brightness,0, 700, 0, 255); //map value range to PWM range
+  analogWrite(0, brightness);
+
+  delay(10); // arbitrary delay to limit data to serial port
+}
 
 ```
+*Code to fade a LED with the crystal capacitor, ATtiny85 and Software Serial, Loes Bogers, 2019*
+
+**Preparing an integrated swatch**
+
+I had to change the schematic and code a little bit when I added the LED to the circuit, because I had no PWM pins left to put it on so had to move stuff around. I moved the TX pin from pin 0 to pin 2 so I could free up pin 0 for the LED to fade. Pin 3 and 4 stay there because I need ADC for analogReads of the capacitive sensor.
+
+To be clear, the schematic above was changed a little. With the code above (that has the LED in it as well), THIS is the circuit for it: 
+
+![..](../images/wk10_schematic_swatch.jpg)*The updated schematic that works with the code posted above (RX pin moved from pin 0 to pin 2, LED pin on pin 0), Loes Bogers, 2019*
+
+**Hard-soft connections for IC and power pads**
+
+Then I went on to prepare the hard-soft connections a little bit. I had issues with the power supply and IC before, they seem to be the hardest to get right. I wanted to add bigger connector pads for my alligator clips to power the swatch and hand cut them from some conductive textile with heat 'n bond, there were plenty of leftovers to do this with. 
+
+![](../images/wk10_solderingleads.jpg)*Preparing the power connectors by adding a bit of solder to the textile and thread first, Loes Bogers, 2019*
+
+For the IC, I thought I could maybe work with the crimp beads I found. They're basically small metal cylinders that you can squeeze shut with plyers. I prepared the IC socket by pusing it through the neoprene and putting some solder on the legs, then I put some solder on the crimp beads, and finally I soldered the crimp beads to the legs. What a figdety job, but it worked. The beads are a bit wider than the distance between the legs but since the Attiny85 has only 8 legs, you can bend the legs outward to make sure they don't touch. 
+
+<iframe width="560" height="315" src="https://www.youtube.com/embed/9H7R-O76xE0?rel=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
-###Using an ATtiny85 DIP
+*Designing the swatch*
 
+I drew a basic layout of the design, of where the components would be, and how the traces might run, but basically freehanded the rest. I used a beautiful black and gold conductive wire. It's gorgeous, but also breaks easily. The metal strands snap easily when you pull at it. So this only really works nicely with the right size needle and a fabric that is a bit more loosely woven of perforated, it's just too easy to snap the conductive strands of the wire leaving your traces broken. Gorgeous though. I did switch o stainless steel for the black diamond part of the circuit, partially because I was fed up and partially because I wanted to know if it was easier to connect to the IC/crimpbead-connectors. Definitely easier. 
 
-###Planning the connections: Analog sensor
+![](../images/wk10_swatchcollage.jpg)*From schematic to swatch, Loes Bogers, 2019*
 
-**Schematic**
+Then I thoroughly checked all connections, which seemed in order. In the video below you will see slightly different behavior compared to the test with the breadboard. That's because originally the diamond was two rocks attached to each other but one broke off in the process of stitching the swatch. That 50% of the surface gone, so the circuit is a little less sensitive and needs to be recalibrated to be optimized again. But everything seems right and it works!
 
-**Design**
+<iframe width="560" height="315" src="https://www.youtube.com/embed/7gEK2OXGa2U?rel=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
-**Hard-soft connections**
+*Swatch with a conductive alum crystal as capacitive touch sensor, fading an LED, Loes Bogers, 2019*
diff --git a/docs/assignments/week10.md b/docs/assignments/week10.md
index 7ba467f429af09cf4446aa228d8746e736780f9a..649bef9e1409bf3218796e243402eccbf83b3418 100644
--- a/docs/assignments/week10.md
+++ b/docs/assignments/week10.md
@@ -1,7 +1,5 @@
 # 10. E-Textiles and Wearables II
 
-![](../images/wk10_blackdiamondswatch1.jpg)*A capacative sensing swatch with a black conductive alum crystal I grew in week 9, Loes Bogers, 2019*
-
 ![](../images/wk10_heatpad1.jpg)*Lookit! My heating pad powered with a 9V battery, transistor controlled by an ATtiny (details below), Loes Bogers, 2019*
 
 <iframe width="560" height="315" src="https://www.youtube.com/embed/IrJuISsyTz4?rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
@@ -12,12 +10,6 @@
 
 * I made four coils that an be used as speaker coils or as heating pad, and controlled them with an Attiny85, both in a speaker circuit and as a heating pad
 * I made some swatches that I dyed with thermochromic pigments
-* I worked out the Soft Serial communication to read an analog sensor with an FTDI cable (I'd done this before)
-* I finished a project I started in week 5 and made it work: a choker with a digital switch made of a bikini clip, an LED and a buzzer, controlled by an ATtiny. The documentation to that is under [week 5](https://class.textile-academy.org/2020/loes.bogers/assignments/week05/).
-
-<iframe width="560" height="315" src="https://www.youtube.com/embed/4F35IlK6YNA?rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
-
-*A choker with an alarm that sounds when you take it off (see week 5 for process), Loes Bogers, 2019*
 
 For the week I decided to make a number of coils that I could use both as a speaker and as a heating pad. Even the code turned out to be exactly the same which was really interesting to realise :) Simple principles with 1001 applications, that's beauty right there. I loved going into the bare bones of the physics of electronics this week, I think this is how electronics should be taught to anyone, so we can understand how material properties and laws of physics interact and how you can bend them a little to achieve interesting results and expressions.
 
@@ -284,209 +276,6 @@ void loop() {
 
 <iframe width="560" height="315" src="https://www.youtube.com/embed/o_JofkgazBo?rel=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 
-##FTDI cable and soft serial for Attiny
-
-Attiny cannot just write to the serial the way an Arduino UNO can, it doesn't have UART. But you can designate any 2 pins as RX (receive) and TX (transmit), and connect an FTDI cable to it. I have a [TTL-232R-5V cable from Farnell](https://www.googleadservices.com/pagead/aclk?sa=L&ai=DChcSEwiCmuXgqpnmAhVP4ncKHTL1B7YYABAAGgJlZg&ohost=www.google.com&cid=CAESQOD2tiG4wFpIijcjbezQf1TpzpW1UCDQloiGTyGls9IPkhgoEnmkyQ_3yWNKi0BYGwm9PdE3MAOL8ymX8S-DY-g&sig=AOD64_3_4kluOTjbSLdEXpBf9BiWpR2YdA&q=&ved=2ahUKEwjTlN7gqpnmAhXDL1AKHciGBtoQ0Qx6BAgZEAE&adurl=&bg=!IiGlITlYQkx731BU_RYCAAAATlIAAAAHCgBLX5I5nWbc1Yk7OzAUaVk9k_alV6ix5mAy9MtC7Ehnd6I79c8HYezbERdSkLG-8JsFcShX-34-URsr1GAowkWwlcDgpFFRVv0HcqyjmQDeYa6y6FITxcZqpVNaRGU-uuHgk8nAmap84jBasw1ghuJaMcdNH4TS4KtIrhP7i1kuTfGqf54QrvnAye8zZFdaIR0cEesxMixzabPfsNB9jsZD5D7i8r1cCjEXvv1IOtp4VXpLgD2fIlQfUHtP2_7vAfejJvv_MfgpwEGdIJyAhEeT6Cm9CP2sl6XOouIfUOjDkYyuBk9nKiIr5hjRuAVqpA0ABmEKS3Y56tB-uJ3a1ih4D_0UcJ-hiyynolf5JcPi1Q1U83_9I7XcMcHXX_kyLIfD6oh6Ef57Ha4aZmGw) (also comes in a 3.3V version which is nice for wearables). You have to install a bunch of drivers to use them, which can be a bit of a pain but I already have them installed. You can find the [drivers here] (https://www.ftdichip.com/Products/Cables/USBTTLSerial.htm). If you're not sure you can check whether the drivers are installed by plugging in the FTDI cable and checking under \> Ports in Arduino IDE to see if another serial port shows up. Which it did! 
-
-![](../images/wk10_driveinstall_check.jpg)*Seeing if the cable shows up, if it does you already have the necessary drivers, Loes Bogers, 2019*
-
-Then you can use the Software Serial library in the Arduino sketch by adding ``` #include <SoftwareSerial.h>  ``` at the top of the sketch. You can write to the serial using similar commands, just not capitalized like you normally would. 
-
-```serial.begin(baudrate);```
-```serial.println(values);```
-
-**Connecting the FTDI cable to a circuit**
-
-I just used the FTDI cable for calibrating in the prototype stage, so it sufficed to connect it with some jumpers and a bread board. Note: TX is always connected to the RX of another device, and RX to TX.
- 
-* VCC to VCC
-* GND to GND
-* TX to the pin designated as RX in the ATtiny code!
-* RX to the pin designated as TX in the ATtiny code!
-
-![](../images/wk10_ftdicable_schematic.jpg)*How I wired up the FTDI cable to a circuit with a capacative touch sensor and an attiny, Loes Bogers, 2019*
-
-I set up the serial connection for an analog input swatch I still had to make for week 5. 
-
-```
-//https://www.instructables.com/id/Capacitive-Sensing-for-Dummies/
-//https://www.arduino.cc/en/Tutorial/Smoothing
-
-#include <CapacitiveSensor.h>
-
-#include <SoftwareSerial.h>   when using ATtiny and FTDI cable
-
-#define rxPin 1   //    if using FTDI cable and attiny > connect to TX of other device
-#define txPin 0   //  if using FTDI cable and attiny  > connect to RX of other device
-SoftwareSerial serial(rxPin, txPin);  //if using FTDI cable and attiny
-
-//send at pin 4, receive at pin 3, 1-10M ohm resistor between
-CapacitiveSensor cs_3_4 = CapacitiveSensor(3, 4); // 1-10 megohm resistor between pins 4 & 3, pin 3 is sensor pin, add wire, foil
-
-const int numReadings = 10;     // size of array/number of readings to keep track of (higher = slower)
-int readings[numReadings];      // the readings from the analog input
-int readIndex = 0;              // the index of the current reading
-int total = 0;                  // the running total
-int average = 0;                // the average
-
-void setup() {
-
-  // initialize serial communication with computer:
-//  Serial.begin(9600);           //start serial communication via USB cable
-  serial.begin(115200);       //if using FTDI cable and attiny
-
-  cs_3_4.set_CS_AutocaL_Millis(0xFFFFFFFF); // turn off autocalibrate on channel 1 - just as an example Serial.begin(9600);
-
-  //initatialize readings array setting all values to 0
-  for (int thisReading = 0; thisReading < numReadings; thisReading++) {
-    readings[thisReading] = 0;
-  }  
-}
-
-void loop() {
-
-  // subtract the last reading:
-  total = total - readings[readIndex];
-  
-  // read from the sensor:
-  readings[readIndex] = cs_3_4.capacitiveSensor(30);
-  
-  // add the reading to the total:
-  total = total + readings[readIndex];
-  
-  // advance to the next position in the array:
-  readIndex = readIndex + 1;
-
-  // if we're at the end of the array...wrap around to the beginning
-  if (readIndex >= numReadings) {
-    readIndex = 0;
-  }
-
-  // calculate the average:
-  average = total / numReadings;
-  
-  // send it to the computer as ASCII digits
-//  Serial.println(average);  // if using Arduino serial
-  serial.println(average);       // if using FTDI cable and attiny
-
-  delay(10); // arbitrary delay to limit data to serial port
-}
-
-```
-*Code using Software Serial, an ATtiny and capacitive sensing*
-
-<iframe width="560" height="315" src="https://www.youtube.com/embed/-kNWvzDM0sc?rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
-
-*The readings coming in, plotted to the serial plotter, Loes Bogers, 2019*
-
-<iframe width="560" height="315" src="https://www.youtube.com/embed/dIWBhHkzgtQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
-
-*The capsensing rock fading an LED, Loes Bogers, 2019*
-
-```
-
-//https://www.instructables.com/id/Capacitive-Sensing-for-Dummies/
-//https://www.arduino.cc/en/Tutorial/Smoothing
-
-#include <CapacitiveSensor.h>
-
-#include <SoftwareSerial.h>   when using ATtiny and FTDI cable
-
-#define rxPin 1   //    if using FTDI cable and attiny > connect to TX of other device
-#define txPin 2   //  if using FTDI cable and attiny  > connect to RX of other device
-SoftwareSerial serial(rxPin, txPin);  //if using FTDI cable and attiny
-
-//send at pin 4, receive at pin 3, 1-10M ohm resistor between
-CapacitiveSensor cs_3_4 = CapacitiveSensor(3, 4); // 1-10 megohm resistor between pins 4 & 3, pin 3 is sensor pin, add wire, foil
-
-const int numReadings = 10;     // size of array/number of readings to keep track of (higher = slower)
-int readings[numReadings];      // the readings from the analog input
-int readIndex = 0;              // the index of the current reading
-int total = 0;                  // the running total
-int average = 0;                // the average
-int brightness = 0;              // initialize delay time at 0
-
-void setup() {
-
-  // initialize serial communication with computer:
-//  Serial.begin(9600);           //start serial communication via USB cable
-  serial.begin(115200);       //if using FTDI cable and attiny
-
-  pinMode(0, OUTPUT); //add LED and 330ohm resistor on pin 1 (PWM pin)
-
-  cs_3_4.set_CS_AutocaL_Millis(0xFFFFFFFF); // turn off autocalibrate on channel 1 - just as an example Serial.begin(9600);
-
-  //initatialize readings array setting all values to 0
-  for (int thisReading = 0; thisReading < numReadings; thisReading++) {
-    readings[thisReading] = 0;
-  }  
-}
-
-void loop() {
-
-  // subtract the last reading:
-  total = total - readings[readIndex];
-  
-  // read from the sensor:
-  readings[readIndex] = cs_3_4.capacitiveSensor(30);
-  
-  // add the reading to the total:
-  total = total + readings[readIndex];
-  
-  // advance to the next position in the array:
-  readIndex = readIndex + 1;
-
-  // if we're at the end of the array...wrap around to the beginning
-  if (readIndex >= numReadings) {
-    readIndex = 0;
-  }
-
-  // calculate the average:
-  average = total / numReadings;
-  
-  // send it to the computer as ASCII digits
-//  Serial.println(average);  // if using Arduino serial
-  serial.println(average);       // if using FTDI cable and attiny
-
-  brightness = constrain(average, 0, 700);
-  brightness = map(brightness,0, 700, 0, 255); //map value range to PWM range
-  analogWrite(0, brightness);
-
-  delay(10); // arbitrary delay to limit data to serial port
-}
-
-```
-*Code to fade a LED with the crystal capacitor, ATtiny85 and Software Serial, Loes Bogers, 2019*
-
-**Preparing an integrated swatch**
-
-I had to change the schematic and code a little bit when I added the LED to the circuit, because I had no PWM pins left to put it on so had to move stuff around. I moved the TX pin from pin 0 to pin 2 so I could free up pin 0 for the LED to fade. Pin 3 and 4 stay there because I need ADC for analogReads of the capacitive sensor.
-
-To be clear, the schematic above was changed a little. With the code above (that has the LED in it as well), THIS is the circuit for it: 
-
-![..](../images/wk10_schematic_swatch.jpg)*The updated schematic that works with the code posted above (RX pin moved from pin 0 to pin 2, LED pin on pin 0), Loes Bogers, 2019*
-
-**Hard-soft connections for IC and power pads**
-
-Then I went on to prepare the hard-soft connections a little bit. I had issues with the power supply and IC before, they seem to be the hardest to get right. I wanted to add bigger connector pads for my alligator clips to power the swatch and hand cut them from some conductive textile with heat 'n bond, there were plenty of leftovers to do this with. 
-
-![](../images/wk10_solderingleads.jpg)*Preparing the power connectors by adding a bit of solder to the textile and thread first, Loes Bogers, 2019*
-
-For the IC, I thought I could maybe work with the crimp beads I found. They're basically small metal cylinders that you can squeeze shut with plyers. I prepared the IC socket by pusing it through the neoprene and putting some solder on the legs, then I put some solder on the crimp beads, and finally I soldered the crimp beads to the legs. What a figdety job, but it worked. The beads are a bit wider than the distance between the legs but since the Attiny85 has only 8 legs, you can bend the legs outward to make sure they don't touch. 
-
-<iframe width="560" height="315" src="https://www.youtube.com/embed/9H7R-O76xE0?rel=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
-
-*Designing the swatch*
-
-I drew a basic layout of the design, of where the components would be, and how the traces might run, but basically freehanded the rest. I used a beautiful black and gold conductive wire. It's gorgeous, but also breaks easily. The metal strands snap easily when you pull at it. So this only really works nicely with the right size needle and a fabric that is a bit more loosely woven of perforated, it's just too easy to snap the conductive strands of the wire leaving your traces broken. Gorgeous though. I did switch o stainless steel for the black diamond part of the circuit, partially because I was fed up and partially because I wanted to know if it was easier to connect to the IC/crimpbead-connectors. Definitely easier. 
-
-![](../images/wk10_swatchcollage.jpg)*From schematic to swatch, Loes Bogers, 2019*
-
-Then I thoroughly checked all connections, which seemed in order. In the video below you will see slightly different behavior compared to the test with the breadboard. That's because originally the diamond was two rocks attached to each other but one broke off in the process of stitching the swatch. That 50% of the surface gone, so the circuit is a little less sensitive and needs to be recalibrated to be optimized again. But everything seems right and it works!
-
-<iframe width="560" height="315" src="https://www.youtube.com/embed/7gEK2OXGa2U?rel=0&amp;showinfo=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
-
-*Swatch with a conductive alum crystal as capacitive touch sensor, fading an LED, Loes Bogers, 2019*
 
 ## References for further reading
 
diff --git a/docs/assignments/week13.md b/docs/assignments/week13.md
index 02a10017d4d10f6b549b8bfe1298f3e5d4e73f43..8c1086eb284c4ab89f2c819ff01a3f337cfee2fa 100644
--- a/docs/assignments/week13.md
+++ b/docs/assignments/week13.md
@@ -92,7 +92,7 @@ What is important is that each GND and 5V pad will have two wires attached (one
 
 *RGB colors?*
 
-I refreshed my knowledge of making colors with an RGB LED here. To freshen up my memory :) Then I went and found some nice code for a fading LED using a sine wave (that's a very nice way of fading I think, very elegant solution lol) and found [this code here](https://codebender.cc/sketch:136737#NeoPixel%20Breathe.ino) by Jason Yandell. Thanks Jason! I changed the color and defined a nice range for the speed of the breathing, that I want to control by touching (or nearly touching) the conductive crystal.
+I refreshed my knowledge of making colors with an RGB LED. [This tutorial](https://learn.adafruit.com/adafruit-arduino-lesson-3-rgb-leds/using-internet-colors) explains how to pick a color and then recreate it with an RGB LED. Then I went and found some nice code for a fading LED using a sine wave (that's a very nice way of fading I think, very elegant solution lol) and found [this code here](https://codebender.cc/sketch:136737#NeoPixel%20Breathe.ino) by Jason Yandell. Thanks Jason! I changed the color and defined a nice range for the speed of the breathing, that I want to control by touching (or nearly touching) the conductive crystal.
 
 ```
 //Written by: Jason Yandell
@@ -145,13 +145,450 @@ delay(StepDelay);
 }
 
 ```
-So that worked out very beautifully! I had a little bit of a harder time using an analog sensor to control this code though. So that will take some more work. But right now it's christmas. Enjoy the lights :D 
 
 <iframe src="https://giphy.com/embed/jro8mAq9OXjxpuZP4m" width="480" height="270" frameBorder="0" class="giphy-embed" allowFullScreen></iframe>
 
 *Shine shine shining on, Loes Bogers, 2019*
 
 
+**More control over the neopixels**
+
+So that worked out very beautifully! I had a little bit of a harder time using an analog sensor to control this code though. So that will take some more work but I'm entering an area I would like to get a little better at so let's drill down. Browsing some forums got me some good insights: 
+
+>You, like every other NeoPixel newbie, have discovered that the Adafruit examples are blocking code. They simply run the Led patterns from start to finish without regard for anything else that you'd like to do at the same time. Makes sense because their purpose is to demonstrate the capabilities of the Led strips and how to use the NeoPixel library. They're really not meant for integration into larger projects.
+
+>To do other things at the same time you'll need to "unwind" the loops and learn to do timing with the millis() function instead of delays. [Adafruit](https://learn.adafruit.com/multi-tasking-the-arduino-part-3?view=all) has a tutorial showing one (but not the only) way of doing this. 
+>
+> – [gfvalvo on the Arduino forum](https://forum.arduino.cc/index.php?topic=574421.0)
+
+So I followed the link to find out that it is a lovely tutorial telling me I'm not the only one with these questions (yay!)
+
+> So how do you get it to pay attention to external inputs while generating all those mezmerizing pixel patterns? Some of the most common Neopixel questions in the Adafruit forums are:
+
+> * How can I make my Neopixel project respond reliably to button presses?
+> * How can I run two (or more) different Neopixel patterns at the same time?
+> * How can I make my Arduino do other things while my Neopixel pattern is running?
+
+> In this guide, we’ll look at some ways to structure your Neopixel code to keep it responsive and make it more amenable to multitasking.
+
+> The Update function can be called from your loop() or a timer interrupt and you can update many patterns simultaneously on each pass, while monitoring user interactions at the same time.
+
+Excellent, this is exactly what I was looking for. The tutorial by Bill Earl suggests to work with millis() instead of delays() and not work within one loop but use the Update() function instead. It requires a bit of C++ code, which I always find a bit confusing so it's supernice to have it spelled out like this for better understanding. I'm sure I'm not the only learning struggling to take this hurdle :D The full code is pretty complete and gives a lot of options I probably won't use but instead scale down and use only a few of the functions and adapt them to my setup. 
+
+Before running this code, make sure to install the neopixel library. [This tutorial](https://www.ardu-badge.com/NeoPatterns) explains how. 
+
+```
+#include <Adafruit_NeoPixel.h>
+
+// Pattern types supported:
+enum  pattern { NONE, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE };
+// Patern directions supported:
+enum  direction { FORWARD, REVERSE };
+
+// NeoPattern Class - derived from the Adafruit_NeoPixel class
+class NeoPatterns : public Adafruit_NeoPixel
+{
+    public:
+
+    // Member Variables:  
+    pattern  ActivePattern;  // which pattern is running
+    direction Direction;     // direction to run the pattern
+    
+    unsigned long Interval;   // milliseconds between updates
+    unsigned long lastUpdate; // last update of position
+    
+    uint32_t Color1, Color2;  // What colors are in use
+    uint16_t TotalSteps;  // total number of steps in the pattern
+    uint16_t Index;  // current step within the pattern
+    
+    void (*OnComplete)();  // Callback on completion of pattern
+    
+    // Constructor - calls base-class constructor to initialize strip
+    NeoPatterns(uint16_t pixels, uint8_t pin, uint8_t type, void (*callback)())
+    :Adafruit_NeoPixel(pixels, pin, type)
+    {
+        OnComplete = callback;
+    }
+    
+    // Update the pattern
+    void Update()
+    {
+        if((millis() - lastUpdate) > Interval) // time to update
+        {
+            lastUpdate = millis();
+            switch(ActivePattern)
+            {
+                case RAINBOW_CYCLE:
+                    RainbowCycleUpdate();
+                    break;
+                case THEATER_CHASE:
+                    TheaterChaseUpdate();
+                    break;
+                case COLOR_WIPE:
+                    ColorWipeUpdate();
+                    break;
+                case SCANNER:
+                    ScannerUpdate();
+                    break;
+                case FADE:
+                    FadeUpdate();
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+  
+    // Increment the Index and reset at the end
+    void Increment()
+    {
+        if (Direction == FORWARD)
+        {
+           Index++;
+           if (Index >= TotalSteps)
+            {
+                Index = 0;
+                if (OnComplete != NULL)
+                {
+                    OnComplete(); // call the comlpetion callback
+                }
+            }
+        }
+        else // Direction == REVERSE
+        {
+            --Index;
+            if (Index <= 0)
+            {
+                Index = TotalSteps-1;
+                if (OnComplete != NULL)
+                {
+                    OnComplete(); // call the comlpetion callback
+                }
+            }
+        }
+    }
+    
+    // Reverse pattern direction
+    void Reverse()
+    {
+        if (Direction == FORWARD)
+        {
+            Direction = REVERSE;
+            Index = TotalSteps-1;
+        }
+        else
+        {
+            Direction = FORWARD;
+            Index = 0;
+        }
+    }
+    
+    // Initialize for a RainbowCycle
+    void RainbowCycle(uint8_t interval, direction dir = FORWARD)
+    {
+        ActivePattern = RAINBOW_CYCLE;
+        Interval = interval;
+        TotalSteps = 255;
+        Index = 0;
+        Direction = dir;
+    }
+    
+    // Update the Rainbow Cycle Pattern
+    void RainbowCycleUpdate()
+    {
+        for(int i=0; i< numPixels(); i++)
+        {
+            setPixelColor(i, Wheel(((i * 256 / numPixels()) + Index) & 255));
+        }
+        show();
+        Increment();
+    }
+
+    // Initialize for a Theater Chase
+    void TheaterChase(uint32_t color1, uint32_t color2, uint8_t interval, direction dir = FORWARD)
+    {
+        ActivePattern = THEATER_CHASE;
+        Interval = interval;
+        TotalSteps = numPixels();
+        Color1 = color1;
+        Color2 = color2;
+        Index = 0;
+        Direction = dir;
+   }
+    
+    // Update the Theater Chase Pattern
+    void TheaterChaseUpdate()
+    {
+        for(int i=0; i< numPixels(); i++)
+        {
+            if ((i + Index) % 3 == 0)
+            {
+                setPixelColor(i, Color1);
+            }
+            else
+            {
+                setPixelColor(i, Color2);
+            }
+        }
+        show();
+        Increment();
+    }
+
+    // Initialize for a ColorWipe
+    void ColorWipe(uint32_t color, uint8_t interval, direction dir = FORWARD)
+    {
+        ActivePattern = COLOR_WIPE;
+        Interval = interval;
+        TotalSteps = numPixels();
+        Color1 = color;
+        Index = 0;
+        Direction = dir;
+    }
+    
+    // Update the Color Wipe Pattern
+    void ColorWipeUpdate()
+    {
+        setPixelColor(Index, Color1);
+        show();
+        Increment();
+    }
+    
+    // Initialize for a SCANNNER
+    void Scanner(uint32_t color1, uint8_t interval)
+    {
+        ActivePattern = SCANNER;
+        Interval = interval;
+        TotalSteps = (numPixels() - 1) * 2;
+        Color1 = color1;
+        Index = 0;
+    }
+
+    // Update the Scanner Pattern
+    void ScannerUpdate()
+    { 
+        for (int i = 0; i < numPixels(); i++)
+        {
+            if (i == Index)  // Scan Pixel to the right
+            {
+                 setPixelColor(i, Color1);
+            }
+            else if (i == TotalSteps - Index) // Scan Pixel to the left
+            {
+                 setPixelColor(i, Color1);
+            }
+            else // Fading tail
+            {
+                 setPixelColor(i, DimColor(getPixelColor(i)));
+            }
+        }
+        show();
+        Increment();
+    }
+    
+    // Initialize for a Fade
+    void Fade(uint32_t color1, uint32_t color2, uint16_t steps, uint8_t interval, direction dir = FORWARD)
+    {
+        ActivePattern = FADE;
+        Interval = interval;
+        TotalSteps = steps;
+        Color1 = color1;
+        Color2 = color2;
+        Index = 0;
+        Direction = dir;
+    }
+    
+    // Update the Fade Pattern
+    void FadeUpdate()
+    {
+        // Calculate linear interpolation between Color1 and Color2
+        // Optimise order of operations to minimize truncation error
+        uint8_t red = ((Red(Color1) * (TotalSteps - Index)) + (Red(Color2) * Index)) / TotalSteps;
+        uint8_t green = ((Green(Color1) * (TotalSteps - Index)) + (Green(Color2) * Index)) / TotalSteps;
+        uint8_t blue = ((Blue(Color1) * (TotalSteps - Index)) + (Blue(Color2) * Index)) / TotalSteps;
+        
+        ColorSet(Color(red, green, blue));
+        show();
+        Increment();
+    }
+   
+    // Calculate 50% dimmed version of a color (used by ScannerUpdate)
+    uint32_t DimColor(uint32_t color)
+    {
+        // Shift R, G and B components one bit to the right
+        uint32_t dimColor = Color(Red(color) >> 1, Green(color) >> 1, Blue(color) >> 1);
+        return dimColor;
+    }
+
+    // Set all pixels to a color (synchronously)
+    void ColorSet(uint32_t color)
+    {
+        for (int i = 0; i < numPixels(); i++)
+        {
+            setPixelColor(i, color);
+        }
+        show();
+    }
+
+    // Returns the Red component of a 32-bit color
+    uint8_t Red(uint32_t color)
+    {
+        return (color >> 16) & 0xFF;
+    }
+
+    // Returns the Green component of a 32-bit color
+    uint8_t Green(uint32_t color)
+    {
+        return (color >> 8) & 0xFF;
+    }
+
+    // Returns the Blue component of a 32-bit color
+    uint8_t Blue(uint32_t color)
+    {
+        return color & 0xFF;
+    }
+    
+    // Input a value 0 to 255 to get a color value.
+    // The colours are a transition r - g - b - back to r.
+    uint32_t Wheel(byte WheelPos)
+    {
+        WheelPos = 255 - WheelPos;
+        if(WheelPos < 85)
+        {
+            return Color(255 - WheelPos * 3, 0, WheelPos * 3);
+        }
+        else if(WheelPos < 170)
+        {
+            WheelPos -= 85;
+            return Color(0, WheelPos * 3, 255 - WheelPos * 3);
+        }
+        else
+        {
+            WheelPos -= 170;
+            return Color(WheelPos * 3, 255 - WheelPos * 3, 0);
+        }
+    }
+};
+
+void Ring1Complete();
+void Ring2Complete();
+void StickComplete();
+
+// Define some NeoPatterns for the two rings and the stick
+//  as well as some completion routines
+NeoPatterns Ring1(24, 5, NEO_GRB + NEO_KHZ800, &Ring1Complete);
+NeoPatterns Ring2(16, 6, NEO_GRB + NEO_KHZ800, &Ring2Complete);
+NeoPatterns Stick(16, 7, NEO_GRB + NEO_KHZ800, &StickComplete);
+
+// Initialize everything and prepare to start
+void setup()
+{
+  Serial.begin(115200);
+
+   pinMode(8, INPUT_PULLUP);
+   pinMode(9, INPUT_PULLUP);
+    
+    // Initialize all the pixelStrips
+    Ring1.begin();
+    Ring2.begin();
+    Stick.begin();
+    
+    // Kick off a pattern
+    Ring1.TheaterChase(Ring1.Color(255,255,0), Ring1.Color(0,0,50), 100);
+    Ring2.RainbowCycle(3);
+    Ring2.Color1 = Ring1.Color1;
+    Stick.Scanner(Ring1.Color(255,0,0), 55);
+}
+
+// Main loop
+void loop()
+{
+    // Update the rings.
+    Ring1.Update();
+    Ring2.Update();    
+    
+    // Switch patterns on a button press:
+    if (digitalRead(8) == LOW) // Button #1 pressed
+    {
+        // Switch Ring1 to FADE pattern
+        Ring1.ActivePattern = FADE;
+        Ring1.Interval = 20;
+        // Speed up the rainbow on Ring2
+        Ring2.Interval = 0;
+        // Set stick to all red
+        Stick.ColorSet(Stick.Color(255, 0, 0));
+    }
+    else if (digitalRead(9) == LOW) // Button #2 pressed
+    {
+        // Switch to alternating color wipes on Rings1 and 2
+        Ring1.ActivePattern = COLOR_WIPE;
+        Ring2.ActivePattern = COLOR_WIPE;
+        Ring2.TotalSteps = Ring2.numPixels();
+        // And update tbe stick
+        Stick.Update();
+    }
+    else // Back to normal operation
+    {
+        // Restore all pattern parameters to normal values
+        Ring1.ActivePattern = THEATER_CHASE;
+        Ring1.Interval = 100;
+        Ring2.ActivePattern = RAINBOW_CYCLE;
+        Ring2.TotalSteps = 255;
+        Ring2.Interval = min(10, Ring2.Interval);
+        // And update tbe stick
+        Stick.Update();
+    }    
+}
+
+//------------------------------------------------------------
+//Completion Routines - get called on completion of a pattern
+//------------------------------------------------------------
+
+// Ring1 Completion Callback
+void Ring1Complete()
+{
+    if (digitalRead(9) == LOW)  // Button #2 pressed
+    {
+        // Alternate color-wipe patterns with Ring2
+        Ring2.Interval = 40;
+        Ring1.Color1 = Ring1.Wheel(random(255));
+        Ring1.Interval = 20000;
+    }
+    else  // Retrn to normal
+    {
+      Ring1.Reverse();
+    }
+}
+
+// Ring 2 Completion Callback
+void Ring2Complete()
+{
+    if (digitalRead(9) == LOW)  // Button #2 pressed
+    {
+        // Alternate color-wipe patterns with Ring1
+        Ring1.Interval = 20;
+        Ring2.Color1 = Ring2.Wheel(random(255));
+        Ring2.Interval = 20000;
+    }
+    else  // Retrn to normal
+    {
+        Ring2.RainbowCycle(random(0,10));
+    }
+}
+
+// Stick Completion Callback
+void StickComplete()
+{
+    // Random color change for next scan
+    Stick.Color1 = Stick.Wheel(random(255));
+}
+
+```
+
+
+
+
+
+
 ###Making a color-changing second skin
 
 I already mentioned this project *Coral Love Stories *by Kasia Molga (with Erik Overmeire and Ricardo O'Nascimento). After having done a little work with thermochromic pigment in the last electronics week I thought this would be incredibly cool to explore a little further. Perhaps a little skin swatch is within reach here. 
diff --git a/docs/images/wk05_batteryfix.jpg b/docs/images/wk05_batteryfix.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fb52e34328620e7bc0de7cc9910a88941eabb3db
Binary files /dev/null and b/docs/images/wk05_batteryfix.jpg differ
diff --git a/docs/images/wk05_frontback.jpg b/docs/images/wk05_frontback.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..24a22bb414e0b00c9a56917c88ccc215e3f6c26d
Binary files /dev/null and b/docs/images/wk05_frontback.jpg differ
diff --git a/docs/images/wk05_tools_snap.jpg b/docs/images/wk05_tools_snap.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..892cfae084d04b3db7ef03b57b6d8e6e7e6ed184
Binary files /dev/null and b/docs/images/wk05_tools_snap.jpg differ
diff --git a/docs/images/wk05_working.jpg b/docs/images/wk05_working.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d16d710817a495b03693d73ed5b2fe0e2b96aab5
Binary files /dev/null and b/docs/images/wk05_working.jpg differ