[hpsdr] Will there be a Developers guide to HPSDR?

Jason Hitesman jason at hitesman.com
Sat May 19 21:14:40 PDT 2007


First off a BIG thanks/congratulations to everyone involved in this
project!   The quality of engineering that has gone into this project
so far and continues to go towards the next stages is simply
astounding to me.

And while I don't want to delay work on mercury/penelope and other
soon to follow projects (well...maybe I do...my money tree still
hasn't sprouted enough to populate my Janus board yet let alone invest
in the next few boards!) I am starting to think about documentation
and other uses for some of our boards.

I remember Phil talking about how Ozy is a great FPGA experimenters
board, and several comments during the pre-assembled vs. kit debates
about software being where people will really get a chance to
experiment with this project once the hardware is together.

Given all that...and that I currently only have atlas/Ozy with my
janus awaiting components I've been trying to familiarize myself with
the development tools and code behind what we have so far.  But I'm a
complete newbie at this whole FPGA thing and as such it's a little
overwhelming.

I've looked over a couple of FPGA tutorials on the net...but most of
them seem to be based off having a particular evaluation board
available...or are for other development tools...or only cover Quartus
II but don't quite go deep enough to help me decipher the code that's
currently available.

The other problem I've run into is simply finding things in the SVN.
Rather than code being grouped by project it appears to be grouped by
user - then project.  So I'm not even sure if I'm looking in the right
places for current code in some situations.

What I think I've figured out so far:

There are two sets of firmware in regards to Ozy.  There is a .hex
file which is firmware for the FX2 USB controller - then a .rbf which
is firmware for the FPGA.

The current code for the FPGA appears to be in the SVN  in the
trunk/OzyV2-JanusV2 directory.  And I was able to get the project open
in Quartus and compiled (where I see that the current code is only
using 13% of the available logic elements in our FPGA so there appears
to be quite a bit of room for expansion.)  However I'm still not clear
on where the source for the FX2 firmware is though as I only see the
.hex file for it in that directory and no top-level directory that
appears to relate.

I'm also unclear on where some of the utils such as upload_FPGA.exe,
write_I2C.exe and such come from.  Are these standard programs or were
they developed for the HPSDR project?  And what exactly does each do?
If they are just for our project then where is the code for them?

Basically I guess what I'm getting at is that I'd like to start
hacking at my Atlas/Ozy and am trying to find out where to start my
research in learning some new skills.  Are there plans to create more
"low level" documentation for Ozy and/or Janus, similar to what was
done for Atlas?  I understand that the code is available (and appears
to be fairly well commented from what I've been able to find so far)
but tracking down which bits of code are actually used..and in some
cases where the source for some of that code is buried in the SVN is
pretty formidable right now which is limiting it's usefulness to me.

My long term goal is to try and learn enough that I could add a MIDI
port to my setup - I already have hardware to go from MIDI to I2C so
getting the signal into the hardware isn't an issue.  But trying to
get my head around what is done in the FGPA vs. the FX2 is causing a
bit of a stumbling block for me.  (and a windows MIDI driver is way
beyond what I can tackle...I'd be up for trying under linux...but so
far I'm not even sure what's happening with the libUSB code and what
will be necessary to get stuff up and running on Linux.)

As a smaller "learn to walk before you run" kind of project I'd just
be happy to see something like a tutorial on how to setup a project in
Quartus II - some Verilog to blink a few LED's on Ozy - and details on
how to load it and make it run.

Or if nothing else maybe just some info on how badly I could screw
things up if I just started trying to figure it out myself.  From what
I've seen in the code and various tutorials so far I think I could
make such a tutorial myself...but I hesitate to try as I'm not sure
how much damage I could do to a board I can't currently afford to
replace if I messed up.  It seems fairly simple to create a new
project in Quartus, assign the pins for the LEDs, add some verilog to
blink the first 4 led's in a pattern and get it to compile.  From
there I THINK I would just have to tweak the .bat file in
OzyV2-JanusV2 to load my new .rbf (and the existing FX2 firmware) and
I should be able to watch lights blink...but as I said I'm afraid to
try since I don't want to risk damaging my hardware (at least not
yet!)

One thing that would really help is just some kind of roadmap.  Some
pointers to where in the SVN various bits of code can be found.  What
software tools exist and should a potential developer familiarize
themselves with, which are required, which are just helpful, which are
generic and which are custom for this project?   Where some good
tutorials on Quartus and FPGA's are.  Any books that should be added
to my shelf?

These are just questions I've come up with after several weeks of
pouring over the Ozy schematics and what I've found in the SVN.  I
still don't even know what questions to ask about Janus other than
one...will I need a byteblaster after building mine, or can it be
programed across the Atlas bus from Ozy?

What I guess it boils down to is.  Are there plans for more
documentation aimed at developers rather than end users (as the
ozy/janus instructions currently are)?  Or should I just post
questions as they arise and maybe work on compiling the answers myself
to help others in this situation?

Again, like I started with a BIG thanks to those who are making this
all happen.  By no means am I trying to complain or put down anyones
efforts.  I'm just someone who wants to experiment and is trying to
find out where to start in that endeavor.  I have zero problems with
an answer of "Please be patient more will follow" or even with being
told no more will follow...but here's some people to talk to about
getting up to speed enough that the code can answer my questions...or
even just "ask around on Teamspeak when the devs are on".

I know I packed a lot of questions into this post...and don't expect
answers to all of them (even if so many key people weren't at Dayton
this weekend!) but I do have hardware sitting here staring at me and
calling to me to hack on it.  So any pointers on where I need to focus
my attention at this point would be great!  I don't expect to learn
enough to tackle my MIDI plans right away...or to try anything as
outrageous as trying to get FGPA64
(http://www.syntiac.com/fpga64.html) into Ozy (after all that would
mean also hacking together some custom hardware for the I/O!).  But if
I could at least learn enough to blink some LED's I'd feel like I was
on the right track to learning what I'll need to play with my new toys
well into the future.

----
Jason Hitesman
N8INJ



More information about the Hpsdr mailing list