Jackpot board install on JL1 laser

Below is the mounting hole pattern on the JL1 frame for the stock controller box. I forgot to take measurements when I had it apart for pictures so I’ll grab those next time.
@vicious1 are there any stock mounts for the Jackpot that I can remix. It should be fairly simple to put 3 holes into a box that is otherwise suitable for the Jackpot.

The three circled holes are how the stock controller box is mounted.

The flat head screws go to standoffs that mount the y axis limit switch on a little PCB.

Edit to add: Of course, there’s a beautiful design to put the Jackpot on an LR3 on Printables, but unfortunately that isn’t quite right to slap here. I’ll think about it some more.
https://www.printables.com/model/561771-jackpot-cnc-controller-minimal-lr3-case/files

It didn’t appear loose, I did remove it to check for debris and found something that seems to be between the diode and the lens.

That silver bit in the lower right doesn’t appear to be loose, but I can’t believe it should be there.

Mike

Holy cow! That looks like the laser diode itself is loose within the assembly. Can not be good!
But, if it was that, I can’t imagine how it would still be getting powered, unless they bonded the laser diode into the lens housing with flying leads or something.
No way that’s right.

Jime,

I noticed that the wire lengths were “just enough” for the lengths as installed.

I bought this 6-conductor wire and intend to have a little more slack.

Mike

Jim,

I also made a set of leg risers so I could place a larger object below the whole frame:

JL1 Leg extensions

They add 50mm to the height of the legs. I used one of @dkj4linux manual z-axis adjusters so I can lower the laser to the correct height, even with the leg extenders on.

Mike

2 Likes

The laser module on the Cenoz machine was terrible… never focused to a nice spot and had sorry power. I had several other laser modules on hand… common 3-pin versions for +12V, GND, and PWM. If you use the included laser module’s wiring to identify those 3 wires – and the black wires they hook to – you can then mark the black wires and and install a new laser module on there. That what I did here…

My Z-axis adjuster was good enough… but not my leg extentions? :stuck_out_tongue_winking_eye:

1 Like

@dkj4linux

I didn’t have Chunky Soups in the pantry. :stuck_out_tongue_winking_eye:

MB

2 Likes

They are just standard 2.54mm headers.

If you follow the link from the docs page I have included the cad for my LR3 box but that is the only one I know of at this time. My top priority is get the LR3 and MPCNC squared away before trying anything custom.

1 Like

I too bought one of these and I’m watching your progress with interest. I don’t have another raspberry pi to run it, so I’ve been thinking about putting it on the mpcnc or the 3d printer, but a jackpot might be the answer here.

It has been reprogrammed to GRBL, and has a rotary and some blanks for leather patches and some pens… one of these days.

2 Likes

Doing some work on the config.yaml.

The original JL1 controller GRBL setup seems to be 80 steps/mm.

What’s the microstepping setup on the Jackpot?
The example config.yaml has 800 steps/mm, so I’m sure I’ll need to change this.

Moving on to the laser section, Ryan noted:

So, I think that means that my config for laser should look like this:

Laser:
pwm_hz: 5000
output_pin: gpio.26
enable_pin: gpio.27
disable_with_s0: false
s0_with_disable: true
tool_num: 100
speed_map: 0=0.000% 255=100.000%

Those are found on the screw terminals in the 5V out section of the Jackpot:
image

I’m going to do a stupid simple flat adapter plate to mount the jackpot for now.
The hole spacing I came up with on the JL1 for the existing controller box is 35.5mm horizontally for the upper mounting holes and 72mm between the upper two and the lower one.

I’ll need to measure the Jackpot as I get 73mm between mouting holes vertically and 93mm horizontally on the 3.55mm diameter mounting holes. The horizontal spacing isn’t explicitly called out but I bet it is the same 3.49mm up as well as over as shown in this bit from the documentation:

image

I’ll sketch a mounting plate up and get it on one of the printers, then will work on transferring some of the harness over. Perhaps another update later.

You are going to need to open up the yaml file to make all the adjustments. You will see them there 100.

All are 3.5mm from both sides. I am not sure why the dims are all off by ~0.01 annoying but I am sure I did something funky in EasyEDA

Working on the JL1 again this morning.

