Team Eight/Journal

From Maslab 2007

Jump to: navigation, search
Maslab teams
Team 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 14 · 15 · 16 · 17 · 18
Team Eight’s Journal

Contents

Week 1

Team 8 is great.

Matthew Farrell, Captain Flapjack (Matthew Robertson), Alexander Sanchez, Daniel Torres, Jr.

1/8/07 - Soldering, initial movement

Sexy circuits
Enlarge
Sexy circuits
  • Got our robot parts, that was exciting.
  • Soldering SMD is nuts.
  • We were the third team checked off for the... whatever was after soldering the board.
  • Mounted stuff on our robot and hooked up the motors to see if we could control it.
  • We moved it forward a few inches, so we're well on our way to creating a robot of mass destruction.

---Quote of the day:
Matt F: "I'm oscillating at 20 Hz! How is that happening?"


1/9/07 - IR sensors, strategy

Every robot's gotta start somewhere
Enlarge
Every robot's gotta start somewhere
  • We hooked up our IR sensor (short-range) and ran a few tests to see that it worked.
  • Day 2's assignment complete @ 3pm. Just had to make the robot go forward until it got ~6 inches from an object, and would stop until that object moved. The pegbot was also able to back up and turn left when it encountered an obstacle in effect making it capable of very inefficient wall following.

8pm:

  • Met up to discuss robot design and strategy.
  • Three wheels? Pirate's nest? Dumb mode?
  • Drew a bunch of sketches for possible mechanisms and board layouts.
  • Could not come up with a team name. Possible robot name: Jolly Roger.


1/10/07 - Image processing, ball chasing

Image processing
Enlarge
Image processing
  • Wrote up Robot Proposal - http://web.mit.edu/robertso/Public/Robot%20Proposal.doc
  • Wrote a bunch of code to detect colors. There's something wrong with Yellow, I must not be working HSV right..
  • THE CAMERA TAKES PICTURES AND YOU CAN DO JUNK WITH THEM. Awesome.
  • Working on isolating balls in the picture, and turning the robot to the closest ball (and moving to it?)
  • Set up a bunch of abstractions for moving the robot.

3:00am:

  • We're trying to get the ball-chasing to work. We're using a Coke can instead, because we're awesome.

3:40am:

  • The robot successfully chased down a ball. That was pretty excitzzzzzz

---Quote of the day:
Alex: "73rd time's a charm"

Checkpoint 1, here we come.

1/11/07 - Checkpoint 1

I challenge you to a duel
Enlarge
I challenge you to a duel
  • Today we got Checkpoint 1 checked off, and had our design meeting with the TAs. That went well, but sadly there's another team doing omni-wheels. Our wheels are hand-crafted, so :P
  • We figured out how to interface between the robot and BotClient.
  • Going to try having the bot map out the playing field as it moves around.
  • Disassembled our pseudo-robot to begin the actual creation of what will become our final robot. It's going to be tricky only having three wheels, no "front", and three magical ball-collecting rollers. We'll manage.
  • I believe Matt said he'd have the base of the robot completed tonight.

We could never find the heat gun, so pieces of heat shrink were just hanging there on our electrical components. Alex decided to go on a hunt for the gun. He found it, and came back to inform us that he'd melted the solder right off the wires. Haha, at least it's an easy fix.

Next up: code for mapping and recognizing the goal and barcodes. Can't forget the nuts, bolts, and obligatory zip ties.
Zip ties are like... the new duct tape.

1/12/07 - Robot building

