Introduction
When planning our fourth generation DSP based analyser we found ourselves at a cross roads of technology. Do we go down the DSP route using proprietary DSP chips (TI, Motorola etc.) as we have done with the previous products or do we try a new path and look at developing an
Embedded system?
The big decision?
The traditional DSP route had the advantage of known technology but a long lead time as we would have to design and make new boards then get them through CE approval for RF and EM emissions etc. Plus the programming as we know from our previous version it a lengthy process using Ansi C++ and a DSP development system,. On the other hand using an off the shelf embedded mini ITX single board computer presented a lot of advantages, processing power using a multi-core CPU,
networking built in, plus a user touch screen, and last of all cost! However programming real-time DSP processes using C++ for windows was a skill we didn’t have in house and would have a long development time as the product would be a lot more involves with a user GUI that we wouldn’t
have on a simple DSP system.

Embedded Single Board Computer

FlowStone to the rescue!
We then discovered the FlowStone DSP programming language for the PC from DSP Robotics. This is a graphical signal processing language that enables the programmer to use and make graphical building blocks that are wired together to make a graphical representation of your DSP design.
The FlowStone developement enviroment
The beauty of this system over traditional DSP programming is that the development environment is ‘live’ meaning that you can drag more modules to the schematic windows while it is still running and instantly see and hear the results. This sounds like a small thing but in reality is significantly reduced the development life cycle as there is not time wasted compiling your DSP software then downloading it to the chip for full speed testing. We where able to not only learn this new software but translate our DSP algorithms into a Flowstone DSP format in just three months. The same task that had originally taken over one year in C++ and a TI -DSP chip!

The FlowStone project workflow
FlowStone GUI:
The other benefit of using FlowStone was the GUI elements. This meant that we could design our own custom graphics and use them for our FlowStone GUI. Such things as switches, LEDs, knobs and sliders we all made in house on either Photoshop or 3DSmax.
Make EXE:
One of the key features of FlowStone was to take our working project that was running in real-time in the FlowStone development environment and with a single click make a stand alone .EXE file. That was it, we had a real EXE program with our own GUI running on Windows!

Windows Embedded:
Obviously the thought of running a hardware product based on Windows XP or Windows 7 would be a nightmare. Users could hack into the system and change settings etc. plus the boot up time would be too long and disk storage would be too much. So we decided to go with Windows Embedded Standard which is a version of windows designed specifically for stand-alone products like this. After a little tweaking we managed to get a Windows Embedded install down to 300K with everything that we needed. Better still the system boots directly into our application as the system shell with no sign of Windows anywhere. None of the usual keys are enabled (eg. CTRL-ALT-DEL ) making the product secure from malicious fingers etc. Better still the whole system booted in about 10 seconds!
Conclusion:
This project was an interesting adventure and turned out to be the right decision not to go down the traditional DSP route. The key to the success in part has to be given to the FlowStone DSP programming language as without this we would still be programming in C++. After running the
systems on soak test for several months now, it has proved to be very reliable and bug free.

The finished Product
Long Term Test
Having lived with the finished product for a few months now we are happy to report no major problems. The compiled software seems stable and the embedded hardware has also proved reliable.
History
V1 13/05/2010