Git Product home page Git Product logo

pocketsdr's People

Contributors

tomojitakasu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pocketsdr's Issues

Extending the code to decode Beidou B2b signal

Dear tomojitakasu,

Thanks for sharing the amazing work!
I have learned a lot of basic SDR knowledges from PocketSDR, and the code is really compact.

Currently, I want to extend the code to decode Beidou B2b signal.
However, I encountered some problems because the LDPC library can only decode binary LDPC code.
The Beidou B2b needs non-binary LDPC decoding.
According to the ICD, the Extended Min-Sum Method or Fixed Path Decoding Method may required to decode the navigation message.
Is it possible to decode the message with other method or using existing libraries?

Thank you very much! Looking forward to your reply.

Best regards.

The tracking loop can be locked only for 4s

Dear tomojitakasu,

I am writing to discuss an issue we encountered while working on this project.

Firstly, we would like to express our gratitude for the amazing open source project you have provided. We followed the project guidelines and successfully created the PCB. Additionally, we completed the driver installation and all the required configurations.

Afterwards, we proceeded to capture the signal for a duration of 100 seconds and performed tests using the pocket_acq.py and pocket_trk.py scripts. The signal acq process did not encounter any problems. However, when testing with pocket_trk.py, we noticed that the tracking loop only remained locked for the initial 4 seconds of every 10-second interval. Interestingly, when using simulated signal testing, the lock was maintained continuously.

We are reaching out to seek your expertise in understanding the underlying cause of this issue and to inquire about potential solutions. We apologize for any inconvenience caused and genuinely appreciate any assistance you can provide.

Thank you for your time and consideration. We eagerly await your response.

Best regards

ADC Clock Alignment implementation

I haven't checked the actual PCB layout yet, but based on the current circuit file (pocket_sdr_v2.1_sch.pdf), the ADC clock alignment doesn't seem to be implemented as Maxim intended.

The MAX2771 specifications (19-100378; Rev. 0; 7/18) describe multiple MAX2771s setup in the ADC Clock Alignment section on page 22 as:

One device would be designated as the clock source and configured to output its ADC clock on its CLKOUT pin. This clock signal can then be buffered and distributed through an external clock tree. The buffered clocks are then input on the ADC_CLKIN pins of all MAX2771 devices (including the clock source), and all devices are configured to use this external clock as their ADC clock.

In contrast, the PCB schematic shows that the CLKOUT of U1 MAX2771 is connected only to U2 MAX2771, not to itself. Instead, its own ADC_CLKIN is pulled to ground.

Use pocketSDR_trk with a file and multiple channels?

Dear tomojitakasu,

Thank you very, very much for this fantastic project.

I assembled the pocketSDR 2.2, and am using it mainly in offline mode: I use pocket_dump to record signals in raw mode (dual band, both IQ), and analyze and process them later.

I wanted to try the new version of pocketSDR_trk which includes PVT and generates NMEA and RTCM. Unfortunately, I see that the option to read raw files has been removed. I can provide an interleaved int8_t file, but as far as I saw, this is only one file for one channel.

Is it possible to do post-processing of two channels, either by providing the data from a raw file, or from two interleaved int8_t file?

Thank you in advance and kind regards,

Sam

Parts selection problem of 3.3V LDO

The part for U5 (3.3V LDO) in HW/pocket_sdr_v.2.1.xlsx is not suitable. The output voltage of the LDO may be 5V instead of 3.3V by the current circuit design.

Replace the part for U5 by the proper one, in which the pin 4 of SOT-23-5 package shall be NC (no connection).

The isolation resistor for the RF_DIVIDER is missing.

The RF_DIVIDER "PD0922J5050S2HF" requires an external 100 Ohm resistor that is called isolation resistor between two output ports, but that is missing in the circuit.
This issue degrades isolation between the two ports. For example, the reflected signal from LNA-L port interferes with the signal to the LNA-H port.
However, it is not so serious because the return loss on both ports of the MAX2771 is not so high.

