P25RX-II experimental firmware

For now, Please Use the Current Testing Release Instead





-Make threshold higher for "reset detect" / $RESET_COUNT$. 06-17_1825.

-Fix issue with talk group duplicate records with different zones. You can import duplicates when importing from CSV. Duplicates are no longer created when editing the table and pressing <Update DB>. This action now does an update of an existing record. Also, new records are no longer inserted if there is already an existing record with the same TG, WACN, SYS_ID  (zone is ignored). 06-17_1318

-Another attempt at fixing a fw update loop. 06-17_1117 (waiting for test).

-Fix issues with <write config> in the latest versions. 06-17_0605.

-Change system timer sleep method to try and fix some Windows-related issues. Please report what you find. Note that firmware updates may be slower with this version on Windows 10. 06-16_1829.

-talk group database constraints change. Add ZONE to uniqueness of records. This version will require re-importing your talk group files, so make sure you export before updating. There is now an option to sort by any field for the talk group table. 06-16_1111

-The <Update DB> button on the talk group editor now updates the talk group database from all rows in the editor table instead of only selected rows. 06-16_0034.

-Another attempt to fix a startup issue for a specific version of Win 10. 06-15_1735.

-Change to the the event dbase pruning. Make sure it always runs periodically. 06-15_1647.

-Add the date (yyyy-mm-dd) back into the event dbase filename. 06-15_1306.

-Prune redundant SITE_EVT records from the events db. Only keep the latest records. This makes the file size much smaller and having the date (yyyy-mm-dd) in the file name is no longer needed. 06-15_1214

-Attempt to fix issue with another Win10 fw update issue. Console now shows the last 64 records from the events table when enabled. 06-15_1058. (verified fixed)

-Fix issue with console event display. 06-15_0730

-Console shows previous 60 seconds of events when enabled. 06-15_0647

-Commit and close all dbase files on software close. 06-15_0621

-Add new Event database and optimize console / events display. 06-15_0037

-Fix firmware update on some Win 10 machines. 2022-06-14_2058.

-Fix firmware update when updating from much older version and tested on Windows 10. 06-14_1553

-Improve startup/initialization and recovery from USB disconnect. 06-14_1217.

-More optimizations of memory resources / speed of execution. 06-14_1013

-Fix issue with Display View initialization in recent versions. 06-14_0653.

-Some improvements to alias table updates. 06-13_1909.

-Fix bug when using the <Edit Alias> button. 06-13_1841

-Added TG and ALPHATAG fields to the Alias DB. You will need to re-import your alias CSV file, so do an "Export to CSV" before updating. 06-13_1805.

-Fix an issue that could cause a java software hang on startup. 06-13_1537

-More optimization. Don't draw Sig Insights related when that tab is not selected. 06-13_1226.

-Optimization: Don't update TG Editor / Alias  Tables when the respective tab is not currently selected. Saves CPU and memory resources. 06-13_1212.

-Faster / improved initialization during software startup.  06-13_1110.

-Serveral magnitudes order faster imports/deletes for talkgroups/alias dbase using transactions. (e.g. <1second for entire MARCS system) 06-13_1000. 

-Allow reading talk groups from receiver to update database table. 06-13_0836

-Add "enable table updates" check boxes for TG edit and Alias tables. Disabling these allows editing of the table without interruption by table updates during voice grants. 06-13_0752

-Fix mp3/wav file generation issue. 06-13_0726

-TG Editor now utilzes a database file and allows importing DSD CSV RR files for multiple systems. Importing a DSD formatted file will result in a merge into the database. On startup, the database contents are read into the table. <Update Selected> updates the database with changes to the selected rows. In order to update flash on the receiver, you must use <Write TG To DEV> 06-12_2212.

-Fix issue that was causing most options on the tree-view right-click popup menu not to work correctly. (06-12_0936)

-Recover from an ocassional glitch that happens when reading talk groups or <sync channel config> while scanning is enabled. (06-12_0904)

-Don't update the alias table from the database if the table is currently being edited. The database will continue to be populated during an edit. (06-12_0719)

-Minor improvement related to alias table. (06-12_0701). Not a fw update.

-Fix SIG led indicator issue (06-11_2147)

