Spring 2018: Biped Micro FOBO Final Blog Post

By: Miguel Gonzalez (Project Manager)

Approved By: Miguel Garcia (Quality Assurance)

BiPed Team:

Miguel Gonzalez (Project Manager)

Jeffery De La Cruz (MST)

Jorge Hernandez (E&C)

Mission Objective

By: Miguel Gonzalez (Project Manager)

Goal for this project is to design and manufacture a BiPed Robot. This robot will be slightly similar to the BiPed robot that was created in Spring 2016 and another bipedal robot named FOBO, created by Jonathan Dowdall. Our design will be based on FOBO but will be much smaller in size that implements micro servos for walking and turning. For sensing its surroundings, the robot will utilize ultrasonic and Infrared sensors. Other key differences between the FOBO and our micro version of FOBO are that:

  1. The head of our robot shall house a 3DoT board, servos controller shield, and a sensor shield.
  2. The movement of our robot will be conducted via SG90 micro servos that will replace the clunky and oversized Hitec HS-805BB servos.
  3. The legs of our robot will have a more efficient method to mount and utilize its servos for weight reduction and for longer walking steps.
  4. Our robot will utilize Bluetooth technology for user to robot communication and movement control
  5. The robot’s power system will be changed from heavy LIPO batteries to a single Samsung 18650 battery located near the robot’s center of mass.

The mission of Project BiPed is to design the BiPed to navigate a predesigned maze. The BiPed shall be able to navigate the maze with user input from the Arxterra App/Control Panel. The BiPed will be able to memorize the user-defined path and will be able to navigate it autonomously. In addition, the BiPed will acknowledge other robots while traversing the maze and avoid collisions using its sensors. To learn more about the mission objective you can take a look here. For preliminary maze designs and definitions take a look here.

Project: Level 1 Requirements

By: Jeffery De La Cruz (MST Engineer)

Verified By: Miguel Gonzalez (Project Manager)


L1-1: Micro FOBO will stand on its own without any physical help.

L1-2: Micro FOBO’s electronic components will be easily assembled and disassembled.

L1-3: Micro FOBO will have 2 legs.

L1-4: Micro FOBO will be a toy robot based on the design of the FOBO by Jonathan Dowdall.

L1-6: Micro FOBO will fit within the classroom cabinets shelves. 28”x13”x14.5”

L1-7: Micro FOBO will utilize a 3DoT board or Sparkfun Pro Micro 3.3V/8MHz.

L1-8: Micro FOBO’s part components will be 3D printed using the material carbon fiber PLA.

L1-9: Micro FOBO will not exceed a print time of 7.80 hours. Upon approval of the waiver.


L1-10: Micro FOBO shall not exceed a cost of $250 to construct.

L1-11: Micro FOBO shall be 60% or less of the overall size of Jonathan Dowdall’s FOBO

L1-12: Micro FOBO shall detect intersections in the maze.

L1-13: Micro FOBO shall be able to perform static walking.

L1-14: Micro FOBO shall produce 90 degrees turn.

L1-15: Micro FOBO shall be guided through the maze with the use of the Arxterra application.

L1-16: Micro FOBO shall record the path of the maze.

L1-17: The Micro FOBO shall traverse the maze using the recorded path.

L1-18: Micro FOBO shall be able to traverse cloth, paper, and linoleum materials.

L1-19: The Final Biped shall be completed by May 10th, 2018.


L1-20: Micro FOBO should step over a square rod 1cm tall, 1 cm wide by 10 cm long

L1-21: Micro FOBO should be able to perform dynamic walking

System/Subsystem: Level 2 Requirements

By: Jeffery De La Cruz (MST Engineer)

Verified By: Miguel Gonzalez (Project Manager)


L2-1: Micro FOBO will be connected via Bluetooth to the app on an android phone.

L2-2: Micro FOBO dimensions of the robot will need to be small enough to fit in a 4in by 4in box for maze purposes.

L2-3: Micro FOBO will use SG90 micro servos.


L2-4: Micro FOBO shall use UV/IR sensors to detect intersections.

L2-5: Micro FOBO shall use the color of the maze to establish if it needs to turn. black (0,0,0) green (0,255,0) for line following.

L2-6: Micro FOBO shall use a battery that outputs 3.7V nominal.

L2-7: The user shall use the Arxterra application to move the robot forward, backward, left, and right.

L2-8: Micro FOBO connectors shall be able to connect and reconnect all the wiring in less than 10 min.

L2-9: Micro FOBO wiring shall be nice and clean with the use of terminal blocks, contact pins, 2.0mm PH series JST connectors, and barrel connectors.

L2-10: Micro FOBO shall play a musical tune when the maze is completed.

L2-11: Micro FOBO shall have indicating LEDs to demonstrate either a left or right turn.

L2-12: The Micro FOBO shall record the path of the robot on the 3DoT board or the Sparkfun Pro Micro 3.3V/8MHz to navigate the robot through the maze.

L2-13: Micro FOBO shall use a 3D printed chassis and leg components.

L2-14: Micro FOBO shall measure within 4.5” x 3.25” x 7.25”.

L2-15: Micro FOBO shall weigh no more than the allocated mass of 460g.

L2-16: Micro FOBO shall detect objects 8 inches from it.


L2-17: Micro FOBO should be able to see other robots to avoid a collision. The robot will stop completely and wait for clearance. (Ultrasonic sensor)

L2-18: Micro FOBO should take a bow at the end of the maze as a victory celebration.

