Is there a single, well-written guide which details how Chilipeppr works,

Is there a single, well-written guide which details how Chilipeppr works, what device in the tool chain uses which bits of software and how to install/configure each piece? Please don’t send me to github or synthetos or shapeoko. All three of these sites assume way too much background information is known by the user or target way too specific a set of components to actually provide what I am seeking. If I am seeking this information, I am sure there are thousands of others who are seeking the same. If there actually is a guide such as this, it is by no stretch of the imagination easy to locate, either on this community or the web as a whole.

I have been researching this question quite heavily for three weeks and am still left pondering these questions. As a software developer, I am generally ashamed at my peers’ inability to clearly communicate with humans, and Chilipeppr is floating to the shameful top quite rapidly. I am continuing my attempts, because I have heard it is a great tool once it is configured.

On all five of the PCs I have attempted to connect to, I have been met by a blank screen. From search results, I am far from the only person with this issue. I have tried using Firefox, IE and Chrome. Having worked as a web dev, I’d fully expect my boss to fire me on the spot if our site ever greeted visitors with a blank page, regardless of what ad-blockers were enabled or the update status of their browser/extensions/addons.

Telling me how to fix it doesn’t solve the fundamental issue, which is that people interested in this software are met by a blank screen, rather than a well-written explanation of what the tool is and how it can help them…And then a quick link to the interface for controlling their tool.

If I hadn’t heard “It’s great once it’s configured” so many times, I’d have walked away weeks ago. After weeks of research, I still don’t know whether or not Chilipeppr will do what I want…

My specific desire is to evaluate Chilipeppr for my CNC mill. It has been retrofitted to be grbl compatible. The CNC is connected to a Synthetos gShield v5b attached to an Arduino Uno. The Uno is connected to a Raspberry Pi 3. I want the control tool chain to end there. If I hook up a monitor, keyboard and mouse, I want to be able to open a gcode file and have the part milled. As with any decent tool chain, the Ras Pi should be able to configure the downstream tools, as well as jog and home the mill. I’d like the option to RDP into the Ras Pi from my laptop, but don’t want to be forced to connect the laptop at any time.

Running software on my laptop which communicates with software on my Raspberry Pi which communicates with the Arduino which controls the stepper motors on my CNC is actually more complex than connecting my laptop to the Arduino which controls the steppers…

I have written hundreds of documents which clearly provide the type of information I am seeking,from software user manuals to assembly/test/debug instructions for high-volume manufacturing of highly complex electro-mechanical test equipment. I’d be willing to participate in writing a Chilipeppr guide, but obviously can’t be the only one (since I’m still asking noob questions), and such a guide would need to be accessible at all times from’s home page, which has been updated to ensure that it would never ever greet a visitor with a blank page.

It sounds like you are hitting a problem with webGL and recent browser updates disabling it.

There are posts in this forum for how to set the flags in chrome to re-enable webGL.

No webapp can control the browser flags for obvious reasons. It is the downside of a web delivered service that functionality relies on the user being able to understand and use their browser fully.

As to your question about an information source - I don’t see how what you ask is possible. It is the user’s choice which mill he has. Which software he uses for design. Which software he uses for generating gcode. Which driver he uses for the motors on the mill.

Chilipeppr only provides a window to a serial interface with your board. It is not a turnkey. The rest of the production line is entirely your choice. Although some kind souls in their free time have contributed to the eagle board import widget which will interpret any eagle brd file and generate sensible gcode for it. So in that one use case CP does fulfil one other role as well.

So is there a single document? No. But nor does CP position itself thus and I don’t know of any single package for cad and cam and gcode driver management, whether commercial or freeware.

Perhaps CP is not for you? It’s written by John for a community - use and contribute as you are able (and as you’ve kindly offered).

For your use case it seems like running sjps on the pi and having it network connected is a reasonable model. You interface via a network connected browser. It is without doubt more complicated but that’s the architecture choice you’ve made. Others plug their laptop directly into an Arduino. It may also be possible to run the whole webapp on chromium on the pi but I’ve read of other users running into memory problems. And you’d be making matters worse by adding an rdp layer on top of that. Why not start simple with connecting directly from laptop to the duino. Get your mill and your tool chain working the way you want. And then expand to attempting a remote control solution.

