Month: April 2017

Mexico we need your help building a project.

Arduino Animatronic Eyes
After reviewing and scouring the internet like most hackers I decided what I wanted wasn’t documented well. So I set out to not only do the project for myself but to also try and get some sort of documentation.

For this project you will need:

Electronics side:
1 – Arduino board
1 – Breadboard (anysize)
2 – Servo’s I used Futaba S3003

Hardware side:
1 – Set of eyes (ebay, I specifically looked for realistic acrylic doll eyes that had the cornea bump in them).
1 – Set of RC Car half shafts
8 – EZ connectors*
4 – Servo horns (All of mine came with my servos)
Connecting rod (various sizes and thicknesses)
1 – Sheet of Plexiglass/Acryilic Sheet (I used this as my base. Only because I had it on hand.)
1 – 12″ length of Aluminum Angle Bracket

Assorted Extras:
Aluminium Shims fabricated on the spot from bar aluminum
Cotter pins
Threaded Rod (or a bolt with head cut off)
2 Part Epoxy

Hack Saw
Propane Torch

*NOTE: The EZ connector hole sizes are determined by the thickness of your connecting rod. I was lucky enough to have an RC Hobby store down the road so I purchased what was on clearance  If you buy the wrong size you could always attempt to drill a bigger hole in the EZ connector but it may be more of a pain.

Step 1: Hardware Setup

Hardware Setup
Unfortunately these eyes were a Halloween rush so I didn’t document the build well. I will do my best to explain how I did everything.

For the first step start with a well drawn out plan. Keep it simple.  Servo 1 is for the X-Axis.  Servo 2 is for the Y-Axis (see picture).

“Keep it simple servo” – Christen Gundersen

Next you will want to start marking out on the plexiglass, or piece of wood, etc where the servos will be and where the eye brackets will be.

Everything starts with a good plan!

My first cheap test using ping pong balls.

Step 2: Cutting and Mounting Eye Brackets

Cutting and Mounting Eye Brackets
When I made my eye brackets I did all freehand with little planning but I learned quite a few things doing it that I will pass on to you.

NOTE: I did drill three holes to allow for expansion for eyelids.

When finding out where you want to drill your holes for the eyeball rod (see pic). You must take into account to leave room for your nut on the inside of the bracket. If you drill the hole two low you won’t be able to install the nut.

You don’t have to cut notches in your brackets on the right side. (I am not sure why I did actually…..) You do need to have notches on the left side of the eyeballs for the control rods to pass by without rubbing.

To mount the brackets I drilled a small hole through both the aluminum and the plexi, then I used some spare screws to mount them.

CAUTION: You have to pre-drill plexiglass before you screw into it otherwise you WILL crack it.

Last thing is ensure your eyes are far enough apart that you can fit the servo’s behind comfortably.

Step 3: Mounting Servos/horns.

Mounting Servos/horns.
Cut your base to receive the servos. I didn’t have much in the way of cutting tools for plexiglass so I used a drill on the four corners and then used a dremel cutting bit to cut the rectangles. You don’t want the plexi to melt so take your time and move pretty quickly.

When mounting the servos, servo #2 needs to be shimmed higher. This is for two reasons 1) to keep the servo horn in line with the top of the eyeball and 2) to keep it from interfering with the servo # 1 control rods.

Next you will want to attach the secondary horns to act as dummies to move the second eye. Placement is critical so you don’t get a “lazy eye”. I mounted them using shims or washers to raise the horn to the servo’s level. (see pic) Also the washer that is touching the horn is a nylon(plastic) washer to ease friction.

Step 4: Prepping and Mounting Eyeballs

Prepping and Mounting Eyeballs
When you receive the eyes they are for dolls so we have to prep them.

This is a four step process:

1) Take the back half of the eyeball and cut off a half inch ring of the widest part. (see pic two)
2) Glue the ring to the eye using two part epoxy. DO NOT get glue on the front of the eyeball or you will ruin the realistic touch. Use the glue sparingly.
3) Don’t touch them until the glue dries.*
4) Drill a hole in the top and left side of eyeball #1 and on the top and left side of eyeball #2. This hole is to receive the cotter pin in step five.

*While the eyeballs cure you will want to get onto the eyeball mounting rod/pivot point.

So I was trying to figure out how I would get the pivot point done during brainstorming and I came across the half shafts at the RC store. What I had to do was cut them down to a more manageable size and find a mounting rod.