System Block Diagram

By: Jorge Hernandez (E&C Engineer)

Verified By: Miguel Gonzalez (Project Manager)

After looking at all the constraints and requirements for the robot our group came up with a system block diagram that could help us visualize how the robot’s components interacted with one another. This diagram made it clear to understand where initial designs should be made and provided great insists on some challenges we would have in the future. Below we link the blog post to the system block diagram the group made.

Work Breakdown Structure

By: Miguel Gonzalez (Project Manager & Manufacture)

When working on a team project it’s important to break down the project into general tasks and assign them to team members. Typically a chart is created to easily visualize how the work is divided among team members, this called a WBS (Work Breakdown Structure). Here we link to our post demonstrating and explaining our WBS.

Product Breakdown Structure

By: Jeffery De La Cruz (MST Engineer)

Verified By: Miguel Gonzalez (Project Manager)

Fig.1 Product Breakdown Structure

Based on System Block

Sensor Suite

  • The color sensor will be able to detect colors and its data input range Ex, black (0,0,0) green (0,255,0) for line following.
  • Will be able to see intersection sign on the maze and differentiate its color from the path lines.
  • Shall be able to see other robots to avoid a collision. The robot will stop completely and wait for a command. (Ultrasonic sensor/IR)
  • The robot should have to indicate LEDs to show where the robot plans to make a turn (left or right)

Smartphone App

  • Will allow usage of the app to navigate the robot through the maze through forward, back, left, and right commands.
  • Will record the path of the robot in 3Dot board to navigate robot without the user controlling it.
  • The robot will be connected via Bluetooth to the app on an android phone.


  • The wiring for the robot shall be nice and clean with the use of terminal blocks, contact pins, 2.0mm PH series JST connectors, and barrel connectors.
  •  All connectors shall be able to connect and reconnect all the wiring in less than 5 min.
  • Dimensions of the robot will need to be small enough to fit in a 6in by 6in box for maze purposes.


  • The robot power management system will use two 1000mAh 2S 20C Lipo Pack rechargeable LIPO batteries.

Interface Matrix

By: Jeffery De La Cruz (MST Engineer)

Verified By: Miguel Gonzalez (Project Manager)

After verifying the product breakdown structure we began listing the interfaces for the 3DoT Board that were going to connect to our sensors and motors.

Prototype Fritzing Diagram for Biped

By: Jorge Hernandez (E&C Engineer)

Verified By: Miguel Gonzalez (Project Manager)

With the product breakdown structure and the interface matrix completed we began the prototyping the circuit and making connections to the servos and sensors. The Fritzing application allows a physical breadboard design to be created digitally. By designing a digital version, and verifying its functionality we can have a smooth transition to creating the PCB.

Mechanical Drawings

By: Miguel Gonzalez (Project Manager & Manufacture)

This blog demonstrates the process of developing all the parts for the Micro Fobo and the unique ways we solved issues throughout the building process.

Resource Reports (Power, Mass, Cost)

By: Jeffery De La Cruz (MST Engineer) and Miguel Gonzalez (Project Manager and Manufacturing )

Fig.2 Power Report

Fig.3 Finding the Center of Mass

Summary of Experiments / Rapid Prototyping Completed and Software Tests

By: Miguel Gonzalez (Project Manager & Manufacture)

It has been approximately eight weeks since the start of the semester and most of the first month consisted of mainly research and write-ups. But after the first month, we began experimenting with small components and sections of our BiPed. We started by looking at the legs of our robot as we knew that making the robot walk on two legs was a crucial part of our design. We created a copy of the 2016 Fall ROFI design and just focused on the legs of that robot. This initial design consisted of having 6 servo motors operating the leg and foot. Using the blog post on that robot and using help from projectbiped.com we were quick to get the robot’s leg to move. If you would like to see images and videos of the robot when it’s operating, you can view our drive folder here. In this configuration, the robot’s leg is very robust and can do very intricate movements while maintaining the robots balance. The issue with this design is that nearly 70 percent of all the weight of the robot consists of the legs alone. We knew that if we can decrease the weight on the robot we could have easier walking movements that in theory can speed up its walking speed. Our secondary design for the robot was to reduce the number of servos operating on the legs by only having four servo motors instead of six.

Fig.4 ROFI vs FOBO

Fig.5 Original Size vs Micro Size

This newer design would remove both the knee servo and middle leg servo on both legs. Theoretically, the newer design should remain functional and provide the ability to take longer strides when walking. It is important to note that the designs for the new leg designs have been modeled and 3D printed but the test will take place on March 17, 2018. This experiment will allow us to verify that the legs can perform walking movement and maintain a higher walking speed than the six-servo design.

Concluding Thoughts


Project Video: YouTube

PDR: EE400D Design Presentations

Project Libre Excel: Burndown

Verification and Validation Documents: https://www.arxterra.com/spring-2018-project-biped-verification-and-validation-pass-fail-matrix/

Solidworks Files: Micro FOBO

Fritzing Files: Fritzing-20180331T202552Z-001

EagleCAD files (zip folder): Copy of EagleLibraries | 400-D gerber-20180518T192139Z-001 | ServoShield2Eagle-20180518T192149Z-001

Arduino and/or C++ Code:  Walking and Turning | Remote_Control FOBO

Bill of Materials: https://www.arxterra.com/spring-2018-biped-preliminary-budget/ Budget Table pdf

