Secret-Under-My-Skin is a performance that allows us to reflect on our natural necessity/desire to express our emotions, to share our innermost thoughts and to see them extended in the world. This project is sponsored by the Bundesamt fuer Kultur program Site/mapping. More information...

Monday, July 30, 2007

The Exhibition!





Above are the 'poster' and postcards of the exhibition...

Thursday, June 14, 2007

The components have arrived!



The components have arrived today! As you can see I've taken the time to organise the components. Now you just need to come and solder everything together!

Wednesday, June 13, 2007

Progress Report 008



Progress, PROGRESS!

As you can see from the photograph, I've now separated the transmitter (top) and receiver (bottom) circuits on two separate boards. Each circuit is running on two 9V batteries but my next task is to have it run on one 9V. Additionally the receiver is now relaying the received signal to the M32. I've used two M32's in this case just to make a quick test: the signal from the receiver circuit grounds a pin on the first M32 which in turns outputs HIGH on another pin connected to the second M32. The second M32 translates the signals into Morse code and displays it on the LCD. We won't actually be needing two M32's as the first M32 will be replaced by an inverter plus noise filter circuit in the next step.

So this is good news because the new battery-powered transmitter/receiver is now working with the old Morse code program! Of course, there's still some issues with noise, sensitivity and the need to isolate the circuit from the body: it's a matter of making it perfect now!



Transferred Message: AT YOUR SERVICE

Tuesday, June 5, 2007

Progress Report 007




Okay, so I have been lazy for quite some time but finally here is a post that is worth the 1 month pause!

Transmitter and Receiver are now working entirely on batteries and WITHOUT A COMMON GROUND!

I won't go into the technical details but there are still many things to perfect before this will work flawlessly. (No, we won't be using those two big racing car batteries to power the op-amp! I just ran out of 9V batteries to test) Nonetheless I think we have gotten over one of our biggest obstacles!

To convince you, Valerie, I've included a photograph and a video of the prototype. You can see that the transmitter is on the right and the receiver is on the left. There's no physical connection between the two circuits. The only contact points are the two electrodes in the middle; when a connection is made between these two points the led on the receiver will light up!

Sunday, April 22, 2007

Progress Report 006



What a shame! It's been one month since the last progress report (thank goodness Valerie you've been quite busy yourself, otherwise you would have noticed my laziness and fired me)! In any case, there's some good news in this report as I've managed to re-designed the led display circuit and re-written the program. So what's the difference from the old circuit/code?

In the old circuit/code each led was connected individually to a single output pin of a shift register. The advantages were:

1) The program was very simple: shift in the data with one data line
2) 'Scrolling' effect was by default accomplished with the shift registers
3) No need to store the entire message in the M32 (the shift registers stored the data)
4) No need to receive the entire message before displaying it
5) No need to continously refresh the display