-Integrated SQLite support for Linux, Windows, Mac

-Alias / RID now uses SQL database. You will need to import your p25rx_aliases.csv file to the new database. Editing, sorting is much smoother and more reliable.

-Much improved firmware update. It starts automatically and should finish without a software restart or manual power cycle.

-Very fast software startup! No longer reads talk groups on startup. You need to manually read them from the device for this version. In the next release, the talk groups will be stored in a database.


NOTE: This is "experimental software". Please wait for a testing or stable release if you want software that is complete and working correctly. This is for those that like testing bleeding edge software. Thank you!

----AVOID VERSIONS BETWEEN 05-20_1418 and 05-28_1740 !!!!----

WARNING: These versions are known to cause flash memory corruption. Please see here before you decide to run the experimental firmware: https://bluetailtechnologies.com/pages/flash-memory-error-recovery-procedure

Some initial starting notes:

1) Download State or County level files CSV from RR.  (STID or CTID CSV files) and put them in the Documents/p25rx/rr_imports folder. The software will create this folder on startup.
2) From the Channel Config tab, select <Import RR CSV> and import some records from one of the files you downloaded.
3) Click the right mouse button on the tree view. There are only 3 options currently.
In order to scan, a channel configuration must have "include in scan" and "install to flash" options enabled. After changing a channel configuration, the press <Apply Changes>. Before scanning, you must write these records to flash with <Sync Channel Config To Receiver>.



See this video for some help on how to configure P25 Control Channels with the RR Importer.




