To me it's truly mind-bogging that a tiny $1.42 chip contains almost everything needed to boot Linux: a 500mhz cpu, 32MB SDRAM, 2D GPU, SD/MMC support, and USB controller, all packaged inside a 10mm x 10mm chip? It makes me really want to get into embedded development.
Calling this embedded system feels like insult to the spirit of 'running light without overbyte', because it's so comically capable. My first PC had 66/33 MHz 80486 processor and 8 MB ram, 320 MB HDD. You could run AutoCAD, play Doom, Civilization, have dual boot for Linux, Windows 3.11 etc. It could compile Linux from source.
My Business Card Runs Linux
211–220 of 415 posts
Re: My Business Card Runs Linux
#212Earlier quoted context omitted.
I'm not sure that is the primary reason -- many other projects have had their compile times explode over many years, even though the same logic should apply. Not to mention if you build the kernel regularly, you benefit from incremental compilation. If you change a few non-header files the rebuild time can be as little as 2-3 minutes. Oh, and "make localdefconfig" will reduce your from-scratch compile times to the 5-…
> many other projects have had their compile times explode over many years Like, for example?
Re: My Business Card Runs Linux
#213While I'm impressed by how low the bill of materials is, I can't but put into perspective the kind of skills the authors of the post has, and how mindbogglingly expensive they must be. Contrary to what the media says, it seems that the digital era has made (some) human beings more essential than ever ...
After reading the post, i was under the impression that the author really did some shopping for major components and assembled everything into a fun shape. Obviously i know nothing about electronic board design, so could you explain which extraordinary skill this required ? EDIT : ok, i missed the part where he actually designed the whole board, obviously..
Like many pieces of technology, once you lay out the steps it starts to look as though each one, and therefore the whole, are achievable to a highly-motivated but somewhat typical person. And it's true! But even so, few people develop the whole set of skills to build something from start to finish, even notwithstanding the incredible help you can get nowadays from open-source software, consumer access to services such as PCB manufacturing, and online documentation. Even in a high-achieving community focused on building stuff, like this one, I doubt many posters here have completed as impressive an individual project.
Re: My Business Card Runs Linux
#214Earlier quoted context omitted.
> many other projects have had their compile times explode over many years Like, for example?
When I worked at Microsoft, Windows took far, far longer than an hour to build from scratch. I remember walking a few buildings over to the burn lab to pick up DVDs of the latest build. I don’t have any hard data, but running a full build on your dev box was very rarely done.
Re: My Business Card Runs Linux
#215However, practically do anyone use business card these days? What does it do which a LinkedIn or GitHub profile wouldn’t?
Re: My Business Card Runs Linux
#216I really want to learn being able compile and solder an embedded system but I don't know where to start. Assuming I have the parts, tools and materials, how can I learn where to put capacitors/resistors etc in a custom design? What kind of simulators are good at testing these ideas without needing to waste expensive components? What was missing in my Computer Engineering curriculum which paints those circuit parts (e…
Re: My Business Card Runs Linux
#217"Looks like you could cut yourself on it," Rydell said.
"You could, many no doubt have," said Karen Mendelsohn, "and if you put it in your wallet and sit down, it shatters."
"Then what's the point of it?"
"You're supposed to take very good care of it. You won't get another."
Re: My Business Card Runs Linux
#218Awesome project! However, practically do anyone use business card these days? What does it do which a LinkedIn or GitHub profile wouldn’t?
Re: My Business Card Runs Linux
#219Earlier quoted context omitted.
Calling this embedded system feels like insult to the spirit of 'running light without overbyte', because it's so comically capable. My first PC had 66/33 MHz 80486 processor and 8 MB ram, 320 MB HDD. You could run AutoCAD, play Doom, Civilization, have dual boot for Linux, Windows 3.11 etc. It could compile Linux from source.
Oh geez I can't imagine how long it would take to compile Linux on that slow of a processor.
Re: My Business Card Runs Linux
#220Earlier quoted context omitted.
I mainly work in web-dev, but working in embedded systems is kind of my hobby. It's kind of refreshing working on bare-metal, optimizing up-to single bytes of data, when I'm usually working on layers and layers of abstraction everyday.
Where does a web-dev turn to to get started in this as a hobby?
As for what microcontroller to actually learn on, I would say the MSP430 is a very good starting point. It's a fairly mundane 16-bit RISC microcontroller series with very forgiving electrical design requirements, very good documentation, and very good community support. They make a devboard (TI calls them Launchpads) for the MSP430G2553 that's more than enough to get a beginner started. When you need a little more power, you can either opt to invest in learning the ARM ecosystem, or go for something a little more exotic. Just about every manufacturer makes an ARM microcontroller of some sort, so if that's what you're interested in, take your pick and go with it. If you're looking for something else, the Renesas RL78 and RX series provide a lot of functionality if you're willing to deal with how stodgy Renesas can be.
Some important notes:
1.) Don't bother with Arduino. They were a much more compelling product 15 years ago when you had to pay thousands in tools and compiler/environment licensing to get in on in embedded development. Today, what Arduino nets you is a painfully barren environment that abstracts away a lot of what you're trying to learn when you're starting out. Losing out on the debugging, profiling, tracing, disassembly, memory usage statistics, etc. that modern development environments give you will do nothing but stunt your growth, especially if you're used to having all these tools while writing desktop software
2.) Be careful with (or preferably just avoid) starting with embedded Linux; it's pushing the limits of "embedded". You're going to miss out on a lot of important knowledge and insight jumping straight into using an operating system (and a very heavy one at that), and for many applications, it is MASSIVE overkill. When you start, you're not going to need an RTOS. When you need an RTOS, you're going to reach for something more reasonable, like FreeRTOS. If FreeRTOS doesn't cut it, then you can start looking at Linux.
3.) Don't get tangled up with Raspberry Pis; the microprocessor on these is complex and the documentation is severely lacking/nonexistent. RPis are much closer to a desktop computer than they are an embedded system.
If you really want to get it, I would say one of the most useful exercises is implementing your own microcontroller/processor. You can pick up an FPGA devboard for fairly cheap, and there are plenty of textbooks (Harris & Harris' Digital Design and Computer Architecture comes to mind) that will get you through most of the key concepts. Once you've done this, a lot of the gaps in understanding when dealing with a microcontroller will be filled in. This exercise isn't strictly necessary, but I don't know anybody who has done it that wasn't better off for it.
My final note is to buy or "acquire" Horowitz and Hill's The Art of Electronics. Embedded development is inseparable from electrical engineering, so even if you don't read it front to back, there are some sections that you will definitely be visiting if your background isn't in electronics.