Bantam Tools / Chilipeppr Log Hey All,

Bantam Tools / Chilipeppr Log

Hey All,

I am new to Chilipeppr and also to Othermill / Bantam cnc, but not new to GRBL and UGCS, and have built a few machines over the past 3 years. My primary mission with this tool is to mill very delicate PCB boards that use mostly DNF and QNF packages with 0.6 mm traces. I wanted to start this thread in order to document the trials and tribulations of of getting the Bantam cnc to run Chilipepper and also to see if other folks have had similar experiences with their machine/s.

Here are the system specs that I am working with now

Bantam CNC running TingyG v9
Raspberry Pi 3b running raspbian stretch using SPJS Version 1.86
Alternatively - Dell precision M4700 / windows 7 SP1 - Intel I7 64bit - 16gb ram using SPJS Version 1.86 on localhost

The current stock config of Bantam is as follows - (This is a custom build if the firmware that Bantam has continued developing / using post OMC)

$$
[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-d4032595-11930323-83021313
[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.130 [0…1]
[p1cph] pwm cw phase hi 0.170 [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 0.000 mm
[g54y] g54 y offset 0.000 mm
[g54z] g54 z offset 0.000 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 19.194 mm
[g55y] g55 y offset 46.610 mm
[g55z] g55 z offset -8.000 mm
[g55a] g55 a offset 0.000 deg
[g55b] g55 b offset 0.000 deg
[g55c] g55 c offset 0.000 deg
[g56x] g56 x offset 0.000 mm
[g56y] g56 y offset 0.000 mm
[g56z] g56 z offset 0.000 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.887 mm
[g57y] g57 y offset 11.858 mm
[g57z] g57 z offset 8.879 mm
[g57a] g57 a offset 30.908 deg
[g57b] g57 b offset 0.000 deg
[g57c] g57 c offset 0.000 deg
[g58x] g58 x offset 136.698 mm
[g58y] g58 y offset 11.907 mm
[g58z] g58 z offset 136.690 mm
[g58a] g58 a offset 30.957 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
When using Bantams custom UI I generally use these settings

The reason for moving to Chilipeppr is as follows
Bantam UI does not have an auto leveling function, which as it turns out is absolutely critical to being able to mill consistent widths and traces with a Vbit. The V bit is the most robust cutter style for milling PCB’s and produces the cleanest cut / at high speeds. They are also cheap !!!
The Chilipepper SPJS allows for a stand alone machine when used with the Raspberry pi and can effectively be embedded in the machine when running headless (which isn’t very difficult to achieve with the latest raspbian releases that come with realVNC)
Open source hardware and software is getting better everyday and this machine would not exist without the support and effort of OS community. It is literally built on open source in every way and the price of the machine reflects this.

So begins my journey of transitioning / hacking this machine in order to use it more effectively and openly.

My first encounter with Chilipeppr a few days ago have revealed a few things right off the bat
Chilipeppr is dense !! The UI is compact to the point of being overwhelming and has an incredible depth and excellent documentation. It is complicated no doubt but it’s possible to learn quickly if you sit down and read while playing
The modules that folks have written for Chilipeppr are powerful and amazing.
The UI is not possible to use meanifully (can’t control any hardware) without the use of its counterpart; the SPJS. It is difficult to understand why the SPJS is so important unless you have a pretty solid understanding of how web pages work and why it’s so difficult to interface a web UI with hardware. Simply put the SPJS is the program, It is an incredible program and you can’t live without it. Everything else is a pretty interphase that interacts with the SPJS. Understanding how the SPJS works is rigorous study and one should not take it lightly. I still barely understand it.
Configuring the buffering setup on the SPJS for Bantams 72.73 firmware is maddening and it crashes reliably. I believe that when this firmware encounters any character that it doesn’t like it completely freezes and you can’t recover by simply hitting the reset button in the TinyG widget in Chilipeppr. You must shut the machine down (or alternatively reset TinyG and then cycle USB ports) shut down the SPJS and then; IN THIS ORDER; turn the machine back on, re execute the SPJS and the reload Chilipepper. What a pain in the ass !! As far as I can tell you need to go into the Gcode gear icon and open up Gcode sender options and turn off preloading, multi line, any play / pause / stop features, tool change and add line numbers. Additionally with 20ms of delay and 1000 lines I can get the machine to run a Gcode file for about 10 min before it encounters a buffer issue or a line of garbage and then effectively has an aneurysm.
Don’t expect to use auto level, touch plate, or super touch plate widgets without erratic changes in Z direction and at least 1 crash to learn what is going on. This turned out to be the most frustrating issue aside from the tweaky buffering issues.
After reading more documentation it’s become clear that the firmware needs to be changed to a Synthetos build and I am not sure of a way to recover to 72.73 if for some reason I would like to go back to the standard Bantam UI. Hopefully more to come on this subject later if / when I hear back from Bantam
Furthermore I have no idea if I will encounter a Firmware Update Verification Failure which would make my dayjob a living hell. More to come on that later.

For now I will wrap up by saying that I love this machine. It’s design is smart. Bantams UI is also amazing (especially for beginners) but limited for advanced folks. The machine is very fast and has an excellent microspindle with a fairly low runout. It is exactly the hardware that I needed and nothing more. Now to improve the brains. :slight_smile:

Hello Chilipeppr community

So I’ve learned a few new things in the past couple days. First off changing the buffering settings to 10000 lines and 50ms seemed to do the trick to get Bantams stock firmware to run a file over Chilipepper without crashing. The board that this Bantam machine is running is 153v9k which according to documentation is really meant to run on G2core. I believe that Bantams firmware number 72.23 is actually an old version of G2core from before Feb 2015. https://github.com/synthetos/g2/releases?after=098.22

Right now I’ve chosen to update the firmware to 100.03 and also start using SPJS v1.95. Luckily Bantam tools includes a firmware updating tool in there software and was able to load the .bin file for 100.03 right through there (thank you Bantam - So easy!). If your on Windows you should see the USB driver reinstall itself automatically saying “device is ready”. Additionally I found out that if you’d like to recover the machine to 72.23 you can just hit the update again and it will bring you right back as this firmware is preloaded into the UI (very much appreciating this feature of the Bantam UI).

There are a few things to be wary of when going from 72.23 to anything else . One is that your calibration settings are all going to be overwritten. Luckily the Chilipepper team (Kevin Houser) wrote this awesome archive and restore settings widget that allows for your to upload all of your boards calibration settings and then re - upload them once you’ve upgraded. It’s embedded in the TinyG widget > click the gear > drop down menu next to save. Don’t forget to hit save once you’ve loaded up. Although all of the calibration loaded fine, one thing that did happen to me though is that I had to go back and enable all 3 axis motor power and also the limit switches. Thank you Chilipeppr dev team for making that really easy! The second thing is that the automatic PCB milling fixture calibration will not be available to you. It’s very helpful to write down your G57 and G58 settings that you can obtain from the bit breaker log. There is some code sifting to do but essentially you can use these setting to do the same board flipping that you’re used to from the Bantam UI. My coordinates upon writing this were as follows.

Bracket G57 “x”:8.916,“y”:11.865,“z”:8.907
Bracket G58 “x”:136.707,“y”:11.928,“z”:136.698

In theory one could use the super touch plate widget in order to gain then coordinates again however I don’t believe there is a way to control the direction of the touch probe. Perhaps someone can help me write the super touch probe in order to mimic what the bantam UI does automatically when locating a fixture? :slight_smile:

Right away I noticed that the machine is more responsive. It’s much much faster! And along with that I could finally start using multi line loading which completely changed the way the machine handled code and jerk motion on small lines and inside corners. So impressed. I am still playing with the settings however 100 lines of multi loading and 50ms seems to do the trick rather nicely. Also I can use feed hold, and cycle start where I couldn’t before, as well as checking nearly all of the boxes at the bottom of Gcode Sender options. The arrow key move combinations are still an issue though and still cause the machine to freeze up.

I also noticed that none of the work coordinate offsets will stay once the machine has been reset. Hoping there is a way around this as I would love to save those fixture offsets G57 and G58. Also another weird issue is that I can’t get the machine to recognize an M3; it just wont turn the spindle on when i press play or when entering manually

And for the finally. Auto leveling and touch plates don’t work. My conclusion is that there is some additional configuring to do (hopefully just in the $$ settings :c )

More to come later.

M

missing/deleted image from Google+

Matthew,

Did you ever follow up on this and get Chilipeppr to work with your Bantam?

This content was moved over to this forum when G+ went down (therefore marked with the gplus tag). The author of this topic might not have moved here too, so he eventuealy will not aswer.

I can confirm that as of now, @Matthew_Flego has not logged in to MakerForums.