Page 2 of 2

Re: Linux...?

Posted: Sun Feb 16, 2020 6:20 am
by VK3KYY
The upload protocol for the codeplug is far easier than the firmware uploader, but I'm not a python programmer, so I'll need to leave it to someone who is skilled in python to write the code to upload the codeplug into the radio via usb serial.

For anyone who want to write the Python, they should look in the CPS source code, specifically here,

https://github.com/rogerclarkmelbourne/ ... E_CODEPLUG

To see how it works,

It just uploads 3 blocks of data for the codeplug (2 in the EEPROM and 1 in the Flash) and some separate blocks for the boot image and the boot melody (which go into the Flash)

Re: Linux...?

Posted: Fri Apr 03, 2020 11:48 am
by OH1E
i have no luck with mono in OSX (using catalina only 64bit os)

Code: Select all

% mono OpenGD77CPS.exe         
WARNING: The Carbon driver has not been ported to 64bits, and very few parts of Windows.Forms will work properly, or at all

Unhandled Exception:
System.TypeInitializationException: The type initializer for 'System.Windows.Forms.WindowsFormsSynchronizationContext' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Windows.Forms.ThemeEngine' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Drawing.GDIPlus' threw an exception. ---> System.DllNotFoundException: libgdiplus.dylib assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) System.Drawing.GDIPlus.GdiplusStartup(ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x000b0] in <786918e8ba16467bb578a6887297f3a4>:0 
   --- End of inner exception stack trace ---
  at System.Drawing.StringFormat..ctor (System.Drawing.StringFormatFlags options, System.Int32 language) [0x00011] in <786918e8ba16467bb578a6887297f3a4>:0 
  at System.Drawing.StringFormat..ctor () [0x00000] in <786918e8ba16467bb578a6887297f3a4>:0 
  at (wrapper remoting-invoke-with-check) System.Drawing.StringFormat..ctor()
  at System.Windows.Forms.ThemeWin32Classic.ResetDefaults () [0x0001f] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeVisualStyles.ResetDefaults () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeWin32Classic..ctor () [0x00006] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeVisualStyles..ctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeEngine..cctor () [0x00007] in <630102a69aea45d09003b39336e38cf7>:0 
   --- End of inner exception stack trace ---
  at System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.Control..ctor () [0x000d6] in <630102a69aea45d09003b39336e38cf7>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control..ctor()
  at System.Windows.Forms.WindowsFormsSynchronizationContext..cctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
   --- End of inner exception stack trace ---
  at System.Windows.Forms.Control..ctor () [0x0000d] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ScrollableControl..ctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ContainerControl..ctor () [0x0000e] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.Form..ctor () [0x00012] in <630102a69aea45d09003b39336e38cf7>:0 
  at DMR.MainForm..ctor (System.String[] args) [0x00000] in <3a0d725cc92a459aa0bd0c889d56cde0>:0 
  at (wrapper remoting-invoke-with-check) DMR.MainForm..ctor(string[])
  at MainWindow.Main (System.String[] args) [0x0000b] in <3a0d725cc92a459aa0bd0c889d56cde0>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'System.Windows.Forms.WindowsFormsSynchronizationContext' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Windows.Forms.ThemeEngine' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Drawing.GDIPlus' threw an exception. ---> System.DllNotFoundException: libgdiplus.dylib assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) System.Drawing.GDIPlus.GdiplusStartup(ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x000b0] in <786918e8ba16467bb578a6887297f3a4>:0 
   --- End of inner exception stack trace ---
  at System.Drawing.StringFormat..ctor (System.Drawing.StringFormatFlags options, System.Int32 language) [0x00011] in <786918e8ba16467bb578a6887297f3a4>:0 
  at System.Drawing.StringFormat..ctor () [0x00000] in <786918e8ba16467bb578a6887297f3a4>:0 
  at (wrapper remoting-invoke-with-check) System.Drawing.StringFormat..ctor()
  at System.Windows.Forms.ThemeWin32Classic.ResetDefaults () [0x0001f] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeVisualStyles.ResetDefaults () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeWin32Classic..ctor () [0x00006] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeVisualStyles..ctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeEngine..cctor () [0x00007] in <630102a69aea45d09003b39336e38cf7>:0 
   --- End of inner exception stack trace ---
  at System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.Control..ctor () [0x000d6] in <630102a69aea45d09003b39336e38cf7>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control..ctor()
  at System.Windows.Forms.WindowsFormsSynchronizationContext..cctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
   --- End of inner exception stack trace ---
  at System.Windows.Forms.Control..ctor () [0x0000d] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ScrollableControl..ctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ContainerControl..ctor () [0x0000e] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.Form..ctor () [0x00012] in <630102a69aea45d09003b39336e38cf7>:0 
  at DMR.MainForm..ctor (System.String[] args) [0x00000] in <3a0d725cc92a459aa0bd0c889d56cde0>:0 
  at (wrapper remoting-invoke-with-check) DMR.MainForm..ctor(string[])
  at MainWindow.Main (System.String[] args) [0x0000b] in <3a0d725cc92a459aa0bd0c889d56cde0>:0 