3D print Time: https://www.arxterra.com/spring-2018-biped-3d-print-time/

List of all our blog post: https://www.arxterra.com/news-and-events/members/3dot-robots/biped-generations/biped-generation-5/

Final Arduino Code

By: Jordan Smallwood (Project Manager)

Approved By: Miguel Garcia (Quality Assurance)

6-Wheel Differential:

The six-wheel differential takes advantage of pin-change interrupts since most of the external interrupt pins are lodged within communication pins on the ATMega 2560. The way it works can be viewed here. Currently we are experiencing difficulties getting the software to work, this may be due to the short that took place while wiring the Pathfinder up. I believe there may be some issues with the motor drivers and we will have to replace these. The code for a 6-wheel differential can be found here: Final Arduino Code.


In order to preserve energy in the wastelands of Mars, we need to cut off power to motors that are spinning freely. In order to determine if a wheel is spinning freely we compared the current power running to them with known values of no-load current and would turn them off if need be. Turning off the motors is not an issue but it’s determining when to turn them back on that poses a threat. We can pulse the motors to find out if a load is present but at that point it may be too late and will create unnecessary drag on the system. Further studies can be found here. If you would like to view the code it is included in the .zip folder mentioned in the previous section.

GPS Navigation:

Due to time constraints and non-software related issues, the Pathfinder is currently unable to perform GPS navigation. However, access to GPS information regarding latitude, longitude and heading can be extracted from the Arxrobot application onto the Arduino. Furthermore, these values can be modified to produce distance to checkpoints and required turn. Although this feature is currently not functional it is definitely feasible.


Acting as Project Manager/Software was an extremely difficult task this semester. I would have liked to focus on one specific area, specifically software, so that I could have done more as far as coding went. But will have to continue working on this code throughout the summer so that Pathfinder will be able to complete it’s mission.


  1. https://www.arxterra.com/pathfinder-arxterra-communication-part-two/
  2. Final Arduino Code

Rocker-Bogie Suspension System

By: Adolfo Jimenez (Manufacturing)

Verified By: Jordan Smallwood (Project Manager)

Approved by: Miguel Garcia (Quality Assurance)


In order to mimic the suspension capabilities of the rovers sent to Mars by NASA, our rover will incorporate the same rocker bogie suspension system utilized by the Mars rovers to traverse an extreme desert-like terrain. This suspension system, introduced with the original Mars Pathfinder project, is the same design preferred by NASA for nearly all the Mars rovers. The main advantage of this type of suspension system is that the load on each wheel is nearly identical and thus allows an equal distribution of force regardless of wheel position. Taking into consideration the harsh terrain found on Mars this type of suspension system provides a better alternative to that of the common 4-wheel drive soft suspensions found on most automobiles.

Figure 1: View of Differential Gearbox System without Box

Design enhancements:

For our project, since we are mainly building upon the design of previous semesters, we can utilize the things they did correctly and build upon things they may have overlooked. The main design difference, as it pertains to the suspension system, is the addition of a differential gear box. Whereas previous semesters utilized a barely functioning differential bar, or no differential at all, this semester we decided to remove the bar entirely and replace it with a much more functional differential gear box. This addition of a differential gear box will offset the wheel assemblies by about .8 Inches on each side and raise the main platform about .38 inches higher from the ground. Upon further research of rover suspension systems our group discovered a helpful blog on a website called Beatty Robotics. The website provides many helpful blogs describing the design and creation process for many custom Mars rovers and other robots. The particular blog post that helped us meet our needs pertained to a differential system used for a custom Spirit II Mars rover. Feedback on the blog pertaining to the parts used lead us to the website McMaster-Carr where we were able to order the parts to assemble our own Differential.

Suspension- Wheel Assembly:

Figure 2: Wheel Assembly

The wheel assemblies contain a total of 6 wheels with a symmetric build for both sides. Each side contains 3 wheels which are connected to each other by two links. The main linkage called the rocker has two joints, one affixed to an axel forming the differential mechanism and the other connected to the remaining two wheels. This linkage from the rocker to the other linkage between the two wheels is known as a bogie (hence the name rocker bogie). To go over an obstacle, the front wheel is forced against the obstacle by the center and rear wheels. The rotation of the front wheel then lifts the front of the vehicle up and over the obstacle. The middle wheel is then pressed and pulled against the obstacle by the rear and front wheels respectively until the wheel is lifted up and over the obstacle. Finally, the rear wheel is pulled over the obstacle by the front two wheels.

Suspension- Differential Gear Box:

Figure 3: Differential Gear Mechanism Close-up

The differential is composed of three identical beveled gears situated 90-degrees from each other at the center of the rover. Each gear is affixed to a 6-inch steel drive shaft that is mounted to the rover body by 2 mounted sleeve bearings. One gear connected to the left, one gear connected to the right, and the last gear assembled onto the main platform. The two rods facing opposite of each other on the left and right of the robot help serve as axels for the wheel assemblies. The axils are connected to the wheel assemblies by 2 parallel aluminum tubes that make up the rocker bogie suspension system. The inclusion of this differential insures that the robot’s body and pitch angle are always adapted even if one side of the rover steps over an obstacle. If one leg goes over an obstacle, an opposite force is applied to the other leg. So, if one leg goes up, the other leg goes down. This downward force onto the opposite leg helps the robot maintain traction in the leg assembly that is still on the ground. The way this works is when one side changes in pitch, say for instance one side begins climbing over an obstacle, this mechanism rotates the main body around the rocker joints by the average rotation angle of the two sides. For this differential mechanism, all gear ratios are the same. That means if the left gear rotates 10 degrees and the right gear rotates 20 degrees, the main platform will rotate 10 + 20 = 30/2 = 15 degrees or the averaged amount. This keeps the main box more level (less tilted) than it normally would be when going over large, uneven obstacles.


  1. https://www.arxterra.com/2016-pathfinder-design-and-manufacturing-rocker-bogie-suspension-system-design/
  2. https://www.arxterra.com/news-and-events/members/pathfinder/pathfinder/pathfinder-generations/pathfinder-generation-4/
  3. https://en.wikipedia.org/wiki/Rocker-bogie
  4. http://citeseerx.ist.psu.edu/viewdoc/download?doi=
  5. http://beatty-robotics.com/differential-for-mars-rover/
  6. https://www.mcmaster.com/

