ChiliPeppr and Bantam PCB Milling Machine Issues

Hello,

I am trying to use Chilipeppr with a Bantam milling machine that I purchased. I have the machine setup as a tinygg2 in the serial port JSON server widget. I am able to jog the machine, but I am running into the following set of issues:

  1. I need to reset the machine periodically. If I try and jog too fast, the machine just stops accepting commands, and I need to do a reset.
  2. The autolevel widget runs backwards. It tries to probe upwards, and will keep going.
  3. The stop button on the auto-level widget doesn’t work. In order to stop I need to hit the FreeHold! button, but then when I resume, the machine won’t accept commands, and I need to do a reset.

I was hoping to use Chilipeppr instead of the Bantam software, particularly for the auto-level feature.

Help!

This sounds like a configuration issue on your G2, not ChiliPeppr. What are your settings? Can you paste them? Are you uploading them each time you connect since G2 is read-only or did you compile your settings in before uploading? Or if they are hard-coded by Bantam, are you accidentally overriding them?

For example, it sounds like your Z direction polarity is getting reversed in your settings on your G2, which ChilPeppr has nothing to do with, if the auto-level probes upwards.

I’ll admit I am only having the milling machine for a few days, so I am new at this. How do you get the G2 settings / upload them?

The movement directions are all normal when I jog. Also when I issue my own G38.2 command as well.

That’s a better question for the TinyG forums.

@Aaron_Barton you might post something g2-focused to our TinyG and g2core category and reference this post?

@jlauer I think you are right, it seems it is something about how the G38.2 command is processed on this firmware load (Bantam’s custom 72.73 on a TinyG v9 board153v9k PCB). I’m not really sure how their firmware is related to the rest of the TinyG firmware. I did try updating to a newer firmware using ChiliPeppr’s build in updater, but the machine became difficult to control, and wouldn’t work with their stock software, so I I had to revert back.

As for the settings, here they are (with the 72.73 firmware):

