cncjs / cncjs-pendant-ps3

Dual Shock / PS3 Bluetooth Remote Pendant for CNCjs
MIT License
23 stars 24 forks source link

Feature Request: Widget to manage connection #3

Open jeffeb3 opened 6 years ago

jeffeb3 commented 6 years ago

I am making an image that will run cnc.js (based off of the octopi image). I can easily do a lot of configuring ahead of time (like build the sixaxis software, and install bluetooth tools) but the user will not have much Linux experience. It would be great if there was a widget that could let me pair a controller, and even better would be to also allow any /dev/js* controller. The code would probably work fine with other controllers too, although the button order might be different. Things like a wired xbox style controller can be had for about $20 (https://www.amazon.com/controller-Rottay-Controller-Shoulders-Microsoft/dp/B076WYKP4D). They show up in Linux the same way the ps3 one does, after connection (jstest works on them, for example).

I can help with the Linux stuff, and I can look at the different bluetooth utilities to try and figure out how to get them to be trusted, but I looked at the widget things, and I'm at a loss. I don't know how I would call system calls from the widget buttons, and how I would make a connection to the widget to update status, and everything else. I think I can figure out this .js script fine, and probably figure out where to connect to a different type of controller.

AustinSaintAubin commented 6 years ago

I can look into making a widget that will interface with CNCjs to allow you to customize the button bindings, and bing the controller over bluetooth. No promise on when I will be able to get this done, but I will try.

jeffeb3 commented 6 years ago

That would be awesome. I know a lot of people want to use pendants, so anything to make that easier, and is a plus in my book. I'd like to help, if there's something I can do, let me know.

Maybe the remappings can be stored in a yaml file, attached to a name? When people figure out how to map a particular controller type, they can submit the mappings, and then it can be included in future versions.

aggiedan977 commented 5 years ago

bump

aggiedan977 commented 5 years ago

is there a good place to find better documentation about CNCJS? The wiki in github or their website is really basic. Nothing in there about an example, tutorial, etc.

MitchBradley commented 5 years ago

I don't know of any better documentation. I think it would be very difficult to write the sort of tutorial that you probably want, given the almost-unlimited set of hardware involved. CNCjs can work with virtually any kind of browser device (PC, Mac, tablet, phone, RaspberryPi) connected to a server running on the same device or a different computer, via a local network or across the internet, driving a controller running GRBL, TinyG, g2core, smoothieware, or Marlin, controlling machines ranging from mills to lathes to laser engravers to plasma cutters. There can be multiple pendants of different styles and technologies. Every choice from that huge array carries with it a daunting set of fiddly details. My point is that, in order to write a tutorial that is compact enough to be digestible, you would have to pick a specific configuration from that multidimensional set of choices. That would limit the audience for that tutorial to a small fraction of the potential users. There is a decent "how to get started" for Raspberry Pi at the user interface and server end, thanks to @AustinSaintAubin , but it still leaves open the huge issue of the "machine end" - controller and machine tool. This sort of documentation problem is endemic to highly-flexible software. Linux suffered from it in spades for years.

aggiedan977 commented 5 years ago

While I can appreciate the wide variety of options software can offer, that's a simplistic approach. That's like saying there's to many options with a pencil to provide examples on writing. It's nonsensical and more to the point it's not what I was asking for.

The online documentation is poor. While it does define terms or features it doesn't explain much more. For example, visualization widget is explained but how to use this widget (the simulation) isn't mentioned.

Why is that asking to much?

On Thu, Jan 17, 2019, 1:22 PM Mitch Bradley <notifications@github.com wrote:

I don't know of any better documentation. I think it would be very difficult to write the sort of tutorial that you probably want, given the almost-unlimited set of hardware involved. CNCjs can work with virtually any kind of browser device (PC, Mac, tablet, phone, RaspberryPi) connected to a server running on the same device or a different computer, via a local network or across the internet, driving a controller running GRBL, TinyG, g2core, smoothieware, or Marlin, controlling machines ranging from mills to lathes to laser engravers to plasma cutters. There can be multiple pendants of different styles and technologies. Every choice from that huge array carries with it a daunting set of fiddly details. My point is that, in order to write a tutorial that is compact enough to be digestible, you would have to pick a specific configuration from that multidimensional set of choices. That would limit the audience for that tutorial to a small fraction of the potential users. There is a decent "how to get started" for Raspberry Pi at the user interface and server end, thanks to @AustinSaintAubin https://github.com/AustinSaintAubin , but it still leaves open the huge issue of the "machine end" - controller and machine tool. This sort of documentation problem is endemic to highly-flexible software. Linux suffered from it in spades for years.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/cncjs/cncjs-pendant-ps3/issues/3#issuecomment-455298417, or mute the thread https://github.com/notifications/unsubscribe-auth/Ao9pv-_YnqekoFulPf4wIvD3THmuFk7yks5vEM16gaJpZM4TDuR6 .

MitchBradley commented 5 years ago

All I can say is that writing good documentation is really, really hard. I have written a lot of it over 40 years, usually when I was getting paid to do it. You have to decide who is the audience, try to guess what they already know, try to guess their assumptions and usage environment, figure out where to start, and more importantly, where to end.

And then, in the modern world, you have to update it constantly based on new features and changes to the old ones.

Your specific "ask" of a description of the simulation is entirely reasonable, but your original "ask" was fairly open-ended. It said "an example, tutorial". If I were to undertake to write a tutorial, chances are good that I would run out of steam long before I got to the fine details of the visualization widget. On the few pages where I did try to contribute information, I found that I spent an enormous amount of time trying to be clear and complete, with essentially zero "payback" for my effort.

Everybody associated with this project is a volunteer with other more pressing demands on their time. What you are implicitly asking is for people to spending uncompensated time on a hard problem for which the "customer" is never satisfied (documentation is never good enough).

jeffeb3 commented 5 years ago

This is really not the place to talk about documentation. Make a separate issue, so it can be evaluated on it's own. This has gone from conversational to a rabbit hole.

aggiedan977 commented 5 years ago

I couldn't agree more. I also appreciate that people have built this out of a passion and they desire to see greater adoption. Even just one person demonstrating their setup and usage of a product is better than nothing at all even with a hundred disclaimers. Do I think that no one, not one - would have an experience they are willing to share and put it down on paper or video?

It appears to be a wonderful product with a great design. It's unfortunate that you have to be well versed and educated prior to trying it to make heads or tails of it. I don't have the expectations you mentioned and I'm a fairly intuitive and will likely figure it out. Perhaps I'm asking for cookies on the bottom shelf, but if you're a newbie it feels like the shelf is camouflaged and a little more would go a long way.

Here's my commitment - if I get it figured out I will pay-it-forward with an example of general and basic UI instructions with potential workflow scenarios, regardless of controllers, machines, setups, etc.. very basic, but useful. If you find it to be a complete waste of time I would value that feedback once it's complete.

aggiedan977 commented 5 years ago

@jeffeb3 You're correct and the bump was to see if @AustinSaintAubin had come up with a solution for a joystick style controller (xbox/ps3/etc.).

AustinSaintAubin commented 5 years ago

@aggiedan977 Its a reasonable ask, but as @MitchBradley pointed at all efforts take time to build and maintain. Its something that I want to do, but I am limited (like everyone) by time and resources. This is one of many. Like @cheton, we all have paying jobs with better ROI. If you want to see it grow donate or contribute in other ways, or both. The more active this project is the more inclined people are to work on it, because it has a pulse, it alive.

What I am getting at is that I (like others) have to prioritize my time, projects, home life, professional life. Working on/with projects like this needs to be balanced with the aforementioned, have a return on the investment, and align with personal goals (like FOSS mentality goals). For me I solved most of my personal goals with the current additions and contributions, and I have a 2 year now. Also, I think for many people on many project the ROI kinda drops out, and they loss motivation.

I have many things I want and plan to do with CNCjs... but we all have bill to pay, I have kids that need attention, and most days its hurry hurry hurry. Any help / contributions are apprichated in this FOSS project.

aggiedan977 commented 5 years ago

Austin, Clearly, I have touched a nerve and I admit I have been frustrated trying to figure out the different platforms and systems which has led to impulsive posting. I failed to celebrate all of the good that has been done and how much I appreciate what I can clearly identify as fantastic work, just out of my reach at the moment. My hope is to help support your efforts and to encourage you to continue pressing on. I also realize it was completely unfair of me to provide feedback without a solution/example. I would like to take a minute to point out bCNC's wiki efforts ( https://github.com/vlachoudis/bCNC/wiki). I have no doubt there are subtle and significant differences between both of these efforts, nevertheless I have found the wiki to be extremely helpful. I have spent 18 years in technology and more than appreciate the challenges good documentation presents, especially in an international community. Well done on this endeavor and I hope to have the opportunity to better support your efforts in the future as I become more familiar myself. Best Regards, Dan

On Fri, Jan 25, 2019 at 12:00 AM Austin St. Aubin notifications@github.com wrote:

@aggiedan977 https://github.com/aggiedan977 Its a reasonable ask, but as @MitchBradley https://github.com/MitchBradley pointed at all efforts take time to build and maintain. Its something that I want to do, but I am limited (like everyone) by time and resources. This is one of many. Like @cheton https://github.com/cheton, we all have paying jobs with better ROI. If you want to see it grow donate https://opencollective.com/cheton or contribute in other ways, or both. The more active this project is the more inclined people are to work on it, because it has a pulse, it alive.

What I am getting at is that I (like others) have to prioritize my time, projects, home life, professional life. Working on/with projects like this needs to be balanced with the aforementioned, have a return on the investment, and align with personal goals (like FOSS mentality goals). For me I solved most of my personal goals with the current additions and contributions, and I have a 2 year now. Also, I think for many people on many project the ROI kinda drops out, and they loss motivation.

I have many things I want and plan to do with CNCjs... but we all have bill to pay https://www.youtube.com/watch?v=_IrQHeDcMi8, I have kids that need attention, and most days its hurry hurry hurry https://www.youtube.com/watch?v=xmHmcpvD8Xo. Any help / contributions are apprichated in this FOSS https://softwareengineering.stackexchange.com/questions/22809/why-develop-free-open-source-programs project.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/cncjs/cncjs-pendant-ps3/issues/3#issuecomment-457465563, or mute the thread https://github.com/notifications/unsubscribe-auth/Ao9pv7TdfY9I9LeFdNyKsGvq_VrwV4TAks5vGp2UgaJpZM4TDuR6 .

AustinSaintAubin commented 5 years ago

Hi @aggiedan977 I did not mean to direct my frustrations at you. I am very thankful for your contributions to this, and other project. I made my statement out of personal frustrations. I just dont have the time i used to have for projects. I should not have, and did not mean to direct that at you. I am sorry.

I hope that my statements do not discourage you, or others, from making request, corrections, commits, comments, or contributions to this or other projects. All are welcome in this community.

Note to all: Please consider donating to @cheton, so that this project can grow with its founder.