Also raspi does not enable webGL by default. You have to do that yourself on a pi3. It is in raspi-config under the advanced options. Enable the GL driver; ensure your flags (and you flags) are set correctly in chromium and that should be ok.

@Justin_Adie Thank you for the suggestion, but as I said in my original post, instructions telling me how to fix a single issue (blank web page) is exactly what I was trying to avoid.

I’m not trying to be a jerk. It terrifies me that game-changing software like Chilipeppr seems to be hamstrung by nerds in a box who are incapable of clearly communicating with human beings in a linear fashion. This relegates some amazing tools which can revolutionize our world to obscurity, forcing the extreme majority of the population (even the technically-minded population) to use inferior but well-documented (and often far more expensive) tools. I found a make-do solution two weeks ago, but want a good, and possibly even great solution.

Most of the time, I am one of those (Aspergers) nerds sitting in a cubicle, designing software. I have spent enough time working with users during testing and development to know how essential good documentation is. I have often handed my documentation to my nontechnical coworkers for them to review and highlight where I am relying on assumed understandings and tribal knowledge.

I’m seeking a single resource which clearly outlines the technology and how it and associated components work together, which can be used to first determine if Chilipeppr is the proper tool, and then used to install all of the necessary components and begin using them with my CNC mill. This resource should include information like the WebGL suggestion you offered.

I disagree that "…web delivered service … functionality relies on the user being able to understand and use their browser fully. " Accepting that idea as a consumer (even if we love the product) perpetuates the decline in good habits on the part of developers. The designer of a web-delivered service needs to ensure that the user has the tools readily available to diagnose and fix known issues with the web service (like a properly elevated “how to fix a blank screen” link). The best (AKA doesn’t have to be hunted down) place for a toolkit which supports is the landing page. It is true that changing the URL used to interface with one’s machine will be a momentary irritant for current users, but the initial web page can explain why the change was made, and how to update their configuration to resolve the issue.
if the community using Chilipeppr can grow to 5x its current size, the tool can evolve and improve faster.

Prospective users shouldn’t have to go to a tinyG or Shapeoko-specific site if they aren’t using a tinyG board or a Shapeoko. Github was never intended to be a source for detailed information on a project, so what little information is available is awful, and the people who document their code are the worst at actually documenting their code.

Sounds like a web gl issue to me as well. I recommend you use chilipeppr on your laptop on Mac or windows. Also, chilipeppr has tons of YouTube videos. Those are the best documentation. Since chilipeppr is open source we all would welcome any contributions on documentation.

@Michael_Hendricks as I said there is no single resource and if you think there ought to be then you have a misconception of the place in the chain that CP fills. But you are of course welcome to write any documentation set you want or think you need; although it does sound like a crowd sourced app is not for you.

John points out the videos. These help newcomers to some extent.

I apologise for suggesting solutions to the problem that you articulated and that you suggested should be (although it cannot be) the responsibility of the CP webapp.

@Justin_Adie “My specific desire is to…” from my original post states that I already had the Uno/gShield/CNC specified, and asked no questions about modeling/gcode generation.

Obviously there is no single document that details every possible component and configuration from part concept to completed part. I’m looking for a document which details Chilipeppr’s role in the tool chain, how to install/configure/use it, and what it needs/can work with on the upstream and downstream sides of it’s role in the tool chain. With information like this, I and others like me can quickly determine whether Chilipeppr is a viable option within my desired configuration, and then install/configure/test it.

What started me on the path of information on Chilipeppr is the implication that its position (and that it can run on a Raspberry Pi) makes it a potential solution for my previously outlined desire. My head banging is coming from the fact that I’m only seeing hints and implications, rather than any source which actually describes what Chilipeppr’s role is in a grbl tool chain. The information I am asking for is precisely that…something which clearly describes Chilipeppr’s role in a grbl tool chain, what hardware it can run on, and installation instructions less than two years (and innumerable versions) old for systems such as Winx, Mac and Linux.

I have watched multiple videos on Youtube, but the ones I’ve seen spend more time talking about the process of building their CNC machine, designing their parts or showing their machine in operation, and almost zero time clarifying what Chilipeppr’s role/requirements/limitations are. 45 minutes hearing about the trials and tribulations of building a mill gets irritating when that’s not the information you’re looking for.

