mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2024-11-23 18:15:34 +00:00
Merge branch 'master' of https://github.com/eried/portapack-mayhem.wiki into master
commit
485b7a766f
@ -5,7 +5,7 @@ Its purpose is to Demodulate and Record RF Signals modulated using the [Amplitud
|
||||
# User Interface
|
||||
The AM Receiver uses the Standard UI Layout, which has the following features (in UI order). Some features only become available when the Parent item is selected.
|
||||
* Switch Sub-Application (AM, WFM, NFM, SPEC)
|
||||
* Switch Modulation type (USB/LBS/DSB)
|
||||
* Switch Modulation type (DSB/USB/LBS/CW)
|
||||
* Change Frequency
|
||||
* Change tuning step-size
|
||||
* Increase/Decrease Baseband Gain
|
||||
|
11
Analog-TV-Receiver.md
Normal file
11
Analog-TV-Receiver.md
Normal file
@ -0,0 +1,11 @@
|
||||
This analog TV receiver supports PAL only.
|
||||
|
||||
The signal used to be widely adopt to broadcast television. Nowadays, you will still find it on FPV drone.
|
||||
|
||||
Due to hardware limitation, this app can only show black and white image.
|
||||
|
||||
## References:
|
||||
|
||||
https://www.youtube.com/watch?v=VxBReLPbfZc
|
||||
|
||||
https://blog.csdn.net/shukebeta008/article/details/104741355
|
14
Bluetooth-Low-Energy-Receiver.md
Normal file
14
Bluetooth-Low-Energy-Receiver.md
Normal file
@ -0,0 +1,14 @@
|
||||
This is to discover the MAC address of Bluetooth Low Energy device around you.
|
||||
It's not perfect because decoded data can't pass CRC, hence there will be 1~2 bit error in result.
|
||||
|
||||
![Result of bluetooth hardware(hcitool lescan)](https://user-images.githubusercontent.com/17997195/77241595-5693a200-6c2f-11ea-94fb-2e8ff8a780aa.jpeg)
|
||||
![Result of portapack btle search](https://user-images.githubusercontent.com/17997195/77241602-75923400-6c2f-11ea-98a2-1ad0a1c09aba.jpeg)
|
||||
|
||||
You don't need to change the frequency, since all Bluetooth device will broadcast on the pre-set frequency.
|
||||
You might need to adjust gain though.
|
||||
|
||||
Theoretically, it's possible to decode some data in the ble packets, like temperature, but it doesn't make sense if there is bit error.
|
||||
|
||||
## References:
|
||||
|
||||
https://blog.csdn.net/shukebeta008/article/details/105024278
|
7
Calls.md
Normal file
7
Calls.md
Normal file
@ -0,0 +1,7 @@
|
||||
Initially from: https://github.com/furrtek/portapack-havoc/wiki/Close-Call
|
||||
|
||||
The Calls mode is similar in functionality to the one on many Uniden scanners.
|
||||
|
||||
It allows to define a frequency range to scan (min/max), and a power threshold (trig). If a signal appears above the power threshold for a sufficient amount of time, the signal's frequency is "locked", shown in green and logged in a table at the bottom of the screen.
|
||||
|
||||
[[img/screenshots/Calls.png]]
|
@ -43,7 +43,12 @@ If you have additional questions, please check [this guide](Using-MAC-OS).
|
||||
# Docker - Command line reference
|
||||
|
||||
If you are inclined for using the command line, you can try the following:
|
||||
|
||||
* Clone the repository and submodules:
|
||||
```
|
||||
git clone https://github.com/eried/portapack-mayhem.git
|
||||
cd portapack-mayhem
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
* For building:
|
||||
`docker build -t portapackccache -f dockerfile-nogit .`
|
||||
|
||||
@ -88,3 +93,12 @@ You can use the following _yml _as your template for your CI platform (pipeline
|
||||
`trigger_condition: "ALWAYS"`
|
||||
`shell: "SH"
|
||||
```
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
|
||||
|
||||
If you decide to [ignore this guide](https://github.com/eried/portapack-mayhem/issues/75) and use the command line instead, you will need to include submodules
|
||||
|
||||
git clone --recurse-submodules --remote-submodules <url>
|
@ -67,6 +67,107 @@ In this moment you should be able to compile and test the app in your device. It
|
||||
# Adding functionality
|
||||
|
||||
## Widgets
|
||||
Widgets are the elements that compose the UI of your custom app. Widgets are defined inside `firmware\common\ui_widget.hpp.txt`, so in order to be able to use them, you must `#include "ui_widget.hpp"` into your app .hpp file.
|
||||
There are different type of widget. here you will find a list of available widget, with their respecting constructor. For all the methods available, you should go and see the ui_widget.hpp file.
|
||||
|
||||
### Attach a generic widget to you application
|
||||
|
||||
In order to display a widget into your app, you can either use the function `add_child()` or `add_children()`.
|
||||
Both thoose functions shall be called whithin the code of your `NewAppGameView(NavigationView &nav){}` constructor. The difference between the two function is simple: the first one allows you to add a single widget, while the secon one allows you to add an undefined number of widgets.
|
||||
Widgets must be passed as pointers to the functions. A coorect way of calling the two functions would then be:
|
||||
```
|
||||
add_child(&my_widget);
|
||||
```
|
||||
or
|
||||
```
|
||||
add_children({
|
||||
&widget_1,
|
||||
&widget_2
|
||||
});
|
||||
```
|
||||
|
||||
### Available widgets
|
||||
There are several different widgets, and more might be added, so you sholud allways go and chech whether new widgets have been added or not. Here you will find a list of most basic widgets.
|
||||
|
||||
#### Text
|
||||
The text widgets add a simple text area to your app. Here you can find it's declaration and prototype:
|
||||
```
|
||||
Text my_text_widget{
|
||||
Rect parent_rect,
|
||||
std::string text
|
||||
};
|
||||
|
||||
```
|
||||
To be noted that `Rect parent_rect` has it's own definition inside another file, but let's say that you would like to add a text widget with the text "Hwllo World", positioned at the top left corner (spaced 10 from both top margin and left margin), with width 100 and height 24, you cold do it in this way:
|
||||
```
|
||||
Text hellow_world_text_widget(
|
||||
{10, 10, 100, 24}, // be aware that thoose cordinates are: int:x, int:y, int:width, int:height
|
||||
"Hellow world!"
|
||||
);
|
||||
```
|
||||
#### Buttons
|
||||
|
||||
Buttons allows you to do something when you press them. Here you can find it's declaration and prototype:
|
||||
```
|
||||
Button my_button_widget{
|
||||
Rect parent_rect,
|
||||
std::string text
|
||||
};
|
||||
|
||||
```
|
||||
Be aware that every time you create e button, you then have to implement this method: `my_button_widget.on_select = [&nav](Button &){}`. You can leave it empy (even though it should not, as here you define what action the button should perform), but it must be present in your code.
|
||||
|
||||
For exaple, let's say you want a button called `my_button`, with the same diension as the previous widget. You will then do:
|
||||
```
|
||||
Button my_button(
|
||||
{10, 10, 100, 24}, // be aware that thoose cordinates are: int:x, int:y, int:width, int:height
|
||||
"my_button_text"
|
||||
);
|
||||
```
|
||||
|
||||
#### Labels
|
||||
|
||||
#### LiveDateTime
|
||||
|
||||
#### BigFrequency
|
||||
|
||||
#### ProgressBar
|
||||
|
||||
#### Console
|
||||
|
||||
#### Checkbox
|
||||
|
||||
#### Image
|
||||
|
||||
#### OptionsField
|
||||
|
||||
OptionsField is a widget that allows you to create a fiked, in wich you can change its value with the wheel on your portapack. Here you can find it's declaration and prototype:
|
||||
```
|
||||
OptionsField my_OptionsField_widget{
|
||||
Point parent_pos,
|
||||
int length,
|
||||
options_t options
|
||||
};
|
||||
```
|
||||
parent_pos is an array of two integer wich tells where the top left corner of the widget should be positioned. The lenght is an integer wich tells how many options you have into your options parameter. The options_t field is an array of options in wich your portapack can choose to display.
|
||||
For exaple, let's say you want an optionsFild called `my_optionsField`, with 3 options, positioned at 10 from top and 10 from left:
|
||||
```
|
||||
OptionsField my_optionsField{
|
||||
{10,10},
|
||||
3,
|
||||
{
|
||||
{"option1",0},
|
||||
{"option2",1},
|
||||
{"option3",2}
|
||||
}
|
||||
};
|
||||
```
|
||||
Note that the number following the "option_x" string value, should be the value that you could retrive from the optionField with the function `my_optionsField.selected_index_value();`
|
||||
#### Waveform
|
||||
|
||||
#### VuMeter
|
||||
|
||||
## Access radio hardware
|
||||
|
||||
## Dialogs
|
||||
|
||||
|
8
Decoder-for-NRF24L01.md
Normal file
8
Decoder-for-NRF24L01.md
Normal file
@ -0,0 +1,8 @@
|
||||
NRF24L01 is produced by nordic semiconductor. It is popular to be used in radio control of mini-drone.
|
||||
With this app, you can use portapack to decode the data sent from NRF24L01. Right now, only 250KPS mode is supported.
|
||||
|
||||
## References:
|
||||
|
||||
https://www.youtube.com/watch?v=8ZnWxhCkDkk
|
||||
|
||||
https://blog.csdn.net/shukebeta008/article/details/105478579
|
@ -8,7 +8,7 @@ PortaPack **H2** is a modification based on the last (from an unknown origin, no
|
||||
* Battery charging circuitry
|
||||
* Better internal Speaker integration
|
||||
|
||||
Note: _There are several H1 hybrid models on the global market including **some** of the H2 enhancements but keeping the H1 selector wheel. Some of these H1 hybrids are called the **2020 H1 Model**_
|
||||
Note: _There are several H1 hybrid models on the global market including **some** of the H2 enhancements but keeping the H1 selector wheel. Some of these H1 hybrids have names similar to **2020 H1 Model**, **H1 plus**, **H2+**_
|
||||
|
||||
# Audio
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
# Printing
|
||||
You can 3d print the following enclosure for your Portapack:
|
||||
|
||||
[<img src="https://raw.githubusercontent.com/eried/portapack-mayhem/master/docs/images/h2_front.jpg" height="400">
|
||||
@ -8,7 +7,9 @@ And the following magnetic cover:
|
||||
|
||||
[<img src="https://raw.githubusercontent.com/eried/portapack-mayhem/master/docs/images/h2_cover.jpg" height="400">](https://www.thingiverse.com/thing:4278961)
|
||||
|
||||
If you do not own a 3d printer, you could use a service like https://www.weerg.com for a high quality print, or https://www.3dhubs.com/ for a low cost alternative.
|
||||
If you do not own a 3d printer, you could use a service like https://www.weerg.com for a high quality print, or https://www.3dhubs.com/ for a low cost alternative using the design from the section below. Additionally, you can buy a [mass-produced](https://s.click.aliexpress.com/e/_9ybXDz) version of the case. If you need a different design, or material, check more options directly in [Aliexpress](https://www.aliexpress.com/wholesale?SearchText=portapack+case).
|
||||
|
||||
For a comparison between the results of the different fabrication techniques, check: https://youtu.be/lB-vc-Y13PM
|
||||
|
||||
# Assembly
|
||||
Check the `assembly.pdf` from the [case files](https://www.thingiverse.com/thing:4260973/files) for instructions.
|
||||
@ -17,3 +18,5 @@ Check the `assembly.pdf` from the [case files](https://www.thingiverse.com/thing
|
||||
|
||||
You can easily place a small 8ohm 1.5W (14x21x5.5 mm) speaker inside. There is no holes in the case but it seems that the sound quality actually improves with the case:
|
||||
https://www.youtube.com/watch?v=XkaGV9muvbg
|
||||
|
||||
Check more details about the speaker wiring [here](Internal-speaker).
|
@ -22,9 +22,9 @@
|
||||
|
||||
<img src="img/hw_overview_h2_inside.png" height="500">
|
||||
|
||||
1. MicroSD card slot (while in a case, insert the card with the contacts looking to the same direction as the screen)
|
||||
1. MicroSD card slot (insert the card with the contacts looking to the same direction as the screen)
|
||||
2. GPS module option (has not been implemented)
|
||||
3. Memory backup coin cell (compatible with CR1225 or CR1220 in the H2, and with the CR2032 in the H1)
|
||||
3. Memory backup coin cell (compatible with CR1225 or CR1220 in the H2, and with the CR2032 or CR2025 in the H1)
|
||||
4. [Speaker connector](Internal-speaker) (yellow and red go to the speaker coil, black is ground and can be left disconnected)
|
||||
5. Battery connector
|
||||
6. TCXO clock (it might be populated with SMD components like in the upper image, unpopulated or populated with a shielded module)
|
||||
|
40
Help!-Im-not-receiving-anything!---Receive-Quality-Issues.md
Normal file
40
Help!-Im-not-receiving-anything!---Receive-Quality-Issues.md
Normal file
@ -0,0 +1,40 @@
|
||||
# Not able to receive any signal/Noisy waterfall
|
||||
|
||||
## Antennas
|
||||
Are you using the correct antenna? Is it plugged in correctly? this sounds silly, but It could be as simple as that
|
||||
## Gain settings
|
||||
The gain settings are always arranged the same, VGA gain on the right and LNA on the left (both with value "40" in the image below).
|
||||
|
||||
[[img/screenshots/Receive_Audio.png]]
|
||||
|
||||
### Description of the gain settings
|
||||
The VGA or **V**ariable **G**ain **A**mplifier can be set to any number between 0-62. It amplifies pretty much everything and is basically a fine-tuning adjustment, I find it works best between 8-16.
|
||||
|
||||
The LNA, or **L**ow **N**oise **A**mplifier, can only be set to six settings: 0, 8, 16, 24, 32, 40. the LNA will try it's best to increase the signal-to-noise ratio. 24 or 32 work pretty well most of the time.
|
||||
|
||||
### TX amp
|
||||
The TX amplifier _can_ be used to help increase receive quality, but it is delicate and discouraged most of the time.
|
||||
|
||||
## Nearby Transmitters
|
||||
Nearby, High-Powered transmitters, such as FM stations and trunking stations, can overload your HackRF and create a lot of noise (think of it like clipping in audio). You could consider getting a band block/pass filter to block out common overloading sources like FM stations, rtl-sdr.com sells a nice 88-108 block filter for FM.
|
||||
|
||||
## Local Noise Sources
|
||||
There are many devices that can cause wideband noise: Screens, USB hubs, poorly designed cables, power supplies, faulty wiring, etc.. You can go around unplugging things or flipping breakers to figure out what might be the source of noise. Simply walking outside might help as well.
|
||||
### Power Banks
|
||||
Many power banks can be a local noise source, try different power banks if you can.
|
||||
### H2 Internal Battery Charger
|
||||
A few people have reported that the internal battery charger on some H2 models can cause noise when plugged in. There isn't really a fix for this unless you want to go about putting another charger. Please report as an issue if you find this issue, with detailed photos of the PCB of your H2. Check the following [video](https://www.youtube.com/watch?v=a_7Xc1_6-l4) to see how a normal functioning H2 does not produce extra noise related to the battery charger.
|
||||
## Broken RF Chain
|
||||
It may be entirely possible that something in the RF front end is broken, commonly the TX amp. The best way to go about troubleshooting this is to open up an issue on the [HackRF Github](https://github.com/mossmann/hackrf) explaining the issue, they'll try their best to guide you through it, and if you have a genuine GSG HackRF you might be able to get it replaced.
|
||||
|
||||
|
||||
|
||||
# Intermittent Signal Loss/Noise
|
||||
## Loose Cable Connections
|
||||
As stated before, check you cable connections and antenna. Wiggle things around and see if any dramatic change is reflected in the waterfall.
|
||||
## Nearby Transmitters
|
||||
Nearby transmitter can also cause intermittent signal loss, the culprit is almost always pager traffic as those signals can be very strong and transmit intermittently. A nearby trunking repeater could also be to blame.
|
||||
## H2 Internal Battery Charger
|
||||
The H2 Internal Battery Charger can also intermittently cause noise when plugged in. Check [this](#h2-internal-battery-charger).
|
||||
## Local Noise Sources
|
||||
There are many devices that can cause intermittent wideband noise: Screens, USB hubs, poorly designed cables, power supplies, faulty wiring, etc.. You can go around unplugging things or flipping breakers to figure out what might be the source of noise. Simply walking outside might help as well.
|
2
Home.md
2
Home.md
@ -2,6 +2,6 @@
|
||||
|
||||
Thanks for buying your HackRF+PortaPack device. _That_ is what I would say if I was actually the one selling them as the intro line for the documentation, but I am not. I am just trying to document the great work of a lot of people involved in this project, listed [here](https://github.com/eried/portapack-havoc/blob/master/firmware/application/apps/ui_about.hpp#L77).
|
||||
|
||||
The following documentation is split in two parts. The User manual intends to emulate a typical instruction manual for the end user.
|
||||
The following documentation is split in two parts. The User manual intends to emulate a typical instruction manual for the end user, while the Developer manual documents all the apis available in order to write custom apps.
|
||||
|
||||
Enjoy!
|
@ -13,8 +13,7 @@ https://s.click.aliexpress.com/e/_dWBRFr2
|
||||
|
||||
Connect `SPK+` and `SPK-` to the speaker and use double sided tape to fix it to the PCB.
|
||||
|
||||
Tests of the speaker:
|
||||
|
||||
Speaker test:
|
||||
https://www.youtube.com/watch?v=XkaGV9muvbg
|
||||
|
||||
## Additional details
|
||||
|
49
POCSAG-Receiver.md
Normal file
49
POCSAG-Receiver.md
Normal file
@ -0,0 +1,49 @@
|
||||
With this app you can receive pager messages using the POCSAG protocol.
|
||||
|
||||
This protocol operates in the VHF/UHF bands using FSK modulation. More technical details can be found by following the links in the References section.
|
||||
|
||||
# Display summary
|
||||
|
||||
[[img/screenshots/Receive_POCSAG.png]]
|
||||
|
||||
Description of displayed information, starting from top-left:
|
||||
|
||||
- Receiver frequency, RF amplifier, LNA, VGA, RSSI and Channel indicators
|
||||
- Phase, Bit/baud rate, Log checkbox
|
||||
- Ignore address checkbox and address
|
||||
- The lower area of the display will show the latest received messages.
|
||||
|
||||
## Settings
|
||||
|
||||
- **Frequency**: Sets the frequency to receive pager messages on. Can be adjusted with the [encoder thumb wheel](Hardware-overview), on-screen numpad, or loaded from frequencies saved on an SD card.
|
||||
- **RF amplifier**: (0 or 1): Enables/disables the internal RF amplifier.
|
||||
- **LNA gain** (0, 8, 16, 24, 32, 40): Sets the LNA gain. Further information: [Description of the gain settings](Help!-Im-not-receiving-anything!---Receive-Quality-Issues#description-of-the-gain-settings)
|
||||
- **VGA gain** (0 to 62): Sets the VGA gain. Further information: [Description of the gain settings](Help!-Im-not-receiving-anything!---Receive-Quality-Issues#description-of-the-gain-settings)
|
||||
- **Phase** (Positive or Negative): Usually set to positive. Typically the FSK lower frequency designates a high bit. Setting the phase polarity to negative will invert this, so the FSK lower frequency now designates a low bit.
|
||||
- **Data rate** (512pbs, 1200bps, 2400bps): Sets the baud rate (bits per second) of the received data. Typically older paging systems use 512bps, while newer systems use 1200bps or 2400bps.
|
||||
- **Log checkbox**: Enable/disable logging of received messages to an SD card. This log can be found on the SD card root directory, filename: `pocsag.txt`.
|
||||
- **Ignore address checkbox**: Used to ignore messages sent to the address set.
|
||||
|
||||
## Message display
|
||||
|
||||
Typical received message:
|
||||
|
||||
```plaintext
|
||||
12:34 1200bps ADDR:432123 F2
|
||||
This is a test message
|
||||
```
|
||||
|
||||
Description (from top-left):
|
||||
|
||||
- `12:34` - **Time**: The time that the message was received (time from PortaPack).
|
||||
- `1200bps` - **Data rate**: The data rate used to receive the message.
|
||||
- `ADDR:432123` - **Address**: The address of the intended pager recipient.
|
||||
- `F2` - **Function**: (0 to 3) Indicates the type or source of message sent (can be used to provide a category of sorts).
|
||||
- `This is a test message` - **Message**: The message data displayed as ASCII.
|
||||
|
||||
# References
|
||||
|
||||
The following resources provide more technical information about the POCSAG protocol:
|
||||
|
||||
- [POCSAG - Signal Identification Wiki](https://www.sigidwiki.com/wiki/POCSAG) - Provides frequencies commonly used in different countries and regions
|
||||
- [POCSAG - WikiPedia](https://en.wikipedia.org/wiki/POCSAG)
|
1
POCSAG.md
Normal file
1
POCSAG.md
Normal file
@ -0,0 +1 @@
|
||||
POCSAG is a pager protocol used commercially and by Amateur Radio. Amateur Radio DAPNET alphanumeric POCSAG is transmitted on UHF Narrow FM 439.9875 MHz at 1200 baud. See the DAPNET wiki for more info: [hampager.de/dokuwiki/doku.php](https://hampager.de/dokuwiki/doku.php)
|
@ -1,5 +1,7 @@
|
||||
# Radio Types + Values Implemented
|
||||
|
||||
https://radiosondy.info/index.php
|
||||
|
||||
### MeteoModem M10
|
||||
* Latitude
|
||||
* Longitude
|
||||
@ -13,5 +15,14 @@
|
||||
* Altitude
|
||||
* Battery Voltage
|
||||
|
||||
### Vaisala RS41
|
||||
* No Values Decoded
|
||||
### Vaisala RS41-SG
|
||||
* Signature
|
||||
* Serial
|
||||
* Battery Voltage
|
||||
* Frame Number
|
||||
* Altitude
|
||||
* Latitude
|
||||
* Longitude
|
||||
|
||||
|
||||
|
||||
|
6
SSTV.md
Normal file
6
SSTV.md
Normal file
@ -0,0 +1,6 @@
|
||||
The SSTV app allows you to send .bmp images that you have loaded onto the SD card. The current supported modes include Scottie 1, Scottie 2, Scottie DX, Martian 1, Martian 2, and SC2-180 modes. Currently, FM is the only modulation supported.
|
||||
|
||||
## Sending
|
||||
To send an image, select the bitmap image with the jog wheel, the mode, and the frequency you'd like to transmit on. For amateur radio, 12kHz seems to produce a good image.
|
||||
|
||||
![](https://imgur.com/a/sRqVuE4)
|
15
Signal-Generator.md
Normal file
15
Signal-Generator.md
Normal file
@ -0,0 +1,15 @@
|
||||
The signal generator found under Utilities can be used to generate a carrier which can be FM modulated with the following waveforms as defined by the Shape function.
|
||||
* CW : unmodulated carrier
|
||||
* Sine
|
||||
* triangle
|
||||
* sawtooth up
|
||||
* sawtooth down
|
||||
* square
|
||||
* noise : does not appear to function
|
||||
|
||||
Tone defines the frequency of modulation.
|
||||
|
||||
Update when unchecked requires the user to drop carrier, then re-start carrier in order for a change of modulation Shape or Tone frequency to take effect. When checked, values will update on the fly.
|
||||
|
||||
Stop after 1s limits carrier duration to 1 second
|
||||
|
12
Soundboard.md
Normal file
12
Soundboard.md
Normal file
@ -0,0 +1,12 @@
|
||||
The soundboard app will play whatever sound (in the wav/ directory of the SD card) is selected when the START button is hit, or it will play a random sound if the "Random" box is checked. Sound is transmitted as FM with the bandwidth set in the black and yellow TX box.
|
||||
|
||||
[[img/screenshots/Transmit_Soundbrd.png]]
|
||||
|
||||
'Key' allows the transmitted carrier to be encoded with a CTCSS subaudiable tone, or a pilot tone for compatibility with various cordless mic systems listed below
|
||||
* Axient 28kHz
|
||||
* Sennheiser 32.768kHz
|
||||
* Sennheiser 32.000kHz
|
||||
* Sony 32.382kHz
|
||||
* Shure 19kHz
|
||||
|
||||
Sounds should be 8-bit unsigned mono .wav files between 24000 and 48000 Hz. This can be done in Audacity by first making sure the track is Mono by going to Tracks>Mix>Mix Stereo Down to Mono and then choose "Other Uncompressed Files" in the export dialog and set Header to "WAV (Microsoft)" and Encoding to "Unsigned 8-bit PCM".
|
6
Tools.md
Normal file
6
Tools.md
Normal file
@ -0,0 +1,6 @@
|
||||
* Freq manager
|
||||
* File manager
|
||||
* Signal gen
|
||||
* Wave viewer
|
||||
* [Antenna Length](https://github.com/eried/portapack-mayhem/wiki/antennas)
|
||||
* Wipe SD card
|
241
UI-Screenshots.md
Normal file
241
UI-Screenshots.md
Normal file
@ -0,0 +1,241 @@
|
||||
Resources for use on the documentation:
|
||||
|
||||
`[[img/screenshots/Transmit_TouchTune.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_TouchTune.png]]
|
||||
|
||||
`[[img/screenshots/About.png]]`
|
||||
|
||||
[[img/screenshots/About.png]]
|
||||
|
||||
`[[img/screenshots/Calls.png]]`
|
||||
|
||||
[[img/screenshots/Calls.png]]
|
||||
|
||||
`[[img/screenshots/Capture.png]]`
|
||||
|
||||
[[img/screenshots/Capture.png]]
|
||||
|
||||
`[[img/screenshots/Debug.png]]`
|
||||
|
||||
[[img/screenshots/Debug.png]]
|
||||
|
||||
`[[img/screenshots/Debug_Buttons test.png]]`
|
||||
|
||||
[[img/screenshots/Debug_Buttons test.png]]
|
||||
|
||||
`[[img/screenshots/Debug_Memory.png]]`
|
||||
|
||||
[[img/screenshots/Debug_Memory.png]]
|
||||
|
||||
`[[img/screenshots/Debug_Peripherals AK4951.png]]`
|
||||
|
||||
[[img/screenshots/Debug_Peripherals AK4951.png]]
|
||||
|
||||
`[[img/screenshots/Debug_Peripherals MAX2837.png]]`
|
||||
|
||||
[[img/screenshots/Debug_Peripherals MAX2837.png]]
|
||||
|
||||
`[[img/screenshots/Debug_Peripherals RFFC5072.png]]`
|
||||
|
||||
[[img/screenshots/Debug_Peripherals RFFC5072.png]]
|
||||
|
||||
`[[img/screenshots/Debug_Peripherals Si5351C.png]]`
|
||||
|
||||
[[img/screenshots/Debug_Peripherals Si5351C.png]]
|
||||
|
||||
`[[img/screenshots/Debug_Peripherals Temperature.png]]`
|
||||
|
||||
[[img/screenshots/Debug_Peripherals Temperature.png]]
|
||||
|
||||
`[[img/screenshots/Debug_Peripherals.png]]`
|
||||
|
||||
[[img/screenshots/Debug_Peripherals.png]]
|
||||
|
||||
`[[img/screenshots/Debug_SD Card.png]]`
|
||||
|
||||
[[img/screenshots/Debug_SD Card.png]]
|
||||
|
||||
`[[img/screenshots/HackRF.png]]`
|
||||
|
||||
[[img/screenshots/HackRF.png]]
|
||||
|
||||
`[[img/screenshots/Main.png]]`
|
||||
|
||||
[[img/screenshots/Main.png]]
|
||||
|
||||
`[[img/screenshots/Options.png]]`
|
||||
|
||||
[[img/screenshots/Options.png]]
|
||||
|
||||
`[[img/screenshots/Options_Audio.png]]`
|
||||
|
||||
[[img/screenshots/Options_Audio.png]]
|
||||
|
||||
`[[img/screenshots/Options_Date_Time.png]]`
|
||||
|
||||
[[img/screenshots/Options_Date_Time.png]]
|
||||
|
||||
`[[img/screenshots/Options_Interface.png]]`
|
||||
|
||||
[[img/screenshots/Options_Interface.png]]
|
||||
|
||||
`[[img/screenshots/Options_Radio.png]]`
|
||||
|
||||
[[img/screenshots/Options_Radio.png]]
|
||||
|
||||
`[[img/screenshots/Options_Touchscreen.png]]`
|
||||
|
||||
[[img/screenshots/Options_Touchscreen.png]]
|
||||
|
||||
`[[img/screenshots/Receive.png]]`
|
||||
|
||||
[[img/screenshots/Receive.png]]
|
||||
|
||||
`[[img/screenshots/Receive_ADS-B.png]]`
|
||||
|
||||
[[img/screenshots/Receive_ADS-B.png]]
|
||||
|
||||
`[[img/screenshots/Receive_AFSK.png]]`
|
||||
|
||||
[[img/screenshots/Receive_AFSK.png]]
|
||||
|
||||
`[[img/screenshots/Receive_AIS Boats.png]]`
|
||||
|
||||
[[img/screenshots/Receive_AIS Boats.png]]
|
||||
|
||||
`[[img/screenshots/Receive_Analog TV.png]]`
|
||||
|
||||
[[img/screenshots/Receive_Analog TV.png]]
|
||||
|
||||
`[[img/screenshots/Receive_Audio.png]]`
|
||||
|
||||
[[img/screenshots/Receive_Audio.png]]
|
||||
|
||||
`[[img/screenshots/Receive_BTLE.png]]`
|
||||
|
||||
[[img/screenshots/Receive_BTLE.png]]
|
||||
|
||||
`[[img/screenshots/Receive_ERT Meter.png]]`
|
||||
|
||||
[[img/screenshots/Receive_ERT Meter.png]]
|
||||
|
||||
`[[img/screenshots/Receive_NRF.png]]`
|
||||
|
||||
[[img/screenshots/Receive_NRF.png]]
|
||||
|
||||
`[[img/screenshots/Receive_POCSAG.png]]`
|
||||
|
||||
[[img/screenshots/Receive_POCSAG.png]]
|
||||
|
||||
`[[img/screenshots/Receive_Radiosnd.png]]`
|
||||
|
||||
[[img/screenshots/Receive_Radiosnd.png]]
|
||||
|
||||
`[[img/screenshots/Receive_TPMS Cars.png]]`
|
||||
|
||||
[[img/screenshots/Receive_TPMS Cars.png]]
|
||||
|
||||
`[[img/screenshots/Replay.png]]`
|
||||
|
||||
[[img/screenshots/Replay.png]]
|
||||
|
||||
`[[img/screenshots/Scanner.png]]`
|
||||
|
||||
[[img/screenshots/Scanner.png]]
|
||||
|
||||
`[[img/screenshots/Tools.png]]`
|
||||
|
||||
[[img/screenshots/Tools.png]]
|
||||
|
||||
`[[img/screenshots/Tools_Antenna length.png]]`
|
||||
|
||||
[[img/screenshots/Tools_Antenna length.png]]
|
||||
|
||||
`[[img/screenshots/Tools_File manager.png]]`
|
||||
|
||||
[[img/screenshots/Tools_File manager.png]]
|
||||
|
||||
`[[img/screenshots/Tools_Freq manager.png]]`
|
||||
|
||||
[[img/screenshots/Tools_Freq manager.png]]
|
||||
|
||||
`[[img/screenshots/Tools_Signal gen.png]]`
|
||||
|
||||
[[img/screenshots/Tools_Signal gen.png]]
|
||||
|
||||
`[[img/screenshots/Tools_Wave viewer.png]]`
|
||||
|
||||
[[img/screenshots/Tools_Wave viewer.png]]
|
||||
|
||||
`[[img/screenshots/Tools_Wipe SD card.png]]`
|
||||
|
||||
[[img/screenshots/Tools_Wipe SD card.png]]
|
||||
|
||||
`[[img/screenshots/Transmit.png]]`
|
||||
|
||||
[[img/screenshots/Transmit.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_ADS-B.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_ADS-B.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_APRS.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_APRS.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_BHT Xy_EP.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_BHT Xy_EP.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_BurgerPgr.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_BurgerPgr.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_GPS Sim.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_GPS Sim.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_Jammer.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_Jammer.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_Key fob.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_Key fob.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_LGE tool.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_LGE tool.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_Mic.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_Mic.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_Morse.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_Morse.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_OOK.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_OOK.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_POCSAG.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_POCSAG.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_RDS.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_RDS.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_Soundbrd.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_Soundbrd.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_SSTV.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_SSTV.png]]
|
||||
|
||||
`[[img/screenshots/Transmit_TEDI_LCR.png]]`
|
||||
|
||||
[[img/screenshots/Transmit_TEDI_LCR.png]]
|
55
Update-firmware-troubleshooting.md
Normal file
55
Update-firmware-troubleshooting.md
Normal file
@ -0,0 +1,55 @@
|
||||
One of the main sources of problems while [updating the firmware](Update-firmware) is the quality of the USB cable. Try with several ones just to be sure before trying any other solution.
|
||||
|
||||
## DFU
|
||||
|
||||
This is a special mode to update the firmware in case of problems. To enable this, you should reset your device holding the RESET and DFU buttons at the same time, while doing this, release RESET, and then release DFU. The leds should be ON and the screen wont show anything.
|
||||
|
||||
### Windows
|
||||
If you are in Windows, from the release package double click `dfu_hackrf_one.bat` and follow the instructions. Do not disconnect or reset your PortaPack after that procedure, continue in the step 3 of the [normal procedure](Update-firmware#normal-procedure).
|
||||
|
||||
### MacOS
|
||||
_DFU Utils CLI tools for MacOS available through MacPorts or Homebrew_
|
||||
|
||||
1. If necessary, install the DFU tools: `brew install dfu-util`
|
||||
2. Connect the device via USB
|
||||
3. Switch to DFU mode as per the section above: *DFU*
|
||||
4. Upload the firmware with `dfu-util --device 1fc9:000c --download hackrf_one_usb.dfu --reset`
|
||||
5. Reboot the device
|
||||
|
||||
### Linux
|
||||
_DFU Utils CLI tools for Linux available in standard repositories_
|
||||
|
||||
1. If necessary, install the DFU tools (example for Debian/Ubuntu variants): `sudo apt install dfu-util`
|
||||
2. Connect the device via USB
|
||||
3. Switch to DFU mode as per the section above: *DFU*
|
||||
4. Upload the firmware with `dfu-util --device 1fc9:000c --download hackrf_one_usb.dfu --reset`
|
||||
5. Reboot the device
|
||||
|
||||
### Alternative environment
|
||||
|
||||
You may be able to try in a virtual environment, completely isolated from your current OS:
|
||||
1. Download http://eu2-dist.gnuradio.org/ and burn the ISO and boot from it, select the LIVE Image
|
||||
2. Once in the environment, Open a Command Prompt and type: `sudo apt-get install dfu-util`
|
||||
3. Connect your device to your computer
|
||||
4. Press RESET and DFU buttons at the same time, and while doing this, release RESET, and then release DFU
|
||||
5. Open a terminal and type `dfu-util --device 1fc9:000c --download hackrf_one_usb.dfu --reset`
|
||||
6. After that, without disconnecting it, you can upload the firmware with `hackrf_spiflash -w new_firmware_file.bin`
|
||||
|
||||
## Notes
|
||||
|
||||
If you have an existing HackRF One and you've acquired a Portapack separately (from third party suppliers), do the following:
|
||||
1. Make sure you flash the HackRF One first before attempting anything with the HackRF One + Portapack combo. The code to run Portpack comes from the HackRF One firmware as flashed.
|
||||
2. If you don't flash the HackRF One and just plugged in the Portapack and powered up the setup, the screen on the Portapack will flash and nothing else will be seen. This does not mean that the Portapack is faulty.
|
||||
3. After flashing the HackRF One, you can plug in the Portapack and when the setup is powered up. you will see the screen show the UI for the version of the firmware that was flashed into the HackRF One.
|
||||
|
||||
## Video
|
||||
The following video explains all possible outcomes while trying to update the firmware and possible mitigations:
|
||||
https://www.youtube.com/watch?v=_zx4ZvurgOs
|
||||
|
||||
There is another very good video about the general overview, also including the update procedure:
|
||||
https://www.youtube.com/watch?v=kjFB58Y1TAo
|
||||
|
||||
# Still stuck?
|
||||
If you still experience problems after reading this and checking the video, submit an [issue](https://github.com/eried/portapack-havoc/issues/new?assignees=&labels=&template=problem-upgrading-the-firmware.md&title=Problem+upgrading+the+firmware).
|
||||
|
||||
Also, there is a lot more details on the [HackRF wiki](https://github.com/mossmann/hackrf/wiki/Updating-Firmware).
|
@ -1,48 +1,41 @@
|
||||
In theory, it is impossible to brick the device, since you can always try the DFU recovery procedure. However, the updating might become fiddly in certain conditions.
|
||||
|
||||
# Normal procedure (Windows)
|
||||
# Normal procedure
|
||||
|
||||
## Firmware
|
||||
|
||||
Get the latest firmware from the [![GitHub release (latest by date)](https://img.shields.io/github/v/release/eried/portapack-mayhem?label=Releases&style=social)](https://github.com/eried/portapack-mayhem/releases/latest) page. Please check the [FAQ](https://github.com/eried/portapack-mayhem#frequently-asked-questions) if you have any additional question.
|
||||
|
||||
### Windows
|
||||
|
||||
1. Connect the device via USB
|
||||
2. Switch to HackRF mode via the on-screen option (in the PortaPack)
|
||||
3. Double click `flash_portapack_mayhem.bat` and follow the instructions
|
||||
4. Reboot the device
|
||||
|
||||
# Normal procedure (Linux)
|
||||
### Linux
|
||||
|
||||
1. Connect the device via USB
|
||||
2. Switch to HackRF mode via the on-screen option (in the PortaPack)
|
||||
3. Upload the firmware with `hackrf_spiflash -w new_firmware_file.bin`
|
||||
3. Upload the firmware with `hackrf_spiflash -w new_firmware_file.bin` (eg. portapack-h1_h2-mayhem.bin for mayhem firmware or hackrf_one_usb.bin for stock hackrf firmware)
|
||||
4. Reboot the device
|
||||
|
||||
### MacOS
|
||||
|
||||
_HackRF CLI tools for MacOS available through MacPorts or Homebrew_
|
||||
|
||||
1. If necessary, install the HackRF tools: `brew install hackrf`
|
||||
2. Connect the device via USB
|
||||
3. Switch to HackRF mode via the on-screen option (in the PortaPack)
|
||||
4. Upload the firmware with `hackrf_spiflash -w new_firmware_file.bin`
|
||||
5. Reboot the device
|
||||
|
||||
## MicroSD card files
|
||||
|
||||
Your PortaPack has a slot for a memory card. You need to provide a MicroSD with enough space (16GB is recommended, over 32GB will be omitted due the limits of the FAT32). This is necessary for certain functionality, like the world map, GPS simulator, and others.
|
||||
|
||||
Get the latest files from the [![GitHub release (latest by date)](https://img.shields.io/github/v/release/eried/portapack-mayhem?label=Releases&style=social)](https://github.com/eried/portapack-mayhem/releases/latest) page. You need to uncompress (using [7-zip](https://www.7-zip.org/download.html)) the files from `mayhem_vX.Y.Z_COPY_TO_SDCARD.7z` to a FAT32 formatted MicroSD card.
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
One of the main sources of problems is the quality of the USB cable. Try with several ones just to be sure before trying any other solution.
|
||||
|
||||
## DFU
|
||||
|
||||
This is a special mode to update the firmware in case of problems. To enable this, you should reset your device holding the RESET and DFU buttons at the same time, while doing this, release RESET, and then release DFU. The leds should be ON and the screen wont show anything.
|
||||
|
||||
If you are in Windows, from the release package double click `dfu_hackrf_one.bat` and follow the instructions. Do not disconnect or reset your PortaPack after that procedure, continue in the step 3 of the [normal procedure](Update-firmware#normal-procedure).
|
||||
|
||||
## Alternative environment
|
||||
|
||||
You may be able to try in a virtual environment, completely isolated from your current OS:
|
||||
1. Download http://eu2-dist.gnuradio.org/ and burn the ISO and boot from it, select the LIVE Image
|
||||
2. Once in the environment, Open a Command Prompt and type: `sudo apt-get install dfu-util`
|
||||
3. Connect your device to your computer
|
||||
4. Press RESET and DFU buttons at the same time, and while doing this, release RESET, and then release DFU
|
||||
5. Open a terminal and type `dfu-util --device 1fc9:000c --download hackrf_one_usb.dfu --reset`
|
||||
6. After that, without disconnecting it, you can upload the firmware with `hackrf_spiflash -w new_firmware_file.bin`
|
||||
|
||||
## Video
|
||||
The following video explains all possible outcomes while trying to update the firmware and possible mitigations:
|
||||
https://www.youtube.com/watch?v=_zx4ZvurgOs
|
||||
|
||||
There is another very good video about the general overview, also including the update procedure:
|
||||
https://www.youtube.com/watch?v=kjFB58Y1TAo
|
||||
|
||||
# Still stuck?
|
||||
If you still experience problems after reading this and checking the video, submit an [issue](https://github.com/eried/portapack-havoc/issues/new?assignees=&labels=&template=problem-upgrading-the-firmware.md&title=Problem+upgrading+the+firmware).
|
||||
|
||||
Also, there is a lot more details on the [HackRF wiki](https://github.com/mossmann/hackrf/wiki/Updating-Firmware).
|
||||
Please check [this guide](Update-firmware-troubleshooting).
|
8
World-map-generation.md
Normal file
8
World-map-generation.md
Normal file
@ -0,0 +1,8 @@
|
||||
The Release package includes a map, however you can create your own following simple rules:
|
||||
|
||||
* `world_map.jpg` should be square (i.e. 32768 x 32768 px)
|
||||
* The projection of the map is Mercator based on the World Geodetic System (WGS) 1984 geographic coordinate system (datum)
|
||||
* Longitude and latitude cover the map from -180 to 180 and -85 to 85, respectively. Note that latitude does not go up to 90 (since most available maps do not include the 5 initial degrees)
|
||||
|
||||
With those conditions fulfilled, place the input map in: `sdcard/ADSB/world_map.jpg` and then run `firmware/tools/generate_world_map.bin.py`. Your map will be generated on: `sdcard/ADSB/world_map.bin`
|
||||
|
29
_Sidebar.md
29
_Sidebar.md
@ -10,27 +10,43 @@
|
||||
* [3d printed enclosure](H2-Enclosure)
|
||||
* [Internal speaker](Internal-speaker)
|
||||
* [Description of the main screen](Main-screen-overview)
|
||||
* Troubleshooting
|
||||
* [Firmware upgrade](https://github.com/eried/portapack-mayhem/wiki/Update-firmware-troubleshooting)
|
||||
* [Receive Quality Issues](https://github.com/eried/portapack-mayhem/wiki/Help!-Im-not-receiving-anything!---Receive-Quality-Issues)
|
||||
* [Applications](Applications)
|
||||
* Receivers
|
||||
* [ADS-B](Automatic-dependent-surveillance–broadcast-(ADS-B))
|
||||
* AIS Boats
|
||||
* AFSK
|
||||
* [BTLE](Bluetooth-Low-Energy-Receiver)
|
||||
* NRF
|
||||
* [NRF](https://github.com/eried/portapack-mayhem/wiki/decoder-for-NRF24L01)
|
||||
* [Audio](Audio-Receivers)
|
||||
* [SPEC](Spectrum-Analyser-Receiver)
|
||||
* [WFM](Wide-FM-Receiver)
|
||||
* [NFM](Narrow-FM-Receiver)
|
||||
* [AM](AM-Receiver)
|
||||
* Analog TV
|
||||
* [Analog TV](https://github.com/eried/portapack-mayhem/wiki/Analog-TV-Receiver)
|
||||
* ERT Meter
|
||||
* POCSAG
|
||||
* [POCSAG](POCSAG-Receiver)
|
||||
* [Radiosonde](Radiosonde)
|
||||
* [TPMS Cars](TPMS-Cars)
|
||||
* Transmitters
|
||||
* ADS-B(S)
|
||||
* [APRS](APRS)
|
||||
* BHT Xy/EP
|
||||
* [GPS Sim](GPS-Sim)
|
||||
* Jammer
|
||||
* Key Fob
|
||||
* LGE Tool
|
||||
* Morse
|
||||
* Burger Pager
|
||||
* POCSAG
|
||||
* [SSTV](https://github.com/eried/portapack-mayhem/wiki/SSTV)
|
||||
* TEDI/LCR
|
||||
* TouchTune
|
||||
* [RDS](RDS)
|
||||
* [OOK](OOK)
|
||||
* [Soundboard](Soundboard)
|
||||
* Capture
|
||||
* [Features](Capture)
|
||||
* [C16 Format](C16-format)
|
||||
@ -39,10 +55,10 @@
|
||||
* Calls
|
||||
* [Features](Calls)
|
||||
* [Scanner](Scanner)
|
||||
* Tools
|
||||
* [Tools](Tools)
|
||||
* Freq manager
|
||||
* File manager
|
||||
* Signal gen
|
||||
* [Signal gen](Signal-Generator)
|
||||
* Wave viewer
|
||||
* [Antenna length](antennas)
|
||||
* Wipe SD card
|
||||
@ -66,7 +82,7 @@
|
||||
* [Persistent Memory](Persistent-Memory)
|
||||
* Tools
|
||||
* Images
|
||||
* world_map.bin
|
||||
* [world_map.bin](World-map-generation)
|
||||
* [converter](Splash-and-other-images)
|
||||
* Example guides
|
||||
* [Create a custom splash screen](Create-a-custom-splash-screen)
|
||||
@ -75,3 +91,4 @@
|
||||
* Research
|
||||
* [Dissecting the Temperature Logger](Dissecting-the-Temperature-logger)
|
||||
* [Differences between H1 and H2](Differences-Between-H1-and-H2-models)
|
||||
* [UI Screenshots](UI-Screenshots)
|
||||
|
Loading…
Reference in New Issue
Block a user