tomojitakasu / pocketsdr Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
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.
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
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.
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
I was reading the future works of pocket-sdr. I would like to know whether 2-bit adc arrays is adequate for antijamming mitigation?
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 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.
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
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.
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.
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.
Dear tomojitakasu,
We tried the PocketSDR with the real-time signal feature, but seems like pocket_trk -r is not a valid argument when we try it, which is weird. Wonder if there are any solutions for this?
Best Regards
This looks amazing, great work! Is there a way to purchase one of the SDR boards? Don
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.