That is exactly the question we faced at Mobilunity, a dedicated development teams provider, based in Ukraine. I work as a Hardware Engineer for one of our Swiss clients developing IoT solutions. Chatting with colleagues from other non-hardware projects, I have realized that even senior programmers with 10+ years of experience in software development often lack even the primitive concept of how hardware works. Although their interest and curiosity towards the Internet of Things is very high and natural. That is why I came up with the idea to organize an in-house course on hardware engineering as a starting point for exploring the IoT world. Below I will describe in detail how it was organized and I hope this experience will be useful to all tech companies that strive to develop their employees technically-wise.
The first thing you need to launch such a course is a mentor. As for me – I have 6 years of industry experience. Having conducted one-time masterclasses and workshops on this topic several times which turned out enough to teach the basics. I would say that the main foremost quality of a mentor should be the ability to explain complicated things in a simple way. And of course, to be open to answering questions and not be bored with helping students to understand even the elementary stuff.
The course consisted of 10 classes 3 hours each, classes were held once a week.
During the course, participants had to design an electronic device by completing all the typical stages of a hardware project and produce a working prototype of a simple IoT device – GSM alarm system (a device with an infrared motion sensor that sends a message to your mobile phone when triggered).
The course outline was the following:
- Developing technical assignment/requirements
- Theoretical foundations of electronics
- Electric circuits, schematics
- Printed Circuit Boards (PCB)
- PCB manufacturing documentation, purchasing PCBs
- Boards assembly
- Microcontroller programming
Out of 200 company employees, we received 30 applications for participation. The first class was attended by 25 people, but after the study of theory, Ohm’s law and formulas, some guys left us. Finally, there were 15 participants who had reached the end.
After theoretical classes were over, we moved on to developing electric circuits. To accomplish that we required some CAD software and since I had a good experience with Eagle CAD we stuck to it. The free version allows developing two-layer boards with an area up to 80 cm sq., which completely meets our requirements.
Afterwards we learned how to purchase components from DigiKey. The guys found out, for example, that an ordinary resistor has a lot of characteristics besides resistance! At this point, it was necessary to decide how we would assemble the boards. Of course, you could buy half a dozen soldering irons and have fun trying to solder resistors the size of rice grain. But to save time, money and nerves of participants, I decided that we would assemble our boards using a stencil and a soldering paste – the way it is done in real manufacturing. Therefore, at this stage, a huge number of tweezers and soldering consumables were ordered.
When the boards, components, tweezers and soldering paste kits for all the participants were finally on my desk, I began to prepare for the hardest part – the participants had to assemble their devices in one evening. If you are not in the loop, the process looks like this: the solder paste is applied to the board through a stencil, components are placed in place by the tweezers, and then the board is heated in an oven, a paste is melted and all the components are soldered at once. Therefore, everyone can “stuff” the boards at the same time, and sequentially use one oven.
This was probably the most difficult class. Someone was finishing the placement of the components, someone was soldering his/her board, and someone was already searching for defects under a microscope. Many of us returned home after midnight that day. Oddly enough, almost all of the boards were working on the first try, only a few had minor defects that made their owners a little nervous. However, we quickly corrected everything.
In the following classes, we briefly discussed what a microcontroller is, created a project using C and learned how to send messages. For programming, we have used a popular free environment SW4STM32 + STM32Cube. In the final class, during the launching and demonstration of our devices, it was really delightful to see people’s emotions when their creations came to life and worked. I still remember, how happy everyone was getting their first messages after triggering the device. One of the graduates even installed the alarm at his apartment, luckily no one except him was caught.
It has been a wonderful experience and I hope this article can be a good starting point for setting up regular educational events at your company.