Re: Linux...?

Posted: Fri Apr 03, 2020 12:19 pm
by F1RMB
Hi,
Riku wrote:
Fri Apr 03, 2020 11:48 am
i have no luck with mono in OSX (using catalina only 64bit os)

Code: Select all

% mono OpenGD77CPS.exe         
WARNING: The Carbon driver has not been ported to 64bits, and very few parts of Windows.Forms will work properly, or at all

Unhandled Exception:
System.TypeInitializationException: The type initializer for 'System.Windows.Forms.WindowsFormsSynchronizationContext' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Windows.Forms.ThemeEngine' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Drawing.GDIPlus' threw an exception. ---> System.DllNotFoundException: libgdiplus.dylib assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) System.Drawing.GDIPlus.GdiplusStartup(ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x000b0] in <786918e8ba16467bb578a6887297f3a4>:0 
   --- End of inner exception stack trace ---
  at System.Drawing.StringFormat..ctor (System.Drawing.StringFormatFlags options, System.Int32 language) [0x00011] in <786918e8ba16467bb578a6887297f3a4>:0 
  at System.Drawing.StringFormat..ctor () [0x00000] in <786918e8ba16467bb578a6887297f3a4>:0 
  at (wrapper remoting-invoke-with-check) System.Drawing.StringFormat..ctor()
  at System.Windows.Forms.ThemeWin32Classic.ResetDefaults () [0x0001f] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeVisualStyles.ResetDefaults () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeWin32Classic..ctor () [0x00006] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeVisualStyles..ctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeEngine..cctor () [0x00007] in <630102a69aea45d09003b39336e38cf7>:0 
   --- End of inner exception stack trace ---
  at System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.Control..ctor () [0x000d6] in <630102a69aea45d09003b39336e38cf7>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control..ctor()
  at System.Windows.Forms.WindowsFormsSynchronizationContext..cctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
   --- End of inner exception stack trace ---
  at System.Windows.Forms.Control..ctor () [0x0000d] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ScrollableControl..ctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ContainerControl..ctor () [0x0000e] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.Form..ctor () [0x00012] in <630102a69aea45d09003b39336e38cf7>:0 
  at DMR.MainForm..ctor (System.String[] args) [0x00000] in <3a0d725cc92a459aa0bd0c889d56cde0>:0 
  at (wrapper remoting-invoke-with-check) DMR.MainForm..ctor(string[])
  at MainWindow.Main (System.String[] args) [0x0000b] in <3a0d725cc92a459aa0bd0c889d56cde0>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'System.Windows.Forms.WindowsFormsSynchronizationContext' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Windows.Forms.ThemeEngine' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Drawing.GDIPlus' threw an exception. ---> System.DllNotFoundException: libgdiplus.dylib assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) System.Drawing.GDIPlus.GdiplusStartup(ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x000b0] in <786918e8ba16467bb578a6887297f3a4>:0 
   --- End of inner exception stack trace ---
  at System.Drawing.StringFormat..ctor (System.Drawing.StringFormatFlags options, System.Int32 language) [0x00011] in <786918e8ba16467bb578a6887297f3a4>:0 
  at System.Drawing.StringFormat..ctor () [0x00000] in <786918e8ba16467bb578a6887297f3a4>:0 
  at (wrapper remoting-invoke-with-check) System.Drawing.StringFormat..ctor()
  at System.Windows.Forms.ThemeWin32Classic.ResetDefaults () [0x0001f] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeVisualStyles.ResetDefaults () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeWin32Classic..ctor () [0x00006] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeVisualStyles..ctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ThemeEngine..cctor () [0x00007] in <630102a69aea45d09003b39336e38cf7>:0 
   --- End of inner exception stack trace ---
  at System.Windows.Forms.SystemInformation.get_MenuAccessKeysUnderlined () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.Control..ctor () [0x000d6] in <630102a69aea45d09003b39336e38cf7>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control..ctor()
  at System.Windows.Forms.WindowsFormsSynchronizationContext..cctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
   --- End of inner exception stack trace ---
  at System.Windows.Forms.Control..ctor () [0x0000d] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ScrollableControl..ctor () [0x00000] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.ContainerControl..ctor () [0x0000e] in <630102a69aea45d09003b39336e38cf7>:0 
  at System.Windows.Forms.Form..ctor () [0x00012] in <630102a69aea45d09003b39336e38cf7>:0 
  at DMR.MainForm..ctor (System.String[] args) [0x00000] in <3a0d725cc92a459aa0bd0c889d56cde0>:0 
  at (wrapper remoting-invoke-with-check) DMR.MainForm..ctor(string[])
  at MainWindow.Main (System.String[] args) [0x0000b] in <3a0d725cc92a459aa0bd0c889d56cde0>:0 