But the disadvantages became clear when I tried to make the final circuit for the shift registers: there were too many wires and shift registers! For a 10-letter display (250 led's) the circuit had 250 output wires and 32 shift registers!

So the circuit/code was re-designed today and now it functions by addressing each row of the display and having one shift register for each letter. Because there's only one shift register for each letter, the IC (we will use surface mount) can actually be physically next to the led's, so no need to stretch long wires to put the shift registers somewhere else. The advantages are clear: for a 10-letter display (250 led's) the circuit has 19 wires (10 data-lines [one for each letter], 5 wires for the rows, plus 4 wires for power/ground/clock/output-enable) and 10 shift registers! In the photo you can see the wires and the single shift regsiter (I only have one letter, but each additional letter means only adding one shift register and one wire for data). Much simpler, no?

The disadvantages are that the M32 needs to store the entire message in memory, and it also needs to continously refresh the display. It is also difficult to do the 'column-scrolling' effect, so there will instead be a 'letter-scrolling' effect (which I think is an acceptable compromise).

Please take a look at the video to see everything working! In the video I touch two electrodes, connected to two different M32's, to transfer the message. Notice that the entire message transmits quite quickly (< 1s).

Now the next step is to add at least 2 more letters to the display so I can test the letter scrolling. I will also improve the program so that it can periodically listen for new messages being sent to it. Finally I will make the display work with the morse code program. It's going to work very well!



Transferred Message: ENJOY YOUR TRIP

Order! Order!



The past two weeks were hectic, with little progress and some general disorder. But finally the desk is clean and productivity is back to normal!

Sunday, April 1, 2007

Don't let it get out of control!



My desk is getting messy, parts are getting mixed up and cables tangled! The past two weeks were a bit chaotic, with inconsistent progress and things becoming a bit out of control. I can't let it get worse, so tomorrow my priority is to clean up the desk, reorganise all the cables and take out the trash (empty boxes are stacking up). I will also replace temporary 'twisted wires' on the prototype test circuits with proper clips and actual soldering.

Despite the mess this weekend I managed to work on the shift register board but encountered problems with limited space. I've ordered some thinner wires (yes Valerie I do listen to your sensible suggestions) and I hope it will be the solution. But before the wires arrive, I'll have to put the shift register board on hold. Which to be honest is a bit of a relief since I've been at this for several weeks without significant progress...

So this upcoming week I will try to find time to solder in the transceivers on to the M32's and start playing with them! Another important task is to clean-up the wiring on the M32 with the LCD display + morse code program, that way I can take the board to work and try the skin transmission with another person (I'm a bit worried whether we will get a strong enough signal).

Monday, March 26, 2007

It must be my birthday today...



We're not in January but it must be my birthday today; I received two packages at the same time this evening! Here are the contents:

2 x 433MR Antenna
2 x Easy Radio Transceiver
1 x M32 Development Board
2 x 7.2V 3900mAh NiMH Battery Pack
1 x Battery Slow Charger

and

1 x The Art of Electronics (2nd Edition)

So many nice things to play with and a heavy book to study. Now it's time to work very hard.

Sunday, March 25, 2007

Morse Code 2



Okay, the same morse code program but now using skin contact to create the signals!

Morse Code



The morse code program works but as you can see in the video it takes a bit of time just to enter one word. The problem is that you have to wait each time before the letter appears...

Transferred Message: CHOCOLATE

Monday, March 19, 2007

Package contains: Chocolates and Toys



Came back home from a tiring day at work and I was greeted by a friendly package with the following contents!

35 x HCF4094 Shift Registers
50 x IC Sockets
1 x LCD Display
1 x Flat cable
1 x Cable connector male
5 x Cable connectors female
2 x Prototyping board
5 x Pin connectors
2 x Lindt Lindor chocolates
1 x Postcard from Barcelona

What more can one ask for in life?

Sunday, March 18, 2007

Progress Report 005



Made great progress this weekend!

I added the LCD display to the keyboard setup, now you can see what you are typing before you send it! I've also implemented the 'backspace' function so you can erase your mistakes. Something worth mentioning is that when you type, the characters appear from the right-side of the LCD display and shift to the left. It's set up this way because it made the program simpler: each key you type is added to the right-most position and everything is shifted to the left. Whereas if the characters start from the left-side I would have to move the 'cursor' to the right each time, until it is at the last position where additional characters would then start shifting everything to the left. Anyhow, if it really bothers you to have the characters start from the right, it can be changed; I just chose the fastest way for now.

In addition I've corrected the bug where if you press several keys quickly or at once it sends an unrecognisable character and blocks the keyboard. The problem was that I was reading the entire block of scan code for each character, including the break code. When several keys are pressed at once, their make codes are all sent before their corresponding break codes. This caused a problem in the original program (because I was reading both the make and break codes as a single unit), but now I simply ignore the break codes and it works fine.

See the videos below for the functioning LCD display and also the way the letters are shifted:


Transferred Message: LOOK IT IS WORKING NOW



Transferred Message: SO YOU SEE THE CHARACTERS SHIFT TO THE LEFT LIKE THIS

There's no greater sin than errors in the datasheet



Literally spent the entire evening just to make the LCD display turn on with a blank cursor! Why did it take so long? That's because there was an error in the datasheet! In the pin connection chart someone actually committed the sin of reversing the + and - pins! So no wonder the display wasn't powering up...thankfully reversing the polarity miraculously didn't fry anything. But I should have known to not trust the datasheet when I saw some handwritten comments scribbled on it...

Anyhow, the display is working now with a nice blank cursor waiting for a secret message to be written to it. To be continued tomorrow...

Sunday, March 11, 2007

Progress Report 004



As promised in the last post, this weekend I managed to implement the buffer and send function to the keyboard! So here's a breakdown of the process that is now working:

1. Type a message into the keyboard, each letter is sent to the first M32 where it is stored in a buffer.

2. Press 'Enter' and the first M32 sends the stored message to the second M32 using pwm (the connection between the two M32's is by touch [though in this video I physically wired them together for convenience]).

3. Second M32 sends each letter to the shift registers and then it is shown on the LED display.


The next step will be to add the LCD display to the keyboard so it's possible to see what you are typing before pressing send. I also have to implement the erase (backspace) key and the clear (stop sending) function. Finally I have to fix a bug where a letter can get 'lost' if two or more letters are pressed quickly (or almost at the same time).

Still a lot to do! And I'm running out of space on my desk!



Transferred Message: I HAVE A SECRET TO TELL

Thursday, March 8, 2007

Keyboard--->M32



Bought a 7€ keyboard and connected it to the M32. I programmed the Atmel with the old keyboard program and it works perfectly. The codes for the keys are exactly the same as the first keyboard that we used.

So I'll just have to GCC the code and optimise it. Then I'll add the keyboard buffer and the 'Send' command; it will send the key-codes to the other M32 using pulse-width modulation. By this weekend I'll be typing on the keyboard and transferring the letters by touch to the LED display!

Monday, March 5, 2007

Introduction

Hi! I just wanted to introduce myself into the history of this blog.

Valerie

Sunday, March 4, 2007

Progress Report 003



SUCCESS!

We can now transfer messages from one M32 to another using pulse-width modulation.

The sender M32 transmits a sequence of letters (each represented by an 8-bit code) using pwm. The receiver gets the sequence and immediately shifts the letters into the LED display. So I didn't do the Checksum, and in fact the sender doesn't even wait for a response from the receiver before sending. But all this can be added later.

The transfer occurs when I touch the two yellow wires and ceases when I let go (see photo/video).

Next step: the keyboard!



Transferred Message: I ATE ALL THE CAKES

Hello, it works!



I spent a lot of time today making the UART debugging terminal work. I was getting a lot of scrambled characters and so I tried changing the baud rate and tweaking the parameters. Nothing worked until I realised that the M32's were actually clocking at 8MHz instead of 16MHz! Apparently the default setting uses the internal 8MHz clock. Anyway, it works now.

Sunday, February 25, 2007

Progress Report 002



1. Finished building single-letter 5x5 LED display.

2. Assembled HCF4094 Shift Register circuit.

3. Re-wrote letter display program for the M32 board.

Now I have a single-letter display I can use for my tests, on top of that we are using the HCF4094 Shift Registers. I haven't used the buffer in the shift registers yet, it doesn't seem necessary but I will test them anyway.

As you might have noticed, I'm temporarily using these clips to connect the pins on the Atmel, I know it's not very safe! But I couldn't buy the right connectors, maybe you can get some of them for me?



Transferred Message: LAVERIE

Progress Report 001

Dear Miss Bugmann,

I'm writing in regards to your 'Secret' project. I have received your M32 boards and have begun my tests. The boards are functioning perfectly and I am able to program them without any problems. I managed to do a first test shifting data from the M32 to the new HCF4094 Shift Registers (please see attached video). No problems encountered.

Next I will continue to test the HCF4094 by using it's buffer (this will eliminate our previous problem with the slight but perceptable 'blinking' of the LED's when shifting occurs). After that I will create a duplicate of the display that we have already built in Zurich. Once that is complete I will begin testing with sending pulse-width data between the two M32 boards.

I hope you find my work to your satisfaction. If not please file any suggestions or complaints directly to my superiors.

Looking forward to a continued collaboration with you,

Mr. Chan Tinlun

Secret Project Begins!

Okay, so I thought it's probably a good idea to have a means for us to share our thoughts, inform each other of our progress, and basically have a record of everything. Hence this blog.

I will post regular progress reports here, including some videos/photos.

Feel free to put down your thoughts and progress here as well. I think this will really help us organise our work!