Stock Market Lingerie

For this project I was interested in addressing the relationship between sex and the stock market. In my research I discovered several studies that had been conducted on hormonal changes in men who play the stock market. It was found that men who are successful in big trades in the stock market have higher levels of testosterone, in particular right after increasing profit, and further that this level of testosterone makes the men more likely to engage in further risk-taking behaviour (financially and not). It also makes women more attracted to these men. One can surmise that this increased testosterone level may also increase sexual desire, as well as a sense of power and self-worth, and the desire to dominate and conquer.

Circuit - Inside Front, Sides

As the “man” undresses the “woman” (I’m being presumptuously hetero-normative here), the undoing of each clasp of the boustier triggers a web-based update on the latest stock market trades via Yahoo! Finance.

I have chose five multinational corporations that are controversial and in my opinion have significant impact on the general well-being of the global population.  These companies are: Monsanto, DOW Chemicals, BHP Billiton, General Electric, and Bombardier.  They tie into the idea of male dominance, power, control and economics.

Clasps turned into electronic switches

Ideally I would like audio to be triggered but I need something discrete and sewable, and my Arduino audio shield is much too bulky to put on a piece of lingerie, and not physically suited for the Lilypad Arduino (this speaks to a need for an audio shield for the Lilypad Arduino). Working around this temporary problem I resolved that when the clasps on the boustier are opened, the serial monitor in Processing prints the latest stock quotes from Yahoo!

Data Table from Yahoo! Finance

Processing Serial Monitor


  • Lilypad Arduino
  • Lilypad Xbee Shield
  • 2 Xbee Radios
  • Xbee Explorer Breakout Board
  • FTDI Breakout Board
  • Conductive Fabric
  • Conductive Thread
  • 10k pulldown resistor
  • 9V battery plus clip
  • Boustier
  • Thread
  • Wire

Processing Code

Adapted by Erin Lewis 2011 from “The Garden of Good and Evil” (2009-04-26)

import processing.serial.*;
import cc.arduino.*;
Arduino arduino;
Serial myPort;
String serialString;
int i;

int switchPin0 = 0;
//int switchPin1 = 1;
//int switchPin2 = 2;
//int switchPin3 = 3;
//int switchPin4 = 4;
int switchValue0;

void setup() {
myPort = new Serial(this, Serial.list()[0], 9600);

class StockQuote {
String name = “”;
float lastTradeDate = 0;
float lastTradeTime = 0;
float openPrice = 0;
float yearHigh = 0;
float yearLow = 0;
float sharePrice = 0;

void loadData() {
data = loadStrings(URL);
// println(data.length);

stockInfo = new StockQuote[data.length];

for (int i=0; i<data.length; i++) {
stockInfo[i] = new StockQuote();
String[] yahooStockInput = data[i].split(“,”);
if (yahooStockInput.length == 7) {
stockInfo[i].name = yahooStockInput[0].replaceAll(“\””,””);
stockInfo[i].lastTradeDate = float(yahooStockInput[1]);
stockInfo[i].lastTradeTime = float(yahooStockInput[2]);
stockInfo[i].openPrice = float(yahooStockInput[3]);
stockInfo[i].yearHigh = float(yahooStockInput[4].replaceAll(“\””,””));
stockInfo[i].yearLow = float(yahooStockInput[5]);
stockInfo[i].sharePrice = float(yahooStockInput[6]);
} else {
stockInfo[i].name = yahooStockInput[0].replaceAll(“\””,””) + “,” + yahooStockInput[1].replaceAll(“\””,””);
stockInfo[i].lastTradeDate = float(yahooStockInput[2]);
stockInfo[i].lastTradeTime = float(yahooStockInput[3]);
stockInfo[i].openPrice = float(yahooStockInput[4]);
stockInfo[i].yearHigh = float(yahooStockInput[5].replaceAll(“\””,””));
stockInfo[i].yearLow = float(yahooStockInput[6]);
stockInfo[i].sharePrice = float(yahooStockInput[7]);
//  println(stockInfo[i].name+”: “+stockInfo[i].lastTradeDate+”,”+stockInfo[i].lastTradeTime+”,”+stockInfo[i].openPrice+”,”+stockInfo[i].yearHigh+”,”+stockInfo[i].yearLow+”,”+stockInfo[i].sharePrice);

String URL = “”;
String[] data;
StockQuote[] stockInfo;

void draw() {
while (myPort.available() > 0) {
switchValue0 = arduino.analogRead(switchPin0);
if (switchPin0 == arduino.HIGH) {
println(stockInfo[i].name+”: “+stockInfo[i].lastTradeDate+”,”+stockInfo[i].lastTradeTime+”,”+stockInfo[i].openPrice+”,”+stockInfo[i].yearHigh+”,”+stockInfo[i].yearLow+”,”+stockInfo[i].sharePrice);
else {

void serialEvent(Serial myPort) {
String $;
String serialString = myPort.readStringUntil(‘\n’);
if (serialString != null) {
String[] numbers = split(serialString, “\t”);

Arduino Code

Standard Firmata

2 comments to Stock Market Lingerie

  • Amanda Gabrielle Almeida

    Erin!!! I LOVE THIS!!
    Please promise me you will finish it?

  • Erin Lewis

    Yeppers! I’m loving it too.
    I just had an idea of how to deal with the size of the TTS library, so I may succeed with the audio yet!

Leave a Reply

A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.