My 2019 Spring Co-op 

For 8 months, from January 2019 to August 2019, I interned at Tesla, an electric vehicle production company. I worked at the Gigafactory 1 that is located in Sparks NV. This internship was integrated into my 5-year electrical engineering program at Texas A&M University. 

Throughout my internship, I served two different roles. The first, I was performing majorly Automation control duties and for the second part, I did more manufacturing design and simulations.


We would dive into both internships and the duties I performed in each 

Click Here to download full report

Internship Training

Before I started working at Tesla, I had little to no prior experience with Robot programming or PLC programming.


I had done multiple projects like building my drone with controllers like Arduino boards and Texas instruments boards. In these my projects I had to integrate multiple parts and program them to function cooperatively with each other and this is the very core of PLC programming for production companies and tech companies.


It took to me two weeks to become familiar with Allen Bradley and Siemens Controllers. I was able to learn so much in such little time because I was thrown into multiple small projects with another team member which gave me firsthand experience of how these machines work. 

Just after my first month, I was tasked with leaning a 6 axis Fanuc Robot. This was a tedious experience because not a lot of information regarding how I was supposed to approach this was given.



I was given all the manuals I needed, a brand new robot, PLC, network switch and Allen Bradly IO blocks with no programming or configuration pre-installed. This leaning technique, although hard, was intentional. It was made so I would be able to figure out the robot for myself and also teach myself.


This gives you a platform to prompt you unconsciously to gain mastery of the robot and all the connected parts robot. This is exactly what happened. I was able to go through multiple manuals and make multiple mistakes until I was one with the robot. My “newbie” weeks were overwhelming but definitely worth it and very doable.  

Automation Controls Internship

I worked on a lot of projects at Tesla but I’ll talk about my most impactful projects and the ones I learned the most from.


One of my projects was to create a training cell (cage) containing a 6-axis Robot.  This entailed, assembling, and programming a 6-axis robot while also creating an electrical panel from scratch for training technicians and engineers.


Another project was to create programming logic for the creation of a new production line as well as ramping up production to meet demand.


I was able to work on a design project for my second internship where I designed a robot end of arm tools (EAOT) as well as create and program its motion sequences.


I worked on Allen Bradley PLC’s for most of these projects and also learned how to program and integrate multiple hardware. I communicated from the PLC to the peripherals either though IO Bocks or Ethernet IP.


For the training cell, I had to create electrical drawings from older models for the electrical panel using AUTOCAD, and for the Design project I worked on Solidworks and a robot simulation program.

Robot Training Cell

This project was made to provide Tesla engineers with an in-house training and development robot. This robot was not made for production but for training purposes. This project has made a lot of internal impacts at Tesla as well as in the city around it, Reno, Nevada. Here are some impressive benefits that my project brought towards Tesla:  


  •  Employees were able to learn and practice robotics in-house

  •  In 15+ classes we could regain the cost of the project through money saved by training inhouse

  •  My build was used to save at least a total of :  

    • $170,000 in the first year  

    • $368, 000 every year after

    • $1,645,000 in 5 years

  • It saved a minimum of $2,632 per student

  • Led to better employee retention ( due to technicians staying longer because they would get better career development)  



This project also had impacts on the city:  


  • This training cell was going to be made available to TMCC (Truckee Meadows Community College)  

  • Students interested would now be able to walk in a learn how to program robots free of charge

  • This is also an incentive for people to move to the city due to its advancement in robot training.  

An objective of my co-op was to build a Fanuc robot along with a functional electrical panel to supply power to it while equipped with a plc to control it. There was a pre-existing older model from which I was able to assemble a list of parts needed and how they should be connected. I was able to compile a functional list and made adjustments to the hardware, wiring, and panel layout. I chose to use more updated a PLC and wired the power distribution differently to allow a more balanced flow of current. The build of the material was made in Microsoft Excel and the panel was designed in AutoCAD.


The electrical drawing was done on AutoCAD Electrical 2019. I redesigned the panel and re-drew how the 120 VAC and 24 VDC were distributed between modules. My electrical drawing contained all information as to how to wire the robot to the controller as well as how every device was connected to one another, along with their respective part numbers. I can’t disclose information about the panel and how it was wired as that is confidential information with Tesla. It took me 14 days to design and have my electrical drawing approved by my managers. After it was all approved, my next step was to make my first build of the Robot Cell.  

From my list of material, I ordered parts from vendors and I had them shipped to the Tesla Gigafactory. The lead time form most vendors was 2 weeks. After I had received most of my parts I started assembly.  
I decided to start with the electrical panel. I prepared the electrical cabinet for mounting the parts, by drilling holes and mounting DIN rails and wire ways. DIN rail is used to hold the parts upright in the panel. After all the parts were mounted in the panel, I wired all the PLC’s, Ethernet switches, IOS, and other parts according to the electrical drawing I had made. I also assembled and wired external parts like the pushbuttons, ESTOP, door switches, and light curtains to the IO blocks.  
Once the panel was ready, I moved to work on the Robot. I mounted the robot on the cell and wired it to its controller and the PLC. 
 A lot of mechanical work was involved in this assembly process because things like the light curtain and door switches needed to be mounted on the enclosure of the robot.  
