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.
If this doesn't whet your appetite and make you feel like you've learned something, I don't know what will. But it's a hard course.
This was another good one, more practically applicable to a programmer but less low-level:
⬐ croonThanks for the suggestions!
I need to enroll to see the contents of the first one, but I will look into it!
If you've never done embedded development before I highly recommend the two parts MOOC "Embedded Systems - Shape The World".
The course is well structured, teaching the basics you'll need for those boards that doesn't usually have an OS and requires a ~40$ components kit that include a Texas Instruments board. Quite fun if you follow along and do all the exercises.
⬐ ultrasounderUpvoting this as I just started following this course myself (archived but all the material Is still available). The kit is self sufficient and with some basic C programming skills one gets cut their teeth on all relevant real world embedded design methodologies. I am also taking the NAND2TETRIS course in parallel and can now start appreciating the hardware/software interface. Highly recommend that course and the accompanying book.
To get started from hobby perspective, you can start with online electronics courses at Instructables.
If you are looking for something more academic to start with, check Computer organization/architecture and Embedded systems courses at  and . UT Austin's Embedded Systems course at Edx.org  is also good place to start.
I don't really do anything with it professionally, but just for "feels" and to not completely lose touch with the hard reality (of registers and ports) I took the UT Austin course on embedded systems (https://www.edx.org/course/embedded-systems-shape-world-utau...) - which required the purchase of some real hardware for the automatically graded labs. I also signed up for the follow-up to this excellent course (https://www.edx.org/course/real-time-bluetooth-networks-shap...) starting in September - which is also going to be done on real hardware.
It's just a refresher for me, I did a lot of low-level and assembler in the 8 bit days, so it's nice to see what's current. It's a wonderful counterweight to otherwise doing very high level programming in dynamic languages and learning (more) FP (Scala). It's nice to be able to find plenty of use cases for 32 kByte of RAM on a tiny board (http://www.ti.com/tool/ek-tm4c123gxl).
I think some low-level embedded programming (directly in C to the chip, not on a highlevel board that even runs a full Linux OS) is ideal to keep me grounded and remember how wasteful those many abstraction layers actually are. Yes I know what they do and appreciate their service - but when I compare what I get vs. how much more I put in (in Giga-Hertz and Giga-Bytes) I'm not convinced that there isn't a lot of waste going on that cannot, should not, be justified and sold as "price of progress".
If you are interested in RTOS (real-time OS) courses I recommend checking edX for the expected September 2016 arrival date of a followup to this course:
edX course page: https://www.edx.org/course/embedded-systems-shape-world-utau...
More information: http://edx-org-utaustinx.s3.amazonaws.com/UT601x/index.html
The excellent quality of the above course - which includes programming actual hardware (you have to invest about $50 for components) - raises the expectations for that upcoming course.
The page is already up for the new course "Real-Time Bluetooth Networks - Shape the World":
> In this lab-based computer science course, explore the complexities of embedded systems and learn how to develop your own real-time operating system (RTOS) by building a personal fitness device with Bluetooth connectivity (BLE).
- Enhance your embedded system skills
- Write your own real-time operating system
- Design, develop and debug C code
- Implement a personal fitness device
- Communicate using Bluetooth
You can just buy the microcontroller and do it yourself from there. Here is a nice example someone did of a simple LED flasher  with just 6 parts:
1. An ATmega ATTiny85 microcontroller
2. A socket for that processor
3. A coin cell battery
4. A holder for the battery
5. A resistor
6. An LED
and some wire and solder.
What going with an actual Arduino or Arduino compatible gets you, from a hardware point of view, is a bunch of ready made attachments. For instance, suppose you have some sensor that needs an odd voltage and has weird timing requirements. It will be a lot more convenient to get a shield that has that sensor, and a voltage converter, and something that deals with the weird timing and presents a simple I2C interface to your code than to have to do all that yourself.
There are some EdX courses that you might find useful.
From UTAustinX, "Embedded Systems--Shape the World" . This is a lab-based course where you do 13 or so labs using a TI Tiva Series C Launchpad. That's an 80 MHz ARM Cortex M4 board. Cost for the hardware for the course is $35-$55, depending on if you want to do a couple of the optional labs.
From UCBerkeleyX, "Electronic Interfaces: Bridging the Physical and Digital Worlds" . Another lab course
From MITx, "Circuits and Electronics" . The online version of MITs 6.002 introductory electronics course.
I am looking forward to two embedded system courses in EdX.
Electronic Interfaces: Bridging the Physical and Digital Worlds: https://www.edx.org/course/electronic-interfaces-bridging-ph...
Embedded Systems - Shape The World: https://www.edx.org/course/embedded-systems-shape-world-utau...
EdX has got some nice electronics courses: https://www.edx.org/course
Between, I am from compsci background
⬐ carlosggI took Embedded Systems last spring and it was great. Students interface to the outside world by programming an ARM microcontroller using C language. The staff and fellow students provide tremendous support on the boards. Here's the syllabus:
Here are some projects from last year:
I started to work on last year's offering of this embedded systems MOOC, but couldn't commit the time required to finish it: https://www.edx.org/course/utaustinx/utaustinx-ut-6-02x-embe...
It seems like a great introduction to embedded systems for programmers without any hardware/electronics experience. The course is being run again in January.