0
\$\begingroup\$

Me (young student with little experience) and a colleague of mine (multiple years of hardware development) are sort of clashing about a certain topic, but I'm having trouble to understand his point of view from his wording alone.

I recently heard about Mikroe's Planet Debug, which is a development product, dedicated to hardware developers, enabling them to do remote development on real hardware. There's a bunch of stuff in that, but the key points for me are:

  • MCU cards which are (IMO) independent of peripherals, thanks to a standardized socket (MikroBus)
  • Development boards which utilize those standardized sockets to connect them to peripherals.

My point in the discussion is:

Having such a standardized socket would enable us to develop faster with less dependency on our production facility, because we could develop a single proprietary development board for our products which utilizes a standardized socket. With such a development board, we wouldn't be dependent on VERY SPECIFIC MCUs, but rather could test a whole range by "just swapping out the MCU card".

His counter-point is:

There is no point in that, because it doesn't consider the dependency of peripherals. We would still need all the peripherals and at that point we might as well use a specific MCU in a specific package. Like it doesn't solve anything if we were to use a development board with "replacable MCU". That Mikroe stuff only works, because they're selling their product along with it and for our proprietary products it's as good as garbage.

I do want to point out that I'm paraphrasing his and my points, because it's not feasible for me to do precise translation of that verbal discussion from the top of my head.

His counter-point is confusing me, because he keeps repeating the part of "dependency on peripherals", as in: "Any benefit that only concerns the MCU is pointless, you always have to consider the full product"

At this point I have to mention, that we're in an industry, where products have a minimum lifetime of 10 years, if not more. Our product line is "new" but still already 10 years old.

I don't quite understand how it wouldn't be beneficial to use or build a propriatary platform. IMO it potentially enables us to do testing earlier or at least enables us to switch MCUs without requiring a complete redesign of the PCB. In my opinion it would take away dependency of having to produce a full populated circuit board before you can begin with any sort of testing if the firmware will work on it.

But then again, I am young, naive, inexperienced, but in that regard also willing to be shown otherwise. It's just that my colleague isn't the type of person to give detailed explanations, but rather smacks the argument with "It's just how it is done, it doesn't work your way."


EDIT:

When developing a product, that is meant to stay for a minimum of 10 years, the dependency on the lifetime of a certain part is very crucial. With our product, we are aware of the costs and implications of having to change out discontinued parts.

Keeping that in mind, I thought it would improve our product development process and our internal costs, if we attempt to make crucial parts swappable for our development team, so that we don't have to produce a fully populated circuit board with MCU and peripherals in order to start developing firmware or even do testing.

My question is, if that's actually beneficial, to basically develop 2 boards, one for development and another for production, or if that process would not produce any benefit, since it is actually "pointless" as my colleague pointed out. More specifically, I am asking about WHY that is or is not beneficial, because my colleague would not explain it to me in detail.

\$\endgroup\$
7
  • 1
    \$\begingroup\$ This isn't really a discussion site and you are asking for opinions about a subject. Sure, eval boards of MCUs connected to eval boards of other chips could speed SW and HW developement. But where to draw the line is variable. If you design a separate MCU board and the main board, you then need to design the electrical and mechanical interface, along with two boards. In some cases you might want to buy a ready made CPU module and have a slot for it on your main board. \$\endgroup\$
    – Justme
    Commented Dec 5, 2022 at 14:36
  • \$\begingroup\$ I don't understand the clash. It sounds like you both think your solutions are the correct approach for ALL situations and objectives. It should be obvious to the both of you that situations and objectives will vary, even in the same project at different stages. It could also be product dependent: Maybe your product doesn't work well with dev boards and it's just less work to make the board you are going to make anyways. Maybe the extra cost of respins is not prioritized as highly as not having to pay for an extra development stage on a dev board. More money = the less a dev board matters. \$\endgroup\$
    – DKNguyen
    Commented Dec 5, 2022 at 14:53
  • \$\begingroup\$ @DKNguyen Well, I don't know all the implications or stages that there might be. I looked at Planet Debug and was wondering if we could benefit from the idea or built on top of it, but my suggestion was countered with implicit impossibility. I was seeking answer or details on why that is. \$\endgroup\$
    – HackXIt
    Commented Dec 5, 2022 at 14:57
  • \$\begingroup\$ @Justme I can't help but frown upon having this closed, even though there's literally 2 opinionated questions that are related or similar in the right sidebar. But apparently my question is not formulated well enough to meet the hidden criteria for a question that seeks opinions. \$\endgroup\$
    – HackXIt
    Commented Dec 5, 2022 at 15:01
  • 1
    \$\begingroup\$ It's because you asked for discussion or overly broad unfocused opinions rather than asking a specific answerable question. \$\endgroup\$
    – DKNguyen
    Commented Dec 5, 2022 at 15:16