Rules Of The Maze (Robot Avoidance Rules and Strategy)- Part 2

Written by Nornubari Kanabolo MST DM

Special Case 2.3(T-intersection) continued

As Matt explained in the previous post, for 2 robots at a T-intersection:

“In this case the robot that is within the intersection (in the middle of the T – intersection) has the lowest priority and must move out of the way of the other robots (if the other robots are in the path of the low priority robot). The lowest priority robot will step down the hallway that is not blocked and then wait for the other robot to pass.”

As for the case with 3 robots at the intersection, the following method could be used:

Say R2 steps into the intersection and R1 needs to go where R2 is and R2 needs to go where R3 is. One thing that could happen is R3 goes back to the last intersection to wait and R2 waits 5 seconds to move one square to the right.

At this point, 2 possible cases could happen. Case 1 as follows:

R1 waits 5 seconds and sees that there is no one in the intersection now then moves into the intersection, so that it can go to the hallway where R2 was. R2 waits another 7 seconds and goes down to where R1 was. R3 waits 3 seconds and returns back to where it originally was.

Or if R2 needs to go where R3 is then Case 2 is enacted as follows:

Since there are no longer 3 robots at the intersection and it is now just 2 at an intersection, the rules for encounters 2.3 as stated by Matt are used.

Training on Arxterra 3DoT App RC Mode

Written By: Muhannad Al Mohamed (E&C DM)


The Arxterra 3DoT App training had a goal of teaching E&C and MST members how to use their phones to communicate with their projects through Remote Control Mode. The ArxRobot Application has two different modes of communication with the Robot’s Microcontroller. The Remote Control Mode (covered in this training) and the Community mode (Covered in the next training session). The user, through the ArxRobot App, should be able to send commands to the microcontroller either through predefined commands or custom made ones.


The communication in the RC mode is done wirelessly through Bluetooth with an easy pairing process at the initialization of the RC mode. Commands are sent to the microcontroller as packets that consist of bytes that have specific identifiers to indicates whether the command is a command or telemetry. The packets contain data bytes that can be processed by the pre-coded microcontroller.

User’s Interface

The user interface in the RC mode is user-friendly. The default setting shows the controls of two motors in a strip type command. The strip can be changed to a D-pad looking control. Custom commands can be set to show on the user’s interface when enabled.

During the training session, members were taught how to use the user interface to control motors by giving specific input, moving motors at the same time, and steering trim to maintain desired speeds.

ArxRobot App’s Settings

The commands used in the app can be changed in the settings of the app. To access the predefined and custom commands users needed to be in Developer Mode.

The Phone Configuration window in the setting enables the user to choose the way to connect to 3DoT board, show phone’s battery percentage on Control Panel, and flip Camera’s position.

The predefined commands are commands and telemetry functions defined by the Robot3DoTBoard and saved in the app as default commands to operate a Mar’s Rover. These commands, if needed, can be used by the user by enabling each command in the Robot Capabilities configuration.

The Custom Command & Telemetry Configuration window allows the user to create new commands to be sent the 3DoT Board and receive Telemetry from it.


Custom Commands & Telemetry

Options for commands and telemetry is created by adding an option and giving it a specific address from (0x40) to (0x5F). Each option should be chosen to be either for commands to be sent to the 3DoT or Telemetry to be sent by the 3DoT. Commands can be controlled by the ArxRobot App; however, not all telemetry options are shown on the app. Each option should be enabled to show in either RC mode or Community Mode.


There are 7 options the user can choose while creating a custom command:

1- Boolean:

This option enables the user to send a byte in the data packet to the 3DoT board with a value of either (0x00) or (0x01). In the user’s interface, it can be seen as a switch that can be changed. The user can choose a default value of either of the previous options. This option can be used to turn an LED on and off for example.

2- Select:

This option enables the user to have multiple outputs to switch to. It is similar to the Boolean switch; however, it can have as many options the user wants to switch into. It sends a 1 byte of data parameter with the packet that is sent to 3DoT board; however, the values sent can be modified by the user. The select option shows in the user’s interface as radio buttons.

3- Byte:

This option can be used to send a byte in the data packet but with a wide range that can be changed by the user. It has a default range from -127 to 128 where the user can control which value sent by moving a strip in the user’s interface. These values can be changed by the user in the Byte settings to the desired range but it would still be a byte range. The steps between each value can be modified as well. This option can be used to move a servo motor for example.

4- Unsigned Byte:

This option is similar to the Byte command. The only difference would be the default range that starts from 0 up to 255.

5- Short:

