Monday, July 13, 2009
AVR development Board and USB Programmer
I sometimes used to wonder how and why life is sort of a boring. In the sense that why I never encounter situation that would just make a great story. Now after I started this blog , I feel that stories are just around us , you just need to be looking for them.
This is the story of how the idea of a commercial product was born and how it was finally conceived , all the way from designing to implementation to finally launching and marketing !!!
After the after shocks and hangover from Robocon 09 had subsided , an idea came to me and Sujith that we can very well design and market an AVR Microcontroller based development board as well as a USB programmer for AVR Microcontroller. The technical experience was there with us , we just have to design a layout of the above circuits and get them manufactured. Well this is what I initially thought this whole exercise would require. Never knew what was in store for us !!!
So it started by searching and analysis several designs of AVR development board available online. Based on our own experience and ideas , we came up with the basic list of functionality the board should be having i.e. power supply unit, power control to modules, LED's, LCD, keypad, Reset/Ext. Interrupt switches , USB programmer, Max 232 ckt for Serial communication, L293D motor driver and place for ATMega16.
This happened in April 09. I called a meeting of 2nd yrs and 1st yrs students to form a group which will formally take up this activity of developing robotics/electronics products. There was a lukewarm response and it was decided that these development Boards(kits) and USB will be done well before Robocamp started so that the launching could be done during Robocamp itself.
So the things cooled down a bit from there and it was May 18th when finally everything of the previous semester got over. Sujith was getting more and more busy with Robocup preparation , so he sort of deveoted his time there.
Then suddenly I got a wind of the news that some other people were also planning to develop a similar AVR Kit. Now this was hilarious , can you imagine two different set of people in the same institute trying to work on designing a similar product(Its a different story that we finally won the race and got the opportunity to finally develop our idea. Though later we realized that there was no way on earth that the other group could have done anything substantial.)
Now hearing this news , I buckled myself up and immediately started designing the PCB Layout in ExpressPCB (the interesting story of the PCB layout software deserves another blog post !!), since I was new to drawing layouts, it took around a few days to finally complete it. In the mean time I rallied several 2nd years students to be a part of this endeavor. A mail was also send to the faculty that we have this plan of launching these products.
In the mean time we were still struggling with getting the USB programmer and it was only on 1st June that it finally worked. Now finally we were able to go to the PCB manufacturing guy only on 5th June. Time was fast running out and we desperately wanted to order the PCB ASAP and start the testing the Kits.
When we talked to the PCB guy , we got two shocks of our lives:- first whatever we had done in ExpressPCB was not compatible with their procedures since they needed Gerber Files of the Layout which ExpressPCB did not generate :( , I felt totally cheated with ExpressPCB, so much time spend on doing that and we reached no-where. Secondly we were told that it would take around one week to actually have the PCB ready , with legend Printing, Green Masking and a few more mumjo-jumbos. I was in a fix, I decided that I had to learn a new Layout software and get the whole PCB layout designed in 2 days. Fortunately I found FreePCB which was just fit for the purpose.
Finally we went on Monday(8th) and asked the PCB guy to make the layout in their software by seeing our ExpressPCB layout. So it was Wednesday when finally everything was ok and we ordered first set of PCB's for testing purposes.
Since we required one PCB urgently, so we asked one PCB to be done without Legend printing and green masking , since this meant we could get our PCB in 2 days. We received our First PCB on 11th June, some initially testing was done and one bug was discovered and one was left undiscovered !!!! :( .
So with just 5 days to go before the starting of Robocamp we ordered the total order of PCB for both USB Programmer and AVR Development Kit.
the situation was very tricky , we had a deadline to meet and we were rushing through the things. It was like a disaster waiting to happen.
As Edison has said "Long experience proved that there were great drawbacks found generally before they could be got commercial" , this is what precisely happened to us !!! Thanks Edison uncle for you sound advice, will always keep that in mind .
So finally after much wait we received the PCB on 24th , in the midst of Robocamp. I learned an important lesson from this. I could have received PCB 2 days earlier had I paid money from my pocket, since I waited for getting advance payment from Institute. In the end I ended up paying from my pocket and the thing was delayed by 2 very crucial days, which could had made all the difference.
Now on the first day I along with our Lab assistant and some 1st year students sat till 3 am in the morning doing soldering the boards. This is precisely when we found a big time bug. The USB connector in the PCB was present in a way that was opposite to the actual configuration. This setback was sufficient enough for us to have the whole lot of PCB being unusable. We improvised and to overcome decided to solder th usb cale directly to the board.
One of the team member got totally discouraged by that and I did not see him being effectively involved in the Kit activity after that. This is one thing that totally pisses me off. Man if you have committed to something then have the guts to see through that the thing is taken to its logical ending. Some people have the tendency to start an activity with great enthusiasm and when going gets tough , they just leave it. Well I could not afford to do that reason being that this activity of developing Kit was I wanted to do and so there was no way I would just leave it because of some setbacks came our way.
So now it was the time to take on this challenge to get the kits ready before Robocamp ended. I decided to overcome it by sheer brute force. I was willing to put more time even at the expenses of anything to achieve the target. Fortunately our Lab Assistants were very helpful and both of them Ms Kanika and Mr Vivek put their best effort in getting the Kits ready. They kept on working till most of the work was done.
Well surprises never ceases to ambush you just before you reach the destination. It turns out that the 5 pole DIP switch that we had to use in Kits was no longer available in market( Now I grudgingly remembered what Prof RN Biswas has said that once you are making a product you have to stock the components so that in case they are no longer available you can still manufacture and service it. At that time I thought , I am not making circuit using some obscure transistor or likewise , that we need to stock things.)
Fortunately Vivek got DIP switches from Electronics lab , and thus finally soldering was completed on Friday just before the last day.
But the work pressure was full time high on me. The organization of Robocamp was almost chaotic and this created additional workload on me also. Add to the fact of the constant worry of the Development Board and Programmers. Not only this I wanted (and it was pretty necessary ) that we had some Manuals and Tutorials ready by the time we are giving away the AVR Board and Programmers. This goal created additional pressure on me.
In short even after I tried my best , we didn't had the Kits tested to be able to hand over to the people willing to buy. Nor were the documentations completed. So the only thing we could do was to give a short intro of our AVR Kit and USB Programmer to the students. At the end of Robocamp we took several orders both for AVR Kit and USB programmer.
After Robocamp ended then it was time to deliver the Kits to people who had paid the money. The irony was that now when there was no more other major work, I alone had to slog to try getting the things finally working. It again took a few more days. There were constantly deadlines to deliver the Kits. But finally I am writing this blog on 12th and we had already sold out all AVR Kits.
So this was just the end of a beginning of how a commercial product was developed and finally sold.
When I look back and ask myself this question, was it really worth doing all the "menial" jobs like soldering , testing and other small small things which apparently don't add much to your skills. These menial jobs are not intellectually stimulating and they do not seem to have the same impact as say trying to do research work as the junta of IIIT focuses on. I could have just done my BTP and would have been a happy man. What really do you gain from going through all this mentally, physically and sometimes emotionally tiring exercise? Then I reflect back and try to convince myself. Even though all these small small things were not really meaningful, even though I am not gaining so much even after putting so much effort , but I gain one thing if not anything else. i feel that when you have made a commitment , then you have got to keep it even if heaven or hell comes your way. As they say "when going gets tough, tough gets going". Going through this kind of self tortures again and again make you mentally tough, it develops in you a character , a spirit that say " never say die". You develop an attitude that when you set out to do something you have to complete it.
When I was small my mother sometimes used to recite me this poem
वीर तुम बढ़े चलो
धीर तुम बढ़े चलो
सामने पहाड़ हो
सिंह की दहाड़ हो
तुम निडर,हटो नहीं
तुम निडर,डटो वहीं
this sometimes gives me inspiration that makes me try my personal best even in situation when my team mates leave. Wishing that all this will not go in vain, someday I will find people who share the same passion that I feel about some of the things.
But another fact is that I only feel this type of very strong feeling only about a few things and not about everything I do , even then I feel its fair enough for me.
Finally I feel I should thank my Maker for destining all these things for me. He only knows what is good for whom and only the best happens to us.