Obviously, I can connect my laptop to the arduino/grbl, but rather appreciate the possibility of using an essentially disposable $35 Ras Pi rather than a much more expensive laptop in an environment where metal chips might be flying through the air. I am looking for something that clearly describes Chilipeppr so that I can determine if this strategy is feasible with Chilipeppr, or I need to call the last three weeks a loss and pursue a different approach.

There is no such document.

I hesitate to help further since it appears you are asking for a resource that doesn’t exist rather than assistance. But if case you would accept the below as a clear description of chilipeppr below is such an articulation.

CP is a webapp that sends gcode to a a serial server (SJPS). It is crowd sourced and widget based so the functionality depends on what you write for it.

It will work somewhat everywhere that there is a web browser. Its feature set is limited by what your browser is capable of and what you have enabled at a browser or system level. CP cannot control your system or browser. This is your responsibility.

At a minimum the browser should support websockets so that it can communicate with the serial server. Ideally it will also support webGL so that the visualiser will work. This is not necessary though.

Its performance is governed by the complexity of the gcode and the power and memory of the system on which you are hosting the browser.

the webapp is a companion to SJPS which is a separate piece of software that has its own functionality and limitations. You are not asking about this however.

@Justin_Adie This is the densest detail and clarity I have seen from any resource in three weeks of searching. (that’s a complement).

As indicated by the blank screen from the chilipeppr website, is it true that webGL is not necessary? I got two replies in this discussion that I had to enable webGL in order to interface with Chilipeppr at all.

Additional comments in the replies make it clear that this isn’t the right tool for utilizing a Ras Pi as a standalone gcode-to grbl server, which is my intent.

I’ll stop pestering, but would suggest that if this community wants to increase participation, it would behoove the group to improve how it communicates how Chilipeppr fits in the CNC tool chain.

I don’t know what you mean by blank screen. Others report only that the 3d tool does not load when they don’t have webGL enabled. I have not seen a single report of the entire screen being blank (I.e. no resources loading).

In any event the 3d tool is not a necessary component to the core functionality of sending gcode to a serial server over a websocket. It is just a visualisation.

I don’t see why a raspi cannot be used to host sjps. Others have done so successfully.

Whether or not a raspi can run a webbrowser and an rdp server and sjps successfully is not something I can help with. There are too many variables.

You are not limited to a pi of course. Sjps is just a serial server. You can write your own implementation (for your hardware) for a nodemcu or other low power connected device.

@Justin_Adie It is a completely blank page. Absolutely no content shown at all. if you Google “blank screen chilipeppr,” you will see that I am one of many people who have run into this.

Using the developer tools, there is HTML source to load the Java Script which runs CP, and it shows that the page fails with “ReferenceError: chilipeppr is not defined” as an error.

Anyone with a modicum of technical skill wanting to install gobstopper would rightfully expect that since is a site which hosts gobstopper’s functionality, it would be a great place to find the basic features, requirements and installation information. If is so sensitive to precise configuration, gobstopper owes itself and prospective users information on how to properly configure their system to use gobstopper, and at a common-sense location.

Telling them to go to youtube and screen days worth of videos to find momentary references to important information or join the gobstopper community on Google and parse through three years of people’s projects using gobstopper is kind of ridiculous, and is setting the project and community up to fail…Don’t get me wrong, Youtube and the Google community are invaluable, but they are lackluster resources at best on day one.

I have a Ras Pi 3 running a httpd web server, a DNS black hole and Kodi media playback (1080p) simultaneously in my living room right now. Since I have one doing this much, I know a Ras Pi 3 can run a web browser and an rdp server. The question is how much CP and sjps require. Since there is no site I have been able to find which provides the descriptions I have been looking for (what exactly is CP, what is it dependent upon, and even mediocre install/configuration instructions), I have been unable to even begin experimenting with installation/configuration/testing.

I am not limited to using a Ras Pi. I want to use a Ras Pi because it is a powerful and cheap computer. My desire is have the entire control system (Ras Pi grbl file reader/gcode sender, Arduino running grbl, grbl shield, stepper motor power supply) in the bottom part of the torsion box the CNC is mounted to.

With this configuation I’d only need to connect K,V,M and power and have a completely functional CNC milling machine. Or I could connect power and wirelessly RDP into the control system from a distance which is safe from flying debris.

