Android vs Qt vs C/C++

Hi All, I am a mobile application developer and this is the first time i have entered into developing an embedded application from scratch. I know that the title is a bit misleading and there will be rebuts in the grounds that Android is an OS and Qt is a framework and C/C++ is a language. Let me explain my requirement.

I need to develop an embedded device which will be installed in a vehicle and it will periodically send telemetrics data to the cloud server using GSM modem. The telemetrics will include

  1. GPS position data
  2. Accelerometer readings
  3. Image/Video data
  4. It needs to light up a bulb on the device to visually indicate rash driving to the driver based on algorithms derived from acceleration/deceleration values

I am looking forward to suggestions in the following areas:-

  1. How to select an appropriate processor, sensor components? Who will design the board? Do the silicon suppliers provide consultancy in that area or does an hardware engineer select the processors, components and designs the board,the board design is then given to the silicon supplier as made to order specs?

  1. Android: Is it feasible to to port Linux for Android. Then port Android on top of that. Write Android ready device drivers and then hook it to the Android APIs. Then write an Android application. My device will not have a display or a HMI. So is Android really adding value to my solution and is it worth to go through all the efforts mentioned above?

  2. Qt: I am least experienced in Qt. But my understanding is that Qt can take place of Android as an application framework. The process and questions pretty much remain the same as for Android.

  1. C/C++: Or write C/C++ programs which will directly interact with the device drivers and achieve the need.

Thanks a Ton!

--------------------------------------- Posted through

formatting link

Reply to
Zarakava
Loading thread data ...

Seems like most of these capabilities are already available to you in the phone. You could at least use the phone for development and then port to your target. If you plan to focus on Android and don't want to use a phone, then you can look at the Arduino platform and add the components that you need.

formatting link
I think you can do most of what you want under Android with a Java app. Anything above that you could then use C++ using the native development kit (NDK).

Reply to
Anony Mous

Hello, Just heard that the client is going with Freescale MCF5445x micro. So should the next step be flashing Freescale Linux BSP? Will i have to write the kernel drivers for Accelerometer , GPS , Camera etc?

Add the drivers, cross compile the kernel and flash it again?

Thanks!

know

grounds

me

vehicle

using

area

designs

to

Android

the

a

is

can

need.

--------------------------------------- Posted through

formatting link

Reply to
Zarakava

Silicon vendors will be happy to help you select parts. Oddly, though, they will help you select _their_ parts. Unless there's some support chip that they absolutely don't make, they'll select their support chips, too. If their parts all happen to be wildly inappropriate -- they'll help you by selecting _their_ parts.

Ultimately the hardware engineer needs to select the final parts to go into the device, and design the board.

The silicon vendors aren't interested in your board design, beyond the extent to which their parts are on it. You will send the board fab files out to a board fabrication house to have the raw board built, then you will send the boards, and the schematics, bill of materials (BOM) and parts placement diagram to a board assembly house, which will build the boards. Any board testing that needs to be done is up to you, or you in conjunction with the board assembly house.

You need to partner with a good hardware engineer, or you need to prototype this thing on a phone or tablet or laptop or whatever, use that as a technology demonstrator, and then use the success of that to attract investment and talent.

Sensor selection isn't trivial. If you're serious about this contact me off list, I'm not the worlds most profound expert on this, but I'm pretty darn good.

Feasible, yes. Adding value? I don't think so.

Qt is good if you have a display and need menus, etc. If your UI is just buttons and lights, then it's a huge load of unnecessary dead code.

That's certainly how I'd approach this, unless you had a display that needed human interaction. Even then I'd evaluate whether some smaller menuing system, running atop a little real-time kernel, wouldn't be more appropriate.

--
My liberal friends think I'm a conservative kook.
My conservative friends think I'm a liberal kook.
 Click to see the full signature
Reply to
Tim Wescott

On Thu, 15 Dec 2011 09:47:16 -0600, Zarakava wrote: (top posting fixed)

A BSP is a _board_ support package. The next step, if you're going to use Linux, would be modifying the BSP to work with whatever _board_ that processor is going on.

If you can get the attention of a Freescale applications engineer, having a chat with them about what the whole job entails may be a very good idea. At best, there's some standard treatment to putting the processor on the board that leaves you with everything working. At worst, you'll know just how much over your head you're in, and you'll be able to figure out where to go from here.

--
My liberal friends think I'm a conservative kook.
My conservative friends think I'm a liberal kook.
 Click to see the full signature
Reply to
Tim Wescott

time i

s

me

ea

s

to

Depends on your budget. If you want chip supplier to do it for you, talk tens of K or even hundreds of K. Otherwise, just hire hardware engineer like me to do it.

d
e

Android is a framework, running on top of Linux kernel 2.6.

Not really, but using Android capable devices save development cost. Due to volume, the whole device is cheaper than the parts.

Reply to
linnix

Thanks a lot Tim for the explanation. I am not clear on the following points. Kindly correct me if I am wrong

  1. Who is the creator of BSP. In my understanding it will have to be Freescale or the respective manufacturer.

  1. The BSP will have an OS image with core drivers. By modifying the BSP, i think you mean adding drivers for other components or sensors on the board like GPS etc. In my understanding i(Software Engineer) will have to write the drivers for these sensors and the camera chip.If I am lucky i might find an already written driver for download.

  2. I find that Freescale MCF5445X series are the Coldfire V4 Microprocessors which is based on 68K(CISC) architecture. All other common embedded system instruction set architectures like ARM, PPC are RISC based. Will that affect the choice of the processor in anyways.