Once everything was wired and mounted, I proceeded to test the connection I had made. I was able to test the wiring through the use of a multimeter. Since the panel was considered low voltage this process was relatively easy. Once all the connections were verified and all the parts were powered on, I proceeded with programming the PLC.  
Having received new parts, some amount, approximately 2 days, of time was taken to set up and configure the hardware. After all initial setup was complete, the PLC and safety IO, the Ethernet switch were also configured. All the IP addressed were pinged next was creating Ladder Logic.  
In programming robots, a very important aspect is safety. When programming safety, one has to think of every possibility where a robot can harm an operator. With this in mind, I had to program all the permissive an interlock of the states to account for every possible outcome.  
For basic understanding: Machines in production have different states. i.e., home, staved, running, aborted, paused, etc. Each state determines the position of the robot and what it should be doing. Requirements, before machines can transition to any state, are that permissive, and interlocks have to be met.   
I was able to write the basic code for this robot. I made a routine that contained, the state machines as well as appropriate bits enabled to allow the robot to be taught to be the teach pendant. Each state in the state machine then calls different programs in the robot.   


A teach pendant Is used to direct a robot in the 3-dimensional space and is also used to write program sequences for the robot. For the initial set up, I was able to master the robot and set the DCS zones as well as connect it through Ethernet/IP to the PLC. DCS zones are areas that the robot cannot surpass. If a robot crosses these zones, it would fault and would need to be repositioned. I also programmed the robot to move around in its fence but since my project was to make a build for non-production and training, not a lot of programming needed to be done to perform pick and place operations.  
That being said I am familiar with writing programs for Fanuc robots to perform multiple operations and interact with the PLC 

Production Line Ramp-up



Being familiar with the functionality of various comments in a production line is essential to being able to efficiently write logic on how these should operate. One of my projects was to program sequences for machines that perform pick and place operations on battery cells along the conveyor. When writing sequences for these pneumatic controlled machines, I also had to be familiar with simplistic programming. Simplistic programming is very important in writing logic because it allows others to easily interpret and understand your code as well as debugging easier.  



I wrote the logic for 18+ different machines that performed different operations and ran different sequences. Most of the machines consisted of forks for grabbing parts, digitally controlled pneumatic cylinders and motors. It was a complicated process but understanding what these machines needed to do as well learning efficient methods of approaching these sequences made my job easier.  


My first step in writing a program for these production lines was to create a flow chart for how I wanted the machinery to operate and how I wanted the different states to be function. Once this was done, I thought of every possible outcome and made sure it was resolvable from the current flow chart I made. If there was an un-resolvable case I would redraw the flow chart until my logic met every possible outcome and safety condition 



Once this was done my next step was to transfer my flow chart into ladder logic. Translating my ideas into ladder logic was easy but I also had to make sure I was able to represent all I needed appropriately in the appropriate states. I also had to program all the interlocks and permissive very carefully as this was extremely vital for the safety of the operators. Most equipment’s interacted with conveyors so I also had to work with handshakes between the two machines and create and an AOI capable of understanding each request. 



Once I was done writing the logic for these various machines, I had to make sure it worked well with the machinery as well as with the parts the machine interacted with. To do this, a lot of testing was done. This is the most important step. Once I was done making sure my program was working well with the raw material, I needed to makes sure the operators were going to be able to use it.  With this consideration, I had to simplify the functionality of my machines as well as how to communicate to the operators. Whenever one has done programming a machine it is handed over to operators who begin to use it for production of parts. If a program is not efficient in its methodology, flow, and cycle it would very much affect how many parts are being produced. This is also important because operators are put into consideration then one begins to see the magnitude of safety. Not only does the program have to be efficient in how it works and interaction with the 
Operators/Production associates, but it also has to be very safe. I had to take make sure all safety conditions I program were working. Once, I was done with my tests, machines were passed on to the operators for production.  


The first weeks of production are usually the slowest. Due to operators learning how machines work through training, practice, and bugs in code the cycle time is usually low and this leads to low units per hour. Once, production started, I noticed little areas where I could greatly increase cycle time as well as how to make it easier for the operators. This process is usually repetitive. Once this step was in motion, the machine usually became 2 times faster and more efficient.  


Manufacturing Design


The second part of my internship included Automation as well as Design. I did not only become better at Robot programming, but I also become more familiar with Solidworks. This experience sharpened my design sills because I was tasked to design a 15+ machine parts and operation sequences


 I was tasked with automating a production line. This included replacing a section of a line that had manual operations with a robot and makes the process automatic. For this to be done efficiently, I needed to carefully understand the sequences in the line and how it was operated. Once this was done, I was able to come up with a couple of ideas on how to automate the line.   

In the following lines, I'll go through the process of how everything went but first enjoy this little video

Production Line Automation 