My quick mounting plate printed last night, and I messed up one screw hole location. Nothing I couldn’t fix quickly with a 1/8" drill bit. I realized I didn’t have any M3 standoffs around, so I grabbed some from a kit of Raspberry Pi hardware (M2.5 standoffs). Below you can see the plate on the JL1 frame. I’ll revise this a bit when I get a better case design together. Notable are that the wire runs from the JL1 are very tight and there’s not a bunch of slack, particularly with the endstops.

After that image was taken, I mounted the Jackpot on the plate, and swapped from my test 24V wall wart to using the JL1’s 12V 5A supply. I connectorized the JL1 with a pair of Anderson PowerPole connectors because I will re-use it. For a permanent setup I’m probably going to mount one of my old metal frame power supplies left over from the old Lulzbot series printers that I still have around.
That will go on the enclosure I’m working on. At any rate, here’s the setup with things attached again:

One notable thing that seems a bit of a bummer is that the connectors on the jackpot for MOSFET and 5V out have the wiring going out such that the wires/ferrules will require additional case room to accommodate the wire bend radius. It will also be a mild annoyance to install/remove that wiring when in a case.
This seems it would be cleaner if the IO emerged straight up instead of to the side, but it’s nothing I can’t work around when I make a better case for the Jackpot on the JL1.

Also notable is that the endstop LEDs lit up when plugged in. I suspect that means whatever config is in the default config is wrong- which is fine because I’m about to put a test config.yaml on for the JL1.

I tried jogging the axis from the web UI, but got no motion in X or Y. Probably a config issue so I’ll be working on that.

I also glued up my scrap parts enclosure a bit. This is entirely made from scrap- I had some 1/8" plywood and some 1/2" square dowels laying around from a different project. I plan to add a top that has some 1/8" orange acrylic and mount a simple exhaust using a 12V 120mm PC case fan (also junk bin scrap from an old PC). Total material cost so far for the enclosure is $10 for the acrylic and probably $2 worth of recycled PET. The 3" hose adapter was printed on the TAZ5 with a 1mm nozzle and .667 layer height. Primarily because it printed in about an hour instead of FOREVER as it would with more reasonable nozzle and layer height. The STL for the vent adapter is linked below.

Here’s the fan to vent hose adapter:
https://www.printables.com/model/24023-120mm-fan-to-3in-duct-reducer

I’m going to play a bit with trying to put my candidate config.yaml on the Jackpot, then will probably spend some time sorting through the motion stuff. Still to go is figuring out the laser module pins and setup. With some luck, maybe it’ll be alive enough to test laser module operation before the day or at least weekend is over.

2 Likes

Open is lit dark, triggered/closed is lit up. You set what a trigger does in the firmware, but the LED’s always indicate the same thing. Open or closed circuit.

If you have fluidterm running while you are trying to do anything even restarting it will show any errors. that can help us with your config very quickly, or link your yaml file. If you start with either of my configs and the endstops are CLOSED lit up. the axis should move. From there you can adjust if your endstops are NO/NC, and your steps/mm.

If you made your own config, it probably requires homing all axis before any motion. I took that out of ours.

Thanks, noted. I’ll get fluidterm running as I work so I can share whatever I see.

I took your sample laser yaml and made just a few minor modifications, but haven’t yet uploaded it.
I’m on my way to do that so hopefully that gets things fired up.

I would just start with the LR yaml. Make sure everything moves and get the endstops working right. Then turn off my pin26/27 edits and add the laser stuff. Motion and endstops first. Then laser.

Is that the same as the config.yaml under LowRider CNC on github here:

To use fluidterm.py I’ll need to have the USB connected when using the system. I’ll get that running shortly.

I’m going to go put your LowRider config.yaml on the Jackpot and see how that works for me.

YEs, FluidNC_Configs/LowRider CNC/config.yaml at main · V1EngineeringInc/FluidNC_Configs · GitHub

Making some good progress.
With the v1e LowRider config.yaml loaded on the Jackpot, I’m now able to jog X and Y axis around.

Some details and observations as I have started working with it.

Endstops still aren’t working. I discovered the @limits function, and the X/Y/Z endstop states are inverted (always triggered except when I hit the switch)

Homing Y seems to move away from 0 instead of towards.

Trying to home X, it also ran away to the 0 direction (Left as seen in my pictures above, away from the limit switch which is on the right side). It eventually hit and then drove for a long time and stopped.

Note: there’s no obvious way to kill a move from the UI. I’ll add a stop switch at some point.