06-09_1856 Rdio-Scanner: Use with v6.4.1-btt3 for dirwatch support with RID in the filename  (#UNIT in the mask). Use the P25 end-of-call to trigger closing of the wav file.

06-09_1215 Fix MP3 audio file recordings. They were broken in recent releases.

06-08_1435 Rdio-Scanner: Use temp.out file for audio output. Don't rename to TG_XXX_.wav until the file is closed.

06-08_0534 Rdio-Scanner: Fix issue with rdio-scanner on Windows platform.

06-06_1214 Add the ability to change the tree view "systems" path. It no longer has to be located in the Documents folder. "/p25rx/systems/" will be added to the user folder selection.

06-05_1945 Rdio-Scanner: Get analog channels working with Rdio audio output.

06-05_1606 Rdio-Scanner. Don't allow output files with invalid parts of the filename (sys_id, TG, freq). Invalid names halt conversion.

06-05_1259 Rdio-Scanner: better handling of audio output files. This will fix the issue with playing back from the historical dbase.

06-03_1047 Don't require "Enable Audio File Generation" to be checked for "Rdio-Scanner" enable to work.

06-03_1022 Fix an issue with filenames for Rdio-scanner output when running on Windows. Fix a possible issue with <write config> on Windows.

06-02_1609 Change the Rdio-Scanner directory to be Documents/p25rx/0xxx_mac_id/rdio_dirwatch/  This is where all wav files for all systems go. The sys_id will be extracted from the files names. This way you only need to configure a single DirWatch in the server.

06-02_1428 Fix the Rdio-scanner mask string to show HZ instead of MHZ. Java software update only. Not a firmware update.

06-02_1246 Add Rdio-Scanner support via the DirWatch feature.

05-31_1344 Fix an issue with <write config>. This is a java software update only.

05-30_1505 'factory' command resets some parameters that were being preserved across a confguration reset. This was causing some issues. The minimum TG Timeout is now 500ms with a default of 2 seconds. This version will force a configuration reset. Note that the previous version has been running for 30+ hours with no issues.

05-29_0927 Cosmetic change. Quit showing '$' character prompt while scanning.

05-29_0916 Fix issues that would cause a device reset when changing frequencies manually with the arrows and when using <apply changes> on channel configurations.

05-28_2025 Fix crc32 error in multi-block TSBK packets. This is a bug that has only been present for the past week or so.

05-28_1953 This version should fix the memory corruption and HW lockup issues. Please report success / failures. Thank you!!!

 ----------AVOID BETWEEN 05-28_1740 and 05-20_1418 !!!!----------------

05-28_1740  No lock-up or corruption reported with the previous release, but one report of unability to load the previous version during a bootloader recovery. This release is an attempt to fix this issue. This version adds more delays after a <write config> operation and more delay before resetting the device after a firmware update. Please report any issues with this release. (currently testing this). 

05-28_1110 No lock-up or corruption reported with the previous release, but one report of unability to load the previous version during a bootloader recovery. This release is an attempt to fix this issue. Please report any issues with this release. ***Update 1715: No reports of lock-up or memory corruption, but this version is reported to not load after a memory corruption ***

05-27_2146  Previous version unintentionally changed the max linearity gain setting. This version fixes that.

05-27_0702 Reverted firmware code back to 05-20_1107 and then changed the driver code to avoid lock-up.

05-26_1601 There was a report of a flash mem error updating from _0733 to _1230. This version is an attempt to fix this.

05-26_1230 Mulitple users reported issues with the earlier release today. This version is a different approach to try and solve the lock-up issue.  Currently testing this.

05-26_0733 No issues or lockup were experienced with the previous version. This version adds an initialization on application start to check and enable the BOR (brown-out on reset) voltage to be 3V. This may help to mitigate the possibility of flash memory corruption on a reset. Note that this change will not be initiated until after the first time that this firmware is successfuly installed.

05-25_2034 Change all similar code in the driver. (no issues detected after 12 hours)

05-25_2014 Found another potential lock-up with the hw debugger and fixed.

05-25_1737 Reversion in _1342 brought back lockup issue in the hw driver. _1737 should fix that issue.

 05-25_1342 Reverted any code that looked like could be related to the memory corruption bug.

05-24_2146 This should be a fix to an issue that could cause flash memory corruption during a firmware update. When installing this version, please manually start the bootloader by holding the TG button while powering up the device. Continue to hold the button until the leds start to flash rapidly. Then load the firmware.

05-23_1821 This should be a fix for the lock-up issue. Please report if you still have a lockup with this version.

05-22_1224 RR importer strips any '"' quotation characters in the RR csv files.  Been scanning for 8 hours with no lock-up.

05-22_1110 Minor change.

05-22_0914 Lock-up issue -  attempt to fix. Please report lock-ups

05-21_2344 When scanning is enabled, "return_to_control()" function is not called on "loss of signal / end of call due to timeout" and ENDOFCALL event is not sent.

05-21_2229 Allow FREQ CHANGE EVENTS to be shown in the console during scanning.

05-21_2001 Add messages for encrypted  P1 (HDU) and P2 (PTT), show KEY ID, and ALG ID, MANF ID, and Talk group. Another attempt to fix the lock-up issue. Please report any lock-ups.

05-21_1510 Fixed some bugs related to tree view pop-up options. Fixed search functions searching for frequencies that are not 3.6 format or duplicates. When importing or adding frequencies manually, always for 3.6 format for the directory name creation. (don't allow missing trailing zeroes). Add more error messages for  error conditions.

05-20_2049. The lock-up issue still exists. It appears that one source of lock-ups was solved, but there is another. This version has a bunch of error messages that could show up in the console during a lock-up. Please test and let me know if you see an error message during a lock-up. The more people testing, the faster we will get this fixed. Thank you.

05-20_1428 Fix a bug that was causing the Max Linearity option to act differently after first configuring it vs after a power cycle. If you are testing this option, please update to this version.

05-20_1418 After performing a <write config> operation, re-check all configuration ranges/limits.

 ----------AVOID BETWEEN 05-28_1740 and 05-20_1418----------------

05-20_1107 Change new AGC AUTO-GAIN PROFILE "Max Sensitivity" setting to result in the same AGC confuration before the AGC changes were made on 05-19_1205 release. If you started having problems after that version, then this version should fix the issues when configured for the default of "Max Sensitivity".

05-20_1011 Fix issue with wrong TG name showing in the display view in some cases.

05-20_0816 New option for AUTO GAIN settings. There is a new option on the advanced tab for AGC AUTO-GAIN PROFILE:  Max sensitivity or Max Linearity. If you are monitoring good signals, but had trouble with the AUTO GAIN setting working well, then please try changing the setting to "Maximum Linearity". This will limit the maximum gain settings available to the AGC and thus increasing the IIP3 specs (less prone to distortion in the presense of high level signals).

05-20_0730 Bug fix related to scanning P25 trunked systems.

05-20_0540 Another change to the i2c error handler in attempt to resolve lock-up issue. Please report if your device experiences a lock-up with this version. Thanks.

05-20_0504 Another change to the i2c error handler in attempt to resolve lock-up issue. Please report if your device experiences a lock-up with this version. Thanks.

05-19_2048 Revert some changes to i2c and replace. Fix i2c drivers from the MCU manufacturer.

05-19_1718 Another change to i2c code. Results in faster scanning / frequency changes.

05-19_1420 Another change to the i2c error handler. Fix RR import of change to STID type (state) csv files. An extra field was added to the file format.

05-19_1205 Change to AUTO gains. Lower the max gain allowed to the AGC. Always display the current gains in signal insights (don't show AUTO).

05-19_0753 Re-init RF ASIC on any i2c error detection.

05-19_0439 Add i2c error handler in attempt to fix periodic lock-up issue when scanning.

05-18_2240 Add "Set Squelch For Selected" to right-mouse-button pop-up menu.

05-18_2030 Freq <> buttons now work when scanning is disabled.

05-18_1901 Add "Set Selected Gains To Optimal" and "Set Selected Gains To Auto". This allows a single action to auto configure fixed gains for all systems in the tree view channel list.

05-18_1408 Minor change to wording in pop-up menu to indicate that selected items can be entire systems or individual channels.

05-18_1351 New tree-view pop-up menu function added. There is a new option for "Enable Scan/Flash/Control For Selected Channels". This makes a one-step configuration for P25 Control Channels when scanning.

05-17_1900 This version will reset the configuration. The default TG Timout was changed from 1 sec to 2 sec. There is now a reminder to click the right mouse button on the tree view for options.

05-16_2236 Analog modes do not immediately resume scanning when the RF signal drops. They now wait for the "Voice Timeout" period defined on the Talk Group Editor tab. 2) Talk groups are not forced to be re-read after a configuration write with <Write Config>.

05-15_2114 Several more of the tree-view-right-button pop-up menu functions are implemented.

05-15_1704 Faster scanning on lost-signal when Global Settings->Trunked No Voice Timeout is non-zero.

05-15_1626 SCAN button color always correctly reflects the current state of the receiver.

05-15_1603  Add "Remove Selected Systems" to tree pop-up menu (right mouse button).  Fix "Global Settings->No Voice Timeout" for P25 scanning with non-zero value as a means to handle CC switchover. (wasn't working in previous release).



ADV_BTCFG-II-2022-05-05_0641  (Advanced BTCFG-II firmware/Software)

This release supports scanning of trunked and non-trunked systems. Multiple demodulation modes have been added. This includes P25 LSM, P25 CQPSK, TDMA_CC, DMR, NXDN48, NXDN96, NBFM, AM, and AM+AAGC. There is also a new advanced band signal search-function available.


This release is experimental alpha software. It is not complete. Please realize that it will take days or weeks to get the bugs and features working as expected. If you need software that works, please wait for a testing or stable release. Otherwise, please download, test, and report the bugs! Thank you!

After the intial update from older versions of the software, please do this following to add your first control channel:

Adding a control channel
1) Go to the channel config tab
2) Press the <add channel> button and enter the control channel frequency.
3) Select the frequency in the channel list with the mouse
4) On the General tab, select: Enable, Use this channel on power-up, Enter a name for this channel (maps to $SYS_NAME$), select the modulation e.g. P25 LSM, select control channel
5) Press the <apply changes> button. This will write all of the channel configurations to a channel_config file in the p25rx/0x_xxxyourmacidxxx folder.
6) Double click on the channel name in the list. It should start working! Double clicking will set the frequency and modulation based on how you configured it. You can double click before writing to the flash. Before you can scan newly configured channels, you have to press the <Sync Channel Configs To Receiver> button.