This option is also similar to the Byte/Unsigned Byte; however, this option sends two bytes in data packet. Because it sends two bytes, the short command has a wider range than Byte/Unsigned Byte. The default value of this options ranges from -32768 to 32767.

6- Unsigned Byte:

This option is similar to the short option; however, the default range for it goes from 0 to 65535.

7- Header/Separator:

This option does not send any data in packets sent to the 3DoT; however, it is used to make the interface more user-friendly. titles to commands can be given using this option and it can be used to as separator if it was used without writing anything to it.

Training document

Arxterra RC Mode training document can found at this link.

Optimizing RC Mode in Projects

Update: 12/5/2017

Room Showing Telemetry Command

By creating custom commands and telemetry, engineers can create commands that can enable them to control their projects through the maze. For example, the path taken by a robot can be sent back to the phone connected to the MCU using telemetry options to show which room the robot is in on the phone’s display using RC mode. By optimizing the translated code from EE346/EE444 written by Mark Huffman (Goliath Project Manager) and Matt Shellhammer (ModWheels E&C Engineer), the variable “room” value can be sent as telemetry to the ArxRobot app. In the ArxRobot app, a telemetry Select command should be created and called room where it shows the byte value on the phone.

Creating Telemetry command called Room

Selec command Room

Assigned options to show the room type as implemented from the maze

Room type is shown in RC mode interface

Phase Selecting Command

The same process can be implemented to apply choosing the phase each robot is taking. In her blog Mission Definition, Elizabeth Nguyen (Pete-Bot Project Manager) explained how there are four planned phases each project can take:

  • Phase 1: Record
  • Phase 2a: individual playback
  • phase 2b: 4 Robots, 1 maze
  • Phase 2c: Individual playback, predefined

This custom command can be applied by also creating a select command with the four options where the user can switch easily between phases.

Phase selection in RC Mode

Recording Phase

Whenever Phase 1: Record is selected, the robot should start saving its path in the EEPROM. The EEPROM library can be very useful to record data when the system shuts down, which is essential in keeping data. The process of saving the path the robot is taking is explained in Write to EEPROM blog written by Matt Shellhammer (ModWheels E&C Engineer).

Generic Color Sensor Hedge follower PCB Layout

Written by Charles Banuelos


The PCB design below is for a generic hedge following shield. The PCB is a work in progress with the finalizing of the dimension dependent upon the testing of the color sensors. The LEDs chosen are significantly larger than the previous design and this is due to availability.



Update 11/30/2017

The PCB design was finalized and sent to OSH Park to be fabricated. The color sensors are placed 5.48 mm away from the edge of the board. The LEDs are placed 5.64 mm horizontally away from the color sensor towards the center of the board. The LEDs were changed due to availability as well as the issues with size. The orginal LED was too large and suitable replacement with similar specs was found. The final board dimensions are 10.87 mm wide by 55 mm long. The color sensors are placed 40.41 mm apart. The final draft of the PCB has the caster wheel cut out for 3DoT chassis as well.  The boards were received on 11/21/2017 and are currently being assembled.



Parts List

Update 12/12/2017

This design was able to work for only one of the color sensors on one of the boards. The other color sensor was intermittent. This lead me to believe that the problem is in the soldering. The fabrication portion of this designed was plagued with many problems. The color sensor pads themselves are extremely small so when placed on the solder paste by hand the sensor would move and create bridges. The only way to mitigate this is to use the pick and place machine to ensure proper placement. The another issue found was that when a board was trying to be fixed with a heat gun the parts would burn before the solder would melt. This to could also be fixed by using the pick and place to ensure proper placement the first time. The last issue was with the stencil. The stencil would get clogged on the color sensor holes due to that fact they were very small. The only option to mitigate this is clean the stencil thoroughly after each use as well as use flux to ensure solder is in the right place.

Generic Color Sensor Schematic

Written by Charles Banuelos  MFG DM-updated 11/29/2017

The schematic below is for a hedge following shield that will connect directly to the 3DoT board. The hedge following shield will connect to the 3DoT board using the same 6 pin header that is used for the 3DoT IR shield. The design follows Thomas Forman’s designs from EE444. The color sensor being used is the BH1745NUC-E2CT-ND color sensor because this color sensor allows for two different I2C addresses to be used.  The hardware is designed to have the I2C addresses (0x038) and (0x39) in HEX. The LEDs chosen were chosen due to the fact that they were able to fulfill the specs needed such as light transmission, package size and current. The LEDs are used to light up the areas for the color sensors to detect the hedges. The mosfet in the schematics is used to control the LEDs which are protected by resistors. There are protection 10k resistors placed at the address pins to ensure protection of the color sensor.

Update 12/7/2017

The schematics below do not contain any form of reverse polarity protection. It should be stated then that when inserting the PCB in the 3DoT header that the orientation should be carefully monitored as to not accidentally flip power and ground. This could cause catastrophic damage to the circuit. It should also be noted that future color sensors should include a diode on the power line right after the header to protect from this. This design chose not to go with this at the time due dimension requirements of the PCB.


Spring 2017 Final Blog Post – Pick and Place

Belinda Vivas (Project Manager)

Tyler Jones (Manufacturing)

Kevin Ruelas (Electronics)

By: Chastin Realubit (MST)

Executive Summary

Program Objective

By: Belinda Vivas (Project Manager)

The objective of the Second Generation of the Pick and Place is to:

❖Build up from the First Generation of the Pick and Place machine and create an user friendly design.