To make the long story short, the CPS doesn't work on Linux (either using Wine or Mono).
I started to make it work under such OSes, but I didn't had much time for that (firmware has higher priority).

Cheers.
---
Daniel

Re: Linux...?

Posted: Tue Apr 07, 2020 1:25 pm
by m0iga
I have no enough knowledge, maybe retevis tr82 codeplug editor could be used as e base for developing it to for GD77? https://www.farnsworth.org/dale/codeplu ... ads/linux/

Re: Linux...?

Posted: Tue Apr 07, 2020 7:11 pm
by KC7RBW
I've used G4EML's codeplug utilities on Linux. Not a CPS, but frankly I'd rather use .csv files than a CPS anyway.
http://www.gb3gf.co.uk/downloads.html

Re: Linux...?

Posted: Fri Apr 17, 2020 5:36 pm
by kt4lh
It'd be super sweet if editcp worked with the GD77, it's a rather good editor that works well for the MD380 (and other devices).

Re: Linux...?

Posted: Fri Apr 17, 2020 9:25 pm
by VK3KYY
kt4lh wrote:
Fri Apr 17, 2020 5:36 pm
It'd be super sweet if editcp worked with the GD77, it's a rather good editor that works well for the MD380 (and other devices).
I checked the github account, and it’s not been updated for around 9 months, which probably means it’s been abandoned

You could approach the author, to ask him to make it work with the GD77 but I think it’s probably not the best way forward

Probably storing the master data in XML and writing a web front end would be better.
Then have a separate program, to convert to binary and upload, I.e. like the other abandoned codeplug upload project

But ultimately, unless a lot more people take up coding, and actually write these programs, rather than asking for the programs to be written, it’s not going to happen.

Re: Linux...?

Posted: Mon Apr 20, 2020 5:26 am
by OH1KH
HI !
I would try to do the plain uploader but I need clear explanation about:

- the contents of .g77 file (file organization?)

- how to initiate the transfer with GD77 (handshake?)
- how to transfer data (one huge block, small blocks, bytes ?)
- how to end transfer

With words and flowchart.

Looking at https://github.com/rogerclarkmelbourne/ ... E_CODEPLUG will take ages for me to clear out how uploading proceeds and I'm too old for that. (I have been looking that code many times. Very clearly written, but jumping to foreign code language and foreign thing to program is not easy for hobby programmer)

Re: Linux...?

Posted: Wed Apr 22, 2020 3:41 pm
by ok3js
this throws me a Linux flasher, after connecting the DM1801 it dedicates it and programs the FW, but like the others OK I have a problem with CPS not working.


....../openGD77_for_DM1801> mono FirmwareLoader-Linux.exe
Device Not Found [0x15a2:0x0073].
Error. Can't connect the transceiver
Unable to detect HT model, using GD-77 as fallback.

(process:7164): Gtk-WARNING **: 16:57:13.858: Locale not supported by C library.
Using the fallback 'C' locale.


picture: https://drive.google.com/open?id=1TIECs ... GSR8YGrL1M

-----------------------------------------------

the problem may also be in the identification,

run mode DM1801
lsusb
> Bus 003 Device 008: ID 1fc9:0094 NXP Semiconductors

flash mode DM1801 (prg.key1 + prg.key2 + ON power = light green LED)
lsusb
> Bus 003 Device 011: ID 15a2:0073 Freescale Semiconductor, Inc.