If aluminum chips start flying around from a part I’m cutting, I don’t want to put a multi-hundred-dollar laptop at risk. I only want to risk a $35 Raspberry Pi. Multiple sites have implied that this is possible with cp, but not a single site has adequately described what Chilipeppr is, what it can do, and what the minimum requirements are to run it.

I know I need to install sjps on the Ras Pi. I still don’t know if I can “install” any other cp prerequisites on the Ras Pi since I’ve been unable to find anything which tells me what the prereqs are, instructions for downloading and installing the current versions, and the first steps necessary to begin configuring cp to communicate with sjps.

CP is just a webapp. hopefully you now have its pre-requisites from my earlier posts.

i am not aware of the blank screen that you describe. now am I aware of an issue with a js error of chilipeppr being undefined. but this sounds as though you are failing at the first hurdle and somehow not downloading the right javascript resource. I don’t want to offer advice on how to overcome the issue as I know that you are not looking for that help. If I am mistaken and you are looking for help with this issue I may be able to assist you with debugging your setup although I have never used a Pi (I prefer far cheaper microcontrollers).

having googled the search as you asked I can see that some others have reported the same or similar issue - but not for a long time and several of the chains describe the steps that people have taken to overcome the issues.

I understand your point about documentation but personally I would rather spend my time (and i would rather other developers spend their time) bug-fixing and enhancing the code base for a webapp than keeping documentation centralised when 95% of the problems people face are either already solved in other web forums or here (and thus immediately searchable) or relate to unknown bugs and thus are best reported here (on which note I still need to squash the bugs in the grbl1.1 workspace.)

Only other thought is you have JavaScript disabled or an ad blocker that stops the JavaScript from running because it uses Google analytics.

@Justin_Adie The Raspberry Pi is not a more expensive microcontroller. I’m not trying to add another microcontroller in the chain. I agree that would be adding unneeded compexity and expense to the system. I’m trying to use a much less expensive computer in lieu of a laptop or desktop PC. Many 3D printers are following the same strategy, where the user CAN use a laptop/desktop IF THEY DESIRE, but can use a Ras Pi to run the print process so that the full computer is untethered and fully available for any other use while a print is active. Unlike most 3D printing processes, CNC machining puts a tethered PC/laptop at risk from flying debris and coolant.

From the rumor and innuendo I’ve found in my searches that led me here, it appeared that CP might have been a tool that could support this transition. From this chain, I see that I was mistaken. My frustration is that a single, simple document could have prevented my weeks of research, and all of the time we in this discussion have spent arriving at this conclusion.

We seem to have a fundamental disagreement that “95% of the problems people face are either already solved in other web forums or here.” It may be true that 95% of the problems faced by people who have waded through rumor, inuendo and chopped-up bits of advice spread across and peppered within layers of forums and communities are already solved. You may prefer that only the most stubborn can use CP, but I don’t. As an ardent supporter of the maker movement and the associated technological evolution, I want this kind of technology to be easily accessible as well as robust. I don’t want any makers to be irritated out of trying new tools, and a complete lack of basic documentation is an irritation to the vast majority of people.

The full set of information I have asked about may very well be spread out through this community and associated discussions. The problem is that I and other prospective users have to know the precise terms to use to find what I’m looking for, or spend days to weeks of reading through information that is completely irrelevant and distracting on day one, or in my case, day n-1.

As a moderator and dev, you are intimately familiar with the proper catch phrases, so seem to suffer from the blindness nearly every other dev suffers from. This places the cart before the horse, so to speak. I am a software developer, so have suffered from this same ailment many times. Thankfully, one of my first employers dilligently ensured that I understood that a great piece of software can never be great if a lack of documentation makes it unmarketable and doomed to a short life span. Thankfully, this “ailment” is more like a common cold than HIV.

One of the computer programming professors at St. Martin’s University notifies each of her students that she tells every employer she speaks with to immediately fire any programmer who works for them who does not document his/her code. Not documenting code generally demonstrates a reckless approach to software development, and is often used by programmers to hold the company hostage, by ensuring that the developer is the only person who can support the software. It appears from your avatar that you are old enough to not be starting your career. The same is true for me. I started programming in 1979, and have transitioned through more languages than I care to count. As “elmers,” we owe it to our younger generations to teach them the skills and habits which improve the world and their professional prospects.

