The Hardware Revolution
stevegattuso.me
stevegattuso.me
^ While true in a sense, I think its incredibly important not to downplay the difficulty of engineering this hardware in the first place. This type of sentence stinks of programmer elitism.
Otherwise, I'd agree that perhaps the biggest obstacle to using these embedded systems is circuit building education. Running linux or some bit of code on these systems is cool, but only to a point. I've always found this type of work to be most interesting when you can make the system interact with the world.
Don't get me wrong, the Raspberry Pi, Parallella, etc. are all incredibly feats of engineering (I couldn't even dream of building the processors or chips behind them). What I meant was the processors are only as useful to hackers as the software that they create for them. Hopefully that sounds a bit less elitist!
Yeah, nobody is ever going to be able to make a SoC in their garage. But I think the OP is trying to illustrate the fact that engineering efforts like RPi/Arduino are becoming easier now due to the internet and open source tools. That, combined with the market forces driving down the cost of the ICs, is making it possible to engineer a platform as complicated as a fully functional computer by a group other than a large, well-funded corporation.
The barrier to entry, while still high, is lower now than it's ever been.
That sounds like a challenge!
Hah, I kid. It's probably possible, but expensive as always. You would have to work in an antique process node, and relax your idea of what is supposed to be on an SoC.
Frankly, I doubt anyone but a rich eccentric would have the money to get into SoC design in their garage. My university acquired the resources to run a semiconductor class in the form of some antique (70s vintage) silicon lab equipment from Micron. Even though this stuff was brand new before I was born, Micron charged them in the neighborhood of $200k for each device. That's six machines for a total of $1.2 million. And that doesn't even encompass the whole cost of what you'd need to get a proper semiconductor development environment - you'd still need a cleanroom, electrical and gas hookups, chemical certification (you need all sorts of nasty stuff to make semiconductors - HF in particular is quite common in fabrication, and has horrifying effects on exposed skin when mishandled), etc.
Yeah, sorry - with all respect, I don't think anyone's gonna be starting a semiconductor company in their garage any time soon.
It's very hard to get good quality (IPS panel, capacitive) 7-10" touchscreens in low quantities for reasonable prices (I know of 1 company who sells them for under $200, but they constantly run out of stock).
I've found it's cheaper to buy cheap android tablets for ~$100 and use them as thin clients, but then you have to deal with all of the restrictions google puts in place (mainly the lack of a kiosk mode).
You can create your own ROM to get past the restrictions, but 2 months later the tablet you were using is at end of life, and you're back at square one.
Someone could make a killing creating low cost android backed thin clients to use as interfaces for this "hardware revolution".
Any factory in China cranking out millions of 7" LCDs for the appliance and tablet markets isn't going to bother with support and service for a group that wants 100. That's why they're expensive and that's why you can't get datasheets for them.
If you're a serious customer and you can convince a local distributor of a manufacturer like Okaya, Sharp, or Ampire that you're serious (translation: you represent $$$), they'll give you all the stuff you want. Usually for free.
I don't even care about support. Does Atmel provide support to Arduino end-users? They just need to sell it to me with good enough instructions to make it work.
Micropython[1] is being in development right now,Currently working on a $6 mcu, with a potential for running on a $3/84mhz/3mm*3mm/49-pin mcu with varied peripherals (or maybe even something cheaper).
And as or complexity, this video shows an easy wifi interface[2].
And since it has a C-FFI, developing a first generation of a product in python and optimizing to c in next generations according to market and technical need is a good possibility.
[1]https://github.com/micropython/micropython
[2]https://www.kickstarter.com/projects/214379695/micro-python-...
The complexity of embedded code does not lie in the code itself but in the hardware and you have sacraficed a few orders of magnitude in speed for very little or no gain. The code itself is usually fairly simple but you would not be able to tell anything from looking at it, you need to refer to datasheets.
Not only this but by using an more expensive ECU to begin with you really limit the scalability of your design and add to recurring costs.
I use a more powerful microcontroller at work and we still constantly have to drop down to assembly, albeit in limited controlled ways.
That said, there will be areas where this is a viable option, but not many. You have to analyze your problem and decide if is viable; for an embedded webserver it is, for a DCDC converter where speed is of a concern it is not. For a smoke alarm where cost is primarily a factor and your margins are tiny it is not.
And as my example vs the OP's article with arduino, it seems that micro python offers a much better interface to said libraries. Not sure it's only the language, could be also the library implementation.
With regards to performance penalty : micro python has some unique compile mode which brings the speed to maybe 8x of c.
Assuming you're willing to waste some memory and speed(say a first version kickstarter product, or a low/mid volume commercial product) , you also get rid of pointers(which are the source of great complexity and bugs in c) and gets access to much better testing tools via python.
> have the correct tools (most of which are not free)
One of the reasons the free software movement is so exciting is because it put professional quality software development tools into the hands of ... well, everyone, and let them unleash their creativity. This is why Stallman started with emacs, gcc, gdb, and the unix tools. A whole generation of programmers grew up using tools that a generation earlier would have been prohibitively expensive or inaccessible. The frameworks, tools and libraries the OP is so excited about are the continued product of that movement. They are free (as in beer) and, more importantly, free as in speech.
However, this hasn't happened to hardware development tools yet, except for a few exceptions. It might be starting. (I have my pessimistic days and my optimistic ones.) There are two classes of tools: software design tools (and firmware for hardware tools) and hardware tools themselves. Of course, we can't expect hardware tools to be free as in beer, but we can aspire to make them free as in speech. Kicad (a free PCB design tool) is light years behind the industry standard Altium. Free versions of tools for high-speed design, signal integrity analysis, etc. are basically unheard of. The on exception might be Spice, the circuit simulator. There are free designs for primitive hardware tools (e.g., power supplies, precision DMMs, oscilloscopes, logic analyzers), but they are nowhere near entry-level professional offerings, and many, even tho they call themselves "open", don't make design files available.
http://www.phenoptix.com/blogs/news/12550621-testing-the-ten...
Forget about RF-level stuff like RF signal generators and signal analyzers. I've never seen a high speed memory bus designed with open tools, for example, and I don't see how you'd ever debug it.
This is where I think the action is. A suit of open tools (software and hardware) that benefited from community improvement would truely be transformative. It would create an enormous amount of social value. I can see why it hasn't been done yet. Building open versions of these tools would require a huge amount of work, and they are incredibly valuable, so whoever does it would have to forgo a huge amount of value.
I'm finishing up something else in the short term, but I've been thinking about this a lot. I'd love to work on this problem, but it isn't at all clear to me how to fund it.
It is a fantastic software package - worth every penny, and easily affordable to small-to-medium businesses.
I'll bet they have 100+ programmers constantly improving their product. Every version is more powerful and easier to use.
No way for a small startup to compete with that without charging a similar amount. And even then, Altium has a 20 year head-start.
[0]: http://www.techdesignforums.com/practice/guides/double-patte...
[1]: http://www.eetimes.com/document.asp?doc_id=1279842
On a completely separate angle, compiling & optimization is basically the biggest Packing Problem you've ever faced, with several dimensions of "packing". You need some very smart people to hope to produce good results. But I've written enough for now.
This is why EDA software sucks so badly. The bug discovery rate is abysmal. Couple this with the fact that the number of EDA programmers is even closer to zero, and you have a recipe for a horrible industry.
Eagle CadSoft is also popular with that demographic.
But the tools aside, without a low cost foundry and with a low barrier to entry for new developers (i.e. not requiring a lengthy approval process), the open source tools are just a first step. It would be amazing to one day have the resources for a hobbyist to build an ASIC. Once we've reached the limits Moore's law, that may be the only way to keep the IC industry interesting.
To address your point about tools, I think you're right about the value aspect -- good tools cost money. But then again, does the average hobbyist need those kinds of tools? How much demand is there for, say, a 100 MHz open 'scope that costs a bit more than a Rigol? Ham enthusiasts would probably rather trade around old HP/Tek equipment.
I do agree in principle that there should be something like the Global Village Construction Set, for electronics. But it would be a monumental undertaking.
[0]: http://danstrother.com/2011/01/16/spartan-6-bga-test-board/
Good question. I agree, that's probably the first step: a more expensive inferior product, but I'm trying to look beyond that. If the open tools compete in features, and the manufacturers don't have to recoup design investment, shouldn't the open tools be cheaper? I want to live in a world where people have access to tools at the marginal cost of manufacturer. Once the open tools can compete on features, presumably volume would increase, making them competitive.
Rigol, like the bigger test equipment manufactures, sell heavily software limited equipment and charge handsomely for upgrades. Dave on the EEVBlog recently did a teardown of the newly released Tek MDO3000 6-in-1 scope. The entry level box costs ~$3,000. It costs about $15K for all the features enabled. Same hardware. Dave estimated the signal analyzer front end costs $40 in raw parts but $2,500 to enable. What's the real costs of the box? I'm not saying open is necessarily cheaper, but I'm not yet convinced it couldn't be.
You say you could do this through HTML, would using Angular Modules work for you? I'm just thinking of how I can add some pretty easy features to do basic interactions with angular.
[1] Okay the RPi can be used a starting point even for kids. But the Parallela I don't think so.
While prototyping is faster, development into something saleable goes much deeper (and into C).
For $35 you can get a Raspberry Pi with much more power, network access out of the box, and the ability to run node. I don't see how the tessel can compete with that.