[fb] firmware build 72.73
[fv] firmware version 0.97
[cv] configuration version 6.00
[hp] hardware platform 3.00
[hv] hardware version 0.00
[id] TinyG ID02130215-05152593-23430303-93032363
[ja] junction acceleration 1000000 mm
[ct] chordal tolerance 0.0100 mm
[sl] soft limit enable 0
[mt] motor idle timeout 600.00 Sec
[pdt] pause dwell time 4 uSec
[ej] enable json mode 0 [0=text,1=JSON]
[jv] json verbosity 4 [0=silent,1=footer,2=messages,3=configs,4=linenum,5=verbose]
[js] json serialize style 1 [0=relaxed,1=strict]
[tv] text verbosity 1 [0=silent,1=verbose]
[qv] queue report verbosity 1 [0=off,1=single,2=triple]
[sv] status report verbosity 1 [0=off,1=filtered,2=verbose]
[si] status interval 250 ms
[gpl] default gcode plane 0 [0=G17,1=G18,2=G19]
[gun] default gcode units mode 1 [0=G20,1=G21]
[gco] default gcode coord system 2 [1-6 (G54-G59)]
[gpa] default gcode path control 2 [0=G61,1=G61.1,2=G64]
[gdi] default gcode distance mode 0 [0=G90,1=G91]
[1ma] m1 map to axis 0 [0=X,1=Y,2=Z…]
[1sa] m1 step angle 1.800 deg
[1tr] m1 travel per revolution 4.8768 mm
[1mi] m1 microsteps 8 [1,2,4,8]
[1po] m1 polarity 1 [0=normal,1=reverse]
[1pm] m1 power management 4 [0=disabled,1=always on,2=in cycle,3=when moving]
[1pl] m1 motor power level 0.275 [0.000=minimum, 1.000=maximum]
[1pli] m1 motor idle power level 0.150 [0.000=minimum, 1.000=maximum]
[2ma] m2 map to axis 1 [0=X,1=Y,2=Z…]
[2sa] m2 step angle 1.800 deg
[2tr] m2 travel per revolution 4.8768 mm
[2mi] m2 microsteps 8 [1,2,4,8]
[2po] m2 polarity 1 [0=normal,1=reverse]
[2pm] m2 power management 4 [0=disabled,1=always on,2=in cycle,3=when moving]
[2pl] m2 motor power level 0.275 [0.000=minimum, 1.000=maximum]
[2pli] m2 motor idle power level 0.150 [0.000=minimum, 1.000=maximum]
[3ma] m3 map to axis 2 [0=X,1=Y,2=Z…]
[3sa] m3 step angle 1.800 deg
[3tr] m3 travel per revolution 4.8768 mm
[3mi] m3 microsteps 8 [1,2,4,8]
[3po] m3 polarity 0 [0=normal,1=reverse]
[3pm] m3 power management 4 [0=disabled,1=always on,2=in cycle,3=when moving]
[3pl] m3 motor power level 0.375 [0.000=minimum, 1.000=maximum]
[3pli] m3 motor idle power level 0.150 [0.000=minimum, 1.000=maximum]
[4ma] m4 map to axis 3 [0=X,1=Y,2=Z…]
[4sa] m4 step angle 1.800 deg
[4tr] m4 travel per revolution 360.0000 mm
[4mi] m4 microsteps 8 [1,2,4,8]
[4po] m4 polarity 1 [0=normal,1=reverse]
[4pm] m4 power management 0 [0=disabled,1=always on,2=in cycle,3=when moving]
[4pl] m4 motor power level 0.050 [0.000=minimum, 1.000=maximum]
[4pli] m4 motor idle power level 0.050 [0.000=minimum, 1.000=maximum]
[5ma] m5 map to axis 4 [0=X,1=Y,2=Z…]
[5sa] m5 step angle 1.800 deg
[5tr] m5 travel per revolution 360.0000 mm
[5mi] m5 microsteps 8 [1,2,4,8]
[5po] m5 polarity 0 [0=normal,1=reverse]
[5pm] m5 power management 0 [0=disabled,1=always on,2=in cycle,3=when moving]
[5pl] m5 motor power level 0.050 [0.000=minimum, 1.000=maximum]
[5pli] m5 motor idle power level 0.050 [0.000=minimum, 1.000=maximum]
[6ma] m6 map to axis 5 [0=X,1=Y,2=Z…]
[6sa] m6 step angle 1.800 deg
[6tr] m6 travel per revolution 360.0000 mm
[6mi] m6 microsteps 8 [1,2,4,8]
[6po] m6 polarity 0 [0=normal,1=reverse]
[6pm] m6 power management 0 [0=disabled,1=always on,2=in cycle,3=when moving]
[6pl] m6 motor power level 0.050 [0.000=minimum, 1.000=maximum]
[6pli] m6 motor idle power level 0.050 [0.000=minimum, 1.000=maximum]
[xam] x axis mode 1 [standard]
[xvm] x velocity maximum 2600 mm/min
[xfr] x feedrate maximum 2600 mm/min
[xtn] x travel minimum 0.000 mm
[xtm] x travel maximum 145.600 mm
[xjm] x jerk maximum 500 mm/min^3 * 1 million
[xjh] x jerk homing 1000 mm/min^3 * 1 million
[xjd] x junction deviation 0.0100 mm (larger is faster)
[xsn] x switch min 1 [0=off,1=homing,2=limit,3=limit+homing]
[xsx] x switch max 4 [0=off,1=homing,2=limit,3=limit+homing]
[st] switch type 1 [0=NO,1=NC]
[st] switch type 1 [0=NO,1=NC]
[xsv] x search velocity 500 mm/min
[xlv] x latch velocity 25 mm/min
[xlb] x latch backoff 5.000 mm
[xzb] x zero backoff 0.400 mm
[yam] y axis mode 1 [standard]
[yvm] y velocity maximum 2600 mm/min
[yfr] y feedrate maximum 2600 mm/min
[ytn] y travel minimum 0.000 mm
[ytm] y travel maximum 119.100 mm
[yjm] y jerk maximum 500 mm/min^3 * 1 million
[yjh] y jerk homing 1000 mm/min^3 * 1 million
[yjd] y junction deviation 0.0100 mm (larger is faster)
[ysn] y switch min 1 [0=off,1=homing,2=limit,3=limit+homing]
[ysx] y switch max 4 [0=off,1=homing,2=limit,3=limit+homing]
[st] switch type 1 [0=NO,1=NC]
[st] switch type 1 [0=NO,1=NC]
[ysv] y search velocity 500 mm/min
[ylv] y latch velocity 25 mm/min
[ylb] y latch backoff 5.000 mm
[yzb] y zero backoff 0.400 mm
[zam] z axis mode 1 [standard]
[zvm] z velocity maximum 2600 mm/min
[zfr] z feedrate maximum 2600 mm/min
[ztn] z travel minimum -60.100 mm
[ztm] z travel maximum 0.000 mm
[zjm] z jerk maximum 500 mm/min^3 * 1 million
[zjh] z jerk homing 1000 mm/min^3 * 1 million
[zjd] z junction deviation 0.0100 mm (larger is faster)
[zsn] z switch min 0 [0=off,1=homing,2=limit,3=limit+homing]
[zsx] z switch max 1 [0=off,1=homing,2=limit,3=limit+homing]
[st] switch type 0 [0=NO,1=NC]
[st] switch type 1 [0=NO,1=NC]
[zsv] z search velocity 500 mm/min
[zlv] z latch velocity 25 mm/min
[zlb] z latch backoff 5.000 mm
[zzb] z zero backoff 0.400 mm
[aam] a axis mode 0 [disabled]
[avm] a velocity maximum 191929 deg/min
[afr] a feedrate maximum 191929 deg/min
[atn] a travel minimum -1.000 deg
[atm] a travel maximum -1.000 deg
[ajm] a jerk maximum 36909 deg/min^3 * 1 million
[ajh] a jerk homing 36909 deg/min^3 * 1 million
[ajd] a junction deviation 0.0100 deg (larger is faster)
[ara] a radius value 0.7762 deg
[asn] a switch min 1 [0=off,1=homing,2=limit,3=limit+homing]
[asx] a switch max 4 [0=off,1=homing,2=limit,3=limit+homing]
[st] switch type 0 [0=NO,1=NC]
[st] switch type 0 [0=NO,1=NC]
[asv] a search velocity 600 deg/min
[alv] a latch velocity 100 deg/min
[alb] a latch backoff 5.000 deg
[azb] a zero backoff 2.000 deg
[bam] b axis mode 0 [disabled]
[bvm] b velocity maximum 191929 deg/min
[bfr] b feedrate maximum 191929 deg/min
[btn] b travel minimum -1.000 deg
[btm] b travel maximum -1.000 deg
[bjm] b jerk maximum 36909 deg/min^3 * 1 million
[bjd] b junction deviation 0.0100 deg (larger is faster)
[bra] b radius value 0.7762 deg
[bsn] b switch min 1 [0=off,1=homing,2=limit,3=limit+homing]
[bsx] b switch max 0 [0=off,1=homing,2=limit,3=limit+homing]
[st] switch type 0 [0=NO,1=NC]
[st] switch type 0 [0=NO,1=NC]
[bsv] b search velocity 600 deg/min
[blv] b latch velocity 100 deg/min
[blb] b latch backoff 5.000 deg
[bzb] b zero backoff 2.000 deg
[bjh] b jerk homing 36909 deg/min^3 * 1 million
[cam] c axis mode 0 [disabled]
[cvm] c velocity maximum 191929 deg/min
[cfr] c feedrate maximum 191929 deg/min
[ctn] c travel minimum -1.000 deg
[ctm] c travel maximum -1.000 deg
[cjm] c jerk maximum 36909 deg/min^3 * 1 million
[cjd] c junction deviation 0.0100 deg (larger is faster)
[cra] c radius value 0.7762 deg
[csn] c switch min 1 [0=off,1=homing,2=limit,3=limit+homing]
[csx] c switch max 0 [0=off,1=homing,2=limit,3=limit+homing]
[st] switch type 0 [0=NO,1=NC]
[st] switch type 0 [0=NO,1=NC]
[csv] c search velocity 600 deg/min
[clv] c latch velocity 100 deg/min
[clb] c latch backoff 5.000 deg
[czb] c zero backoff 2.000 deg
[cjh] c jerk homing 36909 deg/min^3 * 1 million
[p1frq] pwm frequency 100 Hz
[p1csl] pwm cw speed lo 8000 RPM
[p1csh] pwm cw speed hi 26000 RPM
[p1cpl] pwm cw phase lo 0.135 [0…1]
[p1cph] pwm cw phase hi 0.190 [0…1]
[p1wsl] pwm ccw speed lo 0 RPM
[p1wsh] pwm ccw speed hi 0 RPM
[p1wpl] pwm ccw phase lo 0.100 [0…1]
[p1wph] pwm ccw phase hi 0.100 [0…1]
[p1pof] pwm phase off 0.100 [0…1]
[st] switch type 0 [0=NO,1=NC]
[st] switch type 0 [0=NO,1=NC]
[csv] c search velocity 600 deg/min
[clv] c latch velocity 100 deg/min
[clb] c latch backoff 5.000 deg
[czb] c zero backoff 2.000 deg
[cjh] c jerk homing 36909 deg/min^3 * 1 million
[g54x] g54 x offset 16.139 mm
[g54y] g54 y offset 25.400 mm
[g54z] g54 z offset -51.359 mm
[g54a] g54 a offset 0.000 deg
[g54b] g54 b offset 0.000 deg
[g54c] g54 c offset 0.000 deg
[g55x] g55 x offset 14.660 mm
[g55y] g55 y offset 17.865 mm
[g55z] g55 z offset -51.519 mm
[g55a] g55 a offset 0.000 deg
[g55b] g55 b offset 0.000 deg
[g55c] g55 c offset -21.552 deg
[g56x] g56 x offset 16.139 mm
[g56y] g56 y offset 25.400 mm
[g56z] g56 z offset -58.212 mm
[g56a] g56 a offset 0.000 deg
[g56b] g56 b offset 0.000 deg
[g56c] g56 c offset 0.000 deg
[g57x] g57 x offset 8.308 mm
[g57y] g57 y offset 11.517 mm
[g57z] g57 z offset 8.315 mm
[g57a] g57 a offset 30.567 deg
[g57b] g57 b offset 0.000 deg
[g57c] g57 c offset 0.000 deg
[g58x] g58 x offset 136.072 mm
[g58y] g58 y offset 11.470 mm
[g58z] g58 z offset 136.079 mm
[g58a] g58 a offset 30.520 deg
[g58b] g58 b offset 0.000 deg
[g58c] g58 c offset 0.000 deg
[g59x] g59 x offset 0.000 mm
[g59y] g59 y offset 0.000 mm
[g59z] g59 z offset 0.000 mm
[g59a] g59 a offset 0.000 deg
[g59b] g59 b offset 0.000 deg
[g59c] g59 c offset 0.000 deg
[g92x] g92 x offset 0.000 mm
[g92y] g92 y offset 0.000 mm
[g92z] g92 z offset 0.000 mm
[g92a] g92 a offset 0.000 deg
[g92b] g92 b offset 0.000 deg
[g92c] g92 c offset 0.000 deg
[g28x] g28 x position 0.000 mm
[g28y] g28 y position 0.000 mm
[g28z] g28 z position 0.000 mm
[g28a] g28 a position 0.000 deg
[g28b] g28 b position 0.000 deg
[g28c] g28 c position 0.000 deg
[g30x] g30 x position 0.000 mm
[g30y] g30 y position 0.000 mm
[g30z] g30 z position 0.000 mm
[g30a] g30 a position 0.000 deg
[g30b] g30 b position 0.000 deg
[g30c] g30 c position 0.000 deg

