MMDVM .96″ OLED Now Works!

It has really been bugging me. I’ve never been able to get a 0.96″ OLED to work on my Pi-star hotspots. The 1.3″ works okay. Why not the 0.96″. Here’s why:

The 1.3″ screen uses the SSD1306 controller. Adafruit uses this controller on all their OLED screens. The (cheap) Chineese OLED screens use an older SSD1106 controller.

Raspberry Pi uses the Adafruit OLED driver software, so Pi-star does also. Naturally Adafruit has no desire to support the SSD1106 as they don’t sell anything that uses it. In other words, the standard Pi-star distibution OLED driver doesn’t work with the SSD1106 .96″ displays.

What’s different? The SSD1106 has a slightly smaller refresh RAM array than the SSD1306. That causes each line of pixels to be off by 2 hence small valid text ends up looking like garbage. The graphics still look okay.

The solution is to replace the Adafruit driver with a modified version that supports the SSD1106. The driver is located at /usr/local/lib/ArduiPi_OLED.so.1. I have built a replacement driver with the SSD1106 support.

  1. SSH into your Pi-Star (can be done from the Expert screen).
  2. Switch to root with “sudo su”.
  3. Make the disk RW with the command “rpi-rw”
  4. Move to the directory where the driver is installed with “cd /usr/local/lib”.
  5. Copy the driver file from HamOperator with the command:
    “wget http://HamOperator.com/files/libArduiPi_OLED.so.1.0”.
  6. Change the permissions on the driver with the command:
    “chmod 777 /usr/local/lib/ArduiPi_OLED.so.1.0”.
    (I don’t know why ‘777’ ‘755’ should work but the original was ‘777’.
  7. Reboot
  8. The OLED type needs to be ‘3’ for the 0.96 display and ‘6’ for the 1.3″ display (set in Expert->MMDVM Host). The OLED must also be enabled from the configuration page

Thanks to Charles for doing the driver work!

If you want to download the file directly, you can do that here: libArduiPi_OLED.so.1.0

 




YSF WiRES-X Unintended Node Switching

A problem exits with YSF/MMDVM hotspots bridging to WiRES-X rooms. Here’s what happens.

A user has a hotspot and accesses it using a Fusion HT. They use the WiRES-X control mode to change the hotspot to different YSF Reflectors. Let’s say the user wants to access MNWis (Room #21,493):

  • They enter the number of the YSF Reflector, “US MNWis 21493”, which is 37,624. The hotspot switches to US MNWis 21493 which is bridged to WiRES-X Room # 21,493.
  • The user leaves their radio in the WiRES-X control mode. They hear stations, but when they talk, nobody answers and nobody is talking.

Here’s what happened: When they keyed up to transmit, their radio sent a command to switch to Room #37,624. The Wires-X node that was previously connected to #21,493 now connects to #37,624 which belongs to a very nice gentleman in France.

How does this happen?

The Fusion transmitted data includes callsign fields CSD1, CSD2, and others. We’re interested in CSD1. This 10-byte field contains two items: The room number of the connection and; The TxID or DP-ID of the radio. A typical CSD1 looks like 21493F0yxh where 21493 is the room number and F0yxh is the DP-ID. The ‘21493’ in this field will cause a Wires-X node to switch to that room. 

When the radio IS NOT in Wires-X control mode, the CSD1 field will be: ‘*****F0yxh’ and no switch will be made.

Bottom line:

DON’T USE WiRES-X control mode to talk through a hotspot or MMDVM!

Workarounds and fixes: (Updated 23-Aug-2019)

Node operators who are experiencing this problem should use the WiRES-X block feature to prevent the node from switching to the room that has the YSF reflector number.

For example: Assume that our node connects to MNWis, Room # 21,493. Our node also provides bridging to “YSF MNWis 21493” which is # 37,624.

  • In the View->Node-Info(N) window press “Add”.
  • In the “Input ID” dialog box enter the YSF reflector number. In our example this is “37624”.
  • Press “OK” then “Close”.
  • When a station using the YSF bridge still has WiRES-X control mode enabled accesses the node, the command to switch rooms will be rejected by the WiRES-X software. The software will indicate a rejected attempt to switch rooms.

As an alternative, set the node so that connection changes are not allowed.

  • File->Settings->Call Settings->Uncheck “Round Room Connection”.
  • Un check “Accept calls while in Round Room QSO.
  • Check “Return to Room”
  • Fill in the WiRES-X room number. Example: 21493.

YSF server side solutions:

I maintain a version of YSF Reflector that has filters to prevent hotspots causing problems with WiRES-X nodes. My first step is to drop all packets that contain an incorrect WiREX-X room number. Eventually I plan to replace the first 5 bytes of CSD1 with ‘*****’. This last step is difficult to do because it requires the reflector to decode the data, modify it, then recompute the CRC. This also involves working with the interleaving and forward error correction. It is obviously easier to just drop the packets, but that may confuse people on the YSF side since nobody on the WiRES-X side will hear them.

If you are interested in running the enhanced YSF Reflector software that will fix this problem at some point, please contact me privately.

73,

Chris, K9EQ




DV4mini Fusion Monitor Program

This program uses a DV4mini to monitor over-the-air Fusion signals and display the meta data (does not display voice, pictures, messages, etc.)

This version of the program will output a record when a station keys up and then another record when the station unkeys. I’ve done this so that the user doesn’t get overwhelmed with all of the meta data that is produced.

You’ll need to review the Yaesu Digital Communication Standards document to understand what the different fields mean.

Computer Requirements: Windows 7 or later

Program Installation

1. Download the program from this link: DV4mini YSFMonitor.
2. Create a directory on your Windows PC and unzip this folder into that directory.
3. Download and install the Microsoft Visual Studio 2017 redistributable for your machine

Running the Program

1. Open a command box (type cmd) and change to the directory in which you installed the software.
2. Check the program: Type VSFRX.exe -v. It should respond with the version number.
3. User Device Manager to determine the com port of your DV4mini.
4. Enter frequency and com port as follows: YSFRX.exe com7 444525000
Note that the frequency must be entered as 9 digits.
5. A log file will be created in the same directory as the program.

Output Example from the 30-Apr-2018 Net
M: 2018-05-01 01:01:30.338 DV4mini version: V01.77
M: 2018-05-01 01:01:30.338 YSFRX-20180430 K9EQ starting
M: 2018-05-01 01:01:33.646
M: 2018-05-01 01:01:33.646 FICH: FI: TC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 6 SQ: 0 SC: 0
M: 2018-05-01 01:01:33.646 Terminator, CSD1
M: 2018-05-01 01:01:33.646 0000: 2A 2A 2A 2A 2A 48 35 35 37 56 57 38 4F 4A 2D 20 20 20 20 20 ******H557VW8OJ- *
M: 2018-05-01 01:01:33.646 Terminator, CSD2
M: 2018-05-01 01:01:33.646 0000: 4B 39 45 51 20 20 20 20 20 20 57 38 4F 4A 20 20 20 20 20 20 *K9EQ W8OJ *
M: 2018-05-01 01:01:36.748
M: 2018-05-01 01:01:36.748 FICH: FI: HC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:01:36.748 Header, CSD1
M: 2018-05-01 01:01:36.748 0000: 2A 2A 2A 2A 2A 46 30 58 49 4B 4B 44 38 47 52 4E 20 20 20 20 ******F0XIKKD8GRN *
M: 2018-05-01 01:01:36.748 Header, CSD2
M: 2018-05-01 01:01:36.748 0000: 4B 39 45 51 20 20 20 20 20 20 4B 44 38 46 4A 48 20 20 20 20 *K9EQ KD8FJH *
M: 2018-05-01 01:01:43.742
M: 2018-05-01 01:01:43.742 FICH: FI: TC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:01:43.743 Terminator, CSD1
M: 2018-05-01 01:01:43.744 0000: 2A 2A 2A 2A 2A 46 30 58 49 4B 4B 44 38 47 52 4E 20 20 20 20 ******F0XIKKD8GRN *
M: 2018-05-01 01:01:43.745 Terminator, CSD2
M: 2018-05-01 01:01:43.745 0000: 4B 39 45 51 20 20 20 20 20 20 4B 44 38 46 4A 48 20 20 20 20 *K9EQ KD8FJH *
M: 2018-05-01 01:01:48.921
M: 2018-05-01 01:01:48.921 FICH: FI: HC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:01:48.921 Header, CSD1
M: 2018-05-01 01:01:48.921 0000: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 57 36 5A 44 52 20 20 20 20 20 ***********W6ZDR *
M: 2018-05-01 01:01:48.921 Header, CSD2
M: 2018-05-01 01:01:48.921 0000: 4B 39 45 51 20 20 20 20 20 20 44 55 31 5A 44 52 20 20 20 20 *K9EQ DU1ZDR *
M: 2018-05-01 01:01:59.513
M: 2018-05-01 01:01:59.513 FICH: FI: HC, DT: VD1, BN: 0, BT: 1, FN: 2, FT: 6 SQ: 0 SC: 0
M: 2018-05-01 01:02:00.317
M: 2018-05-01 01:02:00.317 FICH: FI: TC, DT: VD2, BN: 3, BT: 1, FN: 3, FT: 3 SQ: 0 SC: 27
M: 2018-05-01 01:02:01.717
M: 2018-05-01 01:02:01.717 FICH: FI: TC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:02:01.717 Terminator, CSD1
M: 2018-05-01 01:02:01.717 0000: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 57 36 5A 44 52 20 20 20 20 20 ***********W6ZDR *
M: 2018-05-01 01:02:01.717 Terminator, CSD2
M: 2018-05-01 01:02:01.717 0000: 4B 39 45 51 20 20 20 20 20 20 44 55 31 5A 44 52 20 20 20 20 *K9EQ DU1ZDR *
M: 2018-05-01 01:02:02.483
M: 2018-05-01 01:02:02.483 FICH: FI: HC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:02:04.203
M: 2018-05-01 01:02:04.203 FICH: FI: TC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:02:04.203 Terminator, CSD1
M: 2018-05-01 01:02:04.203 0000: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 4B 44 38 41 47 4F 4A 4F 48 4E ***********KD8AGOJOHN*
M: 2018-05-01 01:02:04.203 Terminator, CSD2
M: 2018-05-01 01:02:04.203 0000: 4B 39 45 51 20 20 20 20 20 20 41 44 30 4D 49 20 20 20 20 20 *K9EQ AD0MI *
M: 2018-05-01 01:02:09.834
M: 2018-05-01 01:02:09.834 FICH: FI: HC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 6 SQ: 0 SC: 0
M: 2018-05-01 01:02:09.834 Header, CSD1
M: 2018-05-01 01:02:09.834 0000: 32 31 34 39 33 47 30 32 7A 42 41 42 38 52 4C 2D 54 4F 4D 20 *21493G02zBAB8RL-TOM *
M: 2018-05-01 01:02:09.834 Header, CSD2
M: 2018-05-01 01:02:09.834 0000: 4B 39 45 51 20 20 20 20 20 20 41 42 38 52 4C 20 20 20 20 20 *K9EQ AB8RL *
M: 2018-05-01 01:02:19.424
M: 2018-05-01 01:02:19.424 FICH: FI: TC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 6 SQ: 0 SC: 0
M: 2018-05-01 01:02:19.424 Terminator, CSD1
M: 2018-05-01 01:02:19.424 0000: 32 31 34 39 33 47 30 32 7A 42 41 42 38 52 4C 2D 54 4F 4D 20 *21493G02zBAB8RL-TOM *
M: 2018-05-01 01:02:19.424 Terminator, CSD2
M: 2018-05-01 01:02:19.424 0000: 4B 39 45 51 20 20 20 20 20 20 41 42 38 52 4C 20 20 20 20 20 *K9EQ AB8RL *
M: 2018-05-01 01:02:23.581
M: 2018-05-01 01:02:23.581 FICH: FI: HC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 6 SQ: 0 SC: 0
M: 2018-05-01 01:02:23.583 Header, CSD1
M: 2018-05-01 01:02:23.584 0000: 32 31 34 39 33 45 30 50 71 61 4B 46 38 50 4D 2F 41 4C 41 4E *21493E0PqaKF8PM/ALAN*
M: 2018-05-01 01:02:23.584 Header, CSD2
M: 2018-05-01 01:02:23.584 0000: 4B 39 45 51 20 20 20 20 20 20 4B 46 38 50 4D 20 20 20 20 20 *K9EQ KF8PM *
M: 2018-05-01 01:02:37.296
M: 2018-05-01 01:02:37.296 FICH: FI: TC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:02:37.296 Terminator, CSD1
M: 2018-05-01 01:02:37.298 0000: 32 31 34 39 33 45 30 50 71 61 4B 46 38 50 4D 2F 41 4C 41 4E *21493E0PqaKF8PM/ALAN*
M: 2018-05-01 01:02:37.298 Terminator, CSD2
M: 2018-05-01 01:02:37.299 0000: 4B 39 45 51 20 20 20 20 20 20 4B 46 38 50 4D 20 20 20 20 20 *K9EQ KF8PM *
M: 2018-05-01 01:02:51.164
M: 2018-05-01 01:02:51.165 FICH: FI: HC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:02:51.166 Header, CSD1
M: 2018-05-01 01:02:51.167 0000: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 57 35 4C 4E 41 2D 4B 45 56 4E ***********W5LNA-KEVN*
M: 2018-05-01 01:02:51.168 Header, CSD2
M: 2018-05-01 01:02:51.169 0000: 4B 39 45 51 20 20 20 20 20 20 57 30 4D 44 54 20 20 20 20 20 *K9EQ W0MDT *
M: 2018-05-01 01:02:57.665
M: 2018-05-01 01:02:57.665 FICH: FI: TC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:02:57.667 Terminator, CSD1
M: 2018-05-01 01:02:57.668 0000: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 57 35 4C 4E 41 2D 4B 45 56 4E ***********W5LNA-KEVN*
M: 2018-05-01 01:02:57.668 Terminator, CSD2
M: 2018-05-01 01:02:57.669 0000: 4B 39 45 51 20 20 20 20 20 20 57 30 4D 44 54 20 20 20 20 20 *K9EQ W0MDT *
M: 2018-05-01 01:03:00.908
M: 2018-05-01 01:03:00.908 FICH: FI: HC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:03:00.908 Header, CSD1
M: 2018-05-01 01:03:00.908 0000: 2A 2A 2A 2A 2A 45 35 67 47 79 4B 31 4B 43 2D 50 4F 52 54 32 ******E5gGyK1KC-PORT2*
M: 2018-05-01 01:03:00.908 Header, CSD2
M: 2018-05-01 01:03:00.908 0000: 4B 39 45 51 20 20 20 20 20 20 4B 31 4B 43 20 20 20 20 20 20 *K9EQ K1KC *
M: 2018-05-01 01:03:07.414
M: 2018-05-01 01:03:07.414 FICH: FI: TC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:03:07.414 Terminator, CSD1
M: 2018-05-01 01:03:07.414 0000: 2A 2A 2A 2A 2A 45 35 67 47 79 4B 31 4B 43 2D 50 4F 52 54 32 ******E5gGyK1KC-PORT2*
M: 2018-05-01 01:03:07.414 Terminator, CSD2
M: 2018-05-01 01:03:07.414 0000: 4B 39 45 51 20 20 20 20 20 20 4B 31 4B 43 20 20 20 20 20 20 *K9EQ K1KC *
M: 2018-05-01 01:03:29.710
M: 2018-05-01 01:03:29.710 FICH: FI: HC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:03:29.710 Header, CSD1
M: 2018-05-01 01:03:29.710 0000: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 4B 30 4F 52 4B 2D 43 48 55 4B ***********K0ORK-CHUK*
M: 2018-05-01 01:03:29.710 Header, CSD2
M: 2018-05-01 01:03:29.710 0000: 4B 39 45 51 20 20 20 20 20 20 57 30 4D 44 54 20 20 20 20 20 *K9EQ W0MDT *
M: 2018-05-01 01:03:37.764 TIMEOUT
M: 2018-05-01 01:04:24.355 TIMEOUT
M: 2018-05-01 01:04:44.738 TIMEOUT
M: 2018-05-01 01:04:53.392
M: 2018-05-01 01:04:53.392 FICH: FI: TC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:04:53.394 Terminator, CSD1
M: 2018-05-01 01:04:53.394 0000: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 4B 30 4F 52 4B 2D 43 48 55 4B ***********K0ORK-CHUK*
M: 2018-05-01 01:04:53.395 Terminator, CSD2
M: 2018-05-01 01:04:53.395 0000: 4B 39 45 51 20 20 20 20 20 20 57 30 4D 44 54 20 20 20 20 20 *K9EQ W0MDT *
M: 2018-05-01 01:04:55.917
M: 2018-05-01 01:04:55.917 FICH: FI: HC, DT: VD2, BN: 0, BT: 0, FN: 0, FT: 7 SQ: 0 SC: 0
M: 2018-05-01 01:04:55.917 Header, CSD1
M: 2018-05-01 01:04:55.917 0000: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 4B 47 34 53 42 47 2D 44 45 4E ***********KG4SBG-DEN*
M: 2018-05-01 01:04:55.917 Header, CSD2
M: 2018-05-01 01:04:55.917 0000: 4B 39 45 51 20 20 20 20 20 20 57 38 4F 4A 20 20 20 20 20 20 *K9EQ W8OJ *




MNWis Available on Hotspots

The MNWIS Room is on FCS003-23.

We are also experimenting with a YSF reflector. Currently it is only running during the net. It is located at “US MNWis 21493”. Give it a try

MNWis has been available via hotspots since 31 July, 2016




Mobile WiRES-X Nodes

FT2D, FTM-100, and FTM-400 Can Now Be Used As Mobile Node

Yaesu has now released software and firmware that enables the FT2D, FTM-100 and FTM-400 to be used as a WiRES-X mobile node. You’ll need to update the radio’s firmware and install WiRES-X software version 1.510 from HRI-200 and radio downloads at Yaesu.com. Instructions are available at the download site.

A document listing the current  firmware and software for Fusion rados is on the Fusion Help page here.

Stop by for the MNWis Monday night Fusion Technical Net for more information.