My Road to a SuperLongBoard from xPRO v5

When I decided to get a CNC Machine I went with a Bulk Man 3D 1515 ULTIMATE Bee Full Kit. This is a 1.5M x 1.5 M (~48” x ~48”) Chinese import machine. The frame is built using 4080 C-Beam and some 2040 and 4040 extrusions for stiffening. Power is transmitted using 12 mm SFS Series Quiet Transmission Ball Screws. The X & Y axis are 10mm pitch and the Z axis is 4mm pitch. The gantries run on HGR Linear Rails. For my kit I selected the Spark Concepts xPRO V5 controller with High Torque NEMA 23 Stepper Motors. For a spindle I selected the 2.2 KW Air Cooled Spindle in 110V.

When I got everything assembled and running, I investigated GCode Senders. I did not like the various ones suggested by Spark Concepts, these were primarily CNCJS and UGS. I then found gSender. I love the interface and because the xPRO is (or WAS, more on this later) GRBL ESP32 it worked well for me.

As a technical person, I always want the latest firmware on my devices. Spark Concepts moved from GRBL ESP32 to FluidNC as a base for their firmware. I thought: “No problem it says it is backwards to GRBL, it should just work.” The first thing that broke was the ability to make changes to the configuration of the GRBL. Settings on FluidNC are kept in a config.yaml file, which is uploaded to the controller via a serial terminal and the controller rebooted – I had bad flashbacks to remotely updating and configuring Cisco Routers early in my career. The next thing that broke was gSender would not detect my probe. The LED on the xPRO would light to show a connection, but gSender would not. The “upgrade” to FluidNC also seemed to be one way – at least I could not find documentation on how to roll it back to GRBL ESP32.

