Issues setting up CNCjs and jackpot

Had this problem a while ago, but never solved it and had to back burner this project. I never found a solution back then.

I have a Jackpot board on a new LR3 build and a Pi4 running CNCjs 1.10.3 (latest, new install). My issue is as follows.

  1. Power up the jackpot 1st (somewhere I saw that if the jackpot was powered by the pi 1st it might mess with motor voltages or some such)
  2. Power up the Pi 2nd which is plugged in to the jackpot via USB
  3. Log in to CNCjs
  4. refresh port, log in to silicone labs board @ 115200 (I’ve tried others with no luck knowing the fluid config said it was set to 115200)
  5. I get this in the console and nada for any controls:
    CNCjs 1.10.3 [Grbl]
    Connected to /dev/ttyUSB0 with a baud rate of 115200
    [MSG:INFO: WiFi Disconnected]

Is there something in the jackpot config I need to change? The CNCjs connects to my 3018 with no issues.

This particular setup is outside my area of knowledge, and so I don’t know an answer for you, but I wanted to let you know I saw this. Hopefully some smarter brains will know an answer.

What do you mean by “nada for any controls” ?

Is there an SD card in the board?

What does your config.yaml look like?

I have a Jackpot board that I haven’t hooked up yet so I tried it with an RPi 4 running CNCjs. Connected fine (same msgs you mentioned). Most of the buttons on the CNCjs page were grayed out, but when I clicked on the reset and unlock button (in CNCjs screen) everything seemed to be in order. I didn’t have any motors hooked up but the comm looked normal and I was able to turn some leds on the board on. After you get it all powered up, you might try:

  1. Push the RESET/EN button on the Jackpot’s ESP-32 (give it 15 secs to reboot)
  2. Refresh the CNCjs page on your browser
  3. Refresh your PORT and connect to USB0 again if it doesn’t do so automatically
  4. Click the RESET button in CNCjs.
  5. Click UNLOCK button in CNCjs.

A few things might be going on here. Last night I left the machine to take care of some family stuff. No router mounted, so no safety issues. When I came back CNCjs did not magically solve itself, but I noticed the stepper drivers were quite hot just at idle. I unplugged it all and left it until now.
I tried your reset recommendations and got the some results as seen in the screenshot. Problem now is that the motors do not move. If I tell it to go 50mm X+ with the CNCjs UI and it reports that x went from 0 to 50, but nothing happens. Oddly, if I use the home X button it gives me:
feeder> G28.2 Y0
[MSG:INFO: M4 requires laser mode or a reversable spindle]
error:20 (Unsupported command)

When go over to the fluidUI in the same instance and press the home x button, it gives me:
$HX
ERROR:5
Homing cycle failure. Homing is not enabled via settings.
Error : undefined :undefined
Again, in the fluidUI if I press X+ 10mm it shows the x position moving to 10 without motor movement.

Retracing steps, I removed the USB to the CNCjs and un/replugged the jackpot. Connected to the fluidUI in browser. I tell it to jog 10mm on X, then tell it to home X and get the same results with no motor movement.:
$G
[GC:G0 G54 G17 G21 G90 G94 M5 M9 T0 F0 S0]
ok
<Idle|MPos:0.000,0.000,0.000|FS:0,0|WCO:10.000,0.000,0.000>
$J=G91 G21 F1800 X10
ok
<Jog|MPos:0.025,0.000,0.000|FS:240,0|Ov:100,100,100>
$HX
ERROR:5
Homing cycle failure. Homing is not enabled via settings.
Error : undefined :undefined

So now no motors work, settings seem to have been somethinged, and the Y2 and Z2 stepper drivers are significantly hotter than the X1 Y1 Z1 drivers. Yes, they all have heatsinks.

My config file:

board: None
name: Default (Test Drive)
meta: 
stepping: 
  engine: RMT
  idle_ms: 255
  pulse_us: 4
  dir_delay_us: 0
  disable_delay_us: 0
  segments: 12

spi: 
  miso_pin: NO_PIN
  mosi_pin: NO_PIN
  sck_pin: NO_PIN

sdcard: 
  cs_pin: NO_PIN
  card_detect_pin: NO_PIN
  frequency_hz: 8000000

kinematics: 
  Cartesian: 

axes: 
  shared_stepper_disable_pin: NO_PIN
  shared_stepper_reset_pin: NO_PIN
  x: 
    steps_per_mm: 80.000000
    max_rate_mm_per_min: 1000.000000
    acceleration_mm_per_sec2: 25.000000
    max_travel_mm: 1000.000000
    soft_limits: false
    homing: 
      cycle: 0
      allow_single_axis: true
      positive_direction: true
      mpos_mm: 0.000000
      feed_mm_per_min: 50.000000
      seek_mm_per_min: 200.000000
      settle_ms: 250
      seek_scaler: 1.100000
      feed_scaler: 1.100000

    motor0: 
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1.000000
      null_motor: 

  y: 
    steps_per_mm: 80.000000
    max_rate_mm_per_min: 1000.000000
    acceleration_mm_per_sec2: 25.000000
    max_travel_mm: 1000.000000
    soft_limits: false
    homing: 
      cycle: 0
      allow_single_axis: true
      positive_direction: true
      mpos_mm: 0.000000
      feed_mm_per_min: 50.000000
      seek_mm_per_min: 200.000000
      settle_ms: 250
      seek_scaler: 1.100000
      feed_scaler: 1.100000

    motor0: 
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1.000000
      null_motor: 

  z: 
    steps_per_mm: 80.000000
    max_rate_mm_per_min: 1000.000000
    acceleration_mm_per_sec2: 25.000000
    max_travel_mm: 1000.000000
    soft_limits: false
    homing: 
      cycle: 0
      allow_single_axis: true
      positive_direction: true
      mpos_mm: 0.000000
      feed_mm_per_min: 50.000000
      seek_mm_per_min: 200.000000
      settle_ms: 250
      seek_scaler: 1.100000
      feed_scaler: 1.100000

    motor0: 
      limit_neg_pin: NO_PIN
      limit_pos_pin: NO_PIN
      limit_all_pin: NO_PIN
      hard_limits: false
      pulloff_mm: 1.000000
      null_motor: 

