Cruz Monrreal II - EE Student at the Univ. of Texas at Austin. Robotics Enthusiast. Maker.
As is typical of most engineers, this question could also be rephrased as “when did you first start taking things apart”, and quite frankly, I can’t remember a time when I wasn’t taking things apart. I’ve built my own computer from scratch before, but truth be told, the decision to focus on electronics didn’t really occur until I attended the University of Texas at Austin for Electrical Engineering. I was initially going to major in Computer Science, but I figured that I might get more out of Electrical Engineering. Ever since then, I’ve been loving the work that I do, even if it does keep me up late at night sometimes.
Let’s see… I can remember building robots all the way back to elementary school with LEGO Mindstorms, but after that, I took a break until I got to LASA High School. There, I joined the Robotics club (418 Purple Haze) where we participated in BES and FIRST. I also took a class by the same teacher in which the robots that we built would non-violently compete against each other, and our grade would directly correlate to how well we did.
Besides these instances though, I don’t think I made many robots until arriving to UT. I’ve always been the type of person that learns best through working on projects, which is probably because I would help my father with various carpentry projects around the house when I was younger (he was also a machinist by trade). In any case, in high school, I started teaching myself programming, which led to the problem that at the end of the day, I couldn’t physically show off what I made. In this sense, building robots eventually became a means to an end for me. I love being able to write code and see it effect something in the real world, but I love showing others what I made and how I made it even more.
Gladly! The one caveat is that I won’t go too much into detail because the list is too long. Let’s see… I’ve built several robots out of LEGO Mindstorms, one of which was for one of my classes. I’ve built several robots for various demonstrations for outreach events out of VEX parts and built a robot for the College VEX competition. Last year, I lead a small group that built a robot for the IEEE Region V Robotics competition, and we ended up tying for 9th out of about 30 college teams. It was the first time we placed in two years. I’ve helped with software to control a modified robotic couch, my I2C library has been used for a senior design project, and I was able to teach myself enough GCode to operate a CNC Machine that one of our alumni made.
A good soldering iron, the Open Bench Logic Sniffer, and a modified $30 reflow oven. The Open Bench Logic Sniffer was, and still is, an indispensable tool when I need to take a quick look at signals, but don’t have an oscilloscope nearby (I’ve actually debugged signals up to 20 MHz with this device). As for the reflow oven, it isn’t the best in the world, but it certainly gets the job done. It makes soldering 50+ printed circuit boards much easier, and definably quicker. For the time being, it’s being driven by an Arduino and breadboard circuit, but I have plans to shrink that and possibly embed the control circuit into the oven.
Whenever I’m not using a specific IDE for microcontrollers, I love to use Notepad++. However, whenever I use Linux, I try to use vim as much as possible. Given the choice, I’ll use Eagle CAD for designing printed circuit boards and Solidworks for various hardware parts. Every once in a while, the need arises for me to simulate a circuit, which is when I turn to an online circuit simulator that I found a good while ago. It’s nowhere near as capable as a SPICE simulator, but it gets the job done to the extent that I typically need.
Recently, I experienced an issue when debugging a system that had two types of voltage regulators; a LDO for USB-to-system, and a buck switching regulator for battery-to-system. The system had a requirement that anything that required a large amount of current (think motors and servos) could only be turned on with the battery. The issue was that whenever the USB was plugged in, those two subsystems would turn on as well. Long story short, and many multimeter readings later, I found out that the buck switching regulator circuit was acting as a boost switching regulator when only the USB was plugged in, effectively fooling the system that there was a battery plugged in. One diode later, the problem was solved. It turns out that fixing this one problem actually ended up solving a few more than expected, which is always a good feeling.
Literally? By the looks of it, I have two TI Launchpads, a Beagleboard, Arduino, past pcb revisions, and books for classes. Maybe it’s just a sign of the times, but whenever I want to learn how to do something new, I use a combination of blogs, articles, forums, and online tutorials to find my answers. If I had the room, I would also have my issues of Make Magazines.
That I do. Every time I make something, there are three things I do.
The first thing that I do is something that I picked up from my father. There’s a saying in carpentry: “Measure twice, cut once”. It essentially means what it says. I always double check my work to the best of my ability at the time (sleep depravity can be hard to combat) because once I actually make the thing, I will have spent money, time, and material.
The second thing that I do, is something that I picked up from when I was first learning how to program. Every time I made a change, I would compulsively save my work. There are few feelings worse than losing the work that you’ve been pouring hours on.
Finally, the last thing that I always make sure to do is learn something new. I feel that by doing this, even if the project isn’t a success, I still come out having learned something new.
Ugh, I dislike answering “what your favorite blah” questions. I can never seem to choose. I suppose the project that’s been the most entertaining for people not in engineering what when I wrote an I2C library for the LM3S811. When I first joined the Robotics and Automation Society here at UT, I was part of an event called Robotathon where we were taught the fundamentals of building and programming a robot that did basic tasks. After this two month event, I stuck around with the organization, and helped out with the various outreach events. To make our robots a bit more interactive, I decided to try and write software to control the robots with a wireless Wii Nunchuck. After writing that software, the library went on to control a robot for IGVC and for some time was the only form of control for a senior design project that one of my friends was working on (I was a sophomore at the time).
Sometimes, no matter how often you check, you’re bound to confuse pins. This is probably the most common mistake that I end up making, but it’s still quite rare, I’m fortunate to say. When I was working on my I2C library, I was initially testing it out on a magnetometer. For the longest time, the software would either hang or return readings that showed that the data line was being held high or low. When I finally found the problem, I found out that the data and clock lines were connected opposite to each other.
A similar issue happened about a month ago where a small surface mount chip I was using was getting nice and toasty pretty quick. I decided to double check the datasheet and footprint, and wouldn’t you know, I designed the footprint from the wrong point of view. The datasheet was a through-chip view instead of from the bottom.
Well, I’m currently working on a set of boards that I’ve dubbed as Root2 due to its dimensions (1.4” x 1.4”). The idea is to create something like the Arduino and its shields, but in a smaller form factor. It’s currently being developed with the LPC1343 to make programming a breeze, but the beauty of the system is that the system is modular to the point that the use can use a different processor if desired. It initially started off as me cloning a board that one of our alumni in our Robotics organization created, but to me, the process for getting it program-ready was too intimidating for the novice. I wanted something smaller and at the same time, relatively easier to program, from a novice’s perspective. I have plenty of different boards in the pipeline, some of which include an IMU board, an OLED board, and possibly something to do with FM transmitting and receiving.
Oh, and I’m also working with a partner on creating a simple game console of sorts for a class that I’m currently taking. We’ll see how that goes.
Heh. To make this brief, I’ll only list a few of the key projects I want to get to, but to be completely honest, I have an entire prerequisite tree in the works.
One of my goals before I graduate is to broadcast my graduation online. This might not sound like much, but the way I want to do it is what I think makes it unique. What I want to do is build a quad copter, or some other UAV that will carry a smartphone which will run the application to stream the event online. Sure, I could always buy premade UAVs, but where’s the fun or learning experience in that?
Another one of my goals is to make a device that can act as a CNC Machine, a Pick and Place, and a 3D Printer. I eventually want to get to the point where I can get my own assembly line going that handles part placement for me.
Truth be told, I don’t care much about the things that I work on or make, just as long as I’m learning something new out of it, or making something that people will genuinely enjoy.
I think we’re just getting started. Over the next few years, I think that the field of robotics will continue to grow. I do have my reservations though. I think that eventually, we will reach a point where robots will become so advanced to the point that the only jobs that they won’t displace are those of the engineers, and jobs that require a distinct human to human interaction. Most of this belief has stemmed from this string of articles found here, but truth be told, this is something that’s been on my mind for a while.