Hacker News Comments on
The University of Texas at Austin
Embedded Systems - Shape The World: Microcontroller Input/Output
Hacker News Stories and CommentsAll the comments and stories posted to Hacker News that reference this url.
In regards to finding a project to start practicing, coupled with buying a dev board, I can recommend this course https://www.edx.org/course/embedded-systems-shape-the-world-...
I did it some time ago, the board they use is pretty cheap and it could be a good starting point. Disclaimer: - I did this course (or similar, but same professors and same university) online some years ago, so I assume it has been updated. - I do not get any benefits, monetary or otherwise, for promoting this course or for new enrollments. I just recommend it based on my personal experience.
⬐ markus_zhangHi pracer this looks good. Just curious are oscilloscopes and logic analyzers some software or we need to purchase both? (wouldn't be a bad idea to put down the $$ TBH if one wants to take hardware as a serious hobby)
> Debug using oscilloscopes, logic analyzers, and software instrumentation⬐ the__alchemistOscilloscopes are hardware that can be used to analyze digital and analog signals. They may be able to interface with a PC (USB) using software as well. logic analyzers are small, usually cheap pieces of hardware that can analyze digital signals only, and rely on software on a connected PC. IMO even the $10 analyzers are great for digital (troubleshooting I2C, SPI etc), and can analyze many channels at once. You only need a scope for analog.⬐ markus_zhangThanks, yeah I know what they are but not sure whether we need to purchase real ones or the course has some simulations.
We have logic analyzers for just 10 bucks? Wow that's much more affordable than I thought. I thought both need like hundreds of bucks.⬐ matt_the_bassIf I could only afford one, I would recommend the o-scope. Most firmware runs on bespoke hardware and the programmer can’t assume the hardware is abstracted away from the software. MANY bugs I’ve tracked down required electronics probing.
If you are looking for a full course this one isn't bad: Embedded Systems Shape the World it does hew pretty close to platform specifics (Windows/Keil/TI Launchpad) which can be good for specifics and not good for holistic understanding.
I have had a lot of fun following Ben Eater's projects, which aren't always embedded-specific (sometimes they're TTL, sometimes Arduino) but are excellent for understanding concepts deeply.
I tend to learn best with a specific project that can grow or morph as my interest or experience dictates. You might find something to build with an Arduino, using the toolchain/IDE/libraries, get it working and then start stripping out libraries for your own implementations, or getting a toolchain of your own to cross-compile and flash.
⬐ maxioaticThanks for the recommendations! That's how I like to learn as well, and kind of why I started learning C in the first place. Tinkering with electronics is super fun (I think).
I actually have built the clock module from Ben Eater with the intent of building the 6502 computer project at some point in the future. I really like his stuff.⬐ wuschelFrom a C-veteran perspective, what do you think about type safe (e.g. dependent types such in ATS, or F*/KreMLin, or other DSLs) languages that compile to C, or a subset of C?
How could one get the safety promises that are observed in Rust in C?
Thanks!⬐ ajxsI'm not the OP you're asking, I'll provide my own answer to the latter question though.
C is a language that doesn't come with many guarantees. I personally like to think of C as a 'higher-level assembler', targeting a virtual machine. I've been led to believe that this figurative description of the language was more common in the past than it is today. I find it a helpful description since it offers an explanation for many of C's design choices. Such as it's weak types and use of pointers. If I'm correct it's also an accurate description of the language's original aims in system development.
Also, Rust isn't the only systems programming language with a focus on safety. Ada has been around for some time now and is a much more mature language and arguably more suited for the job. It has a demonstrable track record of successful use in safety-critical software. Rust is definitely more 'C-like' than Ada, which might make it preferable to many.⬐ wuschelI see. Thank you very much for your explanation.
I always thought that after so many years, there must be a testing framework, development tools and methodology to give a C developer the safety that his problem requires. What do people use when they are programming critical systems e.g. defense,health,flight control, etc. Problems like Heartbleed et al are not something that can be ignored in the industry.
That is why I wondered about advanced tools I heard about e.g. ATS, Compcert, and so on. As I understand, the model that is used in Rust comes with limitations in regard to program design.
When I wanted to learn hardware programming for a similar small project, I took on online course . It took a few months, but it gave a pretty solid framework to start from.
You can start with learning embedded system from Edx: https://www.edx.org/course/utaustinx/utaustinx-ut-6-01x-embe...
Then, learn Hardware Software Interface from Coursera: https://www.coursera.org/course/hwswinterface
The Tiva C Launchpad is about ten bucks and there's a course starting on EdX next week that uses it.
It's not an MSP430 (it's an ARM Cortex), but still it's great that TI pumps out these low cost boards for newbie electrical engineers.
Really good course to get into hardware prototyping: https://www.edx.org/course/utaustinx/utaustinx-ut-6-01x-embe...
edX Embedded Systems course starts this week [Jan 22].
If you want a more structured introduction to hardware hacking, UTAustin is offering a MOOC called "Embedded Systems - Shape The World" that starts on January 23, 2014 and puts a heavy emphasis on hands-on labs. The platform used in the course is based on the Cortex M4 ARM chip and the board is made by Texas Instruments.
Course website: http://users.ece.utexas.edu/~valvano/edX/index.html