The mounting rod is just a bolt I had laying around that I “screwed” into the half shaft and then bolted to the bracket. This was such a tight connection I didn’t even have to glue it!

Once your half shaft is on the rod you can epoxy it to the eyeball stub with the two part epoxy. Ensure you let the epoxy fully cure so as not to weaken it.

Lastly, mount the eyeball mounting rod onto the bracket. Take time to ensure the eyeballs are the same distance from the bracket and don’t adjust them anymore.

Step 5: Installing Connecting Rods

Installing Connecting Rods
For my setup, I used some connecting rod/push rod they had at the RC store. Do note these rods come in varying lengths and diameters so be sure you get your EZ connectors to match.

The great thing about the connecting rods and EZ connectors is that you can adjust it to any length indefinitely because the rod just slips through the EZ connector and the screw on top clamps the rod in place.

Cut your rods to length either using heavy duty pliers or even the hack saw. The important thing is to ensure you have no burrs on the end so it will slip into the EZ connector.

On the end that is going to the eyeball, you will need to devise some sort of hook. For this task, I employed the use of a cotter pin because it was readily available in my garage and because it already had a nice “hook” feature to it. What you need to do is cut one leg of the cotter pin short and solder the longer leg to your connector rod. Once you have it soldered on (and cooled) you can hook it into the holes you drilled in the eyeballs and close it using pliers.

For the last part you need to insert it into the EZ Connector on the horns but do not tighten them down yet. (they should be able to slide on the rods for now)

Step 6: Wire Up the Servos

Wire Up the Servos
Using my breadboard, so I could drive both servos from the Arduino’s on board 5VDC, I set up the board as follows:

1) 5VDC(ORANGE WIRE) to breadboard power strip
2) GND(BLUE WIRE) to breadboard power strip (I try to use the same ground on both servos)
3) Digital PIN 8(YELLOW WIRE BOTTOM) to horizontal servos (X-Axis)
4) Digital PIN 9(YELLOW WIRE TOP) to vertical servos (Y-Axis)

That’s it! Now on to the software side.

Step 7: Programming

This may be the single most confusing part of the project so I tried to write as much code as I could to ideally minimize the issues you may have.

All files are in the

First here is the code to get your servos centered. The problem you face is getting the servo position correct. Keep in mind these servos go from 0 to 180 degrees.

So in summary we want to set the servos to 90 and 90 so its in the center of the servos “range of motion”. Then we can set the Horizontal (X-Axis) and Vertical (Y-Axis) limits. For that you can use the eyes_servo_single_test changing horServo.write(); and vertServo.write();

[eyes_servo_single_test CODE]

#include <Servo.h>

Servo horServo;
Servo vertServo;

