Forum Replies Created
-
AuthorPosts
-
jlauerMember
One thing you could try is the ChiliPeppr Tablet workspace, which doesn’t load the 3D viewer, and thus should be able to handle more (if not unlimited) lines. It doesn’t instantiate the 3D viewer, which is what chokes on large files because it loads all lines into the 3D viewer and that chews through massive RAM. This makes the workspace act more like a simple Gcode sender, but still has lots of goodies in it.
jlauerMemberI recommend just doing a macro inside ChiliPeppr to repeat your Gcode over and over. Combine some of the sample macros, i.e. listen for the “done” pubsub and then re-send the “play” pubsub command.
jlauerMemberOne of the main features of 1.86 is fixing stalling, so I would try that out and see how it goes. The stalling was likely a threading issue and more mutex locking was added between the inbound serial data thread and the outbound serial data thread. Early reports are showing that it 100% solved it.
Also, the latest version of SPJS is not necessarily more CPU efficient because the feed rate override did add a bit of overhead. SPJS now has to parse each line to keep track of the current feed rate. Then when you ask for a multiplier, it knows what to multiply against. So it is constantly watching, parsing, and calculating.
September 28, 2015 at 3:43 pm in reply to: Motion suspend or stop when the switch is on & TinyG communication programming #8788jlauerMemberWhy don’t you just use Serial Port JSON Server (SPJS), which is what ChiliPeppr uses, and then bind in direct to SPJS over a websocket from your favorite language like Java, Python, etc. Then just send commands into the websocket like:
open COM7 115200 tinyg
when the door is open, send pause
“send COM7 !”when the door is closed again, send resume
“send COM7 ~”jlauerMemberenhering, one thing to consider is possibly using Serial Port JSON Server behind your app and just having your GUI connect to it. The reason is that a lot of work is being done to solve lots of nitty gritty problems that you are running into. If you don’t want to have to reinvent all that work, this could possibly be a better way to go.
Here’s a quick list of some top things SPJS solves for TinyG:
1. Buffer flow algorithm that works perfectly for TinyG
2. New buffer flow algorithm that works perfectly for TinyG G2 (the new Arduino Due dual port version)
3. USB info traversal to figure out the related dual ports for item 2.
4. Programming ability for any Atmel chip, i.e. any Arduino or TinyG, courtesy of the Arduino guys actually contributing code to SPJS so that you can upgrade the firmware of the CNC controller without any extra work.jlauerMemberI would try out the Laser Solder widget inside ChiliPeppr. It just watches the Z axis and turns the laser on when below a certain threshold. What it’s doing to turn the laser on though is sending the word “laser-on” or “laser-off” to an Arduino. The Arduino app is at https://github.com/chilipeppr/LaserSolder/tree/master/arduino and I would just use the toggling.
The reason for the Arduino approach is that if you did need to send really fast toggling of the laser, you’ll need more than a TTL from the TinyG. I keep envisioning that the Arduino gets pre-loaded with say 1,000 on/off values ready to go. Then you have the Arduino watch for a trigger voltage from TinyG from the coolant switch. So, it’s sort of a triangle of ChiliPeppr as the orchestrator, then TinyG doing it’s thing, with Arduino getting uploads of data from CP and getting a trigger from TinyG at the right moment.
Now, since you are just doing PCB lasering, you really could just toggle the laser on from an Arduino using the Laser Solder widget, or you could just do coolant on/off. Since most PCB code generators, including ChiliPeppr’s Eagle BRD Import, generate z-height clearances, that is your easiest way to decide to toggle a laser.
You could of course also just use the coolant on/off command in your Gcode which means you don’t need anything special inside ChiliPeppr.
jlauerMemberSmall arc movements were fixed in newer firmware. Are you sure you have the latest firmware? I too have seen issues in the past with small arcs, but my understanding is those got fixed. I have not personally tested that though.
jlauerMemberHi Juha,
Any interest in somehow merging this project with ChiliPeppr? Take a look at ChiliPeppr’s Eagle CAD import feature as it could be helpful to the pick and place process.
My gut tells me you’re so far down the road of a desktop app that there’s not much ability to make it work with ChiliPeppr and Javascript, but one of the main goals for doing ChiliPeppr was to eventually get to a useful pick and place process. So, it would be great to merge efforts if possible.
-John
jlauerMemberActually, I’ve been doing a ton of testing and Rpi2 is really awesome running Serial Port JSON Server. The original Rpi is what seems to not do well on intense jobs. So I highly recommend Rpi2. I do NOT recommend original Rpi.
jlauerMemberI would recommend you try the new spjs version 1.80 published last night. It likely fixes your issue.
jlauerMemberHi Christine,
Could you perhaps describe the top 3 to 5 things about ChiliPeppr to get it to be workable like Mach 3 is for CNC work? I think this type of feedback would help the community get tools like ChiliPeppr closer to what folks really want/need.
-John
jlauerMemberWait, this is a big deal. You’re telling me that you got pauses in TgFX when doing laser cutting, which was probably due to Java’s garbage collection? In ChiliPeppr though you got no pausing and a clean output from the laser cut? The community needs to hear this because most Gcode senders are Java and if garbage collection does a “stop the world” it can kill jobs like yours. I specifically wrote Serial Port JSON Server in an environment that was high performance to avoid this from happening, and it appears it worked for you beautifully.
jlauerMemberWhat was your CAM process? Folks are asking over at https://plus.google.com/u/0/+JohnLauerGplus/posts/bNqSresLKpv?cfem=1
jlauerMemberThat’s awesome. I’m assuming that was laser etching? It looks like that’s paper that you etched the design into. What power of laser did you use? Diode or CO2? I know a lot of folks are using cheaper diode lasers to etch paper now. Got any video of the job running? I’d love to post it on the Google+ forum for ChiliPeppr.
- This reply was modified 9 years, 11 months ago by jlauer.
jlauerMemberWell, one idea would be to have ChiliPeppr be your glue. If the Teensy can show up as a serial port like an Arduino can, then check out some of the videos I’ve done where ChiliPeppr talks to the Arduino and the TinyG at the same time. This way you could read/write to the Teensy as well as read/write for the TinyG.
You could write a macro that generates the Gcode for what you want. Perhaps go into “recording” mode to grab your final positions after the jog. Store that in a javascript variable. Then go into “run” mode where you calculate out your steps and send them as normal Gcode via ChiliPeppr’s standard programmatic interface.
I suggest looking at all the sample macros in ChiliPeppr. There’s a few that will give you the code commands for what you want. For example, sending Gcode to TinyG is as simple as:
macro.sendSerial(“G0 X0 Y0\n”);Or, you could generate all your Gcode as a string and then send it into the Gcode widget to visualize it. Although the 3D viewer is meant for XYZ positions and with a lathe you won’t get your visual the way you want, but it still could be helpful.
Here’s the macro for injecting code generated Gcode into Gcode widget:
var gcodetxt = “(This is my gcode)\nG92\nG0 Z1\nG1 X10\nY10\nX0\nY0\n”;
var info = {
name: “My gcode file”,
lastModified: new Date()
};
// send event off as if the file was drag/dropped
chilipeppr.publish(“/com-chilipeppr-elem-dragdrop/ondropped”, gcodetxt, info); -
AuthorPosts