Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Buy OS or create from scratch?

Status
Not open for further replies.
Hello,

I am facing a crutial decision. If you are an experienced programmer or a project manager for a big IT/Electronics firm, your feedback would be very appreciated.

Let's say your firm is developping a product with a *similar potential* of sales as the Iphone. However, the product I am talking about is not a phone, its a device which requires a GUI with inputs and outputs and requires RF communications.

That being said, which platform would you pick:

1) Use an off the shelf OS like Windows mobile or Android which would legally bind you to certain contractual conditions such as obligatory open source, royalties ect...

OR

2) Build your own kernel and GUI where no obligatory contractual constraints exist

Bear in mind, in either condition, money and man power is not an object!

Your insight is appreciated!

regards
 
I had a similar choice several years ago.... Windows CE .... linux... Java.... it was a non starter..... I ended up with .net programming with C# the systems are free as you buy the processors with the firmware. It doesn't take long to produce and run a windows style interface.... USB connectivity... SD with FAT32 connectivity.. Touch and TFT screen connectivity (up to 7")..... I use the FEZ modules.

www.GHIElectronics.com.... A guy called Thomas has developed Pyxis2..... its brilliant... Take a look see.
 
Last edited:
Hi Ian,

Is C# and FEZ modules binded to any contractual constraints ... any at all such as obligatory open source, royalties of any kind... ?
r
 
Last edited:
None..... You can purchase a EMX module the firmware is paid when you buy the chip.... .... If you have quantity this is $65... it has LCD connection 4.5MB of programmable flash and about 16MB of ram.... If you get a "Cobra" or "EMX Development system" you can start immediately ..

On the tinyClr web site there are thousands of device drivers for just about ANY device... Tons of examples... the GHI demo is nearly 100% of what you need... already done.... Free...
 
Thanks for your reply Ian,

Yes but Ian, right now the small Kernel I have designed from scratch uses a simple 6$ PIC with an 8$ Color LCD2.5" and a 5$ 8M flash (at non volume quantities!). At volume quantities I can probably make a board with logic/Color LCD under 15$ with many types of I/Os such as analog, PWM, discreate, I2C, RS232 and so forth. It obviously can't do everything Android or what win mobile can do but by the same token there will be updates and improvements that I will carry out while maintaining a super low cost. Oh and by the way, what happens if I require a 2" display as opposed to a 3.5"... can EMX handle it?

So my question to you, is can the EMX module do the same for the same price?
Reagrds
 
Last edited:
I've seen android running on the the chip they use ( you have to delete their firmware )

It was just a suggestion... There are other options.. You can get a free RTOS from the net and build from that..

Android -> 3.0 is open source and free.. I know they have held the source code back for 3.0 and 3.1 so that can't be used.

There is always GEM...........groan... needs a lot of work though.
 
>It was just a suggestion

And I really appreciate your feedback! But unfortunately there is a cost issue that needs to be respected.

I have seen the term ""RTOS"! But never explored it. What benefits does it have versus what traditional programming could do?

r
 
Last edited:
The RT in RTOS stand for Real Time which makes it suitable for applications such as control where some things need to be happen in Real Time, as opposed to waiting for your time slice or for some other task to give up the processor.


Would the product be more readily accepted with an android or a windows interface, as opposed to a custom one ?
 
Hi 3vO,

>Would the product be more readily accepted with an android or a windows interface, as opposed to a custom one ?

You see, now that's a good question. It all depends... if I get investors to join us to push the product out as soon as possible, then I think I would need to hire more programmers.
Programmers would rather obviously work with known OS'es such as android or windows as opposed to some kernel I did with it's own particularities.

But then, I am stuck with the open source issue. You know, sometimes we have to think long term. Let's say you are in my shoes for a second here. You have a product that can be marketed world wide just like the iPhone is (using iPhone as an example) and if you consider going with an off-the shelf OS and accept the fact that you would be obligated to expose your code to any programmer that demands it should raise a red flag. I understand if your product would have the potential of selling 300 peices a year, then yes it would be okay to go for an off-the shelf kernel/OS like Android or windows.... but this is not the case.... it's like as if I would say to you, let's build an Iphone with Android????? Huh! Mr. Jobs would never do that!!!! God rest his soul! So you would rather come up with something that is yours to keep and develop without and contractual constraints. Open source may be only one of the caveats... there could be more issues when sales like that are involved... all to say that in some way you are at the merci of the Os's vendors.

The small Kernel I have now uses a simple 6$ MCU with an 8$ Color LCD (RGB 16Bit) and and 5$ 8Meg flash (at volume quantities the 3 may cost me under 10$!). It obviously can't do everything Android or windows mobile can but by the same token there will be updates and improvements, but atleast you know that it would be yours to keep for the long run and you have the control of it's evolution.

I am thinking about this over and over... it's not an easy decision especially when I put 3 years of development in there.

regards
r
 
Last edited:
Hi Robert,
One thing you haven't really mentioned is at the hardware level whether you are going to make your own boards or go with a commercial one in bulk for your product. with that FEZ one of them looks like a direct copy of the chipkit but with a cortex M4 chip instead of a pic32 chip.