AVX2 instruction forced breaks execution on non-AVX2 CPUs

Commit 99c6231 added OPTIONS = -DAVX2 -mavx2 -mfma to lib/build/libsdr.mk, leading to

 pocket_dump[3030167] trap invalid opcode ip:55fc619549b8 sp:7ffe82b923b0 error:0 in pocket_dump[55fc61953000+4000]

when executed on non-AVX2 CPUs. A test on the CPU capability when compiling would be nice, e.g. on the Intel(R) Core(TM) i5-3610ME of my Panasonic CF-19 the /proc/cpuinfo tells

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts vnmi md_clear flush_l1d

not including AVX2 support. I believe this is also valid in pocket_acq/makefile, pocket_snap/makefile and pocket_trk/makefile

Working with a single MAX2771?

Since the PocketSDR cannot be readily found assembled, I am trying to see if I can get the proposed code to work with a single MAX2771 as found on the evaluation board
https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/max2771evkit.html
which is fitted with a USB->SPI converter but cannot stream IQ data. I have hence additionally acquired an EZ-USB FX2P board
https://fr.aliexpress.com/item/1005006134347046.html
which I have successfully flashed with the firmware proposed in this repository (PID/VID correct). I have routed the SPI pins (PD0=CS#, PD2=SCLK, PD3=DATA, PD4=lock) to the associated pins of the unpowered microcontroller of the eval board, and routed the IQ stream from the eval board I0,I1,Q0,Q1 to PB0-4 as well as CLK_OUT to IFCLK. Finally SHDN was pulled up to 3V3.

I think I can configure the board correctly since
sudo ./app/pocket_conf/pocket_conf
returns a reasonable answer starting with

#  Pocket SDR device settings (MAX2771)
#
#  [CH1] F_LO = 1575.420 MHz, F_ADC =  4.000 MHz (IQ), F_FILT =  0.0 MHz, BW_FILT =  2.5 MHz
#  [CH2] F_LO =     -nan MHz, F_ADC = 48.000 MHz (I ), F_FILT =  0.0 MHz, BW_FILT =  2.5 MHz

after I sudo ./app/pocket_conf/pocket_conf conf/pocket_L1L2_4MHz.conf.

However

sudo ./app/pocket_dump/pocket_dump 
  TIME(s)    T   CH1(Bytes)   T   CH2(Bytes)   RATE(Ks/s)
         0.8   IQ            0   I            0          0.0

keeps on returning empty files and 0 Bytes: is there a requirement I am missing for this software to work with a single channel? Am I missing an option that would allow me to collect these data? I have checked that the CLK_OUT->IFCLK is correctly clocked and that the IQ states are changing.

I know this is not strictly PocketSDR related but any hint would be welcome to expand the users of this software (and possibly later assemble a dedicated board).

Thanks.

please open source snap positioning hardware

it is seemed that snapshot positioning module designed with (STM32L4+MAX2769B). and it's data could be post-processed by pocket-sdr. it would be great if you include it here in pocket-sdr repo and make it open source.

Default Register Settings on MAX2771

Hi, I am trying to folow the MAX2771 datasheet and they say right at the beggining of the "Detailed Description" chapter on page 17 that certain values must be programmed into the register 0x00 and 0x09. I have noticed that the pocket_conf app omits this. I am not sure how important is it ( MAXIM has not answered yet) but since they say that it must be done whenever the IC is power-cycled it seems important. Hence I have created the default hexadecimal .conf file reflecting this requirement and programmed the ICs. After reading the register values with pocket_conf -h it is obvious that only register 0x00 was correctly altered. Register 0x09 stayed intact. After examining of the sdr_conf.c file I found out that the register 0x09 is not considered here. Is it possible to look into it since it might have impact on the quality of samples.
Thank you in advance.

Amazing!

This looks amazing, great work! Is there a way to purchase one of the SDR boards? Don

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.