Few quotations to start with…
Today I’m going to start after a long break, as I was busy with projects. I was figuring out the dots of my journey to learn flow of Embedded System development from A to Z. Learning gives you thinking & thinking gives you quotations to help future seekers. Some of my technical quotations as a result of my learning are-
People use computer to find answers, I use computer to find questions.
If there is hardware issue there must be tangible misbehavior, if there is software issue there must be intangible misbehavior.
When I started my journey in 2006 I had little or no idea of what is Embedded System. However I came across Arduino during its early age in 2008 but I didn’t think it will be so much popular in future. As of that time there was no anything like open hardware. If you want to do something from scratch then you should have proper guidance & need so much hands on. In late 2011 I get to know about Arduino & open source hardware, then I realized that working on hands-on & open source is so much important if you want to learn Embedded hardware development.
You need to do it your own
In between these years from 2009-2011, I was victim or either start from scratch or reverse engineering. I have not finalized my initial project till 5 years. However my project was designed by someone else but later when I got that project it was not working according to my needs. So I got motivation to make the dead alive & taken the path of reverse engineering.
Reverse engineering gives many advantage over working on finished development board if you want to be a hardware developer. I tried my hands with prototyping basic freeduino board & then I got idea of basic Embedded electronics. I got the idea of how crystal oscillator works, how reset pin works & it seems so easy because embedded electronics works on digital part of the discrete components, it is so easy with respect to learning Analog electronics. Rest of all thing is programming.
Hardware Software rivalry
In my early learning path I was hardwired by the fact that there is no need to learn software for a hardware guy, but later I realized it is a myth. The fact is that any efficient engineering work these days requires knowledge of programming. In terms of hardware-software : “A software engineer must know how hardware works, whereas a hardware engineer must know what are the problems that a software guy may face during firmware writing”. In this sense I can say that hardware guy needs to have more technical skill than software.
Programming skills are as important as oxygen to live but so simple to start
Arduino becomes a good start for learning programming skills. It has very much advanced IDE & doesn’t require any external JTAG programmer. Programming language is OOP type & uses wiring library. Coding style is so simple & requires few lines of code that any novice can get the idea. If you are still thinking that someday I’ll start coding, wake up now, there is no someday. Work on Open source hardware or at least get basic skills from Codeacademy.
Projects Projects Projects
Work on as many projects as you can. Learning something is never easy & you can’t get whole idea by working on only one project. That is what companies ask for- “Experience”. Work on open projects & get the idea of how hardware working with peripheral components. Get the idea of protocol implemented for interfacing such as SPI, I2C, USB, RS232. Knowledge of protocol is highly important for embedded hardware development.
Hardware Development tools
Knowledge is worthless if it can’t be implemented. Just like a cricketer is powerless without bat & ball, hardware developer is powerless without tools. Tools can be categorized in two parts hard & soft tool. Hard tools such as soldering station, pliers, cutter, multimeter, discrete components, perfoboard, PCB etchant (added plus upto double layer PCB if you don’t want to send you design to fab house). Soft tools such as simulator (Orcad schematic capture, LTspice, Proteus), PCB designer (Eagle, Proteus, cadstar), optional advanced tool for Signal Integrity analysis (Flotherm, Mentor graphics tools). I am not going to give details of tools here as it requires detailed explanation.
It’s time to use all knowledge & skill to work on my own project. Get start with selection of micro controller first. I have selected ARM LPC1342 CortexM3 processor for building my own prototype which will cover all basic peripherals I want to implement.
Project details will be updated in separate post.