Back to Introduce Yourself forum
Hello. I'm Tracy, from Vietnam. Now I'm studying in Russia. I'm interested in embedded systems and have just started learning C. It will be great if you're willing to give me some advices to follow this path. Thank you!
Tracy, Hello!
Curious thing! I also started work in IT as electronics designer - mainly because the only language I knew well was C, and I have some small experience in analog schematics and microcontrollers as a hobby... Though later I switched to enterprise / serverside development (partly due to larger wages and more open positions - and partly because fellows in embedding are not very good programmers - and sometimes it is boring :)
I still do something in this field, but mainly for amusement or educational purposes... BTW one of my joyful class-mates was from Vietnam - though he become more like business-entrepreneur rather than engineer after university.
I checked your profile and solutions - you are doing quite well (probably this level of the first problems is bit too simple for you). Quite nice to see that you do know about splitting larger functions into smaller ones :)
So my main advice would be - keep on. The most important thing is that you are trying to do/learn something besides university/school - and this is the key factor to success - we call it "devotion", right? :)
Additional thing is - do not limit yourself for some narrow field. As for example: I myself, while working with microcontrollers etc. have almost no idea how to set up basic web-server to which these microcontrollers may send their data - it was wrong so I tried to get acquainted with PHP and Java, learning basics of HTTP, web-design etc). Nowadays my former colleagues from electronics company sometimes ask me to write small prototypes of webservers for their solutions :)
BTW, which systems/platforms etc you study or use in embedding? Is it about microcontrollers like STM32 or single-board computers like Raspberry Pi?
Sincerely thank you for your sharing. It's really interesting and admirable for me!!!
Especially, thanks for your warning - I did have a though that just focusing on stuffs like C/C++ to work with embedded systems. It seems like a mess for me, a lot of things to learn.
To be honest, I have just intended to follow this field. I use Lubuntu (just switched from Windows :)). Some websites recommend to start with STM32 DISCO, so I ordered one. Is this ok? Also, it is said that I have to learn C, Linux, firmware, RTOS... What do you use and what is the most important thing when working in this field? Can you share more about how you studied and get into it, please?
Many many many thanks!!!
Hi Tracy! I promise to return soon with the more detailed answer. It just happened that your question about projects (be sure, mainly they were dull) reminded me about some problem related to one of them - which I want now to create and add to our new site... Hopefully I'll be back with it tomorrow :)
Yeah, thank you! I'm waiting for you!
Hi again, Tracy!
Excuse me for delay and congratulations with your new rank :)
About "most important thing" - as it often happens, the largest projects are not necessarily the most interesting ones. For an example see the new problem I've added - this small toy I've made during christmas weekends few years ago - and it was quite funny to work with, to investigate and implement this stuff about filtering sound - though the project is small. There are larger things - like my BASIC interpreter for STM32 and Arduino - also "funny" for me (note that this project involved writing mobile bluetooth terminal in Java for Android - and web emulator in JavaScript - just as an example that usually one needs to know a bit more than just hardware-related technologies).
At the same time participation in industrial projects (like contactless fare-collecting terminals for public transport or stands for selling souvenir coins and wending massage armchairs) usually didn't impressed me much. The most interesting project which I've done for company I worked at was about "photoplethysmograph" - simple medical tool for registering blood pulse with photodiode - it was designed as an autonomous sensor, so it involved tiny radio transceiver and whimsical power regulating circuits to prevent the digital stuff generating much noise on the ADC. There was also reverse-engineering of existing solution, studying old analog filter and reimplementing it as digital formula - and a lot of efforts to put everything on the 20 by 50 mm PCB...
Some websites recommend to start with STM32 DISCO
Honestly, I don't know about this particular board though I suspect it is one of implementations of their Discovery kit.
I started with ARM controllers from bare chips - just bought LPC1100 first, because it could be programmed via UART and have SOIC package, so no special programmer or board is needed - I draw PCB and soldered it manually. Read manuals, googled how to run GCC and what to write for initial project - found few utilities to send hex file to UART - and that's all. Then I've found there are cheaper STM32F030 (though in smaller packages) which also have UART bootloader, so I switched to them.
To explain it better, here is the picture of one of my hand-made STM32 boards
And that's usually "how I studied":
Along with that I can only advice that:
Well, sorry for bit too many letters :)
OMG! That's super kind of you! I'm so excited to read. It helps and motivates a lot. Thank you so much!