❖Create a user friendly manual:

  • Softwares
  • Step by Step
  • Wiring
  • Troubleshooting

❖It shall be built in stages.

❖Make the Pick and Place consistent with the manufacturer of only a few boards per semester.

Mission Profile

By: Belinda Vivas

The mission plan for the Second Generation Pick and Place is to place all components used for the 3Dot Board 4.54 faster than a person. Manufacturing time of a person is 4 hours, so anything less than that is acceptable, with 1 hour being the target time.

The overall goal of this project is to have a working Pick and Place machine for future EE400D students to build their custom PCB. The 3Dot Board that will be constructed is more difficult than any PCB students will make, therefore, this machine can theoretically make any board future students plan to do.

Because this machine is supposed to be used by students, we will include manuals (written and video) so that future generations can operate this machine with ease. We will conduct experiments using Electrical Engineering students to see if they can operate the machine using only the given manuals.

The overall summary for the Mission Profile is:

❖To create a 3-Dot 4_54 PC Board.

❖Ensure precision and calibration through the addition of a camera system (Edge Detection).

❖Create a CSV file to implement a better interface between the user and the machine.

❖Multiple feeder assemblies

❖Incorporate better materials

❖Tape feeder for the following component parts:

  • 0402
  • 0603
  • 0805


Project Features

By: Belinda Vivas (Project Manager)

Figure 1 – Detailed Design of Generation 2


❖Camera System

  • Edge Detection

❖Two Arduinos System

  • Independent from each other

❖Vacuum System

❖Servos System

❖Power Emergency Switch

  • Relay to cut power on the motors


❖Higher legs with rubber on the base to provide better stability due that more weight is being added causing for higher vibration.

❖Higher amount of component feeders.

❖IC Chip component holder

❖Power Switch


❖Component Cabinet

❖Electronics Cabinet

❖Tape waste bin

System Design

By: Chastin Realubit (MST)

Figure 2 – System Block Diagram


Solenoid and Vacuum Test

By: Tyler Jones (Manufacturing)

The vacuum by itself was powerful enough to carry the Atmega chip but experiments show that we need a bigger nozzle to increase airflow.

Figure 3 – Solenoid Circuit

Blog Post: https://www.arxterra.com/pick-and-place-solenoid-valve-design-and-control-2/

Z-Axis Test

By: Chastin Realubit (MST)

Z-Axis Motor: We did an experiment to see the load that the Z-Axis can handle and we found that it will still carry up to 2000 g. This experiment was done so that we can see if the motor can still move up and down even with more load. This was needed because we are adding a camera on the Z-Axis and we needed the system to still function with extra weight.

Figure 4 – Nozzle System

Blog Post: https://www.arxterra.com/pick-and-place-z-axis-and-nozzle-test/

Rubber Vibration Damping Test

By: Tyler Jones (Manufacturing)

-The machine has a basic feature of rubber shoes for legs of the platform stand.

-This will aid in damping vibrational disturbances.

-A 4” x 4” x 1” block of butyl rubber shaped using a bandsaw and miter saw.

-The block was fitted to form shoes that fit over the legs of the machine.

-The blocks have been tested on one leg for stability.

-The use of a milling router machine should be used

Additional Testing

Emergency Power Switch: https://www.arxterra.com/pick-and-place-emergency-power-switch/

By: Tyler Jones (Manufacturing)

3Dot IC Tray:https://www.arxterra.com/pick-and-place-3dot-ic-tray/

By: Tyler Jones (Manufacturing)

12 Servo Mount & Tape Feeder System:https://www.arxterra.com/pick-and-place-12-servo-mount-tape-feeder-system/

By: Tyler Jones (Manufacturing) and Belinda Vivas (Project Manager)

Camera Test: https://www.arxterra.com/pick-and-place-camera-test/

By: Kevin Ruelas (Electronics)

Solenoid Valve Design and Control:

By: Tyler Jones (Manufacturing) and Kevin Ruelas (Electronics)

Servo Driver: https://www.arxterra.com/pick-and-place-servo-driver/

By: Kevin Ruelas (Electronics)

Camera System: https://www.arxterra.com/pick-and-place-trade-off-study-camera-system/

By: Kevin Ruelas (Electronics)

User Interface


By: Kevin Ruelas (Electronics)

Though the user can type commands manually in the GRemote, once the machine is running and calibrated, use command G28 to set the origin then send the CNC file and wait for the machine to do the rest.

Figure 7 – GRemote controller

Figure 8 – GCode Commands

Figure 9 – Arduino 1 Interface Definitions

Figure 10 – Eagle CAD to Pick and Place

Camera Fritzing Diagram

By: Kevin Ruelas (Electronics)

Figure 11 – Camera Fritzing Diagram

Recalibration of Origin

By: Kevin Ruelas (Electronics)

Since the 1st Gen. already defined the origin, the edge detection of a “target” will be used to calibrate this location and prompt the user to make this correction via GRemote.

Electronics Design

By: Kevin Ruelas (Electronics)

The overall Pick and Place was composed of various subsystems which were all ran by a common code. The motors, the nozzle, calibration, camera, LCD display, servo driver, and solenoid.

Figure 12 – High Level Software

Blog Post: https://drive.google.com/open?id=0B9iWYCBTJWEEeEFxc1pjU0ZFTjQ

SolidWorks Model

By: Tyler Jones (Manufacturing)

Figure 13 – Side View of SolidWork Design

Figure 14 – SolidWorks Top View Design