rash

will

that

to

and

--------------------------------------- Posted through

formatting link

Reply to
Zarakava

i
d
n

d.

Yes, MCF5445 (BGA) boards will be expensive. I can understand GSM, GPS and ACC in your app, but why image sensor? Where is it pointing to? For what? Without the image sensor, you can probably use a much cheaper micro.

Reply to
linnix

(top posting fixed _again_)

Anyone who writes it. It doesn't have to be the manufacturer, but it's nice if you don't have to write it.

Keep in mind that your client is going to buy a _processor_ to build a _board_ -- that makes _them_ the "board manufacturer" -- which means that they are on the hook to write the _board_ support package.

Hopefully Freescale will have a BSP written for some eval board, and your client will be willing to stay pretty close to the core functionality of that eval board in their board design. If they do, then you will have a lot less work porting the BSP.

Correct. And if the board design deviates from what the BSP 'expects' you'll have to fix that, too.

You may find drivers, but you'll almost certainly have to modify them to match your particular hardware, the particular way it's connected to the chip, and the particular version of the OS that you're using.

You may also be able to hack the drivers into user space, if you can choke the necessary permissions to access hardware out of Linux. This is generally bad style, but not in a way that greatly impacts the quality of the software for a single version of a product, so for your specific case it may be the best overall solution.

It affects what the processor is capable of, but AFAIK the 68K is a nice processor, so that certainly doesn't rule out its use.

--
My liberal friends think I'm a conservative kook.
My conservative friends think I'm a liberal kook.
 Click to see the full signature
Reply to
Tim Wescott

Hi Linnix, Image sensors because along with telemetric data, even images are captured and sent to the cloud server.

BSP,=

boar=

write

commo=

base=

--------------------------------------- Posted through

formatting link

Reply to
Zarakava

Thanks Tim. Even though i am not looking at using Android now, but there is no Android port available for 68K processor right.

So in the same manner, will the choice also limit availability of compatible OS, tools etc.

I

language.

your

the

that

processor

--------------------------------------- Posted through

formatting link

Reply to
Zarakava

There might be a Linux port for the 68K -- check Debian to see what's current. Straight Linux, if you do anything at all that big, is probably the way to go.

--
Tim Wescott
Control system and signal processing consulting
 Click to see the full signature
Reply to
Tim Wescott

I just checked -- the Debian port for 68K is "unofficial", but they say they're reviving it.

--
Tim Wescott
Control system and signal processing consulting
 Click to see the full signature
Reply to
Tim Wescott

There certainly is Linux for the 68K, though it's not much used these days. There was a time when Linux on Coldfire was very popular for small NAT routers, but I believe most of the market share here has been lost to MIPS SoCs. Linux on "real" 68xxx devices was popular a long time ago, such as on pre-PPC Macs.

I don't think Debian would be the best starting point for Linux on a Coldfire. I would start my search with ucLinux - ColdFire was one of the two main targets for the MMU-less Linux, as many Coldfire's don't have an MMU, and even though the v4 core has one, it's a bit limited, and you might choose to run without it. MMU-less Linux has been incorporated into the mainline kernel for many years, but looking up ucLinux might give useful information.

Reply to
David Brown

Things might have changed, but I seem to remember that the 68k support was better in the OpenBSD camp than in the Linux camp. Take a look at:

formatting link

//Petter

--
.sig removed by request.
Reply to
Petter Gustad

I kinda mentioned this in another post, but I should reiterate it here:

I would seriously question the need for something as heavy-weight as Linux for this application at all.

Any old real-time kernel, or even a thoughtfully-constructed task loop, should do the job just fine. Linux is certainly overkill, although it wouldn't necessarily prevent things from working.

--
My liberal friends think I'm a conservative kook.
My conservative friends think I'm a liberal kook.
 Click to see the full signature
Reply to
Tim Wescott

y

I would say the same (overkill) for the hardware, except for the image/ video. I just don't understand the need for the image/video chip. Is this driver assistant for the blind?

Reply to
linnix

Could be for big-brothering commercial drivers or cops. Having post- crash video to prove innocence or to settle quickly if your driver was a bad boy would have some value.

--
My liberal friends think I'm a conservative kook.
My conservative friends think I'm a liberal kook.
 Click to see the full signature
Reply to
Tim Wescott

Yes Tim. You got the requirement right. Linnix, I had already followed up on your query. Ok. Now the situation is that the client wants to start with a clean slate. So the choices right from processor to sensors,kernel/OS,Coding platform are open.

Tim, I read something about real time OS vxWorks. Are you pointing to something like that or much lighter than that.

We are currently in the middle of talking to hardware engineers here who can help us with the proper selection of components.

Given the requirement any suggestions for

  1. Processor
  2. Sensors
  3. OS

Also i was looking at the possibility of starting to develop the application on a DIY board till the time the actual board prototype is ready. Will that be a good idea?

no

these

a

of

don't

limited,

here:

loop,

it

--------------------------------------- Posted through

formatting link

Reply to
Zarakava

You are STUPIDENT

and this is the first time i

Reply to
Vladimir Vassilevsky

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.