void draw() {
	    screen = p.map.getScreenPosition(u.location);
	        
	    // Active Whistle (State is reversed, false is on, true is off, due to reversed array on Arduino). 
	    if(!u.solenoidState[0]) whistleField(0);
	    if(!u.solenoidState[1]) whistleField(1);
	    if(!u.solenoidState[2]) whistleField(2);
	    if(!u.solenoidState[3]) whistleField(3);
	    if(!u.solenoidState[4]) whistleField(4);

	    // Active Blower
	    if(u.blowerState) {
	    	p.fill(255, 120); p.noStroke();
	    	p.ellipse(screen.x, screen.y, 45, 45);
	    }
	   
	    // Line Pentagon.
	    p.stroke(255); p.strokeWeight(2);
	    for(int i=0; i < 5; i++) {
	    	p.line(screen.x + p.pentatip(i, 35,u.orientation).x, 
	    		   screen.y + p.pentatip(i, 35,u.orientation).y, 
	               screen.x + p.pentatip(i+1, 35,u.orientation).x, 
	               screen.y + p.pentatip(i+1, 35,u.orientation).y);
	    }
	    
	    // Facing Angle
	    p.stroke(255); p.strokeWeight(5);
	    p.point(screen.x + p.pentatip(0, 30,u.orientation).x, 
	    		screen.y + p.pentatip(0, 30,u.orientation).y);
	    
	    p.textAlign(p.CENTER, p.CENTER);
	    p.fill(255);
	    
	    // ID
	    p.text(u.id, screen.x, screen.y);
	    
	    // ON/OFF TIME
	    if(u.blowerState) {
	    	p.text("on time: " + p.nf(((p.millis() - u.ontime) / 60000)%60, 2) +  "." + p.nf((p.millis() - u.ontime) / 1000.0f, 2, 2 ) , 
	    		    screen.x + 70, screen.y + 50);
	    } else {
	    	p.text("off time: " + p.nf(((p.millis() - u.offtime) / 60000)%60, 2) +  "." + p.nf((p.millis() - u.ontime) / 1000.0f, 2, 2 ) , 
	    		    screen.x + 70, screen.y + 50);
	    }
	    
	    // XbeeAdress64 and midi channel under user.draw();

	    // Key Set
	    for(int i=0; i < 5; i++) {
	      p.text(u.keySet[i], 
	            screen.x + p.pentaside(i, 50, u.orientation).x, 
	            screen.y + p.pentaside(i, 50, u.orientation).y -2);
	    } 
	  }