Verification and Validation Test

By: Chastin Realubit (MST)

The purpose of this section is to provide a comprehensive Verification and Validation (V&V) Test Plan of the Spring 2017 Pick and Place including the Project ConOps/Mission, Test Methodology, Verification and Validation Matricies, Test Cases, and Exit Criteria.


Resource Allocations

Power Allocation

By: Chastin Realubit (MST)

Components Expected Current Draw (A) Uncertainty (%) Margin (±A) Measured Current Draw(A)
Stepper Motor (X-Axis) 1.35 5% .0675 .44
Stepper Motor (Y-Axis) 1.35 5% .0675 .44
Stepper Motor (Z-Axis) 1.35 5% .0675 2.83
Stepper Motor (A-Axis) 1.35 5% .0675 .44
Detection Camera .75 5% .0375 TBA
Solenoid Valve .40 5% .02 .42
Display Screen .75 5% .0375 TBA
Servo fs90r (12) .2 5% .01 .21
Project Allocation 6 A (Calculated knowing that we will be using two Arduinos with separate power supplies)
Total Expected Current 3.45 A (The motors and servos will not run simultaneously)
Total Margin .375 A
Contingency 2.175 A


Mass Allocation

By: Chastin Realubit (MST)

Vacuum System Components Preliminary Mass (g) Uncertainty (%) Margin (±g) Expected Mass (g) Actual Mass (g)
Stepper Motor (A-Axis) 245.00 5% 12.25 245.00 247
Stepper Motor (Z-Axis) 245.00 5% 12.25 245.00 246
Vacuum Nozzle 2 5% .1 2 TBA
Z-Axis Actuator 292.00 5% 14.6 300 244.12
Detection Camera 3 5% .15 3 TBA
Project Allocation .Preliminary allocation is 2000g
Total Expected Mass 795 g
Total Margin 39.35 g
Total Actual Mass TBA
Contingency  1165.65 g

Cost Report

By: Belinda Vivas (Project Manager)

For the Second Generation of the Pick and Place, our allotted project budget was of $500, in which a total of $469.04 was spent; it was divided as follow:

Receipt Vendor                Item            Unit Quantity Total Cost (Including Shipping) Purchased By
1 Makeblock RJ25 Adapter $4.98 1 $15.65 Kevin Ruelas
RJ25 cable-20cm (4-pack) 1
2 Amazon 12 Bit PWM Servo Driver $11.99 1 $11.99 Kevin Ruelas
3 Amazon Blue Backlight LCD Module $7.99 1 $7.99 Kevin Ruelas
4 Amazon 3-Pin Extension Lead Wire $6.99 1 $6.99 Kevin Ruelas
5 Amazon Arduino Power Supply Adapter $6.29 1 $6.29 Kevin Ruelas
6 Amazon 120 pcs Dupont Wire $8.86 1 $8.86 Kevin Ruelas
7 This item was removed. Arduino Uno will not be needed for the project anymore and the student requested to keep the board.
8 AdaFruit MicroSD Card $7.50 1 $52.56 Kevin Ruelas
JPEG Camera $35.95 1
9 Pololu Rotation Servo $4.95 9 $49.50 Chastin Realubit
10 GearBest LCD Display Screen $4.53 1 $17.18 Chastin Realubit
11 Amazon PWM Servo Driver $11.99 1 $15.98 Chastin Realubit
12 Ebay Rubber Bench Block $7.48 1 $7.48 Tyler Jones
13 Sewvac LTD Bobbins for Servos $3.29 1 $3.29 Tyler Jones
14 RadioShack Mosfet IRF 510 $1.78 1 $1.78 Tyler Jones
15 ACE Hardware Nuts & Bolts $5.40 1 $5.93 Tyler Jones
16 The Home Depot Wood $29.98 1 $29.98 Tyler Jones
17 The Home Depot Aluminum Plates & Epoxy $35.68 1 $38.45 Tyler Jones
18 MicroCenter 3D Printer Filament $14.99 1 $16.15 Tyler Jones
19 The Home Depot Screws $18.49 1 $18.49 Tyler Jones
20 The Home Depot Plastic Sheet $140.06 1 $140.06 Tyler Jones
21 ACE Hardware Screws $14.44 1 $14.44 Tyler Jones
Total: $469.04  
Name of Individual Position Total Amount Reimbursed
Kevin Ruelas Electronics $110.33
Chastin Realubit MST $82.66
Tyler Jones Manufacturing $276.05
Total** $469.04

Updated Schedule

Top Level Schedule

By: Belinda Vivas (Project Manager)


Sub System Schedule

By: Belinda Vivas (Project Manager)

Concluding Thoughts

By: Belinda Vivas (Project Manager) and Tyler Jones (Manufacturing)

We were able to incorporate more extensive and higher technology subsystems into the Second Generation of the Pick and Place; by implementing a more user friendlier systems and introducing a camera system, LCD Display system, redesign of the nozzle, better calibration system, higher servo driver system, and an overall new manufacturing design.

The pick and place was successful in picking and placing parts onto the 3DoT board. The machine when calibrated can place parts into the respective locations where they can be soldered using the IR reflow machine. It is important however to note that the pick and place machine can be improved in the following areas. Its mechanical, and electronic design can be updated with simple solutions that require more time. They are discussed below.

The pick and place mechanical design can be improved in a noticeable and easily recognizable ways with more time for development. The first is the belt system.

