Our prototype products are classed into three categories; Development prototypes, pre-production prototypes, and “mock-ups”.
Development prototypes are usually built on specialist prototyping board (much like stripboard, but with each hole isolated rather than connected in strips). Frequently we will use adaptors for devices that are only available in a surface-mount package, and we have a wide range of these adaptors, manufactured to our specification. Sometimes it will be necessary to use a manufacturer’s development board, such as when the high-speed connections between a CPU and DDR memory just can’t be hand-wired. Usually, this development board will be heavily modified to meet the requirements – The finished product will not be restricted by the design of a development board!
The advantages of a building a development prototype include:
- It’s easy to make changes and improvements to the design before spending money on PCBs. Any errors will also be picked up before they become costly.
- It provides hardware early on in the development cycle so that software can be developed concurrently with the PCB layout & manufacturing.
- Extra diagnostic features can be added to the development prototype that wouldn’t be practical to include on the final design. An example of this is a remote (GPRS) surveillance camera product that we built, where the development prototype had a output that a computer monitor could be connected to for viewing the image.
The development prototype will rarely resemble the final product. When it needs to be tested “in the field”, we will generally fit the prototype in a die-cast aluminium box, but this will commonly be much larger than the actual device is intended to be.
Pre-production prototypes are usually hand-built versions of the final product. It’s common to acquire an initial small batch of PCBs before committing to a volume order, and we will frequently hand-assemble a few of these so that they can be evaluated. These prototypes will resemble the final product, and can be used for EMC/safety testing, and used as demonstrators at trade shows etc.
A “mock-up” is almost the opposite of a development prototype. It’s essentially something made to look like the proposed final product so the customer can get a feel for the size and shape, or use for promotional photographs. Manufacture can range from off-the-shelf enclosures, through CNC-milled to 3D-printed. We can fit switches & connectors or printed labels to more accurately resemble a finished product, but the defining factor of the “mock-up” is that it is non-functional.
Software prototyping
This is the process of writing software as a high-level “proof of concept” routine, which can the be translated into efficient assembly-language code once it performs correctly. This is not necessary for most work, but is reserved for more complex or abstract software.
We’ve developed a technique for writing code in BASIC in such a way that it’s easily translatable into assembly language. In simple terms, this would involve not using features or commands that don’t have a direct equivalent, or sequence of equivalent instructions in assembler.
An example of this is an M-JPEG encoder that we wrote for ColdFire hardware. The initial BASIC code was simple to follow and the desktop PC could easily provide source images, and test the results. It was a fast process to modify & re-test the code, even while it was running. The final assembly language version, however, was several thousand times faster.