Scanning Check List 
1) There must be at least two scannable channels to enable scanning.
2) To be scannable, the channel configuration must have "Enable" and "Include In Scan" checked.
After you make changes to a channel configuration, you must press the <Apply Changes> before selecting another channel in order for the changes to be saved.
3) Before scanning can be used, you must press the <Sync Channel Config To Receiver> after you have made all your changes to the channel configurations. This will write all of the configurations to the receiver flash memory.


Change History

05-05_0641 Fix another minor display view issue while scanning.

05-05_0604 Fix issues with display view in analog modes. Add new "Clear On Analog" options for display view lines.

05-04_1716 Add "Clone Selected" button to channel configuration. This should make it easier to manually add new channels until the CSV import is completed.

05-04_1456 Don't show P25RX (original models) in the device list for now. We don't want to load the wrong firmware!

05-04_1435 On startup or on device discovery, the user selects the device to use.

05-04_1255 Prevent potential java software lock-up when power-cycling the receiver.

05-05_0534 Fix display view issues for analog modes.

05-04_1003 Channel List frequency does not auto-update on frequency change unless the "Update Channel List On Freq Change" option is enabled. This should make it easier to edit the list.

05-03_1425 Fix issue where Bluetooth / Line-out audio would stop after 3 minutes of constantly monitoring a non-p25 system.