1) The belt system does work well, and the X and Y stepper motors move to positions accurately, sometimes during design of the machine the tensioner plates that hold the 3 belts into place were loosened. This is so that parts in the machine can be easily worked on. Therefore it is important to make sure that belts are tight, as well as lubricated. Loose belts cause the machine to make a noticeable sound that is not as fluid as when they are tight. The best solution would be to incorporate threaded drives instead of belts, however this is more costly.


2) The pick and place uses a 3DoT board that was 3D printed with more than 6 iterations. This was due to numerous errors in the printing temperature, malfunction, and design limitations. There is a table that corresponds to part sizes and dimensions and adjustments made to account for error of the 3D print. It is found here, 3DoT IC Tray. A decent 3D printer and filament must be used in order to get the precise dimensions necessary. An alternative solution would be to cut a small rectangular piece of plastic that is about 0.5-0.75 inches thick, and have it precisely laser cut. The laser cutter used in the design center was not accessible in this generation later on in the project timeline.
3) The Z-axis is supported by two aluminium slider rods. These slider rods must be spaced as far apart as possible so that the heavier Z-Axis can have a wider more stable base and center of gravity. This design was used in the pick and place and must be incorporated if further design iterations will be made. The camera is mounted on a bracket that allows makes it so that the Z-Axis only can be bolted to two of the aluminium sliders. This must be made able to be bolted into all four of the sliders. It is shown below

4) The pick and place currently uses a locked position origin. This is so that the the machine can be turned off and moved back to the locked position manually. From here the pick and place machine can be moved to the function “L” bracket origin. It would be a much safer design if limit switch can be placed on the X and Y axis so that if the user were to accidentally enter the wrong code in the machine the motors would not grind. This can be accomplished by using the current limit switches and adding the limit switch code to the stepper motor.ino Arduino code. The limit switch acts as an electromechanical disconnect that simply switches off the stepper motors when the machine makes contact with the switches. An image of the switch is shown below.

5) The electronic design can be further enhanced if the 12 channel servo driver can be made to separate the digital power source which carries Arduino logic level signals of +3.7V and +5.0V, and the analog power source which carries +12V signals. The connection is made through the Me Uno RJ25 board. This connects an an RJ 25 communications signal with a 12 V analog signal.
6) The edge detection camera code was functional and the code calculated the position of the origin by comparing picture taken by the camera, and comparing the pixel lengths. The edge detection however was off by about 0.3 which is about 1mm in actual length. In order to improve the accuracy of the machine a higher resolution camera must be used.

Project Resources

Video – https://www.youtube.com/watch?v=2Cn5abf5Arw

Preliminary Design Document – https://www.arxterra.com/pick-and-place-preliminary-design-document/

Preliminary Project Plan – https://www.arxterra.com/pick-and-place-preliminary-project-plan/

PDR: https://drive.google.com/open?id=0B9iWYCBTJWEES1g1emo3NklpTmc

CDR: https://drive.google.com/open?id=1tGSSGGry0n6I4EDJ9IYzM1PXZUMOc_jJTCyYj9YSV1E

Blog Posts: https://drive.google.com/open?id=0B0hJ_mPvve6CRVpqOU1mdUN2aFk

Code Files: https://drive.google.com/open?id=0B0hJ_mPvve6CY0t5SjNuWk1OOEk

3Dot BOM: https://drive.google.com/open?id=1rC5BPWV3KqwXsGQ3CgFeVNoKTumOvdZjCftwd7t0eEU

Servos BOM: https://drive.google.com/open?id=0B7gruONfGRYcUExJeVBxMzNYblU

GCode Commands: https://drive.google.com/open?id=1CKODeCrm8FpmgrmSp363mjAMPNYaCCe5904dLSit4cs

3Dot 3D print File: https://drive.google.com/open?id=0B0hJ_mPvve6CNXVTQVNyVGxCT3c

3Dot Board: https://drive.google.com/open?id=0B0hJ_mPvve6CN25OSU01aEcwWlE


Ace Converter: https://drive.google.com/open?id=0B0hJ_mPvve6CTlI1NzNHX1BTLTQ

Arduino: https://drive.google.com/open?id=0B0hJ_mPvve6Ca1BpM3FGNDYzWVE

GCode: https://drive.google.com/open?id=0B0hJ_mPvve6CM2pNZ2hCWl9ZMXc

Me Uno Shield: https://drive.google.com/open?id=0B0hJ_mPvve6CUmtDcEN5LUxQSjg

Meeting Minutes: https://drive.google.com/open?id=0B0hJ_mPvve6CNXRhRFd5RThkR1k

Research: https://drive.google.com/open?id=0B0hJ_mPvve6CeS1tQmFRQ3hqQ3c

SolidWorks Files: https://drive.google.com/open?id=0B0hJ_mPvve6CaFVoR1RaRl93bkE

XY-Plotter: https://drive.google.com/open?id=0B0hJ_mPvve6CckVuWkJvOU53eEE

All Files: https://drive.google.com/open?id=0B0hJ_mPvve6CNXVTQVNyVGxCT3c

Instructional Manual: https://drive.google.com/open?id=1eXx-_8FduTJi8nRR356R3nj0DHnTqq50er3VYreTGXA

Project Libre Schedule: https://drive.google.com/open?id=0B9iWYCBTJWEET2pLMHVJVVd2am8

Verification and Validation: https://drive.google.com/open?id=0B9iWYCBTJWEEU05NMy1SMUs2ajQ