Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Embedded Systems using FlowStone DSP Programming Language for Windows

0.00/5 (No votes)
17 May 2010 1  
Developing Embedded Systems Using FlowStone DSP

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.

Atom_Embedded.png

Embedded Single Board Computer 

flowstonelogo.png

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.   

stereo-vca.png 

 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! 

FlowStone_Flow.png
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!

volume-exe.png

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.

 Back_Pannel_Coutout_LR.png

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  

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here