Good morning all, from a new CHIRP user and new member of the developer's reflector.
(Incidentally, is it CHIRP or Chirp or chirp? I've seen all three used. What is the proper way to refer to the product?)
I've joined the developer's reflector because I would like to contribute to CHIRP by writing drivers for the Icom IC-746PRO and IC-706MKIIG.
I'm a retired software developer with 40+ years experience, mostly in C with some assembly language and C++. I have almost no experience with Python, have just done some minor modifications on existing programs. I do understand object-oriented design and programming.
I have only limited experience with Git, having used it on only two projects, mostly used Subversion on past projects.
I'm wondering if any of you have any recommendations for a good tutorial, available on the net, for someone like me who wants to learn enough Python to be effective in writing drivers for CHIRP. I know there are many such tutorials out there and wanted to find out if you have any recommendations for one over the others.
I'd appreciate any suggestions, and meanwhile I'll be around the reflector as I go about figuring out how to do this correctly.
Thanks...
Rick WA1RKT Londonderry, NH Catch me on 14.300 MHz Intercon / MMSN most days See my QRZ page
(Incidentally, is it CHIRP or Chirp or chirp? I've seen all three used. What is the proper way to refer to the product?)
It's CHIRP. That said, I'm probably the least consistent person in my proper use of the "trademark" so I don't think you're likely to run into problems.
I'm wondering if any of you have any recommendations for a good tutorial, available on the net, for someone like me who wants to learn enough Python to be effective in writing drivers for CHIRP. I know there are many such tutorials out there and wanted to find out if you have any recommendations for one over the others.
Some of the people who have learned Python recently can probably help with this. I could send you the stack of dead trees I started with 20 years ago, but it's not likely much help anymore :)
I'd appreciate any suggestions, and meanwhile I'll be around the reflector as I go about figuring out how to do this correctly.
I think you'll just have to bump around it a bit to get a feel. I'm assuming you've got a development environment setup so you can run from code.
I think the first thing I'd do is just copy/paste the IC746 driver class (in chirp/drivers/icomciv.py) to an IC746Pro driver. Change the MODEL and the default address and then make sure that you can fail in the same way when selecting that as you can with the regular 746.
After that, you'll need to define a MemFrame subclass that works for the 746Pro and tell your class to use it. If you look at the other models in there it should be fairly straightforward. Martin might have an opinion here, but I think the 910 is a very similar vintage to the 746/746Pro, so that might help. Ignore all the "special" and "bank" stuff for now.
For your MemFrame class, you'll need to define a "format" that is the right number of bytes for the frame that gets returned and with at least the basic fields required by the base "get_memory()" definition. That would be things like "freq", "mode", etc. I think most everything else is optional, so any chunks of the frame you don't know about, just pad out with "u8 unknown[n]" fields to keep the structure the same.
With that, just keep banging at the radio until the errors stop and you start getting non-error memories that look halfway sane in the UI and iterate from there.
--Dan
The CHIRP "Python 3 Developer Environment Setup" page recommends Python revision 3.10.8. Is that still the best current recommendation? I notice the latest stable revision is up to 3.12.2 as of early February.
Rick WA1RKT
The CHIRP "Python 3 Developer Environment Setup" page recommends Python revision 3.10.8. Is that still the best current recommendation? I notice the latest stable revision is up to 3.12.2 as of early February.
You can _probably_ run with 3.12, but I wouldn't. The current windows builds are still based on 3.10, and we know that the other libraries you'll need are available and working with 3.10. Unless you enjoy chasing down "why does this seem to work for me and nobody else" issues, I'd stick to the same version the users will run while you get your feet wet.
The python team has been on a scorched-earth run lately with backwards compatibility, and 3.12 has more such removals than any in recent history. I've been running it locally to get ahead of future issues, but I wouldn't recommend if if you want to just focus on your driver and don't need it for other local development.
--Dan
Thanks, Dan. I was able to do all the stuff in the "Python 3 Developer Environment Setup" page including cloning the repo and running CHIRP from the command line with chirpwx.py. So far so good. :-)
Rick
On 3/1/24 2:24 PM, Dan Smith via chirp_devel wrote:
The CHIRP "Python 3 Developer Environment Setup" page recommends Python revision 3.10.8. Is that still the best current recommendation? I notice the latest stable revision is up to 3.12.2 as of early February.
You can _probably_ run with 3.12, but I wouldn't. The current windows builds are still based on 3.10, and we know that the other libraries you'll need are available and working with 3.10. Unless you enjoy chasing down "why does this seem to work for me and nobody else" issues, I'd stick to the same version the users will run while you get your feet wet.
The python team has been on a scorched-earth run lately with backwards compatibility, and 3.12 has more such removals than any in recent history. I've been running it locally to get ahead of future issues, but I wouldn't recommend if if you want to just focus on your driver and don't need it for other local development.
--Dan _______________________________________________ chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
I've joined the developer's reflector because I would like to contribute to CHIRP by writing drivers for the Icom IC-746PRO and IC-706MKIIG.
In case you haven't heard from the author, Daniele just proposed a 7400 driver:
https://github.com/kk7ds/chirp/pull/986
I imagine that is very close, if not exactly, what you need for the 746PRO. Please do give that a try and comment on that PR if you can. I assume there'll need to be a 746 subclass of that to express the attributes of the 746PRO unless it's completely identical.
--Dan
participants (2)
-
Dan Smith
-
Eric Poole