Again, I’m not trying to be a jerk. I realize that it is unsolicited, but I’m trying to help you (the entire dev team) understand that clear documentation is the foundation of any good software. Obviously it is nearly impossible to completely document every function within a large piece of software under active development, but how much harder will it be as it approaches “stable?” If the team is unwilling to concede that the most basic documentation, placed in a common-sense (to the general audience, not to the dev team) location is essential now, what are the chances that the team will actually do it once the fires are out? No matter how strongly you believe it is, no code is ever effectively self-commenting, and no forum is anywhere near as effective as a single, easy to find and read document which details the software’s place in the world, how to install it, and the minimum configuration requirements necessary to use the software.

Why would you want to spend as much time as you have on this project, and not fight to prevent it from being relegated to an inconsequential speck in a large segment of a cultural, technological and economic transformation? Gcode and stepper motors have been around and in use for nearly 70 years. Low cost, easy to use, high precision CNC was a dream 10 years ago. Now, it’s part of the core of the snowball that is the maker evolution. It has already generated hundreds of billions of dollars of economic growth, and many economists are predicting that it will overshadow the scale of the internet transformation in the 1990s.

You may be misunderstanding the make up here. There is no formal team. People contribute what they want when they want. All input is welcome. There is no repository of information that I have access to that you do not.

I am a moderator on this group as John got bored of having to release my posts from the moderation queue. For some reason everything I wrote was flagged as spam. No other reason. I’m only a small contributor and one of many.

The first time I came across CP was Christmas last year. When I tried to use it I found it was not compatible with grbl1.x so I spent a day studying the code base of the workspace and two of the widgets (and sjps) and, with Luca, rewrote the grbl widget to be compatible. I wasn’t looking for code comments and would have ignored them if they were there. This is JavaScript - an easy language with loosely typed variables. It was not complex at all to trace through the flows and develop against them.

I got it to the stage of ‘works for me’ and then gradually others wanted to use the workspace for their grbl 1.x controllers. I never intended for that as the workspace was experimental and not production quality code. I’ve been coding since 1978 but I’m a commercial lawyer specialising in IP/IT law, not a full time developer. I suspect that other contributors are not full time programmers likewise.

Ironically I found the whole process of CNC milling to be a frustration too far in fact. To this day I have never successfully milled a single circuit board whatever the controller and have gone back to getting my designs made in China. I continue to contribute to CP because I feel a responsibility to do so, at least until grbl 1.x compatibility is polished. I don’t contribute my time because I’m desperate for CP to succeed as a long term product. If something better comes along tomorrow or in a year I will still have discharged what I feel to be my responsibility here.

Going back to the theme of your posts: you see a need for documentation that I do not. Going back nine months I felt a need for grbl 1.x compatibility that others did not. So I created that compatibility. I urge you to do likewise: put together whatever form of documentation you think is important and build it into a workspace (which does not need to have any CNC functionality at all). If it is worthy John may promote the workspace on the jump page. If not then you can post the workspace here and people will be able to see it for posterity. Bottom line: if you need it, research it, write it and share it.

I would be more than happy to put a new workspace on the homepage at any time.

I do understand how open-source projects evolve and work. It’s amazing what peer pressure can do, and I have a hard time understanding how you can spend as much time as you have, and feel absolutely no desire to see the project you are contributing to succeed.

Clearly we disagree that documentation is necessary. This may be because you started working with CP before the sheer volume of discussions and posts buried the basic information, which you now take as common-sense.

Your response is a bit troubling. If the open-source and maker communities feel that clearly communicating what their tools are, can do, what they need as inputs and outputs is just a waste of time, this free sharing of ideas and skills will die out. The next wave of developers will be less prone to communicate clearly, and the rapid creation of high power and inexpensive tools will die due to failing demand. We as a community will be the purveyors of our own downfall as a community.

@Michael_Hendricks ​. The difference between us is that you take the view that the current information is inadequate. I do not. If you take my point of view for the purposes of discussion then you should find yourself to be less troubled (viz your final paragraph).

I think the discussion has gone as far as it can. My offer to help you resolve your specific technical issues remains of course. Do post back here so all can learn from the debugging steps you take. Your technical goal is well within the capabilities of your setup sfai am aware.