After understanding the line, the next step was understanding the kind of raw material that goes into the line and understanding how it is transformed into finished goods. I needed to understand this because my processes on automating certain sections of the line relied greatly on the raw material. I needed to consider things like, the weight, density, shape, durability, and material type.  
Knowing all of these and interacting with the material gave me a perspective to consider when creating tools that would work around it.  



Once I was done with understanding the line and the raw material, the next step was creating a concept for how I was going to automate the line. I needed to revisit basic principles as well as the fundamental of physics, chemistry, and engineering. The benefit of this is that allows me to create the simplest yet efficient method of attacking any situation. The process is very reiterative. I had to create concepts, talk to other engineers, revise ideas, start over, and rub heads. I continued to do this until I found a concept I was satisfied with. This Version also had to be able to address all the challenges.  



Being an Electrical engineering major, I was not too familiar with Solidworks, and because of this, I had to learn a lot while designing the end of arm tool. This made me significantly better in design as well as opened my eyes to notice the intricacies of it. My EOAT tool was made to perform pick and place operations as well as alignment. Creating a tool to be able to do pick and place operation using suction cups as well as align the raw material for repositioning was very tricky. After the 2-3 weeks of revision, modification, and testing, I was able to discover an alignment feature to address this. The importance of this was that a lot of time was going to be saved if the robot was able to align the tool while picking up and placing it.  


Picking the robot is a step that is done in conjunction with designing the end of arm tool. This is because the robot had to be chosen depending on the weight and dimensions of the EOAT. Once I was able to determine the approximate weight and size of the EOAT, I was also able to pick a robot. There are some factors to consider when picking a ROBOT:  

  • Type of operation the Robot will be performing

  • The Payload (which included the weight of the EOAT and  the raw material )  

  • The Length, space required for the operation 

These important factors are to be considered when picking a type of Robot.  


After I had a certified concept for the EOAT as well as the ROBOT, I had to design the cell for the robot. The cell is the area of space when their robot can continuously perform the operation while being safe and enclosed. Designing a cell is also a very important step because in designing the Cell, I also had to determine the sequence/routine of the robot as well as how raw materials moved in and out. This process required a lot of redesigning and thorough investigation.   



Once I was done with the design I needed to verify the design was feasible and also met the cycle time specification. Fortunately for me, I had done a lot of robot programming so this step would be easier for me. In order for me to create simulation, I had to program a virtual robot actually how I would a real robot and taking into account its interaction time with the Raw material and conveyors. I also needed to look into how long it would take operators to load the raw materials in. While doing this, I found areas and aspects of my design that I later on changed to make my operations faster.  


 I then proceeded to make a list of parts that would be used to bring was used to bring the project to life. 

With all this done, the step that determined the success of the project was to create a business justification that showed why this project would save the company a lot more money in the long run as well as be better for the production sequence.


I was able to get quotes and have a price range of the project. This is where it got interesting. I did calculations to determine the payback period and savings, this lead me to come up with a few things:


  • It was going to cost us approximately a maximum of $63,000 to implement the project

  • The Project would also lead to an increase of 10 cars per associate  

  • The total saving was then going to be:  

    • $440,000 every year

    • $2,200,000 in 5 years 

With all this in mind, the project from a financial and operational point of view was well justified.  

Once the Business justification was approved and funding given the project would then be initiated and engineers would begin in creating and implementing my design. I was unable to be here this part because at this point school was about to start and my internship had just come to end


I am unable to write in detail all about my internship due to my Non-Disclosure Agreement hence why this report seems simplified but I will say my internship was a huge learning experience for me. It was also beneficial to the company because my projects would save Tesla a total of more than $4,000,000 in 5 years.  
My first project continued to be handled by other teams and the result of successfully collecting data led to accurate reporting and understanding the efficiency of machines in production. The result of this has many benefits but now we are to determine the functionality of our machines and know what zones to pay more attention too.  
My build of the Fanuc robot cell was one of my most impactful projects at Tesla. It was very hands-on and made me understand the in-depth workings of robots and the electrical design that enables it to function efficiently. The result of this project was a functioning build that can be easily replicated due to detailed documentation of the electrical drawings, the comprehensive build of maternal, and the standardized programming (code). This robot, which other engineers and operators can operate/learn on would move on to save Tesla $368, 000 every year after the first year and also has an impact on the Reno. It was things like this that fueled me as I worked vigorously to ensure the success of these projects.  
Programming sequences for the up-coming production line gave me mastery on how to best write the logic for production and how to take into account operators and safety. The result of this project would be a functioning segment of a line capable of handling multiple modules. This would support in production and efficiency of our factory.  
The design aspect of my internship gave me a new perspective on the in-depth functionality of a successful company as well as a solid design background. I learned how projects get funded and how much consideration is put into automating a line as well as the cycle of designing and redesigning. I was really proud of this project because it was estimated to save $2,200,000 in 5 years.  
Overall, I am really grateful for having the opportunity to learn a lot of different skills from everyone and to meet amazing people throughout my journey. I made lifelong friends as well as valuable connections. I can’t wait to start my next chapter, as well as projects I have planned for myself in the future.  
“If you can’t explain it to a child don’t do it” 
- Jerome Guillen  (President of Tesla)