Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Widget to manage connection #3

Open
jeffeb3 opened this issue Apr 2, 2018 · 13 comments
Open

Feature Request: Widget to manage connection #3

jeffeb3 opened this issue Apr 2, 2018 · 13 comments

Comments

@jeffeb3
Copy link

jeffeb3 commented Apr 2, 2018

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
Copy link
Collaborator

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
Copy link
Author

jeffeb3 commented Apr 4, 2018

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
Copy link

bump

@aggiedan977
Copy link

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
Copy link

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
Copy link

aggiedan977 commented Jan 17, 2019 via email

@MitchBradley
Copy link

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
Copy link
Author

jeffeb3 commented Jan 17, 2019

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
Copy link

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
Copy link

@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
Copy link
Collaborator

@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
Copy link

aggiedan977 commented Jan 25, 2019 via email

@AustinSaintAubin
Copy link
Collaborator

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.

nyos pushed a commit to nyos/cncjs-pendant-gamepad that referenced this issue Mar 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants