There ain't no such thing as a free lunch. If you want a better portapack, there is no better way to get it than by collaborating.
Write documentation
There is a lot of missing documentation about all the features, so it is really important to write clean and detailed instructions for them. In this current wiki, you can modify or add new content with a normal Github account.
- Select a topic you think you can master. It can be an specific app, function of an app or feature or procedure related with your PortaPack
- Check the following sources:
- To create a new section, you have to edit the sidebar and then edit the page. To modify any actual section, just do it directly. Try to follow the same language and style used in the other articles of the Wiki.
For learning about the text formatting, check the Markdown Cheatsheet.
Coding new stuff or fixing bugs
I know what are you thinking: "I am not an expert, I do not know C++, I am not capable, etc", but nobody really is until they do. The easiest way to get a bug fixed or a new feature is to code it yourself.
So, setup the environment and compile the code as instructed below. Modify something dumb: the title bar of an app, some button, ... compile again and test. Try to understand how things works; this is exactly how everyone gets involved.
Tip
While you learn, you can add comments and rename variables if you think it will help others to understand the code. This is also a very appreciated contribution.
Environment setup
Fork the repository
- Download and install Github desktop
- Log to Github, open the repository and click Fork on the top right
- In your Fork, Click Clone and Open in Desktop
- Follow the rest of instructions in Github desktop
Prepare for compilation
- Compile your fork
- As noted in the details on the previous step, the first time it might take a long time to finish. The result will be left on the
build
folder, on the root of your fork
Start coding
You can check the following brief video that shows the most of the steps described below.
Work on the code
- Install Visual Studio Code
- Open the root directory of your local copy of the Fork
- Change something
- Run the image from Kitematic to compile
- Go to step 3 until finished
It is recommended to work in branches, but as a beginner, it is ok to work on your master branch.
Create commits with your changes after you complete them.
Just keep in mind:
- Keep it simple, the fewer commits, affected files and lines, the better
- Use a descriptive name for the commits, add the URL of the issue if you were fixing something specific
- The project needs to compile successfully after each commit
Submit your changes
This is the last stage. Your new feature or fix is ready and this is how you submit the changes:
- Publish the branch (if necessary) and push all the commits
- Do a pull request. Use a descriptive title and description if you think is necessary
- Just follow the interaction on Github now
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
How to collaborate
How to ask questions correctly
User manual
- First steps
- Usage cautions
- Intended use and Legality
- Features
- PortaPack Versions (which one to buy)
- HackRF Versions
- Firmware update procedure
- Description of the hardware
- User interface
- Powering the PortaPack
- Troubleshooting
- Won't boot
- Config Menu
- Firmware upgrade
- Diagnose firmware update in Windows
- Receive Quality Issues
- No TX/RX
- TX Carrier Only
- H2+ speaker modifications
- Dead Coin Cell Battery
- Factory Defaults
- SD card not recognized by PC with the SD-card over USB selected
- DFU overlay
- Full reset
- SolveBoard
- How to Format SDCard
- Applications
Developer Manual
- Compilation of the firmware
- Compile on WSL with ninja
- How to compile on Windows faster with WSL 2
- Using Docker and Kitematic
- Docker command-line reference
- Using Buddyworks and other CI platforms
- Notes for Buddy.Works (and other CI platforms)
- Using ARM on Debian host
- All in one script for ARM on Debian host
- Compile on Arch based distro (exclude Asahi)
- Dev build versions
- Notes About ccache
- Create a custom map
- Code formatting
- PR process
- Description of the Structure
- Software Dev Guides
- Tools
- Research
- UI Screenshots
- Maintaining
- Creating a prod/stable release (Maintainers only)
- Maintaining rules
- Development States Notes
Hardware Hacks
Note
The wiki is incomplete. Please add content and collaborate.
Important
- This is a public wiki. Everything is visible to everyone. Don't use it for personal notes.
- Avoid linking to external tutorials/articles; they may become outdated or contain false information.