I also noticed that the X motor is running moderately warm, while the parallel Y motors are very cool.
I reduced the drive current and holding current for the X motor to half the default values.

I realized that I have not yet installed an SD card. Duh! Found that from looking at fluidterm outputs as shown below. I also see that it’s not happy about the missing 6th driver (axis C)

jim@BR1100CKA:~$ python3 fluidterm.py 
--- Fluidterm on /dev/ttyUSB0  115200,8,N,1 ---
--- Quit: Ctrl+] or Ctrl+Q | Menu: Ctrl+T | Help: Ctrl+T followed by 'H' ---
E (2098785) sdmmc_io: sdmmc_io_reset: unexpected return: 0x102
[MSG:ERR: sdmmc_card_init failed code 0x0x102]

[MSG:ERR: C Axis TMC driver not detected - expected 0x0x21 got 0x0x0]

I ran into an interesting error sequence uploading the config.yaml changes.
I used the file upload function, uploaded config.yaml, and then reloaded fluidnc with the power button on the GUI. Did that two or three times with no issues. Then, the next time I tried an upload I got this in the fluidterm:

E (50727) sdmmc_sd: sdmmc_init_sd_if_cond: send_if_cond (1) returned 0x108
[MSG:ERR: sdmmc_card_init failed code 0x0x108]
[MSG:WARN: Low memory: 14836 bytes]
[MSG:WARN: Low memory: 13816 bytes]
[MSG:WARN: Low memory: 13696 bytes]
[MSG:WARN: Low memory: 13428 bytes]
[MSG:WARN: Low memory: 12684 bytes]
[MSG:WARN: Low memory: 12532 bytes]
[MSG:WARN: Low memory: 12404 bytes]
[MSG:WARN: Low memory: 12276 bytes]
[MSG:WARN: Low memory: 12148 bytes]
[MSG:WARN: Low memory: 12096 bytes]
[MSG:WARN: Low memory: 11968 bytes]
[MSG:WARN: Low memory: 11848 bytes]
[MSG:WARN: Low memory: 11720 bytes]
[MSG:WARN: Low memory: 11600 bytes]
[MSG:WARN: Low memory: 11440 bytes]
[MSG:WARN: Low memory: 10020 bytes]
[MSG:WARN: Low memory: 8428 bytes]
[MSG:WARN: Low memory: 6852 bytes]
[MSG:WARN: Low memory: 5268 bytes]
[MSG:WARN: Low memory: 3684 bytes]
[MSG:WARN: Low memory: 3676 bytes]
[MSG:WARN: Low memory: 3548 bytes]
[MSG:WARN: Low memory: 3516 bytes]
[MSG:WARN: Low memory: 2724 bytes]
[MSG:WARN: Low memory: 2600 bytes]
[MSG:WARN: Low memory: 2576 bytes]
[MSG:WARN: Low memory: 2452 bytes]
[MSG:WARN: Low memory: 2396 bytes]
[MSG:WARN: Low memory: 2272 bytes]

Following that, I lost connection to the Jackpot ESP32. I ended up pulling the USB and killing power to the Jackpot board. After that, when trying to connect to it, I was getting an error that the ESP32 was not accepting the default 12345678 password.

After a couple more power cycles, I went off to do some work on my enclosure, and when I came back I was able to connect. Weird.

What’s the correct workflow for uploading a config.yaml and then restarting or applying it?

Questions:
How do I tell FluidNC the correct state of the enstop? I"ve toggled the config directive back and forth between these, with no joy:

    motor0:
      limit_neg_pin: gpio.25:high

also:

    motor0:
      limit_neg_pin: gpio.25:low

To try and get the direction correct, I fiddled with these:

 homing:
      cycle: 3
      positive_direction: false
      mpos_mm: 0

Changing positive_direction to true didn’t flip the axis movement as I’d expected… so a head scratcher for me.

They work fine just backwards, that is to be expected change the yaml for each endstop. from high to low.

That means you need to reverse the steppers or change from a minimum endstop to maximum. I don;t have the machine so I have to just guess.

You can add a macro and or a button.

That is not an error just telling you what it sees. Put in a card, does it work…it should. There is no sixth driver so it is telling you that.

Power down wait a minute and reboot. Sounds like you might have interuptted an upload. Or if you are doing a lot of work use the fluid term. I would not do all that editing and testing on wifi, you need to see the errors.

Did you save, power down, and reboot to load changes?