control: 
  safety_door_pin: NO_PIN
  reset_pin: NO_PIN
  feed_hold_pin: NO_PIN
  cycle_start_pin: NO_PIN
  macro0_pin: NO_PIN
  macro1_pin: NO_PIN
  macro2_pin: NO_PIN
  macro3_pin: NO_PIN
  fault_pin: NO_PIN
  estop_pin: NO_PIN

coolant: 
  flood_pin: NO_PIN
  mist_pin: NO_PIN
  delay_ms: 0

probe: 
  pin: NO_PIN
  toolsetter_pin: NO_PIN
  check_mode_start: true

macros: 
  startup_line0: 
  startup_line1: 
  macro0: 
  macro1: 
  macro2: 
  macro3: 
  after_homing: 
  after_reset: 
  after_unlock: 

start: 
  must_home: true
  deactivate_parking: false
  check_limits: false

parking: 
  enable: false
  axis: Z
  target_mpos_mm: -5.000000
  rate_mm_per_min: 800.000000
  pullout_distance_mm: 5.000000
  pullout_rate_mm_per_min: 250.000000

user_outputs: 
  analog0_pin: NO_PIN
  analog1_pin: NO_PIN
  analog2_pin: NO_PIN
  analog3_pin: NO_PIN
  analog0_hz: 5000
  analog1_hz: 5000
  analog2_hz: 5000
  analog3_hz: 5000
  digital0_pin: NO_PIN
  digital1_pin: NO_PIN
  digital2_pin: NO_PIN
  digital3_pin: NO_PIN
  digital4_pin: NO_PIN
  digital5_pin: NO_PIN
  digital6_pin: NO_PIN
  digital7_pin: NO_PIN

NoSpindle:

arc_tolerance_mm: 0.002000
junction_deviation_mm: 0.010000
verbose_errors: false
report_inches: false
enable_parking_override_control: false
use_line_numbers: false
planner_blocks: 16


You mentioned it is a lowrider build… Your config looks significantly different from the V1 config.yaml for that machine. Is there a reason for that?

Here is a link to the V1 Engineering LR machine:

I have no idea why my file would have gone to what looks like a nothing config. My house has been very static-y lately, but I don’t think it would account for a file going to default.

So we aren’t chasing any other unknown gremlins, how would I go about re-flashing the board and adding fresh files to limit any other unknowns? It seems like that would be the surest way to get back up and running. I’m afraid that if that file got nuked something else could have as well.

Thanks for the help, by the way.

First step is to update the FluidNC firmware. I don’t think you have to do that, so if it turns out to be complicated, we can skip it, but if you want to give it a shot …

  1. Using the Chromium browser on your Pi, go to https://installer.fluidnc.com/ and flash the latest 3.7.14 firmware onto the esp32.

More to follow…

To be honest, I have only ever updated the config.yaml with a wifi connection, so I don’t know how to do that via USB. Can you configure the FluidNC on the Jackpot to connect to your WiFi?

Thanks. I’ll give it a shot after I cook the kid’s dinner and get them in bed and report back.

Yeah, I’ve got some stuff to do as well. You should be able to update FluidNC via the USB, then hook it up to your Wifi (I’m sure you can find some help on the V1 Engineering site if you get stuck on that). Once on WiFi, you can use the FluidNC “WebUI” to easily upload/replace that config.yaml I linked to earlier.

Once you do that, give it another whirl with CNCjs.

It all works now! The flash with the fluid website is just fantastic.You can upload the files directly from there, so you don’t need to log in to the board’s AP to upload the files.

Through this I have gained a lot of appreciation for this little board setup. Not having to look at platformio to do any of this makes the jackpot so much easier than any of my skr boards. The pi is for better wifi, a camera, and visualization. The two in tandem works well for me.

I still have an issue where I CAN home with the buttons on the fluidUI in browser, but not the CNCjs UI. CNCjs gives me:
feeder> G28.2 X0
[MSG:INFO: M4 requires laser mode or a reversable spindle]
error:20 (Unsupported command)

That’s not a huge deal breaker as I can switch between the two. I’ll look into that later. It can’t be that big of a deal to swap the commands the button produces.

Thanks for all of the help!

I assume you are talking about the individual homing buttons for each axis. I don’t think GRBL (which is what FluidNC is based on) supports single axis homing commands (G28.2), so that is why you get the error. I assume the “Home All” (blue) button at the top works? That one should be sending a $H and the machine should run the homing sequence as set in your config.yaml.

The single axis homing commands in GRBL (FluidNC) are $HX, $HY and $HZ.

Unless there was an update to CNCjs I don’t know about, you can’t customize the code that those buttons send. If you really want individual axis homing in CNCjs, you can create a macro for each axis. i.e. “Home-X” would send the command $HX, “Home-Y” is $HY … I know that isn’t ideal, but at least you won’t have to switch between the two interfaces.

Or if you just need the “Home All” sequence to be in a different order, you can do that by changing the config.yaml.

I used the edit button in axes to create buttons for what I wanted. It looks good and does what is needed now.

Thanks again for all of the help.