Hey, there! Guess how I was taken by the embedded train loaded with MCUs, FPGAs, COBs, PCBs, crosstalk, EMI, plants and birds and rocks, and things?
My grandpa had an electronics store ...
No, It was by chance! For me, until 2009 when I got into the university, electronics were TVs, PCs, Blenders, and other goods, not capacitors, resistors, transistors. You know, the storks delivered those things inside those goods, they were there by magic, I only had a vague question: Where are these stuff from? But it wasn't a serious question. So, let me tell you my story from storks to become an embedded guy.
On my way to university
In 2008, at my last school year before graduation, I needed to choose the course I want it. The problem was that I had no idea which one to pick out I knew I liked physics, math, biology, chemistry, music. So, I had put a list and made my homework seeking information about engineering courses, physics, music, and related to those subjects I liked. As I wasn't that teenager ( I was 16 to 17 ) who dreamed about being anything like a doctor, a lawyer or whatever I had to be reasonable, then I put salary into the list. Happens to those subjects I liked the higher salaries were paid to engineers. So I knew I would have to choose any engineering, but which one?
Then, I put a list again and started my "which one" to pick. At the time, I was already poisoned because of an old friend who was doing an electrical engineering course. Guess which one I picked? Yeah, electrical engineering, yet I'd thought hard about mechanical engineering and chemical engineering. Even though I like physics and music a lot they were discarded because of the salary, also, with physics, I was almost bound to be a class professor and with music, I could starve ( Those were the social norms, unfortunately ). Btw, if you say that you are a musician in Brazil, people will ask you about what do you do as a job, but if you are famous that's ok they will love you( that's sooo... ).
After choosing the course I wanted I applied to the university where I was living called Universidade Federal de Goiás, then I was approved to get in after the yearly exam. Well, that was just the beginning of the road. Back then, I knew that an electrical engineer could work with transmission lines, electric power generation, and something called industrial automation.
Now, 2009, as an undergraduate student I took calculus, algorithms, physics, linear algebra... and all those disciplines. That was ok, but things became more interesting in 2011 when a friend and I subscribed to the operational system discipline ( Yes, Tanenbaum's book ) which I dropped at third class (anyway it wasn't an obligated one for EE and I was curious because discipline's name was cool, right?) because I could not understand anything. That didn't make any sense for me. However, I was still on the email list, then I received an email about an internship opportunity at a company running a control access business. They had a promising fingerprint recognition system. Well, I went there for an interview, I thought I needed some money. They Hired me.
The internship - part 1
So, what should one expect from an EE internship? The answer is: Learn things about EE. WOW... and then what happened? I spent some months cutting metals with a Dremmel, drilling holes, screwing, and so on. That was strange since the first day. Nobody told me anything about a plan for me, I didn't know how an EE internship was meant to be, but that way was too strange. Well, I was a naive 20 years old guy that wasn't in any way able to impose myself and ask for an internship plan of EE or quit, and neither do I had some internship supervision from university, every student was on their own ( I wish it has changed ). Therefore I kept in the "internship", and then after that metalwork, I started learning how to assemble a PCB, solder PTH and SMT components, and so on. Skills in hand soldering were a good thing.
After a while, I had some guidance on how to do maintenance on the company's boards. But, there wasn't access to SCH, and there was no fixing manual ( That's why now I love documentation and processes for hardware and firmware ). Well, I'm hardly curious about everything so started asking the board's designer what every component was doing on the board, and then I started doing sketches of the board's functionalities. Therefore, I became quite good at repairing. By the way, one of the mainboards had a dsPIC as its brain, a CPLD for image processing, and a REALTEK chip for ethernet.
Well, I became so interested in how those boards worked that I wanted to do it myself. I started questioning about PIC MCUs, how do I make them work, how do I say to that led blink ( couple days later I met Arduino environment ), How can I draw those boards (Nowadays, I google for almost everything, not that time). The answers to my questions came at sloth speed I don't know why I wasn't taught properly. There was a barrier. I asked my manager many times to transfer me to the project department and the answer was always the same: "There are no vacancies now when so, you take it". That conversation took about 1,5 years. In the meanwhile, I tried to learn things by myself and with some help of the sloth answers I had, at least I had answers.
Meanwhile at university - part 1 - First contact
In the meantime, still in 2012, I started having classes of microcontrollers and microprocessors which had a load of 64 hours, 48hours on theory, and 16 hours at the lab. The target device was the AT89S52 and the language used was assembly. The course was nice because I learned a lot of things and I had my first real experience programming an MCU and doing a PCB layout project.
Meanwhile at university - part 2 - The first project you never forget
Yet, about MCU classes, A friend and I took our chance to make an embedded project instead of taking a written exam. Then, our project was: Design a system to control two lifts of a building so that it must be smart enough to know which one is the closest to the floor. So, we'd put our hands-on, first, we designed the board in Proteus. Of course, the board's form-factor was too bad, it was a crap ... LOL ... But we were proud because we made it and it worked just fine. Then, I took a step ahead and tried to write the firmware alone, I explained to my friend what I had in mind and he agreed. Well, I started writing firmware using MCU 8051 IDE which I thought was cooool... because of its simulation features. When my buggy code was about to be finished, that's what I thought, the code didn't fit in the MCU. I was finished and tired. Then, I asked my friend for help and he wrote a new working code from scratch on time. Yeah, he saved us. Mission accomplished, we were approved and I became more interested in embedded. Oh, and I was still an intern, let's get back to it.
The internship - part 2
Back to my "internship program", I kept trying to become an embedded system designer. After about 1 year of attempts, I gave the idea to design a board to test 1602 LCD displays which were sent back to us for repair. They accepted the idea, first because I was valuable for them because I was cheap and was quite efficient in the matter of repairing their boards, second because I wouldn't give to become a designer and because of that I would certainly drop that internship and they would have to contract someone more expansive. To mention, a little portion of my maintenance and assembly work time was for this project.
So, at that time I already had experience from a university discipline as I described before and from self-taught. Well, I designed a board to drive an LCD display, but this time the MCU was the master of the beginners, the so-called PIC16F628A. Again, I used Proteus, but this time I'd achieved a better form-factor. Help with best practices and things that require experience wasn't much given to me, nor even books or blogs to read or something like that. I know, in engineering you've got to be a self-taught guy, but also we are standing on the shoulders of giants, so I could have gone further in a shorter time. Well, it is what it is...
Once the LCD board was done, time to test it. Only one functional error, I inverted the LCD backlight pins. Well, not a big problem, easy to fix. Then, it was time to design firmware. Well, what did I know about C language, compiler directives, hardware access, microchip environment, LCD driving? almost nothing. I was there from scratch in terms. The companies designer gave me a code to drive the LCD and I tried to understand it till I get tired of it. Fundamentals were missing this time ... how to overcome? Well, there was an abyss, I didn't overcome that lack of information at the time it took longer for me to get something working... So the project was left behind and I kept working as before and studying at home to fulfill that lack.
figure 1: Prints of LCD tester PCB.
From Internship to full-time
After 1,5 years in the internship (2013), I was designated to a real project, finally. Then, I started spending most of my work time on that project. It was a MiFare card reader with a USB, SPI, and UART interface to control it and exchange data, also it was driven by a PIC32MX. Since then, I started having real help on a project and so it was my first project to become a green 2-layer FR4 board which I designed in Altium thanks to FEDEVEL youtube lessons. That Element14 made me happy and proud! I have to say, the antenna design was a mix of guessing, poor documents consultation, and simulation with Qucs. The most surprising part was that a card was read (not all implementations like crypto were completed). WOW!!!
At that time, my internship was close to the end. Therefore, the company wanted to hire me for a full-time job, all the way I was almost with my Bachelor's degree. I took the job. Needless to say that I kept still working part of my time doing repairing stuff, but that's a very common condition for a recent graduate in Brazil. As a full-time job, I stayed there for more than 10 months(2013- 2014) and the project wasn't finished because another project took its place. But, the most important thing was that I acquired a lot of skills I didn't have and that was crucial for my future.
figure 2 - My first PCB to be a product
After the first fulltime job
After I'd been fired (2014), I spent 5 months wondering ( last until Feb-2015) what should I do with my life and profession. In the meantime, I ran some experiments and learned some more embedded things. Then, money was over and I needed to get back to work. So, I took a job at another company where I fine-tuned my embedded skills, made courses, training, and found helpful people. But, that is a story for another time. At that point, at the beginning of my second job, I was already an embedded guy.
Closing thoughts
back to my first job, I still wasn't prepared for the market; no training was given to me, I took too much time to learn simple things, I took too long to get in a