As I develop my software, I'll implement in the ARM, and it will be able to
work live.

On Fri, Mar 18, 2022 at 2:25 PM Marcus Müller <mmuel...@gnuradio.org> wrote:

> Like the reproducibility aspect of going for storage, but it means no live
> signal
> observation :)
>
> Just for future hardware ideas: with these bitrates, you should be well in
> range of what
> the cheaper TOLSLINK optical transmitter modules [1] and receivers [2]
> could do.
>
> [1]
>
> https://www.digikey.com/en/products/detail/everlight-electronics-co-ltd/PLT237-T10WH/14641724
> ,
> https://www.tme.eu/en/details/fcr6842031t/optical-connectors/cliff/otj-1-fcr6842031t/
> [2]
> https://www.tme.eu/en/details/fcr6842032r/optical-connectors/cliff/orj-3-fcr6842032r/
>
> On 18.03.22 19:53, Marcus D. Leech wrote:
> > On 2022-03-18 14:48, david vanhorn wrote:
> >> Noise is always an issue.  I could do a serial port over USB, or TTL
> USART, but I
> >> thought that the SD card would be the most quiet, not requiring any
> electrical
> >> connection to the PC.
> >> It also means that I automatically have my recordings available for
> regression testing.
> >>
> > Yeah, I thought that your architecture was probably driven by noise
> concerns--630M would
> > not be a "forgiving" band in this regard.  I will point out, just as an
> FYI,
> >    that USB-over-fiber extenders do exist, but because they're rather
> "niche", they're not
> > cheap at all....
> >
> >
> >>
> >> On Fri, Mar 18, 2022 at 12:32 PM Marcus Müller <mmuel...@gnuradio.org>
> wrote:
> >>
> >>     Ah cool! Thanks for clarifying :) This sounds to be a rather nice
> setup, analog-wise!
> >>
> >>     Yeah, then just dumping the raw 32bit unsigned to SD Card is
> probably easiest.
> >>
> >>     (by the way, this is << 1Mb/s, so just dumping the raw data over a
> UART or SPI
> >>     interface
> >>     to some serial-to-USB converter might work as well to get the data
> into your PC. If
> >>     your
> >>     ARM does have USB2 built-in, then that would also be a rather cool
> thing, but
> >>     knowing the
> >>     varying quality of chip vendor USB hardware abstractions, that
> might or might not be
> >>     easy
> >>     to implement :) In both cases, UART/SPI serial output converted to
> USB, or native USB,
> >>     you'd probably have to afterwards write a schmall C/C++ driver, so
> that SoapySDR or GNU
> >>     Radio directly can talk to it.)
> >>
> >>     Cheers,
> >>     Marcus
> >>
> >>     On 18.03.22 19:26, david vanhorn wrote:
> >>     > I'm using a PCB that I designed with an ARM chip, codec, and SD
> card for logging,
> >>     as my
> >>     > data capture platform.
> >>     > Feeding that is a QSD (Tayloe) front end that I designed,
> specifically for the
> >>     630m ham
> >>     > band, converting down to 1kHz differential I and Q signals to the
> codec, which has
> >>     a 105dB
> >>     > SNR.
> >>     > The front end appears to have a 90dB linear dynamic range so far
> as I can measure
> >>     with my
> >>     > equipment. I'll improve that if I can.
> >>     > Once I capture to SD, then I can pull the SD and process on the
> PC to develop weak
> >>     signal
> >>     > detection.
> >>     >
> >>     >
> >>     >
> >>     > On Fri, Mar 18, 2022 at 12:12 PM Marcus Müller <
> mmuel...@gnuradio.org
> >>     > <mailto:mmuel...@gnuradio.org>> wrote:
> >>     >
> >>     >     Hey :)
> >>     >
> >>     >     CSV might or might not be convenient, but if C or assembler
> is your tool: The
> >>     things that
> >>     >     the GNU Radio file source reads or the file sink writes is
> exactly what you
> >>     get when you
> >>     >     take a buffer of samples and do an `fwrite` on that :) Just a
> dump of the raw
> >>     memory to a
> >>     >     file. 32 bit unsigned should be directly digestible by GNU
> Radio (even if
> >>     there were
> >>     >     endianness issues – you can just read as bytes and reshuffle
> as needed :)).
> >>     >
> >>     >     I didn't fully get how you're currently interfacing your
> hardware. Care to
> >>     explain in a
> >>     >     bit more breadth? What are the components of your system, and
> how does the
> >>     computer
> >>     >     running GNU Radio relate?
> >>     >
> >>     >     Best and slightly excited regards,
> >>     >     Marcus
> >>     >
> >>     >     On 18.03.22 18:37, david vanhorn wrote:
> >>     >      > Hi!
> >>     >      >
> >>     >      > I'm trying to interface some radio hardware I built to
> GnuRadio by way of data
> >>     >     captured to
> >>     >      > SD cards.
> >>     >      > I have two channels (I and Q) of 32 bit unsigned data
> internally, and I
> >>     originally
> >>     >     assumed
> >>     >      > CSV would be the easy path, but now I see it's not.
> >>     >      > Coming in through the PC sound card is not an option for
> me, I'm using a
> >>     particular
> >>     >     codec
> >>     >      > selected for the application, and my goal is to develop
> signal processing
> >>     >     algorithms to
> >>     >      > then be implemented back on my processor in C or ASM.
> >>     >      >
> >>     >      > I suppose it would be easiest if I rework my hardware to
> log data as if it
> >>     were the
> >>     >      > "Signal Source" block with complex output.
> >>     >      > Where can I see what that looks like at the level of raw
> data?
> >>     >      >
> >>     >      >
> >>     >      >
> >>     >      >
> >>     >      > On Fri, Mar 18, 2022 at 4:59 AM Marcus Müller <
> mmuel...@gnuradio.org
> >>     >     <mailto:mmuel...@gnuradio.org>
> >>     >      > <mailto:mmuel...@gnuradio.org <mailto:
> mmuel...@gnuradio.org>>> wrote:
> >>     >      >
> >>     >      >     Hi David,
> >>     >      >
> >>     >      >     you could write a quick python block that just reads
> values from the
> >>     CSV file
> >>     >     and outputs
> >>     >      >     them. That'd be a very nice, basic exercise, and I
> think our freshly
> >>     overhauled
> >>     >      >     tutorials[1] should bring you there very quickly!
> >>     >      >     If you want help with that, hit us up in this mailing
> list (ideally after
> >>     >     reading the
> >>     >      >     tutorials up to the point of roughly understanding how
> to write
> >>     (embedded) Python
> >>     >      >     blocks),
> >>     >      >     and tell us more about the data in your CSV files.
> >>     >      >
> >>     >      >     Alternatively, you could also write a converter of CSV
> to a format that GNU
> >>     >     Radio by
> >>     >      >     itself already has a reader for – and the main
> candidate here would
> >>     probably
> >>     >     just be
> >>     >      >     plain
> >>     >      >     raw data files (as e.g. numpy's
> `ndarray.tofile("filename")` does) –
> >>     the File
> >>     >     Source
> >>     >      >     could
> >>     >      >     directly read that. But with our freshly rewrite
> Wavfile sink and source
> >>     >     blocks, we can
> >>     >      >     write and read most audio files, just as well.
> >>     >      >
> >>     >      >     Then your flow graph could do the signal processing
> you want – e.g
> >>     frequency
> >>     >     translation,
> >>     >      >     low-pass filtering… and finally output it to any
> device that you have a
> >>     GNU Radio
> >>     >      >     interface to (e.g., your sound card). The hardware
> runs at a sample
> >>     rate – GNU
> >>     >     Radio
> >>     >      >     itself just tries to feed it as fast as possible. So,
> the signal
> >>     processing in
> >>     >     GNU Radio
> >>     >      >     itself isn't concerned with rate at all!
> >>     >      >
> >>     >      >     Hope this helps,
> >>     >      >     Marcus
> >>     >      >
> >>     >      >     [1] https://tutorials.gnuradio.org <
> https://tutorials.gnuradio.org>
> >>     >     <https://tutorials.gnuradio.org <
> https://tutorials.gnuradio.org>>
> >>     >      >
> >>     >      >     PS: you'll often find me online, recommending not to
> use CSV as a sample
> >>     >     storage format.
> >>     >      >     I'll do the same to you here, but not because I think
> it's in any way
> >>     invalid
> >>     >     to have
> >>     >      >     data
> >>     >      >     in CSV files; I just want to point out it might be
> worth thinking about
> >>     using
> >>     >     something
> >>     >      >     else. So take this with a "I think it's pretty cool
> you're doing this!".
> >>     >      >
> >>     >      >     That has the reasons that
> >>     >      >     a) unless you're more restricted than "CSV" says, you
> don't know how
> >>     many bits
> >>     >     are there
> >>     >      >     per sample, as numbers might be represented in
> different lengths, so
> >>     seeking
> >>     >     exactly only
> >>     >      >     works by reading and understanding the whole file up
> to the point you
> >>     seek to,
> >>     >      >     b) conversion of floating point numbers to
> human-readable form incurs
> >>     rounding
> >>     >     errors,
> >>     >      >     and
> >>     >      >     that can really wreck your day if you need to rerun
> *exactly* the same
> >>     >     experiment twice,
> >>     >      >     c) printing numbers as text is really inefficient,
> both storage-wise as
> >>     well as
> >>     >     compute
> >>     >      >     wise (which will only matter at higher sampling rates)
> and sometimes,
> >>     but only
> >>     >     sometimes,
> >>     >      >     ( d) people say that CSV is good because it's
> human-readable, but I
> >>     challenge
> >>     >     anyone to
> >>     >      >     read a text file with only 10000 values and be happier
> about that than
> >>     if he
> >>     >     used a tool
> >>     >      >     that displayed the values graphically, zoomably, and
> then allows for
> >>     inspection
> >>     >     of single
> >>     >      >     values once zoomed sufficiently in.)
> >>     >      >
> >>     >      >
> >>     >      >     On 18.03.22 04:55, david vanhorn wrote:
> >>     >      >      > I've done a little with Gnuradio a couple years
> ago, but I'd now like to
> >>     >     apply it to a
> >>     >      >      > serious problem.
> >>     >      >      >
> >>     >      >      > I have a design I'm working on that will output raw
> data that could be
> >>     >     interpreted
> >>     >      >     as an
> >>     >      >      > audio stream centered on 1kHz.  I'd like to work on
> extracting CW
> >>     signals
> >>     >     that are
> >>     >      >     rather
> >>     >      >      > slow, from a rather narrow bandwidth, and see how
> far down into the
> >>     noise I can
> >>     >      >     actually
> >>     >      >      > extract the signals.
> >>     >      >      >
> >>     >      >      > Is there a block that can bring in CSV data from a
> file at a
> >>     specific rate, and
> >>     >      >     serve as
> >>     >      >      > the input to my CW detection system?
> >>     >      >      >
> >>     >      >      >
> >>     >      >      > --
> >>     >      >      > K1FZY (WA4TPW) SK  9/29/37-4/13/15
> >>     >      >
> >>     >      >
> >>     >      >
> >>     >      > --
> >>     >      > K1FZY (WA4TPW) SK  9/29/37-4/13/15
> >>     >
> >>     >
> >>     >
> >>     > --
> >>     > K1FZY (WA4TPW) SK  9/29/37-4/13/15
> >>
> >>
> >>
> >> --
> >> K1FZY (WA4TPW) SK  9/29/37-4/13/15
> >
>


-- 
K1FZY (WA4TPW) SK  9/29/37-4/13/15

Reply via email to