Ask Slashdot: Which OS For an Embedded Display Unit?
First time accepted submitter spouse writes "We are a small Software Design team of 8 developers, working with home brewed Linux to make our ARM7, ARM9 and Intel based embedded products work. Now we want to develop our first 7 inch touch screen tablet-like device serving as control panel for a set of our 'black box' devices. We see Android as a possible choice due to the tablet like character of our applications. We will need App management and the GUI elements. We do not need all the apps out there in the store, we do not need any telephone/sms/email/webbrowser support. Will we end with modifying Android just as much as our own Linux derivate to make things work? Does it make sense to build the hardware of the touch panel based on google reference design to minimize the effort? Are there any experiences out there? Who has done that before and what are the experiences of that? How hard is it to make a product really work with Android? What is the right choice here? Shall we try?"
Do you and your developers feel comfortable with Java? If not, don't go there. Also this sounds like a control application... it seems like Android is too much for that.
... the hell would you invest engineering resources in building a "tablet like" device that's going to be a proprietary frontend for wherever your real magic is taking place? Android is a great choice, given your requirements list, but for God's sake call one of the 5,000,000 companies in China that make tablets from $50 to $300 and ask them to ship you a crateful. Go to CES next year and walk the small booths - you will not be able to walk under the weight of business cards from companies like this. FCC approvals, full BSPs done for you already, available ex stock FOB Shenzen.
If any commercial 7" tablet fits your needs, check some brands/models out there and create a custom version of Android + your app. If it doesn't (probably not rugged enough, or the touch screen not bulletproof....) get them, strip them and modify them. If you are planning to sell more than 100k units and you have enough $, get serious, contact a factory and ask for some redesign for you. In both cases, you can use a stripped android + your app. OR you can start with something like this: http://www.geek.com/articles/gadgets/get-your-own-open-source-touchscreen-device-for-69-2011023/
If you have no intention of supporting Market apps then skip Android and go custom or use some other tailored OS. If you already have a customized Linux then leverage your existing knowledge and slap a micro version of X on it with a custom mouse driver for the touch interface.
Consumer-focused, one-size-fits-all operating systems are terrible for control applications (timing problems, bulkware, etc) and don't really give you anything in return. It's a bit like handing your wallet to a hooker and watching them walk away.
Having some experience in this area my suggestion is to use off the shelf hardware if you at all can. For most of these specific market "black box" control applications you'll never sell enough to bring the cost low enough to do a ground-up design at a reasonable price, plus it locks you in to the current state of capabilities. It will be much more cost effective to use existing Android tablets, write an app for them to do your control and talk back to your black box over a network (a private network if you must). This will allow you much more flexibility than linking the control interface directly with the black box. In the pro a/v and automation category where I do some of this work almost everything has gone this direction and it makes it much easier and faster to design/upgrade.
Keep it small and simple so it boots fast. We use a bunch of them from board and chip
vendors. The one from Atmel seems fine.
Agreed. We did an in house design of one and just the engineering costs added about $500 to each unit when spread out over 30,000 units. We most likely will not sell that many but it's a goal and the figure used to do costing. We used our own in house code which is very mature. We're going with an already made and industry certified ( we need too many certs but this means we only have to pay to get it certified for shipboard use) Atom processor based touch screen which is larger, has more features and is about 10x faster than our in house design. Since there are at least 10 vendors of similar products we won't be locked into the architecture of the in house design, porting the firmware will not add to much cost and these are *less* money than our in house design if engineering costs for the final product are figured in.
I'd go on a Vegan diet but the delivery time from Vega is too long. --brownkitty
I think a lot of people here don't do embedded development, but see the linux tag and immediately spout "Android". Look at Angstrom. The learning curve is really steep, but I'm told it pays off. Also look at what people are using on the Beagleboard. Speaking of which, you might want to base your device off of that.
But, it may also be much cheaper to just go with an existing tablet and write a C&C app for those - you only need to write 3 - iPad, Android, and WebOS (if you care) to cover 99% of users. Write it in Qt and you'll be good to go on all three with minimal tweaking!
I always used Debian for ARM, but a lot of people liked Angstrom. This was before the whole "tablet" and "multi-touch" craze started. The thing is now that all these tablets are available and so cheap I'd question why you wouldn't just modify a tablet?
I don't know why you are asking this on Slashdot, given that you could have assigned any of your developers to look into the topic for a day and come up with a better answer (since he will understand your requirements).
As far as my experience with embedded goes, yes, Android is a fairly easy system to work with. Might not be as stable as MicroC/OS or some other real-time system, but it is easy to work with. But once again, it depends a LOT on the details of your project.
"First they came for the slanderers and i said nothing."
We have a similar situation and what we did was create the control interface to our blackbox using HTML/Javascript and JQuery Mobile. The blackbox hosts a simple web server with a services API written in Perl. The control interface now can be loaded as a Chrome app on a desktop or laptop, packaged as an installable app for Android or iPad using PhoneGap, or function as a "web app" on pretty much any mobile device that is wifi capable. Granted our "blackbox" resides as part of a wireless hotspot running OpenBSD and was designed to allow other devices to connect to it from the ground up.
Our first customer is using the $500 iPad 2's as their interface device of choice, but the fact that the controls are HTML/JS and worked on any smart phone they tried during the demo phase was a huge plus. Our system is replacing a system they deployed 10 years ago that never really worked all that well, mainly because most of the hardware and software was proprietary. And it was a huge problem because a lot of the equipment was frankly outdated before they even went live. This time around we got the contract simply because we took the "workstation" part out of the equation. So long as it can run a webkit browser our system will work.
"The problem with socialism is eventually you run out of other people's money" - Thatcher.
We have dozens of these projects at my company, and this is the simplest way. There are plenty of vendors in China that will give you a good deal on an ARM5/9/11 or Cortex touch device. You plunk Android on it and then build a native app, or as we often do, build on HTML5 app with a native middle-layer and JavaScript bridge. Pretty simple process. Main concern is the vendor, because build quality can vary widely from the Chinese fabrication plants.
My company builds hardware like this as well, when it makes sense. We could build you this app for a very reasonable price, *wink*.
I have worked on an embedded kiosk with NFC+3G for cash card transactions and all these Chinese tablets are an absolute NO - NO. We tried 20 models and there are too many problems making the $100 price tags totally irrelevant. We finally found a great product from Genesi (genesi-usa.com) called Efika smartbook ($200) and smart top ($100). You'll get surprisingly good quality, great engineering design and pretty good software software. It runs Ubuntu Arm customized a little but you can run Fedora Arm etc. Has inbuilt 3G,WiFi/BT but you can opt out of those for $40 cut in prices i think. Their new models have touchscreens - though i would not recommend touchscreens for anything non-consumer item as they always have issues if the usage is high or the atmosphere is industrial/outdoor etc. Better to go with external bluetooth touchpads (indl quality) or numeric keypads so that it can be replaced without opening up the machine. The form factor of smartbook is also great for doing arm development on the move or normal office/home use. FYI, I have no relation with Genesi - just a recent customer.
how many of those 47,826 vendors ships source code? have you any fucking idea how hard it is to get these companies to fucking well understand the GPL, dickhead? i've been dealing with these companies for eighteen fucking months, and they just don't give a flying fuck. not to mention the simple fact that they themselves are supplied with GPL-violating binary-only distributions, they have absolutely no software expertise whatsoever; their ODM software suppliers can't keep hold of their own developers because the supply of software engineers in China is so in demand.
it takes about three to four months of careful negotiation, with about a 1% hit rate (i.e. 99% of them don't understand english except phrases like "the money has been transferred" and "we want to order XX,XXX units", and those that do understand don't give a shit) we've found THREE suppliers who comprehend the GPL, and that was only after explaining it to them. of those two suppliers, one STILL doesn't give a shit, one of them was so terrified of the consequences that they terminated sales of the product, and the other one is, thank god, still in the running, is willing to work with us and we will supply their next software *for* them. ... but that was after 18 months to 2 years of searching. now, are you _seriously_ suggesting to these guys that they spend allll their time and money doing exactly the same thing? i think you'll find that they're better off actually designing their own hardware and writing their own software.
anyway, to answer the actual question: use openembedded to custom-build an angstrom linux distro. it's been around for over 10 years, now, so is a pretty mature development platform, and has some superb recipes. ask on the openembedded lists or irc, be patient and you'll get the advice you seek.