In the coming weeks Olimex will be bringing out a ARM9 board which can run linux/FreeBSD natively etc and with a 30 euro price tag for single quantities. Also there is an open source project called the Duinomite where the software is totally open source and the only requirement is any changes to be also open source. Any which way you go I would suggest contacting Olimex and I'm sure they will have a board to suit your needs or if you want large quantities they can in junction with you design and manufacture a board to suit.

With the prices of the new high level developments boards becoming so cheap it would pay to take the headache out of hardware design and concentrate on the software but either way it up to you.

Regards Bryan
 
>>>One thing you haven't really mentioned is at the hardware level whether you are going to make your own boards or go with a commercial one in bulk for your product.

I am definitely doing my own boards. I require other hardware on there for sensor capabilities!

And the cost has to to be dirt cheap. So far with what I have I can do pretty much my whole board with 15-18$. The only thing that is costing me right now are those darn DC to DC convertors. I will have to replace those by Maxim's (I think that's the vendors name!!) IC's. I have seen some circuits that cost about 1.00 in parts.

regards
r
 
Last edited:
Robert... In your first post you mentioned money , man power no object... If you've designed a small OS and it works for you... well that's the best way to go... Other OS's have parts you may not need and will take up resources.....

It's no small task, But it may be better for you.
 
Using an open source OS may not force you to release the source of your product. Tivo used some form of linux and was only required to release the changes made to the kernel.

The root question is question is do you need an OS ?
 
Last edited:
But then, I am stuck with the open source issue. You know, sometimes we have to think long term. Let's say you are in my shoes for a second here. You have a product that can be marketed world wide just like the iPhone is (using iPhone as an example) and if you consider going with an off-the shelf OS and accept the fact that you would be obligated to expose your code to any programmer that demands it should raise a red flag. I understand if your product would have the potential of selling 300 peices a year, then yes it would be okay to go for an off-the shelf kernel/OS like Android or windows....

So - you are saying that all of the companies that make, sell, service, etc. Android phones, tablets, netbooks, etc - that somehow they made a mistake? That all of a sudden, somebody somewhere is going to steal all of their tech and run off with it?

You sound almost like a graphics card company here; really, if the only thing "protecting" you is the software and your control over it, your hardware must be fairly replicable or easily hacked, and if people want to hack it, they will - whether you have control over the software/OS or not. That's a fact.

but this is not the case.... it's like as if I would say to you, let's build an Iphone with Android????? Huh! Mr. Jobs would never do that!!!!

You do know that OSX and IOS are both based on BSD, an open-source operating system, right?
 
  • Like
Reactions: 3v0
Hello guys.

>>> Tivo used some form of linux and was only required to release the changes made to the kernel.