05-03_0124 Slower analog scanning.

05-02_1411 More improvements to NBFM audio when the PL tone filter is enabled. Sounds nearly as good as P25 decodes now. (when testing locally).

05-02_1340 Improvements to audio AGC. Improvements to the frequency response for the NBFM demodulation mode when the PL tone filter is enabled.

05-02_1006 Analog audio recordings should use MHz frequency in the filename and not Hz.

05-02_0954 Analog mode (FM/AM) audio is now archived to mp3/wav files the same way digital modes are.

05-02_0800 Changes to PL Tone filter. Better low frequencies and PL tones completely attenuated.

05-01_1138 Remove the enable option for channel config. Add PL Tone Filter to the channel config for blocking frequencies < 500 Hz when using NBFM demod mode.

0430_1550 firmware cleanup related to interrupt handling. Enable squelch slider when doing a signal search.

0430_1048 Don't send squelch command to receiver when squelch slider is locked.

0430_1029 Squelch slider is locked if the squelch for the current channel is overriden. The squelch slider is adjusted to the squelch level of the current channel (if enabled), otherwise the last user squelch setting will be used.

0430_0953 Fix issue found with previous release _0926

0430_0926  Don't allow squelch break for first 256 IQ samples after a frequency change. This should mitigate issues with false signal detect for analog channels.

04-29_2208 Added Font and Color buttons to the console window.

04-29_1853 Reduce noise at beginning of squelch break a bit more. Working good for strong signals. Haven't tested weak signals yet.

04-29_1815 Much faster analog scanning. Possible fix for lock-up during scanning with some configurations. Less noise at the beginning of analog squelch break.

04-29_1627 Don't blank display in FM and AM demod modes

04-29_1415 When double-clicking on a channel in the channel list, scanning is now disabled.

04-29_1011 This release should fix the small "squelch tail" issue for the analog modes. ( short period of noise at the end of call for analog demodulation modes).

04-28_0836 When pressing <find optimal fixed gains>, scanning mode is turned off, the currently highlighted channel frequency is selected before the find-gains algorithm is executed.

04-28_1910 Force re-read of talk groups after importing talk groups.

04-28_1448 Improved P25 P1/P2 scanning trunked.

04-28_1059 DMR Con+ and DMR conventional is now working well with the new software. You can define multiple systems. All system channel configurations need to have the same DMR SYS ID (defined in the DMR Config tab). Scanning is not supported yet for DMR trunked, but should work for conventional channels.

04-28_0428 Delay logging of analog modes for a few audio buffers worth to allow the rssi value to settle.

04-28_0327 Faster AM demod, LSM detection code.  (fast_cabsf)

04-27_2251 Improved signal search. Newly added channels use the current modulation, squelch level. The signal search uses the newly improved rssi / squelch functions.

04-27_2009 Add console deocders back in.

04_27_1857 Remove console decoders until a related bug can be found.

04_27_1644 Wait for min count of samples affter a frequency change before calculating rssi for squelch function.

04_27_1553 Fix issue with ACARS decode

04_27_1539 Fix issue with IQ plot / AM demod.