1 Answer 1

1
\$\begingroup\$

Why you would build a custom system:

  • Full control of everything. Which is a guarantee for longlivety - since parts will eventually go obsolete.
  • Cost-efficient.
  • No need of icky adapters for supply voltage, connectors etc.
  • Custom-made to the intended purpose, including EMC and environmental aspects.

Also, beginners to embedded system tend to greatly overestimate how complicated it is to make a PCB. It is not, it is easier now than ever thanks to a global market, reference designs, PCB CAD, standardized gerber files and surface mounting/reflow soldering. Assuming you have access to fairly experienced PCB designers.

In some typical small-scale, embedded system project, then you'll do analysis & requirements gathering, then pick a suitable MCU based on that. You pick a MCU pin-out early on.

You order an evaluation board and then the SW guy(s) can then keep themselves busy getting programming toolchain up and running, considering memory layout & writing drivers for the required peripherals. Or if they want to write some generic algorithms not depending on hardware, that can be done in any C compiler.

Meanwhile the HW guy(s) can make the first prototype PCB. If it's nothing too complicated, a few weeks of work. Then 1 week to order PCB and 1-2 weeks to assemble prototypes. You would have a custom-made prototype hardware in 1-2 months from project start-up. All of it of course depending on product complexity. But from there on you have tailor-made PCB which probably costs way less than some generic platform.

Also, since you already did all the work on an evaluation board with the correct MCU, there is no work porting the software from some "simulator" target to the real one.

\$\endgroup\$
8
  • \$\begingroup\$ Your question shines light on the stuff that my colleague did not explain, thank you. I certainly overestimate the process of PCB design. \$\endgroup\$
    – HackXIt
    Commented Dec 5, 2022 at 15:15
  • \$\begingroup\$ Since @Justme pointed out that my question is subjective and hard to answer without opinions, I suspect there won't be coming any more suitable answers. I'll accept this as is, I suppose I do have to dig deeper about the whole development and get a better feeling of why we're building a custom system. \$\endgroup\$
    – HackXIt
    Commented Dec 5, 2022 at 15:18
  • \$\begingroup\$ @HackXIt Seasoned engineers will often get their gag reflex triggered by speaking of various simulators/emulators, since it often just proves to be a huge waste of time. Developing on the intended target, running from flash and with the expected clock, is a great time saver and will expose unexpected problems early on. Like that inevitable silicon bug you get for picking the latest & greatest MCU instead of something proven in use for some years. \$\endgroup\$
    – Lundin
    Commented Dec 5, 2022 at 15:24
  • \$\begingroup\$ So basically it is beneficial to build custom hardware, since development of a prototype PCB is not very complicated and having a custom hardware to start development with makes integration easier, rather than a generalized development board, where many interfaces would still need to be built. Does that summerize it? \$\endgroup\$
    – HackXIt
    Commented Dec 5, 2022 at 15:24
  • \$\begingroup\$ @HackXIt Yeah that's a good summary. \$\endgroup\$
    – Lundin
    Commented Dec 5, 2022 at 15:25

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