Table of Contents
Splash screen
For converting back and forth between the image and source you can use xxd
. In a Windows environment you can use this command in the Linux Subsystem installing one of the versions available (i.e. Ubuntu).
From .bmp to .hpp
xxd -i input_image.bmp output.hpp
From .hpp to .bmp
xxd -r -p input.hpp output_image.bmp
Python converter for Splash Screen
There is also a python helper in firmware/tools/bmp_tools
Firmware icons
The special file firmware/application/bitmap.hpp
contains all firmware icons.
This file should not be edited directly! Instead, new icons should be copied in firmware/graphics and then run python [firmware/tools/bitmap_tools/pp_png2hpp.py](https://github.com/portapack-mayhem/mayhem-firmware/blob/next/firmware/tools/bitmap_tools/pp_png2hpp.py) <DIRECTORY> bitmap.hpp
to create bitmap.hpp
.
For operating that Python3 script, Pillow
library is required: pip install pillow
make_bitmap.py - Convert a folder contains one or more icon.png to one bitmap.hpp
The make_bitmap.py
is the traditional helper, well tested. The folder with the icons is given as argument and generates the bitmap.hpp
. This file needs to be copied to mayhem-firmware/firmware/application/
. Starting from the `tools/ folder, the command is:
python3 bitmap_tools/make_bitmap.py ../graphics/ && mv bitmap.hpp ../application/bitmap.hpp
The icon size needs to be a multiple of 8. The generated icon is black/white.
bitmap_arr_reverse_decode.py - Convert bitmap array to icon.png
The bitmap_arr_reverse_decode.py
takes an array from the bitmap.hpp and convert it back to a png.
pp_png2hpp.py - Convert both ways
The pp_png2hpp.py
is based on the previous scripts, as all in one solution.
With the --hpp bitmap.hpp
file and the --graphics /folder_to/png_icons/
arguments, this script will generate a bitmap.hpp
.
Add the --reverse
argument to generate png icons from a given bitmap.hpp
.
The reverse function got a parser, for automatic get the filename and size of the image.
Example
From the tools/
folder:
$ ./bitmap_tools/pp_png2hpp.py ../application/bitmap.hpp ../graphics
Converting from png to hpp
From path ../graphics/ to file ../application/bitmap.hpp
Find your bitmap.hpp at ../application/bitmap.hpp
To reverse the icons from the .hpp to png icons use the parameter --reverse
. Default is only the mayhem logo, named titlebar_image
:
$ ./bitmap_tools/pp_png2hpp.py ../application/bitmap.hpp /home/lupus/work/hackrf/tmp/ --reverse
Reverse: Converting from hpp to png
Converting icon titlebar_image
Add the parameter --icon <icon name>
to convert another icon or all
to convert all available icons at once:
$ ./bitmap_tools/pp_png2hpp.py ../application/bitmap.hpp /home/lupus/work/hackrf/tmp/ --reverse --icon all
Note: It is not a recovery, the icons will be new generated. The new icons are black/white, even if the original icons where transparent.
Online editor
The current icons were designed on Piskelapp. To create or update icons, the current sources (16x16 or 8x8) can be used.
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
- 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
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.