04_27_1519 Fix issue with the last P25 channel entry when scanning.

04_27_1506 More stable rssi calculations (RMS). Improved scanning. Please test and report.

04_27_0811 Disable the P25 Auto Detect LSM option for now. Need to fix this.

04_26_1808 Scanning P25 trunked systems / analog NBFM working well. This version only prints rssi when squelch breaks for an analog signal once instead of continual output.

04-26_1705 Another attempt to improve scanning of P25 trunked systems.

04-26_0435 Revert back to _0435 this morning. Will work out issues with newer versions tomorrow.

04-26_1428 More changes to scanning P25 trunked.

04-26_1403 For scanned P25 trunked, fix issue related no-signal when not on the control channel.

04-26_1337 Imemediately skip scanned P25 trunked system if signal level falls below channel config squelch level. Show squelch and tsbk count for scanning trunked and analog systems in the console. (debugging)

04-26_1152 Much improved P25 trunk scanning. Adding debugging message to console when scanning P25 trunked systems to show the number of control channel TSBK messages received during the short dwell time. The channel configuration squelch is now used (if enabled) for P25 trunked systems to determine when the signal has been lost  ( < squelch level).

04-26_1033 Don't re-read talk groups when doing a <write config> operation. This allows for much faster saving of configuration changes.

04-26_0953 Talk group descriptions use the full 31 characters for logging / display view. Signal search progress bar is 100% at the end of the search. The SCAN state (enabled/disabled) is saved when doing a <write config> and will be restored on power-up. This allows scanning to be used stand-alone.

04-26_0435 Use the first channel configuration in the list if none of the configurations have "Use this channel on power-up" selected.

04-26_0333 Fixed a bug that caused the first channel configuration settings to not be used.

04-26_0310 Fix issue causing incorrect rf gains to be used in some circumstances.

04-25_2136 Fix Display View blanking on P2 transmissions.

04-25_1938 Add "Find Optimal Fixed Gains" in the channel config. Use this while scanning is turned off and an idle control channel is being monitored. Once the fixed gains are found, then <apply changes> and <sync channel config>

04-25_1719  When you update to this version, it will automatically enable and set the squelch for all channels the first time you run it. You should press the <Sync To Receiver> button to send these changes to the device. You can change them manually after that.

04-25_1611  Fix the AM demod. It has been broken since yesterday sometime (or earlier). Fix Write Configuration. Added "Trunk No Voice Timeout" option under channel_config->global_settings tab.

04-25_1433 Put the RF AGC changes for the day back in (wasn't the issue). Revert a change to rssi function.

04-25_1418 Revert most changes back to what it was in 04-25_0918. The AGC changes were not working for everyone.

04-25_1313 Previous release was not good. Revert some things and change some things related to RF AGC / gain settings.

04-25_1205 More imrpovements to RF AGC. Signal search doesn't override advanced gain settings. AUTO gains now work well for signal search.

04-25_1130 Improved performance for AUTO RF gains. Works good when scanning as well. Try setting everything to AUTO.

04-25_0918 Use the same get_rssi() function call for TG logging as is used for detecting squelch break.

04-25_0841 minor change

04-25_0751 Fix issue with NBFM / AM breaking squelch (when shouldn't) and being logged continuously.

04-24_2252 Fix issue with P25 P2 showing NA for $TG_ID$ and $TG_NAME$ in logs / display. (verified fixed)

04-24_2057 3rd try to fix P25 P2 issue when scanning. Not verified, but this should fix it. (verified fixed!)

04-24_1834 Fixed bug related to squelch. If squelch is is not overriden in the general channel configuration, then the current global squelch setting will be used.

04-24_1213 Second try to fix the P25 P2 not working when scanning is enabled. (not verified fix).

04-24_0859 faster scanning of non-trunked. Add label displaying double-click to change frequency/mode.

04-24_0753 Fix P25 P2 when scanning!  Was not working. (waiting for traffic to verify).

04-24_0703 Fix issue with i2s_error showing up in console. Minor change to display view for analog modes.

 04-23_1443 Fixed bugs related to defining extra trunked and non-trunked channels for scanning.

04-23_1211 - initial experimental release of ADV-BTCFG-II