[hpsdr] A proposal

Bob Cowdery bob at bobcowdery.plus.com
Wed Jan 16 13:46:22 PST 2008


Hi all

If you are not in the slightest interested in delving into some of the
software engineering behind all the wonderful SDR hardware available
then please disregard this message.

The purpose of this message is to gauge interest in learning how to
apply Erlang to SDR implementations. Anybody who has been following
along with the messages on the various forums must be aware that Erlang
is an integral part of some future architectures. I happen to believe in
its capabilities and therefore want to promote its use. I am not
implying that what I am doing is in any way the actual implementation of
that future, just that it's a good base from which to start learning.

My proposal would be along the following lines. A set of tutorial based
sessions with supporting software and text. These would be delivered
over Skype or some other similar forum. The sessions would build up to a
working radio using the building blocks that I have developed. Each
component (primarily the Erlang parts) of the architecture would
therefore be explained in detail and thus the Erlang language would be
taught by example after perhaps a primer session. The intention would be
not just to explain what is there but to enable experimentation by
building new parts to plug into the architecture and explore ways to
improve and enhance the design.

I would expect to cover the following topics.

1. Why Erlang? Installation of Erlang, dev tools and a language primer.
2. Context, how the Erlink-SR architecture fits together. How messages
are routed.
3. The message routing component explained with a test harness to
experiment with.
4. Linking to C code. How do linked-in drivers work. How is data
marshaled between the Erlang and C sides. An explanation of the Erlang
'C' helper library. Supported with simple examples to play with.
5. The main data handing components explained and the use of shared
memory. All these use linked-in-drivers to acquire, process and output
sample data. Simple test harnesses will be used to exercise these
components.
6. The Mnesia database explained and the radio database API with a test
harness to exercise the database.
7. The Erlang bindings to wxWidgets explained with some simple
stand-alone UI examples. The integration of wxErlang with Erlink-SR with
a walk-through of the pattern for creating new widgets and how they
interact with the system.
8. Driving the hardware, a walk through the hardware component and a
test harness to exercise it.
9. Putting it all together. The OTP (Open Telecomms Platform). The FSM
(the OTP FSM behaviour, not to be confused with anything else going by
that name) at the centre of the system, what it does and how it does it.
The system startup and shutdown.
10. Running the radio. What's missing and discussions of how to address
the missing parts and build out new capability.
11. A quick look at the Java integration using erlink-j.

You should come out of this knowing a lot about Erlang and have an SDR
system you understand sufficiently to be able to experiment with and
contribute to. A couple of provisos. The system is not finished yet but
there is enough there to run the sessions and to run a receiver (SDR1000
only at the moment) under Windows. The C code is not ported to Linux yet
so if you have only Linux you won't be able to run everything. You will
need to have had some programming experience to get full benefit but you
should be able to follow along and try the built examples without any
previous experience.
   
Now for the crunch. Obviously, this would involve me in a lot of effort
and I would be looking to cover some of my time by charging a nominal
fee per session. I would want to keep that very low, maybe something
like $10 a session. If there are enough people interested to make it
viable I will make it happen.

A final plea. I don't want to start any discussions about technologies,
operating systems etc. Please don't use this message as a bouncing
board. 

73
Bob
G3UKB
http://www.g3ukb.co.uk  (there is a problem with my ISP at the moment so
the web site is unavailable, but hopefully fixed soon).


 1200519982.0


More information about the Hpsdr mailing list