So let me ask you something. If I am using one of em off-the-shelf OSes (let's take Linux as an example) and I need to make a specific algorithm for some sort of sensor and the algorithm I come up with doesn't exist out there and furthermore the functionality produced by this very algorithm starts to become super *popular*.... would I be obligated to share that code ?

For example, if the algorithm I create controls a sensor in a very specific way that its functionality becomes a very popular feature in the IT technological field so much so that Linux decides that the algorithm must be made part of the open source medium. Would I be able to argue this ?

And if I make specific changes to the Linux kernel (for example new functions that do other logic) how does one determine that I am actually modifing the kernel and not simply adding/creating my own functions ? This could be tricky atleast I think?


>>>> The root question is do you need an OS ?

Well this is why I am blabbing away here. In a small embedded system how many things do we really need. In my small kernel I have created the following:

- several commands to display text (4 fonts), pics and Icons
- a small selection of controls (List boxes, buttons etc..)
- a small rtos (which mimics windows messaging method)
- a basic data I/O system to store and retrieve records from flash with queries
- a simple touch screen

and
- Soon will embbed functionality for a camera and sound

Fine I agree there are some draw backs such as:

- I only have 16 bits/pixel as pixel depth for my color LCD
- I only can use 1.5" and 2.0" LCD's
- I don't have anti-aliasing or alpha blending

But why would I need those things right away for... I am not building a desktop computer application you know!
Besides, with time these features will eventually get integrated.
Also, the thing that bothers me though, is if I do hire programmers how would they feel about working with my limited kernel ?

>>>So - you are saying that all of the companies that make, sell, service, etc. Android phones, tablets, netbooks, etc - that somehow they made a mistake?

No, they did not make a mistake, and I am not a mega corp. Also I don't know *how* they are really protecting themselves. And probably neither do you and neither do most people know this sort of stuff. These mega corps have the financial support to dig into the legalities of these licencing contracts. I am not a lawyer and therefore I am ignorant when it comes to documants like this:

https://wiki.osdev.org/Licensing

After having read this, I was even more confused. I am not a lawyer, I don't understand all the legalities but one thing is for sure, if I do it myself, it's mine. If I use OSes that are governed by all this legal mumbo jumbo... I can face surprises that I didn't expect and unlikely be able to handle them the way a mega corp would. So I rather be safe than sorry. It's just me!

At the begining of that link that I posted, it says:

"Probably the scariest thing about software licenses are the endless paragraphs of legalese; we try to keep this text as crisp and short as possible. "

Makes me wonder what other leagal paragraphs are behind this crisp and short licensing document that we don't know about. It might be fine for these mega corps to use such OSes for their products because they have lawyers looking into the legalities down to the bitter crumb of the legal spectrum. Even though I said money or man power is not an object, I strongly feel I can do without any legal stigma in the long run.

>>>that somehow they made a mistake? That all of a sudden, somebody somewhere is going to steal all of their tech and run off with it?

I highly doubt it! LOL!!!

>>> and if people want to hack it, they will - whether you have control over the software/OS or not. That's a fact.
Yes but cr0sh, if someone wants to go through all of that, then that's their choice but they still have to manage the quirks to do it. But for what I am doing there is nothing safer than a closed platform.

>>> your hardware must be fairly replicable or easily hacked

How so.... the hardware replicable, I don't think so... re-engineered so that it does the same operations is more likely! But easily hacked?
How can one hack a system when he would not know the first thing about its protocols, logic sequences and so forth... without seeing the code???

>>> You do know that OSX and IOS are both based on BSD, an open-source operating system, right?
Here I don't have an answer as I don't know much about that OS. But I wonder how flexible the licensing contract is?


Thanks for all your insights ... much appreciated
r
 
Last edited:
So let me ask you something. If I am using one of em off-the-shelf OSes (let's take Linux as an example) and I need to make a specific algorithm for some sort of sensor and the algorithm I come up with doesn't exist out there and furthermore the functionality produced by this very algorithm starts to become super *popular*.... would I be obligated to share that code ?

I expect that you do not have to disclose it so long as it is not a modification to their existing code.
 
Hi 3v0,

I have read a couple of posts on the Internet and I find it a little complicated to grasp everything... GPL, LGPL, FPF, BSD.... ooooffff!

thanks guys !

r
 
I think your a little off here You only have to share what changes you made to the OS not code you made to run on the OS.

If you write a supper program that runs on say LINUX as long as it makes no changes It's yours, now if you have to make say a driver thats added to the kernel drivers it's yours nvidia has drivers that are complied for the kernel there not open

2. GRANT OF LICENSE

2.1 Rights and Limitations of Grant. NVIDIA hereby grants Customer the following non-exclusive, non-transferable right to use the SOFTWARE, with the following limitations:

2.1.1 Rights. Customer may install and use one copy of the SOFTWARE on a single computer, and except for making one back-up copy of the Software, may not otherwise copy the SOFTWARE. This LICENSE of SOFTWARE may not be shared or used concurrently on different computers.

2.1.2 Linux/FreeBSD Exception. Notwithstanding the foregoing terms of Section 2.1.1, SOFTWARE designed exclusively for use on the Linux or FreeBSD operating systems, or other operating systems derived from the source code to these operating systems, may be copied and redistributed, provided that the binary files thereof are not modified in any way (except for unzipping of compressed files).

2.1.3 Limitations.

No Reverse Engineering. Customer may not reverse engineer, decompile, or disassemble the SOFTWARE, nor attempt in any other manner to obtain the source code.

No Separation of Components. The SOFTWARE is licensed as a single product. Its component parts may not be separated for use on more than one computer, nor otherwise used separately from the other parts.

No Rental. Customer may not rent or lease the SOFTWARE to someone else.

I don't no if you seen the Roku 2 It runs LINUX Part of it is not open

here is how they handle that
Certain components of the software included with the Roku digital video player are subject to separate license terms, including "free" or "open source" software ("Separately Licensed Code"). As required by the terms of the relevant Separately Licensed Code licenses, Roku makes the "free" and "open source" code provided under such licenses, and Roku's modifications to such code, available on Roku's website, at no charge.

The source code files referenced on this page have been provided under one or more open source licenses. The source code listed here is complete to the best of Roku's knowledge. If you believe any additional source code files should be provided under the applicable open source license, please contact us at support@roku.com and provide in detail the product or code module in question. Roku, Inc. is committed to meeting the requirements of the open source licenses including the GNU General Public License (GPL) and will make all required source code available on its website.
This is not open "Roku digital video player "
 
Last edited:
Hi be80be,

Thanks for replying. Okay, well, as you mentioned, there are some very small constraints which can be thought as negligible nonetheless present. Another issue though is if I go
with one of these off-the-shelf OE'es:

1- What MCU/CPU is requirements to run a minimal version of the OS? Also what would be the typical cost of the MCU/CPU?
2- How much ram/rom do these OS's require to run the minimal version? And what would these chips cost?
3- Can theses OE's give me access to the MCU's digital and analogue I/O's, PWM pinouts, USB, RS232, I2C?

I was wondering if there is a kit out there that I can evaluate?

regards
 
There are $35 dollar ARM boards that can run Linux windows 8 windows CE and Android.
I have a board that was sent to me for free that can run any of the above using SD card to boot off.

And the pic32 could be use with Linux and there a Arduino Mega Android a costly but looks good for running android apps.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top