[chirp_devel] Android Version (from the User list)
So I'm new to Chirp, did some looking around, and posted some questions around Android-based CHIRP to the user list, and they (Tom H) suggested the Developers list would be a better place to discuss.
Exec Summary: I want to lead an effort to develop an Android version of CHIRP.
My Goals of the Project:
1. Get permission from the existing owners to extend CHIRP 2. Invite the existing developers to participate - with the expectation that none has the time or interest 3. Create minimal (no) additional work for the existing CHIRP team. 4. I would like to leverage as much of the CHIRP structure as is practical 5. Build in such a way that changes from the main version can be copied directly to mobile
Questions for this list: (I have so many!) #1: Is this a good idea? #2: Are you willing to let me try? #3: What would be a good level of "linkage" between the "computer" and "mobile" teams? #4: Is this list the right place to continue discussions?
About me: Profession IT guy since pre-2000. "Systems" guy....scripting, admin work, application architecture, primary focus on security on Windows/Linux. Last 12 months I've been focused on device management in the mobile space. Not a developer, but I have done a fair amount of scripting (Batch, REXX/Regina, Perl, VBScript). New ham (KC1BHR) with a General ticket.
Thanks for reading this far, and thanks for all the work you have put in to making Chirp such a great tool!
--Rich
Background emails from the User list:
From me:
Based on the comments in the linked Feature #1369, Android is not in scope or on the roadmap for the existing development team. It sounds as if the existing code base could be forked for the new platform, based on the existing separation between the driver/radio/clone logic and UI. The fact that there is a commandline tool (even if very neglected) may provide an additional starting point.
Ideally, I'd like a new community of developers (I have some in mind) to support such an effort, so as to not add work to the existing devs. At the same time, there's a tremendous amount of knowledge the existing team has developed, and I'd like to leverage as much of that as is reasonable.
Disclaimer: I'm not a developer (I've done it, and I know what I'm not good at). Scripting and admin-type work, or project management, that I can do.
Milton Hywatt: In my early Android days I did a lot of data mining Using Google for any information I could get my hands on. I guess if you are lucky to find people that know and program both PyGTK and the Android GUI would be a good start. Like mentioned before the actual guts of the program that moves, collects and organizes the data portion would probably have no trouble in Android. It's just the GUI that would have to be redone. As far as steering you a little closer taking some of the research work out I'm not your man. However one of the Chirp coders named Jens seemed to be fairly familiar with some different tools out there that could help with a GUI conversion. Might keep watching this topic and see if he chimes in. It's been discussed in the past 3 months or so.
Tom Hayward: Don't expect a whole lot of involvement or expertise from the current Chirp devs. I don't think any of us have worked with Android much. We can help you understand the codebase enough to build another GUI for it.
I'd use one of the Python for Android projects, like Kivy, to load Chirp's Python radio clone code. If you keep everything in Chirp's "chirp" folder the same, you'll be able to use new radio drivers as they're released. Everything in the "chirpui" folder will need to be rewritten.
Tom KD7LXL
Jon:
Actually, I found a (free) app written by someone that implements a driver for the Prolific USB-Serial port chipset. (Orginally written to support Tablet to Router/Switch for command line changes)
https://play.google.com/store/apps/details?id=slickdevlabs.apps.usb2serialde...
Native BlueTooth on Android supports serial communications, however most target radio devices do not. (Ok, I did see that Baofung released a BT adapter - that costs 150% of the radio cost.)
On Tue, Apr 8, 2014 at 10:15 AM, jon jon@jonshouse.co.uk wrote:
I want to lead an effort to develop an Android version of CHIRP.
I am not a chirp developer but I would have thought the single largest problem is that most android devices do not have a physical serial port ?
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
On Tue, Apr 8, 2014 at 7:02 AM, Rich Barstow kc1bhr@barstow.cx wrote:
So I'm new to Chirp, did some looking around, and posted some questions around Android-based CHIRP to the user list, and they (Tom H) suggested the Developers list would be a better place to discuss.
Exec Summary: I want to lead an effort to develop an Android version of CHIRP.
My Goals of the Project:
Get permission from the existing owners to extend CHIRP
No permission required. That's the beauty of the GPL :-) The primary stipulation is that you release the source along with any binary you distribute that contains any intellectual property from the Chirp project.
Questions for this list: (I have so many!) #1: Is this a good idea?
I'm a Chirp power user (I don't just develop for fun; I program a lot of radios!) and I've never needed or wanted to use Android to power a radio. The lack of keyboard and screen space makes this sound very unappealing (yes, I have a tablet and a Bluetooth keyboard and still feel the laptop is a better solution).
I'm not sure exactly why you've decided Android is such a good platform for programming radios that you're willing to rewrite Chirp. You should try to articulate this. If you can't, maybe it's not worth your time.
#2: Are you willing to let me try?
Can't hurt.
#3: What would be a good level of "linkage" between the "computer" and "mobile" teams?
If you're going to use the Chirp brand name, we should probably review your work before release. I'd expect feature parity, 100% compatibility of radio drivers (ability to run our Python radio drivers--I'll touch on this later), and code review to ensure there's nothing malicious.
#4: Is this list the right place to continue discussions?
If this gains traction it may be worth creating a dedicated list.
Milton Hywatt: In my early Android days I did a lot of data mining Using Google for any information I could get my hands on. I guess if you are lucky to find people that know and program both PyGTK and the Android GUI would be a good start. Like mentioned before the actual guts of the program that moves, collects and organizes the data portion would probably have no trouble in Android.
This isn't really accurate. Almost all Android development is done in Java, and Chirp is written in Python. You have to go to great lengths to run Python on Android, such as not using the standard development tools. I suggested Kivy because it provides a way to compile Python for Android. This is not a trivial thing and makes the Android development process very different.
Disclaimer: I've done very little Android development so this may not be 100% accurate.
On Tue, Apr 8, 2014 at 7:31 AM, Rich Barstow kc1bhr@barstow.cx wrote:
Jon:
Actually, I found a (free) app written by someone that implements a driver for the Prolific USB-Serial port chipset. (Orginally written to support Tablet to Router/Switch for command line changes)
https://play.google.com/store/apps/details?id=slickdevlabs.apps.usb2serialde...
The app is free, but he sells the use of the library that makes it possible, right? Ignoring the cost, I presume this comes with the inability to release the source code as part of an open source project.
By the way, this app/library is only useful for Android devices that: 1. Have USB host/OTG 2. Don't have the PL-2303 kernel drivers
He implements the driver in userspace (a Java lib I believe--oh, I wonder if this makes it impossible to use with Chirp) so that it can be used by devices that lack the kernel driver. If your Android device already has this driver built in or you can compile your own kernel, this library is unnecessary.
P.S. I think he has one for FTDI too. I've used it for packet, converse mode :-)
Native BlueTooth on Android supports serial communications, however most target radio devices do not. (Ok, I did see that Baofung released a BT adapter - that costs 150% of the radio cost.)
Bluetooth is the only interface I can see being popular with Chirp for Android. Everything else has too many dependencies. I've never tried programming a radio with serial-over-Bluetooth. Not sure how well it would work. You should test it.
Tom KD7LXL
Tom posts some excellent points:
Why is Android is such a good platform for programming radios that you're
willing to rewrite Chirp?
You should try to articulate this. If you can't, maybe it's not worth your
time.(TRUE!!)
- Because I don't carry a laptop or netbook, and don't want to start. I do carry a phone or tablet. - Android vs. iOS....because Android has a larger market share, and because I think it will be easier. I might be proven wrong! - I see a few other people have requested it - Because I have too much time on my hands?? ;)
If you're going to use the Chirp brand name, we should probably review your
work before release.
I concur.
You have to go to great lengths to run Python on Android, such as not
using the standard development tools.
Based on my short-term research, there are already several python engines already in the Play store for Android. I'm not sure they have all the required modules, but the point is that there are already several tools available. Early thoughts are to write a native Android app for the GUI, with callouts to python scripts to do the real work, including talking to the phone. Based on my limited info on the structure of Chirp, I think this may be a feasible approach, which could (should) lead to comparable radio/driver support to the regular version.
The app [USB-Serial port driver] is free, but he sells the use of the
library that makes it possible, right?
You may be right. In the meantime, I have found several other serial port implementations, including Prolific themselves, as well as certain versions of Android. So there are options, subject to significantly more research. Very much hardware dependent...I sense some cable shopping coming up if this moves forward. I admit I would target those devices I have access to first: Nexus, Moto X, Samsung Stratosphere and Samsung S4. More variety might be helpful.
Bluetooth is the only interface I can see being popular with Chirp for
Android.
Well, I can't say I disagree, however the price point for bluetooth dongle vs a serial cable + adapter for micro may shift the demand somewhat. Personally, I am more willing to spend $10 for a USB adapter than $85 for a BT adapter on the chance that it might work. I have concerns about the reliability of serial communications across BT. A good place to explore - but that's more of a stretch, since Chirp doesn't do that today, right? (or maybe that's the killer feature??)
#4: Is this list the right place to continue discussions? If this gains traction it may be worth creating a dedicated list.
I hope it does...I'm not able to do all the work required!
On Tue, Apr 8, 2014 at 1:08 PM, Tom Hayward esarfl@gmail.com wrote:
On Tue, Apr 8, 2014 at 7:02 AM, Rich Barstow kc1bhr@barstow.cx wrote:
So I'm new to Chirp, did some looking around, and posted some questions around Android-based CHIRP to the user list, and they (Tom H) suggested
the
Developers list would be a better place to discuss.
Exec Summary: I want to lead an effort to develop an Android version of CHIRP.
My Goals of the Project:
Get permission from the existing owners to extend CHIRP
No permission required. That's the beauty of the GPL :-) The primary stipulation is that you release the source along with any binary you distribute that contains any intellectual property from the Chirp project.
Questions for this list: (I have so many!) #1: Is this a good idea?
I'm a Chirp power user (I don't just develop for fun; I program a lot of radios!) and I've never needed or wanted to use Android to power a radio. The lack of keyboard and screen space makes this sound very unappealing (yes, I have a tablet and a Bluetooth keyboard and still feel the laptop is a better solution).
I'm not sure exactly why you've decided Android is such a good platform for programming radios that you're willing to rewrite Chirp. You should try to articulate this. If you can't, maybe it's not worth your time.
#2: Are you willing to let me try?
Can't hurt.
#3: What would be a good level of "linkage" between the "computer" and "mobile" teams?
If you're going to use the Chirp brand name, we should probably review your work before release. I'd expect feature parity, 100% compatibility of radio drivers (ability to run our Python radio drivers--I'll touch on this later), and code review to ensure there's nothing malicious.
#4: Is this list the right place to continue discussions?
If this gains traction it may be worth creating a dedicated list.
Milton Hywatt: In my early Android days I did a lot of data mining Using Google for any information I could get my hands on. I guess if you are lucky to find
people
that know and program both PyGTK and the Android GUI would be a good
start.
Like mentioned before the actual guts of the program that moves, collects and organizes the data portion would probably have no trouble in
Android.
This isn't really accurate. Almost all Android development is done in Java, and Chirp is written in Python. You have to go to great lengths to run Python on Android, such as not using the standard development tools. I suggested Kivy because it provides a way to compile Python for Android. This is not a trivial thing and makes the Android development process very different.
Disclaimer: I've done very little Android development so this may not be 100% accurate.
On Tue, Apr 8, 2014 at 7:31 AM, Rich Barstow kc1bhr@barstow.cx wrote:
Jon:
Actually, I found a (free) app written by someone that implements a
driver
for the Prolific USB-Serial port chipset. (Orginally written to support Tablet to Router/Switch for command line changes)
https://play.google.com/store/apps/details?id=slickdevlabs.apps.usb2serialde...
The app is free, but he sells the use of the library that makes it possible, right? Ignoring the cost, I presume this comes with the inability to release the source code as part of an open source project.
By the way, this app/library is only useful for Android devices that:
- Have USB host/OTG
- Don't have the PL-2303 kernel drivers
He implements the driver in userspace (a Java lib I believe--oh, I wonder if this makes it impossible to use with Chirp) so that it can be used by devices that lack the kernel driver. If your Android device already has this driver built in or you can compile your own kernel, this library is unnecessary.
P.S. I think he has one for FTDI too. I've used it for packet, converse mode :-)
Native BlueTooth on Android supports serial communications, however most target radio devices do not. (Ok, I did see that Baofung released a BT adapter - that costs 150% of the radio cost.)
Bluetooth is the only interface I can see being popular with Chirp for Android. Everything else has too many dependencies. I've never tried programming a radio with serial-over-Bluetooth. Not sure how well it would work. You should test it.
Tom KD7LXL _______________________________________________ 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
On 08/04/2014 19:08, Tom Hayward wrote:
Bluetooth is the only interface I can see being popular with Chirp for Android. Everything else has too many dependencies. I've never tried programming a radio with serial-over-Bluetooth. Not sure how well it would work. You should test it.
I have a self made serial over BT adapter I use with both FT817 and 857, I can confirm it's very reliable as I have done most of the testing for those radio with it. Info and schematic here http://www.yo3ggx.ro/FT8x7_DIY_Bluetootth_CAT_interface_v1.pdf I remember an expence of about 7$ for components.
It should be easy to adapt to any tranceiver as long as it can provides power or you'll have to add an additional power source.
73 de IZ3GME Marco
On Tue, Apr 8, 2014 at 10:31 AM, Rich Barstow kc1bhr@barstow.cx wrote:
(Ok, I did see that Baofung released a BT adapter - that costs 150% of the radio cost.)
This adapter isn't a Boafeng product. It appears to be a private label device made for Baofeng Tech (not the same as Baofeng) either by Pryme or by the same manufacturer that makes them for Pryme.
http://www.hq98.com/pryme-blu-bt-501-kenwood-tk-headset-bluetooth-adapter/?g...
Jim KC9HI
On Tue, Apr 8, 2014 at 11:31 AM, Jim Unroe rock.unroe@gmail.com wrote:
On Tue, Apr 8, 2014 at 10:31 AM, Rich Barstow kc1bhr@barstow.cx wrote:
(Ok, I did see that Baofung released a BT adapter - that costs 150% of the radio cost.)
This adapter isn't a Boafeng product. It appears to be a private label device made for Baofeng Tech (not the same as Baofeng) either by Pryme or by the same manufacturer that makes them for Pryme.
http://www.hq98.com/pryme-blu-bt-501-kenwood-tk-headset-bluetooth-adapter/?g...
Jim KC9HI
That's a headset adapter, not a serial adapter. Not really relevant to this discussion.
I'm envisioning something more like this: http://www.amazon.com/gp/product/B006RBK9ZW
Tom KD7LXL
On 4/8/2014 2:31 PM, Jim Unroe wrote:
On Tue, Apr 8, 2014 at 10:31 AM, Rich Barstow <kc1bhr@barstow.cx mailto:kc1bhr@barstow.cx> wrote:
(Ok, I did see that Baofung released a BT adapter - that costs 150% of the radio cost.)
This adapter isn't a Boafeng product. It appears to be a private label device made for Baofeng Tech (not the same as Baofeng) either by Pryme or by the same manufacturer that makes them for Pryme.
http://www.hq98.com/pryme-blu-bt-501-kenwood-tk-headset-bluetooth-adapter/?g...
Given that this thread is on android programming, a bluetooth headset adapter isn't going to help provide serial access. Sure it's bluetooth, and yes the serial connection is in the headset/mic port, but bluetooth devices typically only implement a small number of "profiles" (intended uses).
If you wanted a bluetooth serial interface, a board like this should do the trick. It at least works to program an Arduino. I have one but I haven't gotten around to wiring it up to any of my radios.
participants (6)
-
IZ3GME Marco
-
Jim Unroe
-
jon
-
Rich Barstow
-
Robert Terzi
-
Tom Hayward