The configuration issue was a pain, but not a game stopper. Editing the .yaml file and reuploading took extra work, but once done it was done. The probing was another story. Manually setting the workpiece zero is a pain. My eyesight is not the best anymore and lining up the tip of a V-Bit on an edge was a pain. And more than once I tapped GoTo instead of Zero on the Z Axis – this would generally drive the bit into the workpiece (I have mentioned this elsewhere in the forum. While not a total game stopper – the probing was less accurate and a major pain.

So, I bit the bullet and purchased a SuperLongBoard. I had already purchased a Touch Plate – the plates that came with my kit were kind of junky. One was like the Sienci Touch Plate – but low quality. The second was a Z only puck. Now that the SLB has arrived. I will need to start documenting the process of converting my rig.

The first hurdle was the power connector. The power connector on my xPRO is the same 5.08 pitch connector, but the polarity is reversed – positive on the left vs. right. No big deal, small screwdriver to the rescue. It would have been nice if the connector was included with the SLB.

The next hurdle was the stepper motor connectors. The xPRO uses 3.81mm pitch connectors and the SLB uses 5.08mm pitch connectors. Amazon and credit card reward points to the rescue – thank God (Jeff) for Prime Next Day delivery. Again, it would have been nice to have the connector with the SLB. Maybe an option in the ordering SLB to include the power and motor 5.08 connectors for those not upgrading from a LongBoard to a SuperLongBoard.

The next hurdle was with my limit switches. I have two wire basic mechanical limit switches with just wire ends, not molex type connectors so I must use the 3.81mm pitch connector. Not a problem, except I need three grounds – one for each axis. I have ferrules on my wires so I could not get all three into the one ground spot – two fit. I used the GD spot on the Spindle/VFD connector just to the left of the AUX Limits header – any ground in a storm…

Touch Plate and E-Stop were no problem.

I am using RS485 to connect to my Spindle/VFD. On the xPRO I have a twisted pair of wires with a resistor (100 ohm ¼ watt) between them on each end. Once I figured out which wire was the “A” and “B” I was able to connect the VFD to the SLB. I find it interesting that the link in the manual for the VFD settings is from Bulkman3D.com – which is where I bought my rig.

Time for Power On – gee those LEDs are bright, especially the CND Status. E-Stop and Probe act like they should.

Now to connect with gSender. Change the firmware to grblHAL. Select the COM port and I get an ERROR Opening Port COM… The SLB is not connecting via USB. It is not the cable, I installed gSender on my laptop and I was able to connect to the SLB with the 10-foot-long cable I was using with my xPRO. Windows gives me a “This device cannot start. (Code 10)” in the Device Manager. So, Ethernet to the rescue. Luckily, my PC has Wireless and Ethernet for connections. And speaking of networking. Something that would happen when my xPRO was powered up. It would knock out my ethernet connection on my PC when it was powered on. Apparently, I won’t have this issue with the SLB.

Now that I am connected, I have movement, homing and probing working. I had to reverse the X and Y axis, Z was fine. It seems a little rough, but I am assuming it is because the default settings in the SLB are for a LongMill and will need to be changed to match my gear.

Now, on to getting the settings set. I have run into issues with setting for the Firmware. I would set something and when I clicked apply, the setting would revert to whatever the default was. This was a pain. Updated gSender to 1.4.7 and problems seem to go away. (always update your software)

Migrating from the xPRO’s FluidNC config.yaml file to grbl type $## notation was not too difficult. The biggest pain is that the .yaml file the everything is grouped by axis and the grbl $## settings are grouped by function. All the steps/mm together, all the max rates together, accelerations together, etc. In other words, there was a lot of flipping between parts of the .yaml file while entering the settings in gSender.

The next stumbling block was the spindle. I could not get the SLB talking to my VFD. I checked and double checked all the settings in the VFD and SLB. I even posted to this forum: Huanyan v1 VFD via RS485. The next morning, I verified the settings again and to my surprise the spindle came to life. I looked at the .json files that are created by the export settings in gSender. The only difference between 5 pm July 1 and 9 am July 2 is the $30 and $31 settings were different. The July 2 file had quotes around the RPM setting and had trailing zeros. So, the working lines looked like: “$30”:”24000.000” vs. “$30”:24000 I don’t know why the setting changed, I did not change the setting. But the why and how doesn’t matter if it is working.

I ran a gcode file in the air without a tool and it now movement is very smooth. I did this before noon and it was already over 90 degrees F in the workshop. As it has been very warm here in Central Texas, I will have to wait for a cooler day (or early in the morning) to get back into the workshop and run a job for real.

Hope this is a help to someone else.

James W. McKeand

6 Likes

@jmckeand thank you for the detailed information! I know from resurrecting an old 3D printer that sometimes one random forum post contains the key tidbits that get a problem solved.

One of the things I really like about the Sienci equipment is that I’m confident I can adapt it to my needs (if / when I need to - so far it’s been a great out of the box experience). I really enjoyed the learning experience when I dug into firmware details for that old 3D printer - but I’m happy to not have to do that so far with my LongMill and SuperLongBoard.

I’m in the same boat as you and took a break from it while there was some confusion with the HY connections. mines a 1515 ultimate bee and I too made the mistake of buying into the xprov5.

I’ve got mine hooked up and running properly but haven’t gotten to the configuration or how to convert my yaml to something gsender understands. I know that it’s overshooting the movements by a few mm per inch of travel so I’m currently reading up on how to fix that.

Are the voltages something that needs to be addressed? I went with the high torque nema 23 motors and when I go above 4000mm/min it makes more of a grinding sound and doesn’t move as far as it should.

The calibration is giving me odd results. My 100mm movement on xy was 124. I calibrated it and on the initial check with a second calibration it moved twice as far as it should have. I exited the calibration menu and tried a 100mm movement and got exactly that so I left it alone.

With the z axis I’m having a worse time. It moved 19mm instead of 25mm. The correction it made was from 800 to around 1300. This caused the z motor to move in odd ways. its like its fighting itself to move up but moves down correctly. It sounds like it’s grinding

But the steps are doubled for some reason that I can’t find in the settings. should be 320 but it works correctly at 640.

Anyone know where I’m off?

Here’s the info for the X

stepping:
engine: RMT
idle_ms: 255
pulse_us: 2
dir_delay_us: 0
disable_delay_us: 0

x:
steps_per_mm: 320
max_rate_mm_per_min: 2500.00
acceleration_mm_per_sec2: 250.00
max_travel_mm: 1278.00
soft_limits: true
homing:
cycle: 2
positive_direction: true
mpos_mm: 1278.000
feed_mm_per_min: 200.000
seek_mm_per_min: 2000.00
seek_scaler: 1.100
feed_scaler: 1.100

motor0:
  limit_neg_pin: NO_PIN
  limit_pos_pin: gpio.35
  limit_all_pin: NO_PIN
  hard_limits: false
  pulloff_mm: 3.00
  tmc_5160:
    cs_pin: gpio.17
    spi_index: 1
    r_sense_ohms: 0.075
    run_amps: 2.5
    hold_amps: 0.50
    microsteps: 16
    stallguard: 0
    stallguard_debug: false
    toff_disable: 0
    toff_stealthchop: 5
    toff_coolstep: 3
    run_mode: CoolStep
    homing_mode: CoolStep
    use_enable: true
    step_pin: gpio.12
    direction_pin: gpio.14
    tpfd: 4

Stepper settings were default at 2800mah but my file was for 2500mah. They aren’t running warm so I’m pretty sure ive got something messed up

I’d check your travel resolution settings ($100, $101, $102) and your micro steps settings ($150, $151, and $152). I moved from an OpenBuilds 8-bit BlackBox to the SLB with my MilkCr8 CNC, and had to play with the settings to get the desired step distance. Ideally, you’ll be able to set your microsteps to 32, but then you’ll have to set your travel resolution accordingly.

I was able to get correct measurements by changing the micro steps to 16 which gave me the right formula that I had before. Now I’m dealing with inconsistent movement on my y axis that stalls on an xy g90 code even if I limit it to 1000mm/min. The machine jogs fine at 4000 and generally at 5000 as well.

But it keeps reversing the input. Z will get stuck only going down with some resistance even with correct Z20 code. My Y axis is intermittently doing a similar thing where it sends y2 and y1 in opposite directions when given a simple jog.

For the stalls and grinding, lower your acceleration rates ($120 - $122) I’m using 150, 150, and 75 mm/sec sq.

On the Travel Resolution, check your math the pitch of the screws comes into play. My ball screws are 10 mm/rev on X&Y and 4mm/rev on Z. With 1.8 degree steppers the step/mm would be 20 for X&Y and 50 Z. at 32 microsteps that would come to 640 steps/mm for X&Y and 1600 steps/mm for Z. I cannot get that to work - similar to you extreme overruns. I am using 8 microsteps (160 and 400 steps/mm respectively).

I recently went to the Bulkman site to look something up and I found a notice in big red letters that on the xPRO upgrading to FluidNC is not supported. Go figure. What I like about FluidNC’s config.yaml is that all the settings for an axis are grouped together (like you showed above). Where grbl and grblHal the settings are grouped by function - all the Max Rates together, all the Accelerations together, all the Max Travels together, and etc.

As far as the voltages in an earlier posting, I just transferred the settings from my yaml to the firmware settings. Here is a copy of my settings. You could export your settings and use something like Diff or WinMerge to compare my settings to yours.

gSender-firmware-settings-8_7_2024-12_31_04 PM.json (2.7 KB)