when e.g. dmrconfig has id specified in rules:


file 99-dmr.rules
# TYT MD-UV380
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="666"

# Baofeng RD-5R, TD-5R, DM-1801
SUBSYSTEM=="usb", ATTRS{idVendor}=="15a2", ATTRS{idProduct}=="0073", MODE="666"

# Anytone AT-D868UV: ignore this device in Modem Manager
ATTRS{idVendor}=="28e9" ATTRS{idProduct}=="018a", ENV{ID_MM_DEVICE_IGNORE}="1"





==================================================
( install mono-complete (sudo zypper install mono-complete)

after

cd <where the rules file is located>
sudo cp 99-gd77.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
)



file 99-gd77.rules :

# USB rules for GD-77
# Place this in /etc/udev/rules.d/ to let all users talk to the radios by USB.

#
SUBSYSTEM=="usb", ATTRS{idVendor}=="15a2", ATTRS{idProduct}=="0073", MODE="0666", GROUP="plugdev"

# HIDAPI/libusb
SUBSYSTEM=="usb", ATTRS{idVendor}=="15a2", ATTRS{idProduct}=="0073", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0094", MODE="0666", GROUP="plugdev"

# HIDAPI/hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="15a2", ATTRS{idProduct}=="0073", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0094", MODE="0666", GROUP="plugdev"

# HIDAPI/hiddev
## We need to unbind this device, otherwise LibUsb will fail to SetConfiguration() and ClaimInterface()
# For Bootloader (usbhid)
KERNEL=="hiddev*", ATTRS{idVendor}=="15a2", ATTRS{idProduct}=="0073", MODE="0666", GROUP="plugdev", RUN+="/bin/bash -c 'ID=$(IFS=/; read -a array <<< %p; echo ${array[-3]}); echo $ID > /sys/bus/usb/drivers/usbhid/unbind'"

# OpenGD77
KERNEL=="ttyACM[0-9]*", SUBSYSTEM=="tty", ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="0094", MODE="0666", GROUP="dialout", SYMLINK+="OpenGD77"



==================================================
edit 2.5.2020

I removed the error message at mono FirmwareLoader-Linux.exe


(process:7164): Gtk-WARNING **: 16:57:13.858: Locale not supported by C library.
Using the fallback 'C' locale.


I just threw in English in the locale

sudo nano /etc/environment

#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
LANG="en_US.UTF-8"
LC_MESSAGES="C"
LC_ALL="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8


which confirms a programmer's mistake in not treating various language mutations.


=============================================

dmrconfig malfunction partially solved, after connecting UV380 dmrconfig also did not see TRX, I used sudo /..whole path../dmrconfig -r -t and dmrconfig has already seen and loaded UV380,

ie I have the wrong user rights somewhere. (I used it all the way because I don't have dmrconfig stored in / usr / ... and sudo doesn't see it then)

unfortunately DM1801 with openGD77 dmrconfig still can't see (I shuffle the cables and I always have the correct USB cable attached to each TRX)

=================================

reason for dmrconfig functionality with openGD77 FW revealed. I found a post that explains everything, communication of openGD77 takes place through a different channel than communication with the original FW DM1801.

Although I tried to modify radio.c, I did not get a satisfactory result, although the communication after changing the device identification to 1fc9:0094 took place on the serial channel /dev /ttyACM0, and ..hid change to ...serial, but the device responses were not correct, ie the device did not identify them.

// Try TYT MD family.
ident = dfu_init(0x0483, 0xdf11);
if (! ident) {
// Try RD-5R, DM-1801 and GD-77.
// if (hid_init(0x15a2, 0x0073) >= 0)
// ident = hid_identify();
if (serial_init(0x1fc9, 0x0094) >= 0)
ident = serial_identify();

}



rogerclarkmelbourne commented on this issue 4 months ago.
@tylert
Sorry...
I don't have any personal experience using dmrconfig , I was just passing on an issue that someone else contacted me about, when using the OpenGD77 firmware and DMRConfig.

I think they were just using DMRConfig to export and import from CSV, because the OpenGD77 firmware uses a different protocol to upload and download from the radio, using USB Serial rather than USB HID.
POST A BOUNTY

Be the first to post a bounty for this issue!
Are you a developer who can solve this issue?
About Team
dmrconfig

Configuration utility for DMR radios
See More
This team needs your support!