I ended up figuring out what the issue is. The TinyG implements G38.2 command in absolute mode (coordinates in the G53 system) (some Googling will show this). So when I hit the “Run Test Probe” in the auto-level, which sends to the machine “G38.2 F50 Z-10”, the -10mm plane is actually above where I have the tool in the middle of the machine, typically at Z-40mm or so. So it moves upwards.

The auto-level also runs in absolute mode as well. I have to put the “Start At” and “End At” in machine coordinates. By setting the “Max Negative Z” as -999.5mm, first it takes the tool to the 0mm plane (which is the top of the machine after it has been homed), then slowly drops the tool to touch off on the bed below, as it goes through all the X and Y points.

Oh, wow, that’s fascinating. Ok, well it sounds like you got a decent workaround. Hopefully this helps somebody else who might visit this forum in the future.

Would it be possible to request a feature in the auto-level, to choose which coordinate system the final matrix is applied to? The data in my case is relative to G53, however the auto-level seems to place the final matrix in G55, the same as the gcode. So for instance, say the first datapoint is at (40,26,-30)mm in G53, and my gcode starts at (0,0,0) in G55. The auto-level just places the data in G55, so my matrix is at (40,26,-30) in G55, not (0,0,0). The result is matrix is always offset from the gcode.

I can work around this by bringing the text into an editor, and manually subtracting the start point.

The auto-level is a great feature! Kudos to you for writing it!

Hmm, I’m totally up for community contributions if you want to do a pull request to that repo on Github. I don’t really have time to go make that type of change in my schedule, albeit I totally agree with you it would be awesome.