The robot's omniwheels
Enlarge
The robot's omniwheels
  • Wheels are attached to base
  • Mounted camera on a servo (it's nice)
  • The camera will be at least a foot off the ground to maximize awesomeness.
  • Vision's coming along; got values for red, blue, white, green, yellow, and both barcode black and carpet black (...kinda). Can determine if a wall you're seeing is being seen through a goal and will ignore it. The camera should be high enough to where that won't happen, so we probably won't even need that.
  • Went home early, everyone's gonna be busy this weekend.


Week 2

1/16/07 - Camera servo, robot-moving, image coding

Not quite our robot, but cool
Enlarge
Not quite our robot, but cool

After three days of pretty much doing nothing...

This is what we get for staying at the lab so late :\
Enlarge
This is what we get for staying at the lab so late :\
  • The camera's been on its servo for a while, code is now being written to make it move
  • Our things keep breaking or coming apart. Not good?
    • Battery connector
    • Servo connector
    • Metal computer case
    • Sanity
  • Code being written to detect the green/black barcodes on the wall
  • Code being written to detect goals and turn/move robot to approach goal
  • Code being written to move our omniwheeled robot
  • Code was written to move the robot using the joystick on the orcpad but still needs some tweaking since forward for each wheel still needs to be defined in the code.

1/17/07 - 1/16/06 part 2

Our robot's gonna look something like this
Enlarge
Our robot's gonna look something like this

Free dinner with ITA, not too bad and the main speaker was pretty entertaining. After that, a ridiculously cold walk back to the lab.

  • We figured out the servo's angles are in RADIANS, servo accurately turns to whatever degree we want.
  • The rod holding the camera onto the servo broke, we are temporarily without functioning servo-camera.
  • Code and other files are much more organized (and we have a bunch of classes)
  • More progress made with movement, mapping, and barcode detecting
  • Matt R. didn't come back 'cause his brother broke his leg. -> Robot components (computer, battery, etc.) are carelessly placed on top of the base while the robot moves around. We like danger.
  • We still don't have a team name


1/18/07 - Checkpoint 2

This won't be our last casualty
Enlarge
This won't be our last casualty

The day started off terribly, with everything coming apart (motor connections, the USB cord...). Alex wanted some cords to be extended so I (Daniel) cut some wires and spliced some longer ones. The one for the Orcboard came out fine, but the servo one...
Ground became power and we all caught a whiff of that sweet smell of smoldering silicon. Damn it all.

The main part of Checkpoint 2 is progress towards scoring a point.
We've got that, depending on how you define "progress". There's a ton of code written, but we've yet to mount anything permanently onto the robot's base (seen on 1/12). It's alright though, because once we get the basics out of the way, we're gonna make progress so fast that our robot is gonna hack into the other robots and eat their brains. Yeah...



Protip: How to Design an Aesthetically Pleasing Robot

This robot is the third robot I've help build here at MIT, so I know a thing or two about aesthetically pleasing robot design. My teammates put my intelligence to shame when they discovered the following appearance-enhancing beautifying device:

Before - *yawn*
Enlarge
Before - *yawn*
After - hott (that's not a typo, the extra t indicates extreme attractiveness)
Enlarge
After - hott (that's not a typo, the extra t indicates extreme attractiveness)

<-- Before ........ After -->


One of the other teams has excellent taste in video game music. I've heard Pac-Man, Sonic, and SSBM. Nice.

  • We've passed 250 revisions with SVN
  • Attached gyro and the robot turns to given angles fairly accurately (correcting for gyro error)
  • Ball tracker - when a red object is in view, the camera will adjust itself to center the red object (continuously)
  • Layer 2 of robot has been mounted. we're anticipating three layers... no height limit, suckers!
  • Brought a bunch of LEDs, because LEDs are freaking awesome. (Blue. MCD: 6000, i.e. BRIGHT)

---Quote of the Day:
Guy from other team:
"[LEGO], a real man's tool"




1/19/07 - Camera, quadphase encoders

Mech E's, gotta love 'em
Enlarge
Mech E's, gotta love 'em

We started the day trying to find out what was wrong with our gyroscope. (What? Something ELSE is messed up?) One of the stupid wires broke, so I rewired it with the nicer flexible wire. The robot was back to normal and Alex went back to trying to control the movement of our crazy three-wheeled robot.
A mock playing field was set up in 26-100, but I had to wait an hour before I could take pictures 'cause... I dunno, they were late. I took about 20 pictures which should help us program some AI.

  • Matt R. drilled some holes into the camera's casing so we can mount it differently. He's also working on having one motor (/hacked servo?) turn three non-parallel rollers.
  • I soldered up two quadphase encoders (still need one more). Surface-mount is fun once you get the hang of it
  • Matt F. continued to write code faster than I can read it

We all left relatively early, but we're gonna be making insane progress pretty soon.

1/20/07 - Brainstorming

I woke up seriously late today, so I called Alex to see if they were in lab. He said he couldn't get a hold of Matt R. (he has the robot) so nobody went to the lab.
Me: So... what should I put in the update for today?
Alex: Just say we were brainstorming
Me: Haha, alright
Alex: It's like the calm before the storm, except we're... brainstorming.. or something

Alex just got the robot, says "camera mounted, 1 roller built, and servos mounted"
It's coming along!

Week 3

1/21/07 - Behind schedule? Oops.

So much code, so many files
Enlarge
So much code, so many files

I was gone today, but from what I've seen/heard, a bunch of stuff got done. They hacked a servo (I didn't get to see it :( ), and it's attached to a gear that spins three other gears which turn three rollers. (See picture for 1/22/07)
It seems Matt F. and/or Alex have figured out or started messing with threads. The picture on the left shows a bunch of files that have been updated and added to our pile of 8000 files.

Our robot is going to have three levels in it. Since the camera's on the second one, the bolts would get in the way of the camera's view. Well, they found a clear cylindrical piece of plastic that they're gonna use to support the third level, so the camera has (near-)full 360 vision without obstruction. Any wires going from the bottom to the top level will be somehow attached to the back of the camera.

As the title says, we're a little behind our predicted schedule, but progress is coming quickly, so we're not really worried about falling behind. Code is still being written and should be ready to test once everything is mounted (which shouldn't take more than another day.. I think)


1/22/07 - Sensor party, sponsor dinner II

Efficiency to the maxWhite gear turns three black gears
Enlarge
Efficiency to the max
White gear turns three black gears
  • Finished the last of the quadphase encoders and wired 'em up
  • Got two more short-range sensors for the robot
  • Passed revision 400 on SVN
  • Instead of having one motor per roller, we hacked one servo to turn all three rollers. This saves us... 22 sensor points.

Sponsor dinner with ITA, Google, Analog Devices, and Sun. It's free food, but... it still shouldn't be mandatory.
The Google chick attacked our table - I was too tired to tell whether or not she was flirting with all of us. But I guess that's the point of hiring reasonably attractive recruiters: to lure nerds into thinking they'll be working with in a field of attractive female nerds, of which there will be none. Enjoy your RSI.

Anyways... Injuries abound for the great unnamed Team 8.
Matt R. tried to bend a piece of unbendable aluminum, which then snapped and dug itself into Matt's wrist. His bandage was napkin + duct tape, a bandage all awesome people use at some point in their lives.
Alex was programming away, and when he went to fix something on the robot, he noticed that his hand was bleeding. We're still not sure how that happened.
And on a lesser note, I hit my knee really hard on the table at that sponsor dinner. Lame.

Our robot isn't falling apart as much as it once was, and hopefully it'll stay that way, as we have much mounting to do. I take that back, our motor wires suck and at least one breaks off per day. We're getting rid of those.

Tomorrow will be an all-nighter. It's going to be amazing. I promise.

1/23/07 - Ingenuity? We've got that

Zip tie being used to hold a rubber band. wtf?
Enlarge
Zip tie being used to hold a rubber band. wtf?

If there were an award for the most ghetto robot, I'm sure we'd win. Duct tape, zip ties, rubber bands, we've got hundreds of all of them on our robot. Okay, not that many. But it's still awesome.

  • Rewired all the motors (they kept breaking)
  • Camera + servo code improved upon
  • Code is being written for the short-range (wall-detecting) infrared sensors
  • Rollers undergoing reconstruction
  • Printed out the quadphase encoder wheel pattern, mounting it is gonna be tricky

Somewhere during the modifying of our robot, we got desperate and mounted the pegboard on top of our robot and mounded the computer, orcboard, and orcpad onto it. Success? There's less stuff hanging around, so I suppose this is somehow progress.

Matt F: "zip ties are still the new duct tape"
Matt R: "sloppiness is the key"

1/24/07 - Scramble to Checkpoint 3

Randomly Randomizing Randomized Robot of Random Randomness
Enlarge
Randomly Randomizing Randomized Robot of Random Randomness

00:00
All-nighter begins. Matt R. and Alex are going to CVS for supplies (everything from more zip ties to Skittles), and Matt F. is going to get his laptop 'cause he's got some files on there that we need. I'm here typing this. Woo!
00:52
Alex and Matt R. came back with the goods. Matt F. still missing. Whoa, these pretzel things have peanut butter in them! Trippy.
01:30
The quadphase encoders seem to all work (even after I put them in backwards....)
Matt F. still missing.

LEDs are cool even if you can't see the infrared
Enlarge
LEDs are cool even if you can't see the infrared

02:33
First wheel + encoder is done! Matt R. freaking cut the motor mounts with wire cutters to make room for our encoder, which we mounted a little differently than expected. The readouts from the encoders are pretty consistent, so we've got something going there. One down, two to go!
03:00
Alex is programming a PID controller for the quadphase encoders. Crazy stuff, I can't wait to see how the robot's gonna move with that thing.
03:50
All the wheels + encoders are done, but one of the wires broke on one of the encoders. I hate wires so much. The encoders are working fine, but programming them will come later 'cause we gotta get movin' on scoring points.
04:18
Matt F.'s back! Wheels are mounted back on the robot, things are made to look prettier on the robot. Gyroscope given a nice little styrofoam home.
04:37
Robot is placed on the field for testing of code or some such.

It'll look really awesome in the end, I swear
Enlarge
It'll look really awesome in the end, I swear

04:49
Robot moves in directions it's told to, roller sucks up balls (but will do so better later)
Robot sounds like it's dying. Seriously.
Robot needs a name
05:05
WE need a name
05:09
Passed 500 revisions to SVN
05:18
Matt F: " 'synchronize' is actually a difficult word to spell"
05:44
The robot can score goals, but only under the direction of Alex through the Orcpad. Hey, it's progress.
06:00
Matt R. orders $84 worth of pulleys and robot-enhancing awesomeness.
07:00
We're having a bunch of robot-moving problems. We're all tired and want breakfast. We propose: sponsored breakfasts.
07:05
Matt F: "Kill the robot!" (Our robot was being an idiot)
Alex: "I've been trying to kill it since it started!"
07:07
Matt F. and Alex realize they haven't been cooperating in using radians or degrees in their code. Ooooooooh.
Val said she didn't believe that we'd be here all night and that she'd check up on us. We're still hzzzzzzzzzzzzzzzzzz
07:14
Alex/Matt F. correctly identified the problem, robot moves nicely now.
07:44
Our robot apparently feels "desire". For what, I'm not sure.
08:00
Matt R. and I fell asleep. I woke up at 11:14, Matt at ~12:20.

Our robot still can't score (for Checkpoint 3), but I'm sure most other teams can't either. We basically had a meeting for where our robot's going. To the top.

  • De-noise-ified the gyro
  • Got a new IR sensor 'cause we think the old one was broken
  • Bugs still being worked out of ball-chasing code
  • Much testing for IR sensors. They're not even all equally distanced from the edge of the robot, so I dunno how that's gonna work.

We're taking a break at about 2pm, to reconvene at 6.

I woke up late again, came in at 9.

  • Robot can find balls alright, so Matt F's writing up some goal-chasing code
  • Alex is trying to get the robot to rotate and translate at the same time
  • The shop closed early today, so I am without solder. I used wire to connect a broken wire to the encoder's circuit board, I doubt that'll hold up long.

The parts Matt R. ordered might be coming in tomorrow, so if it does we'll have a fancy kickass robot by the weekend. Weeeeee

1/25/07 - Mock contest, LEDs

Matt F. stayed up all night making the robot able to find a goal and throw its balls in it. We went to the mock contest at about 2pm, and our robot started in a position where it was close to a wall on each side, and in an attempt to avoid both, it kept going back and forth between them, not really getting anywhere.
There was also a huge bump in the field and our robot couldn't get over it. Hmm..

  • Robot now starts from orcpad
  • Alex is coding some distance stuff for the encoders
  • Added some LEDs (blue, yellow, red) so we know when the robot's looking for a ball, wall, or drifting (and to look awesome)
  • Passed 800 revisions on SVN. Can we get to 1000? Probably.

1/26/07 - Robot makeover

Chains are cool
Enlarge
Chains are cool
Belts are cool, too
Enlarge
Belts are cool, too

Matt R. took the robot for the day to blast it with some Mech E skills. The robot's not so ghetto anymore and actually has chains and belts and... it's insane. It'd be nice if the motor could turn the thing with more speed, but we'll see what we can do. The rollers have been slightly upgraded (and actually mounted). We just need to put some kind of grippy stuff on the rollers to attract balls, and add a way to keep the balls inside the robot without falling out all over the place







1/27/07 - Coding, coding... more coding

  • Blew our second or third fuse today -.-
  • Passed revision 900
  • Distance code (and all code, for that matter) being tweaked
  • Can't think of much else to write here, and I don't have a picture to put. Bah.

Week 4 - Final Week

1/28/07 - LED/Robot upgrades

I like LEDs
Enlarge
I like LEDs
  • Bought some brighter LEDs from Radio Shack, added glue sticks on the end to make them look like "lightsabers", as Val put it.
  • Lab closed early, lame.
  • Matt R. did a bunch of work on the robot, and took it at night to fix the robot like madness
  • Rollers now spin faster and have better grip
  • Chain modified for maximum usefulness
  • We're still using the pegboard for a roof
  • STILL no team name/robot name. But we're awesome anyway.





1/29/07 - Checkpoint 4

We think this is the final modification to the rollers
Enlarge
We think this is the final modification to the rollers

Robot nearing completion! (as it should be, we only have 3 more days to work on it)

I had this crazy nightmare about the competition. In the dream, the competition was at 10pm, and at 9:30 I was ready to go. I thought I'd go early 'cause I'm always late to the lab, but on my way out I saw my mom. Apparently she traveled 2,000 miles 'cause something was wrong, and I was talking to her and before I knew it, it was 10:30. I had to leave my mom to get to the competition (late), hoping I didn't miss our round. I ran to 26-100 just in time to see the end of Team 5's round. Team 5 (who's actually Team 13 in real life) scored all but one ball. I was disappointed, a month of work and some team totally owns, with a 0.003% chance of us actually beating them. Our team is up, and we put our robot on the field realizing we never actually tested the code, and the robot just kinda bounces around like a moron, not actually doing anything. We lost terribly and it was embarrassing. The end.
That dream is surely not foreshadowing.

Quiznos >> Subway

I seeeee yooooou
Enlarge
I seeeee yooooou
  • Alex got the sound on our robot working, thanks to a bunch of help from team Washington
  • We finally got the acrylic cylinder mounted on the robot, it makes a nice housing for the camera
  • Robot's just about physically complete - the rollers are functional, stuff is mounted, no more pegboard









1/30/07 - Final mock contest

Our robot is now officially amazing
Enlarge
Our robot is now officially amazing
  • Team name - Pieces of Eight
  • Robot name - Jolly Roger

The team's name was a suggestion from Amy Norovich, thanks noob. Also, Maslab is her birthday (6/1/86)

Mock contest:
On our first try up we picked up two (and a half...) balls and got ourselves stuck in a corner. Yay debugging. Hope was not lost, as we at least scored two points. Our second time up, we... tried to pick up a ball, missed, and went looking for a goal. It couldn't find a goal, and ended up getting stuck driving into another wall. The LEDs are working nicely though, they give some nice visual feedback about wtf the robot is trying to do. We left early to fix a bunch of stuff.

One of the (many) problems we had with the robot is that the rollers weren't exactly picking up the balls onto the rails. I suggested using inverted duct tape instead of the rubbery black stuff we had, and it worked (holy crap). If the duct tape is too sticky, the ball won't roll off of it, and the rollers get stuck. If it's not sticky enough, it won't pick up balls. Matt R declared me "stick checker". Sweet.

  • Turns out we won't be using barcodes for anything
  • Actually mounted the IR sensors with screws (not electrical tape)
  • Alex is messing around with music, we wanna find some way to hook up an mp3 player to play the Pirates of the Caribbean soundtrack
  • "Jeopardy" theme will play if robot is stuck in a wall
  • Matt F. is working on some crazy mapping stuff to be output to the BotClient
  • 1200th revision
  • Matt R and Alex went home to sleep (they were up all night)
  • Tried to mess with some bump sensors... the Nintendo buttons won't really work for what we want, and we don't have enough of the whisker ones... I don't know what we're gonna do about that
  • Today was our day to clean the lab, but Alex and Matt R were sleeping and I went to go eat dinner... Matt F cleaned the lab by himself. Sorry, man (and thanks)
  • 1300th revision
  • The lab is starting to smell, I don't think a lot of the people here have showered in a few days...



1/31/07 - Eve of impounding

Bump shieldz activated
Enlarge
Bump shieldz activated

I can't believe we waited until the day before impounding to put bump sensors on this thing.

  • The team has come to a consensus that the lab smells like ass
  • Finally got our bump shields up, even though we had trouble with three bump sensors (out of six..)
  • Put little speakers on the robot and used Matt R's mp3 player to rock out to the Pirates of the Caribbean soundtrack. Our robot is now the best robot.
  • I don't think we should be doing mapping until the damn thing can score some points, I foresee us being very fucked at the end.
  • We only have 24 hours left
  • I haven't seen the robot move in days, I really don't know if this robot can find balls anymore

5:12 pm...
Everyone starts making noise and looking at the playing field, and I was like "a robot can score, so what?"
I look, too, and see a white plume of smoke rising from the ground (I couldn't see the robot). I run a few steps before I remembered I have a camera, so I run back to get the camera and take pictures of the smoke. Another girl took pictures too, and I feel terrible 'cause I can't remember her name and we were on the same team for DME in '04. We have huge cameras. Anyway, apparently Team 5's battery shorted hardcore and set things on fire. Poor Team 5.
5:50 pm
Something starts beeping, everyone looks around thinking something else is about to explode

  • Matt F's been working on that mapping thing for a bajillion hours now
  • Free pizza, but I'm lactose intolerant. My cheapness overrides my desire to not feel stomach pain. Eating commences
  • We realized that the old code we had to find balls didn't even work anymore

2/1/07 - Happy Febtober, Impounding

Yarrr
Enlarge
Yarrr
  • Since Matt F and Alex are doing the coding, Matt R and I watched 24/The Daily Show
  • Ball-getting is functional (kinda), goal-scoring is coming (maybe)
  • All bump sensors have been destroyed (one by Team 4, haha), switches being replaced with old-school NES-buttons


--- Quote(s) of the day:
"everything is so much funnier at 4:36 in the morning"
"aaah i can't stop laughing"
-Girl reading this journal at 4:36 in the morning

"We only have two balls to play with right now"
-Matt R, 5am

5:30am
Matt R and I are rapping to Dr. Dre
~7:30am
Alex and Matt F take a breakfast break (redundant?) while Matt R and I work on our new(er) bump shields. These are way hotter.
9:00am
Matt R and I take our turn for breakfast.

Most of the balls the robot picks up are due to luck
I guess a bunch of the bugs have been worked out, but not all, I'm worried about this competition.
It's 4:59pm, and I'm signing off.





2/2/07 - Contest, wrap-up

Our robot in action at the competition
Enlarge
Our robot in action at the competition

It was mentioned that I should be listed as "team narcoleptic" 'cause I kept randomly falling asleep the day before in lab. I'll take it!

We all showed up to 26-100 at about 4pm, wearing our awesome Maslab shirts. We set up Jolly Roger on the table, it was almost twice the height of the next-tallest robot. Matt R manned the table behind Jolly Roger, fielding questions that were being asked about it. I dunno how he was chosen to be the one talking, but it great 'cause he's got the most charisma on the team.

The contest started pretty nicely, the first robot didn't suck or completely own. As expected, as the competition went on, the audience lost a bunch of interest.

"So basically, our robot is awesome"
Enlarge
"So basically, our robot is awesome"

Our wireless card wasn't working all day until a few minutes before it was our turn. I was the robot handler, and Matt F was rockin' the mic. I really don't know what the audience was doing/saying, I was too busy worrying about our robot. As feared, the robot didn't move or turn correctly, and barely moved 15 feet away from its starting spot in all 5 minutes. Whether by luck or skill, it did pick up two balls (barely getting one of them), putting us ahead of the 6 teams that scored 0. Poor other teams :\
Our two points got us tied for 9th place (of 16). At least we can say we were in the top 10!

We ended up not getting the design award, which pissed me off to no end. The things that made our robot awesome were just so... awesome. I genuinely think we deserved it, but we didn't and life goes on.


Don't try this at home
Enlarge
Don't try this at home

Overall, Maslab was a bunch of fun. It was interesting to see all the teams helping each other and making new friends and becoming closer with teammates. The best times were when the whole team was under some kind of sleep-deprived-induced drunkenness, laughing at everything and trying to drill holes through pants. There were never any conflicts within the team, and I think we had an excellent combination of skills (Mech E, EE, two programmers). Thanks for the good times, guys.

On behalf of Pieces of Eight, we and Jolly Roger hope you enjoyed reading our journal, and would like to applaud you for having such great taste in reading material. Thanks for reading!