void setup(){

void loop(){


Next I would use eyes_full_servo_test again plugging in your high and low values for the servos that way you can see if you have any binding. I built in a blinking key so you can visualize what step your on. You can always stop it midway by pulling the USB cord.

[eyes_full_servo_test CODE]

//This is a quick servo position test I did for my Eye Project
//The servos move from the set postions for the X and Y axis
//Test one sets the LED HIGH 20 seconds, long blink.
//Test two sets the servos at position 40,0 for 6.5 seconds, two blinks.
//Test three sets the servos at position 80,0 for 7.5 seconds, three blinks.
//Test four sets the servos at position 0,70 for 8.5 seconds, four blinks.
//Test five sets the servos at position 0,110 for 9.5 seconds, five blinks.


#include <Servo.h> //servo library

Servo horServo; //x-axis servo
Servo vertServo; //y-asxis servo
int led = 13;

void setup(){
horServo.attach(8); //x-axis servo pin 8
vertServo.attach(9); //y-axis servo pin 9
pinMode(led, OUTPUT);

void loop(){
//==================TEST ONE=============//

//Servos in resting or center position.

//blink once
digitalWrite(led, HIGH);
digitalWrite(led, LOW);

//============Test Two=================//

//test two blinks twice

horServo.write(20); //x left limit

//blink twice
digitalWrite(led, HIGH);
digitalWrite(led, LOW);
digitalWrite(led, LOW);

//=================Test Three==================//

//test three blinks three times

horServo.write(80); //x right limit

//blink three times
digitalWrite(led, HIGH);
digitalWrite(led, LOW);
digitalWrite(led, LOW);
digitalWrite(led, LOW);

//==================Test four==================//

//Test four blinks four times

vertServo.write(0); //y top limit

//blink four times
digitalWrite(led, HIGH);
digitalWrite(led, LOW);
digitalWrite(led, LOW);
digitalWrite(led, LOW);
digitalWrite(led, LOW);

//=================Test Five===================//

//Test Five blinks five times

vertServo.write(110); //y bottom limit

//blinks five times
digitalWrite(led, HIGH);
digitalWrite(led, LOW);
digitalWrite(led, LOW);
digitalWrite(led, LOW);
digitalWrite(led, LOW);
digitalWrite(led, LOW);


//Servos back to resting or center. Testing ended hit RESET or wait FOREVER

digitalWrite(led, HIGH);



The code uses PI to move the eyes in a radius. You need to ensure you have your servos on pin 8 and 9 or change it in the code. Once you are confident you have everything set properly you can set the EZ connectors in place.

[eyes_sketch CODE]

#include <math.h>

#define pi    3.14159265358979323846
#define twopi (2*pi)
float circleradius = 50; //50 each side – make no more any of your max limit values
float stepnumber = 360;
float stepangle;

#include <Servo.h> //include servo library for servo control

Servo horServo; //servo for left/right movement
Servo vertServo; //servo for up/down movement

byte randomhor; //define random horizontal position variable
byte randomvert; //define random vertical position variable
int randomdelay; //define random delay variable

#define HLEFTLIMIT 40 //define left limit on horizontal (left/right) servo
#define HRIGHTLIMIT 80 //define right limit on horizontal (left/right) servo

#define VTOPLIMIT 70//define top limit on vertical (up/down) servo
#define VBOTLIMIT 110 //define bottom limit on horizontal (up/down) servo

void setup()
horServo.attach(8); //horizontal servo on pin 8
vertServo.attach(9); //vertical servo on pin 9
randomSeed(analogRead(0)); //Create some random values using an unconnected analog pin

stepangle = twopi/stepnumber;
for(int i = 0; i<stepnumber; i++){
float angle = i*stepangle;
float x = sin(angle)*circleradius;
float y = cos(angle)*circleradius;

x = map(x, 1-circleradius, circleradius, 0, 2*circleradius);
y = map(y, 1-circleradius, circleradius, 0, 2*circleradius);

horServo.write(x); //write to the horizontal servo
vertServo.write(y); //write to the horizontal servo


void loop()
randomhor = random(HLEFTLIMIT, HRIGHTLIMIT); //set limits
randomvert = random(VTOPLIMIT, VBOTLIMIT); //set limits
randomdelay = random(1000, 4000); //moves every 1 to 4 seconds

horServo.write(randomhor); //write to the horizontal servo
vertServo.write(randomvert); //write to the vertical servo
delay(randomdelay); //delay a random amount of time (within values set above)


Step 8: Finishing Touches

Finishing Touches
I chose to also learn how to make a mask AND learn to fiberglass. I won’t be going into those steps here but you can find out on other instructables (I did!)

I did a simple fiberglass mask and riveted in some angle brackets to hold the eye in place.

Good Luck everyone! Be sure to leave feedback for version 2.0!


Who will get to Mars first?

Europe and Russia prepare for historic landing on Mars

Schiaparelli touchdown would be ESA’s first success on the red planet.

17 October 2016

Article tools

Rights & Permissions


An ESA visualization of Schiaparelli landing on Mars

Almost three weeks after it crash-landed the Rosetta orbiter on a comet, the European Space Agency (ESA) is gearing up to land another spacecraft — this time on Mars. It hopes that a craft called Schiaparelli will touch down on the red planet on 19 October.

Compared to the pioneering Rosetta mission, landing on Mars is a more conventional feat. But for ESA, the stakes are high, given that the tally of successful landings on Mars currently stands at NASA 7, Europe 0.

Operating on the planet’s surface would also be a first for Russia’s space agency, Roscosmos, which is a partner in the mission — and which plans to partake in future joint Europe–Russia missions, including a 2020 rover landing on Mars. The Soviet Union came close to success in 1971 with the Mars 3 probe, which failed just 20 seconds after landing on the surface.

Given the importance of the landing, the descent through Mars’s thin atmosphere will represent “our own six minutes of terror”, says Francesca Ferri, a planetary scientist at the University of Padua in Italy, referencing a line coined to describe the landing of NASA’s Curiosity rover in 2012. “Around 50% of the landings on Mars haven’t succeeded, so it’s not easy. But I’m feeling pretty confident,” says Ferri, who leads an experiment to study atmospheric data from Schiaparelli’s descent.

The ESA-designed Schiaparelli lander, which is about the size of a Smart car, represents one part of the ExoMars mission that launched from Kazakhstan in March on a Russian rocket. The other half is an orbiter — also designed by ESA — that will analyse gases in Mars’s atmosphere, starting from December 2017.

Dusty landing

Schiaparelli separated from its mothership on 16 October. Its main job is to demonstrate landing technology, although it will also have a short science mission, studying the dust storms of the red planet for as long as its batteries last, probably between two and four days.

The lander is touching down in dust-storm season — and NASA scientists have warned that Mars could see a rare planet-wide storm this year, which would make for challenging landing conditions and hamper visibility. So far, ESA scientists say there are no signs of a major event, although that could change at any time. Schiaparelli has been designed and tested with dust storms in mind, but a strong storm could still cause problems. It would be ideal to have “nice and clear weather for the descent, but a dust storm come a day or two later”, says Håkan Svedhem, ExoMars 2016 project scientist at ESA. He says the craft should land safely whatever the weather.

The idea of landing in the middle of a dust storm thrills Francesca Esposito, the principal investigator for the lander’s DREAMS instrument, which will measure characteristics of Mars’s dust, as well as recording data on temperature, wind speed, humidity and pressure at the planet’s surface. “A dust storm, or at least electrified dust in the atmosphere, would be great for us,” says Esposito, who works at the INAF Astronomical Observatory of Capdiomonte in Naples, Italy. A dusty atmosphere would also warm the night-time temperature on Mars, which would reduce the need for the lander to heat itself and stretch its battery life, she says.

Lightning on Mars

An antenna on the DREAMS instrument will measure Mars’s electrical field for the first time, and could detect lightning, if it exists on Mars. The team hopes to learn whether electric fields trigger dust storms, whether these in turn enhance the planet’s electric fields, and how the storms eventually die out. Such information could aid basic understanding of the physics of Mars’s atmosphere, and could be useful for future crewed missions to the planet or for building habitats on Mars.

Schiaparelli is aiming for a smooth plain known as Meridiani Planum. NASA’s Opportunity rover is situated around 15 kilometres outside Schiaparelli’s 100 km × 15 km landing ellipse, and will try to get snapshots of the probe’s descent, says Mark Lemmon, a planetary scientist at Texas A&M University in College Station. Although ExoMars’s parachute may appear as no more than a speck, the pictures could help reveal how winds influence its trajectory, says Lemmon, adding that such shots would represent the first time a Mars landing has been seen from below.

Anyone expecting spectacular pictures from Schiaparelli itself might be disappointed — photos will be limited to 15 black-and-white shots of the Martian surface from the air, intended to help piece together the craft’s trajectory. No photos will be taken on the surface, because the lander lacks a surface camera.

For now, Svedhem is just hoping for a first successful European landing. For the first three minutes after entering Mars’s thin atmosphere, Schiaparelli will be slowed by drag alone before its parachute deploys to decelerate the craft more rapidly. A little over a kilometre from the surface, after 5 minutes and 22 seconds, the parachute should detach and thrusters will kick in. A 30-second burn will leave the craft a few metres off the ground and travelling at a few metres per second before it drops to the surface, where a crushable honeycomb structure on its base should cushion its landing. “I can’t relax until we really know it’s standing on the ground,” says Svedhem.


Who wants to go to Mars?

MDRS Crew 177 – Final Mission Report

The following is the final summary report of Mars Desert Research Station (MDRS) Crew 177 (Lone Star Highlanders). A full review of this year’s activities at MDRS will be presented at the 20th Annual International Mars Society Convention, scheduled for September 7-10, 2017 at University of California Irvine. A call for abstracts for the convention was issued recently, with a June 30th deadline.

Crew 177, Lone Star Highlanders, a team representing McLennan Community College, from Waco-Texas, stationed at Mars Dessert Research Station, MDRS, from March 26th until April 1st, for a one-week rotation as a part of McLennan Community College Mars 101 program with the main goal of providing an introduction to analog field research and training in all aspects of MDRS sim.  The team consisted of eight participants, six students conducting independent projects, and two faculty members serving a Commander and Co-Commander. Projects conducted by students were engineering and biology related.

Pitchayapa Jingjit is a freshman at McLennan Community College. She is planning to transfer to a four-year institution to pursue a degree in science in hope to attend a medical school. Her research project is trying to find bacteria producing antibiotics in order to combat the antibiotic resistance crisis. She collected soil samples containing bacteria from different point of interest around the Mars Desert Research Station and bring those samples back to McLennan Community College in Waco, Texas to begin the laboratory work. Furthermore, she conducted a microbiology EVA to find the presence of Gram negative enteric bacteria and Gram positive staph bacteria in the HAB and the Green HAB. As expected, she found both Gram positive and negative bacteria in both the HAB and the Green HAB.

Caleb Li is a sophomore year student of McLennan Community College, majoring in Electrical Engineering. He was planning to design a LED digital clock that put on the air lock to optimize the crew member’s experience while waiting to go out to do EVA. He was using the FPGAs on the Basys 2 Board to implement the clock function, time counting function, and alarm system. On Sol 4 he installed the clock in the air lock.  The afternoon EVA crew used his posted instructions to operate the LED clock when they returned to the hab. He will continue working on the alarm system and more advanced functions back to the school.

Elijah Espinoza is a freshman Mechanical Engineering student at McLennan. He is at MDRS working on a robot with Victoria LaBarre. His part of the robot is an arm that is attached to the robot that can pick up various objects such as rocks. The robot is in the early stages of a long project that will eventually be able to go out on its own and rescue an astronaut that is hurt. It is designed to be a rescue ambulance called the Emergency Medical Service Rover (EMSR). He is using a Vex competition kit to power the arm. On SOL 5 he and Victoria went out to the Cow Patty Field and tested the robot to observe how it moved on the terrain and how it picked up different sized rocks. The robot Elijah and Victoria are working on is a progression from Victoria’s project last year. Elijah plans to continue to work on the project when they get back to McLennan.

Victoria LaBarre is a sophomore student at McLennan Community College, majoring in electrical engineering. This is her second time coming to MDRS. On her first trip in 2016, she tested prototype one of the Emergency Medical Service Rover (EMSR) and conducted two human driver tests. When fully realized, the EMSR will be able to automatically go out into the field and retrieve an injured astronaut to bring them back to the Hab. This year, 2017, prototype two was developed and tested at Mars by LaBarre and her partner Elijah Espinoza. LaBarre worked on the drive train and the programming of the robot. The robot’s strength and dexterity were tested in Cow Patty field by picking up different sized rocks, which were then brought back to the Hab to be measured.

Esteban Ramirez is a first-year student at McLennan Community College majoring in Biomedical Engineering. His project dealt with energy concerns a Mars exploration would have. The amount of available energy to a crew or device is what gives them the ability to carry out their jobs on any space expedition. His project tested the feasibility and consequences of providing a bike generator for a Martian exploration to increase efficiency and health of the crew. Once arriving at MDRS various tests were done on the generator bike to calibrate and fix problems with the battery. Multiple tests on crew mates were done and data was collected such as voltage created, time spent, and calories used. These data will be analyzed and aggregated to find correlations between efficiency and various other variables such as height, weight, and age. Conclusions will be presented at McLennan Community College on Scholar Day.

Joseph Quaas is a freshman computer science student who came to MDRS in order to develop a virtual reality simulation of the MDRS site. The simulation is to consist of a basic rescue operation consisting of the user learning the location of a person, who is need of assistance, driving the rover to their location, and bringing them back to the hab. There were some developmental problems during the week concerning the implementation of certain 3D models and scripting, but good progress was still made on the project. The entire premise of virtual reality, especially a sim based upon a real-life location, is to immerse the user in a virtual environment that is as close to the real-life version as possible. During his time at MDRS, he saw and got the feel of many locations around MDRS and made adjustments to the landscape in the sim in order to make the sim more accurate.

Becky Parker is a Marketing Professor at McLennan Community College.  Her project is preparation of a marketing plan for recruiting student and faculty participants for future Mars missions as well as other travel course.  She used her time at Mars to take photos and videos of the mission to be used in marketing materials, and to conduct interviews with each participant.  She led a brainstorming session in order to get student input for the plan.

Dr. Otsmar Villarroel, chemistry professor at McLennan Community College, served as the crew 177 commander. He enjoyed her second rotation at MDRS designing the every day’s activities during crew’s mission. He also led planned EVAs for Orientation, Geology, Chemistry and independent projects.

We would like to thank the Mars Society and McLennan Community College for allowing us being part of this invaluable experience. We are deeply thankful for the opportunity.