sharebrained / portapack-hackrf Goto Github PK
View Code? Open in Web Editor NEWPortability Add-On for the HackRF Software-Defined Radio.
License: GNU General Public License v2.0
Portability Add-On for the HackRF Software-Defined Radio.
License: GNU General Public License v2.0
Should be easy enough to re-assign the FIR taps.
Adjust spectrum samples decimation factor to make sure aliasing is minimized.
Right now, compensation is made at the final tuned frequency, which doesn't address sampling rate. There might also be inversion of behavior between high-side and low-side injection modes. So compensating at the reference (where the PPM "problem" originates) makes a lot more sense. Right?
So making a change in application, baseband, bootstrap, or common doesn't cause make to rebuild affected files.
Clear audio statistics, so that audio bar graph is zero'ed. Related to issue #17.
I get this error when trying to flash the portapack firmware:
#sudo dfu-util --device 1fc9:000c --download hackrf_one_usb_ram.dfu --reset
dfu-util 0.5
(C) 2005-2008 by Weston Schmidt, Harald Welte and OpenMoko Inc.
(C) 2010-2011 Tormod Volden (DfuSe support)
This program is Free Software and has ABSOLUTELY NO WARRANTY
dfu-util does currently only support DFU version 1.0
Filter on vendor = 0x1fc9 product = 0x000c
Opening DFU USB device... ID 1fc9:000c
Run-time device DFU version 0100
Claiming USB DFU Runtime Interface...
Determining device status: state = dfuIDLE, status = 0
WARNING: Runtime device already in DFU state ?!?
Found Runtime: [1fc9:000c] devnum=0, cfg=1, intf=0, alt=0, name="DFU"
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0100
Device returned transfer size 2048
DFU CRC does not match
Unsupported DFU file revision 0000
Alternative case, based on the original HackRF plastic enclosure. The bottom half of the case could be reused. Just the top half of the plastic enclosure would need to be replaced by a version with extended side walls and cut-outs at the top for display and navigation control, plus additional hole for headphone jack and slot for SD-card.
Update with changes made to case at machine shop, directly to the G code.
Implement FM squelch, perhaps by detecting demodulated energy outside expected bandwidth.
It appears the audio signal magnitude bar graph does not depict signal min/avg/max the same way that the RSSI bar does (white tick for average, red bar for min/max spread). "Min" might not make sense for a bipolar signal though... So addressing this might just be turning the audio tick from black to white...
Add mode to sweep the radio across a frequency range, capture baseband, either FFT or calculate average/peak power, and record/display.
You know, proper build and release engineering...
gato ~ # switch_to_portapack
Hold down the HackRF's DFU button (the button closest to the antenna jack)
then plug the HackRF into a USB port on your computer.
After the HackRF is plugged in, you may release the DFU button.
Press any key to continue or ^c to abort
dfu-util 0.7
Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2012 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to [email protected]
Filter on vendor = 0x1fc9 product = 0x000c
Opening DFU capable USB device... ID 1fc9:000c
Run-time device DFU version 0100
Claiming USB DFU Runtime Interface...
Determining device status: state = dfuIDLE, status = 0
WARNING: Runtime device already in DFU state ?!?
Found Runtime: [1fc9:000c] devnum=0, cfg=1, intf=0, alt=0, name="DFU"
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0100
Device returned transfer size 2048
DFU CRC does not match
Warning: File has no DFU suffix
bytes_per_hash=409
Copying data from PC to DFU device
Starting download: [##################################################] finished!
unable to read DFU status
can't detach
Resetting USB to switch back to runtime mode
error resetting after download
File size 207564 bytes.
Erasing SPI flash.
Writing 207564 bytes at 0x000000.
This is what it looks like when I run the switch_to_portapack script.
I really don't like this bit:
unable to read DFU status
can't detach
Resetting USB to switch back to runtime mode
error resetting after download
That said, both scripts seem to work flawlessly anyway. Is this normal or something we need to consider improving?
They appear to be the wrong scale to depict the channel filter band edges.
It would help to debug HackRF CPLD version issues until the firmware can update the HackRF CPLD code on its own.
Have issues with portapack waterfall display stopping or device locking up with commit 255de16. Have not tested against earlier commits, but did test against precompiled binaries.
Usually happens on initial plugin, but operates fine until going into the reciever mode. I can consistently 2 out of 3 times get it to do it by pressing reset shortly and then immediatly going into the receiver mode. It will scan for anywahere from 2 seconds to about 15 seconds before issue occurs. Cannot get this error to repeat using the precompiled binaries.
Implement Dubble side-band, Upper and Lower side-band, Contentious Wave modes for use in spectrum analysis and communications monitoring.
Provide variable pass-band tuning width and carrier offset features to accompany all demodulation types. (This may be a separate "issue" request, sorry!)
Compiling main.cpp
In file included from main.cpp:41:0:
dsp_decimate.hpp: In constructor 'dsp::decimate::FIR64AndDecimateBy2Real::FIR64AndDecimateBy2Real(const std::array<short int, 64u>&)':
dsp_decimate.hpp:63:18: error: invalid initialization of reference of type 'const std::array<short int, 64u>&' from expression of type ''
) : taps { taps }
^
main.cpp: In constructor 'FSKProcessor::FSKProcessor(MessageHandlerMap&)':
main.cpp:577:42: error: invalid initialization of non-const reference of type 'MessageHandlerMap&' from an rvalue of type ''
) : message_handlers { message_handlers }
^
../chibios/os/ports/GCC/ARMCMx/rules.mk:165: recipe for target 'build/obj/main.o' failed
make[1]: *** [build/obj/main.o] Error 1
make[1]: Leaving directory '/home/redacted/portapack-hackrf/firmware/baseband'
Makefile:89: recipe for target '../baseband/build/baseband.elf' failed
make: *** [../baseband/build/baseband.elf] Error 2
unit seems to always go to 858.7520. Please make it tune to the mode and frequency last used or add functionality to save/recall current tune settings.
Write data to RTC battery backed RAM (simple but limited storage), or to SD card (not so simple, risky).
The Si5351C-B oscillator will drift in frequency in a temperature-dependent manner. Take advantage of temperature measurement(s) available on the HackRF to adjust tuning frequency based on adjustment table of PPM vs. temperature. Update tuning frequency only if PPM value changes appreciably.
I'm following flashing instructions here: https://github.com/sharebrained/portapack-hackrf/wiki/Updating-Firmware
I'm in the firmware restoring section where I'm running into a missing file.
$hackrf_spiflash -w hackrf_one_usb_rom_to_ram.bin
Error to open file hackrf_one_usb_rom_to_ram.bin
$ls
LICENSE portapack-h1-firmware.bin
hackrf_one_usb_ram.dfu
Should hackrf_one_usb_rom_to_ram.bin have been created by a previous step, or is this file something I should have from elsewhere?
FM radio stations are 0.3 MHz apart. Please add a new step size when in WFM mode.
So. Much. Rage. New editor isn't my new editor any more.
Save to SD card, don't bother with compression. Maybe the simplest of PNG formats.
With the C++11/C++14 differences in how references are handled when using brace initialization, it'd be nice to be consistent about if and how brace initialization is used. Related to issue #12.
Sometimes, you just want to open it up and listen. I'm thinking satellite work in particular, where signals are very weak initially, and hearing anything is a help to aiming an antenna.
In some cases, it will chatter, which is no fun to listen to. Changing the threshold would help.
Code needs to be restructured to do fewer FFTs due to less available CPU cycles. So time-domain coverage will be poorer than in other modes. But it'd still be useful to have...
The top bar of things you can set seem like frequency , gain ???, volume?
Please display the label for whatever value is currently being adjusted. Could you put the text right justified in the blue bar area?
Not appropriate to have to build a binary from within bootstrap/.
During manufacturing, touch screens seem pretty consistent (don't need calibration), but PortaPacks might "feel" better to use if the touch screen was precisely calibrated.
Review LPC4320 peripherals and clocks that can be shut down because they aren't in use.
Check that peripherals are turned off if they're not used for a while (e.g. SD card).
Review ChibiOS code, ensure LPC4320 cores are sleeping when they can.
Align interrupts, threads to reduce the number of interrupts. Particularly on the baseband processor, where RSSI/touch sampling blocks can be aligned with baseband sampling. This will also help align timestamps between RSSI and baseband sample.
Feedback on bad gain structure is always handy. Previously, I was using the red LED, but took that code out. This needs further/better thought.
The baseband code should be reviewed to see if saturation is flagged at all possible places. I feel like it's not...
Groundwork is laid, but need to finish the implementation.
Break out digital demodulation/decoding into a separate mode?
Especially for Windows, but other platforms could use more love, too.
It seems I broke the MAX2837 RSSI sampling by the LPC4320 ADC.
Right now it just repeats the last bit of audio in the buffer. Gross.
Of course, if the digital modes get broken out to a separate application, the audio might just be off the whole time, or audio might produce some sort of activity cue/sounds.
argilo found a case where moving right from one field to another, both inhabiting the same vertical coordinate range, causes focus to move to the "nearest" field, which is above the original field!
When leaving receiver mode, bar graphs remain but are not updated, since the radio is not operating.
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.