1
\$\begingroup\$

I am designing a system and it's safe to say I am a little out of my depth. The requirements of the project are as follows;

drive 7" WVGA touch screen and generate graphics

4-20mA input

3 x 4-20mA outputs

2 Analogue inputs

4 Digital Outputs

2 Digital Inputs

Spi Bus (5 x CS)

I2C

PWM for LED controller

Eeprom for data storage

I have designed most of the system under the impression we would be using BBB as the main processor for the system but the BBB has been called into question over its suitability for use in a commercial project.

I was thinking of using the BBB for the 1st iteration of the board design. Once we have established a working system to then redesign the board with the Cortex-A8 and any other components needed from the BBB. Seeing as the BBB is all open-source this should be possible right?

Is there a better/easier solution for this using a microprocessor or something like that? Product longevity has been flagged as one of the problems of using BBB as the product needs t o have a lifetime of 15-20 years.

I should also add that I will be doing most of the programming for the system and only really have slight experience with C++ any help/advice would be appreciated!

\$\endgroup\$
  • \$\begingroup\$ When you say lifetime, do you mean the BBB has to be available for 15 to 20 years or it must survive 15 to 20 years after it was built? \$\endgroup\$ – Arsenal Aug 31 '17 at 12:02
  • \$\begingroup\$ That BBB or more to be more accurate I guess the Cortex-A8. \$\endgroup\$ – Revilo Engineering Aug 31 '17 at 12:45
  • \$\begingroup\$ Do you really need a Cortex A8? How much processing is going on here? \$\endgroup\$ – DiBosco Aug 31 '17 at 13:53
  • \$\begingroup\$ This is what I am asking, Not too much just need to have an interface to look at values on the screen, and then just signal processing. \$\endgroup\$ – Revilo Engineering Sep 1 '17 at 7:53
1
\$\begingroup\$

I think you should leverage your skillsets in providing a functioning prototype and should select a device that already provides all the elements where your skillsets aren't at their peak. Make sure the device and supporting elements provides all of the necessary components/modules you need so that you can focus on developing your goal/solution.

Once you achieve it and are satisfied with the results and have gotten all of the necessary usage comments accounted for and feel completely at ease with the final results, then it's time to do a retrospective and nail down exactly what you need in the final product, taking into account what you've learned about power and voltage requirements, battery life, safety, etc.

Chances are, whatever it is will be a fair bit different from your prototype device. But you will be in a much better position then to work out what you need to source (or perform somehow with specialized skills you acquire or hire.)

Don't over-think where you will be at the end of the project. Focus on just getting there as quickly and as well as you can. Then look back and see the path you followed and examine what you've learned by walking it. You'll know very well what you want, then.

Sometimes, the path will result in a lot of work product that you can't afford to completely throw away what a truly narrow focus on the final product tells you that it actually needs.

For example, you might really need something so much smaller, with so many fewer functions, and so much better at managing power that if you actually sourced a unit properly sized and arranged correctly, that you'd have to use completely different development tools and be left with almost nothing of the original work except for all the much better knowledge you now have about it. It happens. In that case, you just have to make a choice and decide if you will cripple your product and protect your prior work or if you will put out a really competitive product and throw away some serious work. (The saving grace here is that at least you know exactly what you need to replicate, again.)

Don't over-think, right now. (Unless there's something you haven't mentioned, yet.) Just focus on achieving the goals. The look back and see what you need to change and hope for the best on that, but be open for serious re-work if that is appropriate.


If you haven't figured it out yet, I think you should now realize that I can't answer the question, "is there a better/easier solution?" Only you have the necessary information to even attempt an answer to that. All I can do is offer some thoughts to consider along the way.


As you become more skilled and have some experience behind you, you will be much better at anticipating and identifying project unknowns and pushing their solutions to the very front of the project cycle. This will greatly benefit the cycle by providing a GO/NO GO decision very early, where it costs a lot less to make, and it will also provide a lot more information to use if and when the decision is then made to push forward (the GO decision.) You use that time quickly and wisely to produce all of the needed information for a GO/NO GO decision as well as laying out the steps forward, when asked.

Here, it doesn't matter so much then about your initial selection of a development system. In fact, you might select a development system with full knowledge that it will not ever be used in the final product. It's instead chosen to get through those unknowns expediently and appropriately and you don't even waste a moment worrying about whether or not it will be chosen, if the GO decision is then made.

But it may also be that in some particular project "anticipating and identifying project unknowns and pushing their solutions to the very front of the project cycle" means actually identifying a rather narrow range of options for the microcontroller and related hardware because those project unknowns develop out of these project boundaries determining the limited range. For example, there might be an extremely low power requirement with extremely fast "sleep to full-operation" required and this, a priori, limits your processor choices to exactly one: the MSP430. In that case, the unknowns might be more about whether or not the rest of the goals can even be achieved with such a device, at all. In that case, you DO CARE about what you use early in the project cycle to ferret out and resolve unknowns directly related to that guess about the processor being your only choice. You may need to push back, after this early investigation, one some given boundary once you determine that the MSP430 cannot achieve some other required goal.

So it's not always the case that the prototype base doesn't matter. Sometimes it does. But it takes experience to know if it does.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.