WaffleCPS is an early desktop editor for DMR codeplugs. It organizes programming around repeaters, time slots, and talkgroups so you can see how you will use a radio without working through a traditional channel table.
The application is under active development. It can import tested Connect Systems CS7000 codeplug layouts, save work in an open .waffle project, and export a prototype CS7000 .rdbx file. Keep your original codeplug. Exported files still need validation in the radio's CPS before use; WaffleCPS cannot write to a radio yet.
These views use an imported CS7000 GPS codeplug.
Repeater overview — CT-Brooklyn Ares, with separate time-slot cards and talkgroup details.
Add talkgroup — choose an existing group contact and give the radio channel its own name.
Contacts — people and talkgroups have separate searchable tabs.
- Import
.rdbxfiles with the CS7000-M17 Plus / CS7000 GPS firmware layout from CPS V1.02.20.00 or V1.02.21.00. The populated sample came from a CS7000 GPS radio running the same firmware as the Plus; the newer CPS sample is a default codeplug. Other models and CPS versions have not been verified. - Browse imported repeaters, zones, channels, and contacts. A zone with one repeater frequency pair and color code appears as a repeater, even if it also contains simplex frequencies. Separate zones remain separate entries.
- View each repeater's frequencies, color code, transmit power, time slots, and additional simplex frequencies. The channel name appears above its talkgroup name and ID, matching the radio's idle versus receive/transmit display behavior.
- Search people and talkgroups in separate contact tabs. Add a repeater talkgroup from the group contact list or create one in the same flow, with a separate name for its radio channel.
- Add or remove talkgroups and additional simplex frequencies. When an imported channel is shared with another zone, removing it from the selected zone leaves the shared record available to the other zone.
- Create a blank project and save or open
.waffleprojects. Imported projects retain the original codeplug bytes as an untouched attachment. - Set a radio name or call sign and DMR radio ID on the Radio Settings page. Imported values are shown automatically and saved with the project.
- Export a prototype CS7000
.rdbxfile with radio identity, contacts, channels, and zones. New projects use an embedded copy of the supplied CS7000 default codeplug; imported projects use their preserved source.
The editor does not yet decode every radio setting, receive group, or scan list. Codeplug export is available, but it is experimental: expect bugs. Keep your original codeplug and check each export in the vendor's CPS before use. Exported files have not been verified for writing to a radio. The project checklist tracks the remaining work.
WaffleCPS uses C++17, CMake 3.21 or newer, Qt 6.4 or newer, and zlib. On Ubuntu 24.04, install the build tools and Qt development/QML packages:
sudo apt install cmake g++ zlib1g-dev qt6-base-dev qt6-declarative-dev \
qml6-module-qtqml qml6-module-qtqml-workerscript \
qml6-module-qtquick qml6-module-qtquick-controls \
qml6-module-qtquick-layouts qml6-module-qtquick-templates \
qml6-module-qtquick-windowThen build and launch the application:
cmake -S . -B build
cmake --build build
./build/wafflecpsUse Import codeplug for a supported .rdbx file, or Open for a .waffle project. You can also pass either file type when launching the app:
./build/wafflecps path/to/project.waffle
./build/wafflecps path/to/codeplug.rdbxRun the automated checks with:
ctest --test-dir build --output-on-failureWaffleCPS uses Qt and CMake, but Windows and macOS builds have not yet been verified or packaged. The app icon is generated from tools/render_icon.py; Pillow is needed only to regenerate the image, not to build WaffleCPS.
- Project checklist — agreed scope and progress.
- Project plan — original product direction.
- Project format — the open
.wafflearchive format. - Import and data model — classification and editor design.
- Codeplug research — findings from the tested sample.
WaffleCPS is licensed under the GNU General Public License version 3.
If you would like to support development, you can buy the author a coffee.


