There have been some changes to the DMR node recently.
This version changes only those related to the recently changed DMR node. If you normally use Version 1.0 or Version 0.95, no upgrade is required.
DVPi uses the USRP Client protocol. When you install and use DVSwitch, you must read and comply with the license that appears. The user is responsible for the license for the use of DVPi.
2.What was added in Version 1.03 (from Version 1.0)
-To reduce user confusion, the MMDVM password change function has been removed.
If the DMR's BM password has been changed, it can be changed on the DVSwitch Settings Change screen.
- It is not a function you use. Changed the TX/RX frequency of MMDVM to the same frequency. This is because the new DMR rule may not work if the frequency is different.
3.How to Install
There is a detailed explanation about more detailed installation method and H/W configuration on my blog.
The following explains how to download and configure to use DVPi. Please refer to another post for more details.
3.1 Download
Download the dvpi_103.zip and dvpimanager_103.zip files from the download link.
Unzip the downloaded files (dvpi_103.zip, dvpimanager_103.zip)
3.2 Write the dvpi_103.img file to the SD card.
Formatting the SD card is not mandatory. When I apply the image file to the SD card, sometimes an error occurs, so I format it first.
Apply the dvpi_103.img file to the SD card with Win32Disk Imager.
After completion, remove the SD card and insert it into the Raspberry Pi of the DVPi.
Connect power to the DVPi. (power on DVPi)
Sometimes, depending on the LCD, the screen is turned upside down, You can reverse the top and bottom of the screen in DVPi Manager.
At the time of the first boot, because there is no setting, it is not possible to log in.
3.3 Find DVPi IP Address
The Raspberry Pi image used in DVPi is automatically assigned an IP (using DHCP Server).
You can use the DVPi Manager to find out the IP of the DVPi.
Run DVPi Manager -> Click the 'Find DVPi' Button
Click the 'Find' Button
(If multiple LAN cards are installed in your computer, you must select the IP address of your computer before clicking the 'Find' button)
I have 3 DVPi and they are all found. Once you have found the IP of the DVPi you can use ssh.
DVPi can be accessed with ssh id: pi, password: dvpi
3.4 Installing DVSwitch and Setting up DVSwitch
(DVSwitch installation is only necessary to embed DVSwitch into DVPi)
Execute DVPi Manager -> Input DVPi IP Address -> Click the 'Connect' Button
Click the 'Easy setup of installed DV Switch'
To embed DVSwitch into DVPi, you only need to execute 4 commands. The four commands are explained in the center of the screen.
Rutn the SSH Client as putty
Login ID : pi, Passwor d: dvpi
Execute the commands described in DVPi Manager one by one.
It is convenient to use copy and paste.
In the case of putty, you can copy and paste multiple lines at once.
Execute 'sudo apt-get install -y dvswitch'
If all 4 commands were executed, your DVPi would have DVSwitch installed.
Setting up DVSwitch is easy with just a few entries.
Enter your callsign and DMR ID,
Unique ID is your Hotspot number that is unique. Any number you don't use is fine.
Choose Brand Meister Host, It is recommended to choose a server in your country.
(The US1 server that was set as the default until DVPi Version 1.0 is no longer operated)
If you have changed your password in Brand Meister, you must change the password field to your password.
The BM password can be changed here.
Enter the changed password.
Enter the Location field, the rest is not required, but it is strongly recommended to enter latitude and longitude.
Click the 'Apply All Setting' button.
The screen below is displayed and the operation takes about 1 minute.
When all settings are completed, the following message is displayed.
After rebooting DVPi, you should be connected to the DVSwitch server as shown below.
You can also check your Hotspot list if you log in to Brand Meister. I set the unique number 37 and it was displayed as follows.
3.5 flip the screen upside down
(This is only necessary if the screen is upside down like me. If your screen appears normally, this step is not necessary.)
Click the 'DVPi Basic Setup'
Click the '3.5 LCD 180 (upside down)' Button click
After rebooting, it will display normally as shown below.
3.6 Using DVPi
(For detailed usage and hardware configuration, please refer to other posts)
I will configure the DVPi to Dual Mode. Since it's in Single Mode now, only VFOA works.
Since VFOB copies the settings of VFOA as it is, it is necessary to test whether VFOA works well.
Change TG
Reception is good. You have to test the transmission. If you are using D-Star, I recommend testing up to D-Star.
3.7 Dual Mode Settings
Connect to DVPi via SSH Client
Execute the setdvs2.sh command.
(./setdvs2.sh new unique number, The unique number is the new Hotspot number.
ex ./setdvs2.sh 38)
You can ignore the following error messages during script execution. (This is because it is a command to delete if it is already installed)
When all execution is completed, it asks if you want to reboot as follows.
No reboot required. This is because DVPi Manager will cause the DVPi to reboot.
Run DVPI manager
Click the 'DVPi Basic Setup'
After selecting Dual VFO as shown below, click the 'Apply All Setting' button.
(You may select 'Use Voice' if you wish to use the voice guidance function of DVPi)
When all settings are completed, DVPi automatically reboots.
After rebooting, DVPi operates in Dual Mode.
How to use DVPi's Dual Mode is described in detail in another post.
I tried changing the TG of VFO B.
3.8 DVPi's Hardware Settings
DVPi does not require any hardware other than the Raspberry Pi, sound card and LCD.
But for convenience, you can add things like buttons that you need.
How to add hardware to the DVPi is detailed in another post.
Run DVPi Manager
Click the 'Settings to use rotary encoder, PTT, and VOX functions' Button
In my case, I chose all of the below because I had a rotary encoder and buttons.
(If the direction of the rotary encoder is opposite, the numbers in the red square box below are interchanged)
When the activation selection for hardware is finished, click the 'Apply All Setting' button.
If the DVPi is equipped with a rotary encoder, it is possible to check who is in the TG as shown below.
4. conclusion
DVPi has quite a few features. In this post, I only set the settings for some of the features that are absolutely necessary for me.
Version 1.0 and Version 0.95 are the same. If you are using Version 0.95 you do not need to update to Version 1.0.
DVPiManager has some features added. If you want to use features added in Versio 1.0, you only need to download dvpimanager.
DVPi uses the USRP Client protocol. When you install and use DVSwitch, you must read and comply with the license that appears. The user is responsible for the license for the use of DVPi.
You can use D-Star only by checking whether to 'Enable D-Star' in DVPi Manager.
Touch the 'More' button -> Touch the 'Mode (displayed DMR or DStar)' Button
The video below shows the activation of D-Star during the initial installation of DVPi.
If you are already using D-Star, you will not be able to use it on two at the same time. If you want to use D-Star in DVPi, you need to log off in another device. If anyone has solved this problem, please tell me.
2.2 Dual Mode
You can use two VFOs in the same way as a conventional VHF/UHF transceiver.
You can use two DVSwitch servers or DVLink. Or, if you operate DVPi as Standalone, you can create session 2 by copying the existing installed DVSwitch in DVPi.
If you are using DVPi stand alone, just run the setdvs2.sh command to copy the DVSwitch installed in DVPi and add a new session.
Unique ID values must be entered differently from existing values.
Example)
Session 1 Unique ID is 51
Sesssion 2 Unique ID is 58
In order to distinguish Hotspot in DMR network, you must use different Unique ID.
Select Dual VFO in DVPi Manager.
It will operate in Dual Mode as shown below.
Important Point: If you use DVPi stand alone, D-Star only works on VFO A.
The video below shows how to create Session 2 by copying the DVSwitch installed in DVPi and operate DVPi as Dual Mode.
2.3 Function Switch 2
Function Switch2 can be used as Mode change or VFO change according to your selection.
Example of using Function Switch2 as a mode change switch
3.conclusion
The host.brandmeister.network server is not serviced, and the entire Talkgroup status can no longer be retrieved. So, the underline of DVPi's Talkgroup Button is disabled.
I'm trying to restore that functionality in Version 0.9. If we connect to brandmester.network directly, it will generate quite a lot of traffic. This is a problem for us as well, but it could also cause problems on the brandmeister.network server.
So I am thinking of building a separate server to minimize traffic.
Until version 1.0, we plan to stabilize without adding features.
Thank you for using and testing.
We are always grateful to the DVSwitch team for implementing most of the features.
The FT8 protocol should be completed decoding and ready for next transmission within 15 seconds. The encoding for FT8 transmission is very simple and time consuming, so Ignore it.
For normal communication, it is still necessary to reduce the time by about 2 to 3 seconds.
2. Parallel processing using DMA and FPU for speed improvement
The experimental conditions are the same as before.
2.1 Structure for FT8 decoding
Approximately eight steps are required to decode FT8 in Wsjt-X 2.0. I divided the time consuming part into four large parts.
Power Data (frequency domain data per time unit)
The FT8 requires 12.65sec of transmission time, but I added 900msec to account for the time error. (This time may change later)
After receiving the data for about 13.5 seconds, the FFT process is performed.
It is the longest part of decoding the FT8 signal. (3.5sec)
I changed the structure so that I could process the FFT together while receiving the signal.
Receiving data is handled by DMA, while Main Core is processing FFT while DMA is receiving data. Note that the FFT processing must end within the DMA 1 cycle. To understand Cortex-M's events, handlers, and pending times, I recommend the following book: https://www.amazon.com/Definitive-Guide-Cortex-Cortex-M0-Processors/dp/0128032774
This method reduces most of the time required for FFT.
3. Hash callsign (Recent callsign)
In Wsjt-x 2.0, a non-standard callsign was added to extend the FT8 protocol. This is the best way to add functionality without changing the length of the protocol.
non-standard callsign has 58bit Length 1234567890123456789012345678901234567890123456789012345678 1111111111111111111111111111111111111111111111111111111111 => Dec 288230376151711743
Non-standard callsign can only use the following 38 characters.
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ/
38^11 = 238572050223552512
58bit can transmit up to 11 characters.
Below is the processing structure of Non standard Callsign added in Wsjt-x 2.0.
In this experiment, I added the above structure to make it compatible with Wsjt-x 2.0
4. Experiment
The experimental conditions are the same as before.
I used one UART as the MCU's output device for debugging.
4.1 Processing speed improvement test
Ready
Start Receive and FFT -> Calculate power
In the screen below, each time two "." Are output, the FFT operation is performed by parallel processing.
complete decoding
620ms + 887ms = 1507msec
Almost came close to the goal. But there is a problem.
The less the number of decoded messages, the longer it takes.
Up to 1 sec can be increased.
That is, the time to decode the message is variable. 800msec ~ 1500msec
4.2 non standard callsign test
non standard protocol ('CQ OZ/LA6OP') is decode and displayed normally on the screen below.
'OZ / LA6OP' will be stored in the hash10, has12, and hash22 repositories respectively.
The stored hash code is being converted normally.
(IZ4... <OZ/LA6OP> >
Below is another example of a non standard call
Below is another example of a non standard call
Test Video for this article
5. Conclusion
Perhaps the next experiment may be delayed.
My main project (for business) has started and I am going to be very busy with this semester class lecture.
My seasonal courses are matlab related classes. Maybe I could use this project for my class.
Whenever it is time, I will worry for improvement.
FT8 (Wsjt-x 2.0) protocol decoding in Cortex-M for experiment
I implemented FT8 signal decoding on the STM32F746G-Disc board for Expermental.
I want to test whether Cortex-M based FT8 communication is possible. I used Wsjt-x 2.0 and some source code to enable FT8 decoding on the Cortex-M7 base.
I received the FT8 signal directly to the microphones (mems) on the STM32F746G-Disc board.
1.Implementation and experiment preparation
I have used web sdr for the experiment and can do real time testing.
This version is a development version and may be unstable, and some of the features included in this version may be removed from V1.0, Stabilized version V0.40 has been released, and stabilized version is posted separately.
I would appreciate it if you test and give feedback.
If there is no problem after 1 week ~ 2 weeks test, version name will be changed to stable version.
If you want a stable version, please use the link below.