chmr

Forum Replies Created

Viewing 15 posts - 1 through 15 (of 33 total)
  • Author
    Posts
  • in reply to: $4tr setting for .5” ACME lead screw w/ 10 TPI. #7313
    chmr
    Member

    10 tpi (threads per inch, I would be worried if the screw had teeth 😉 means it will travel 1/10″ or 2.54mm per revolution. $4tr=2.54

    in reply to: Firmware Upload Problem #7278
    chmr
    Member

    Tom,
    I bet you did not use an uppercase -P in front of the device name, that’s what avrdude is complaining about. Uppercase -P specifies the device name / COM port, and lowercase -p specifies the microcontroller part number.
    Good luck!

    in reply to: TinyG Shapeoko Electronic Enclosure #7274
    chmr
    Member

    Hi,
    using the limit switch input for emergency stop is not really a good idea, because these inputs rely on the software. If the software goes haywire, the emergency stop would be useless.

    Personally, I would love to see the emergency handling that I know from bigger controls used for multi-kW motors on autocranes or industrial robots: When an emergency situation occurs (emergency switch, access door opened, limit switch etc), the software gets a signal to shut down all movement as soon as possible in a controlled manner (emergency deceleration). Around 100-250 milliseconds later, all power is removed from the motors and the mechanical brakes are activated. This second signal is purely implemented in hardware (time-delayed relay and power circuit breakers). So if the software is not responding, it still shuts down the system (delayed by a split second), but in the normal use case, it shuts down the system fast and gentle (slamming the mechanical brakes in full speed would destroy them after just a few tries).

    I would love to see that in tinyg V9, but it requires additional hardware (inputs for emergency stop and re-enable, AND-gate for all motor + spindle enable signals) and software.
    And it could possibly raise liability issues (I guess that’s the reason why there is no emergency stop handling in current tinyg, thus the responsibility is shifted to the user).

    in reply to: Homing issue #7234
    chmr
    Member

    Hi,
    because the same issue popped up just a few days ago, and both had a very low latch velocity, I experimented a bit.
    Turns out this problem occurs when both the latch velocity $_lv is ridiculously low, and jerk homing $_jh is ridiculously high. It seems this triggers a numeric underflow and tinyg tries to continue with NaN (not a number).

    Solution: Set $_lv higher (>= 50) and $_jh lower (< 1000). If the jerk is too high, the machine can’t follow anyway without losing steps, and this somehow defeats the purpose of homing to get a *reliable* position.

    Happy New Year to you all!

    in reply to: Homing Error #7213
    chmr
    Member

    Hi,
    fb is your firmware build,
    st is the status code as found in the source tinyg.h as STAT_PREP_LINE_MOVE_TIME_IS_NAN (comment: Never supposed to happen).

    Check your $$ parameters, possibly one of them is set to NaN. If so, reset to default and reenter all customized parameters.

    in reply to: File not open error #7194
    chmr
    Member

    Hi, although I am not Alden I can try to give more information on the error because I have been tinkering with the code for other reasons.

    The file not open error is returned when someone tries to change values in EEPROM while the machine is moving (for EEPROM writes, interrupts have to be disabled for a “long” time which would mess up step pulses etc). The new value is still being set, but not written back to EEPROM, so the old value will be used after you reset the tinyg.

    The machining state is correctly set when the machine is moving, and also correctly reset when the movement is finished. The funny thing (aka bug) is that it is also set when M8 (or any other M command) is executed after the movement stops. It is only reset when another movement is started and finished.

    Possible workarounds for you:
    – ignore the error (should not hurt you if the $zsn value is always under control of your program, but certainly not pretty)
    – reset $zsn before executing M8. Your program seems to wait anyway until movement is finished, so you should not get the error any more.

    in reply to: problem with installing the Router with DC Spindle #6921
    chmr
    Member

    Carl, for schematics I would only recommend Eagle. The freeware version is already very capable, lots of tutorials online, many freeware designs are made with Eagle, every PCB house accepts Eagle files, many people use it. I drew the schematic above in LTSpice for quick simulation, but it has an abysmal user interface.

    Yeah, there are several versions of it around. I read somewhere that when jumpered for the pot, it uses a simple 555 circuit to produce a home-made PWM signal and drives a FET with that.
    Q1 in my schematic inverts the input signal, so it seemed safer to me to add a second stage to invert it back.
    It would definitely be much easier if we knew the actual circuitry of the board. I was already tempted to order one just out of curiosity (but it takes 3-4 weeks from china to me). Found another bigger photo of one version: http://i.bosity.com/office_cache/274/14008974/4840000011395984469_14008974_6_image.jpg&#8221;

    • This reply was modified 10 years, 2 months ago by chmr.
    in reply to: problem with installing the Router with DC Spindle #6915
    chmr
    Member

    As Carl said, there are lots of ways to do level shifting, and lots of finished modules on the market. All of them need a 5V supply, and I don’t think that you can get that from the speed controller. So you have to create it yourself, using an 7805 or similar.

    I don’t know the speed controller circuit; because it does not accept any lower values than 3.5V keeps me thinking that it either feeds this directly to a power FET or an optocoupler. In both cases, it would be better to use a voltage in the upper half of the allowed range (8-12V). I’d use something like this (no guarantee as usual, and if you are not familiar with soldering and measuring the circuit, you better buy a finished module)

    level shifter with 2 bipolar transistors

    • This reply was modified 10 years, 2 months ago by chmr.
    in reply to: problem with installing the Router with DC Spindle #6908
    chmr
    Member

    Alhaddar, the video link in your first post does not work. Please fix it.
    Did you configure tinyg for use of pwm? See https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97#pwm-group-pulse-width-modulation

    The ebay page also states “PWM input : level 3.5-12V VPP” in the fine print — tinyg can generate around 3V, so you might need a level shifter for it to work.

    in reply to: G0 traverses exceed $x/y/zvm speed #6871
    chmr
    Member

    Hi, I have no idea what could cause this, but some things you could try:
    Check the status report while traversing. What velocity does it report? Might give a hint where to look.
    Also might want to try to reset the settings to default and reenter your configuration, in case something got corrupted in there.

    in reply to: Attempting to control with an arduino, Now Nothing #6870
    chmr
    Member

    As long as the bootloader is still functional (blinking spindle-dir led), you should try a firmware-update via USB. That also tests the hardware of the serial port.

    in reply to: A little confused and annoyed… #6869
    chmr
    Member

    Rhino, yes G0 (or G00) is a fast move, only limited by the setting of $xvm/yvm/zvm. G1 X100 Y100 Z30 F500 is a feed with 500mm/min (limited by $xfr/yfr/zfr), usually used for the actual cutting.
    A good cheat-sheet for common gcode commands is at http://linuxcnc.org/docs/html/gcode.html
    The issue with slow moves has me stumped — are you sure that you didn’t change any of the *vm or $fr settings from the dropbox settings?
    Please post results, and when you have success, a video is always fun to watch 🙂

    Carl, a true philosophical question indeed. If you want real answers, you’d have to talk to teh Openbuilds guys. I *guess* that they did not intend to make the machine faster, but had to use the pulleys out of necessity: They wanted to run the belt inside the extrusion slots and dual-use their solid V wheels as belt-idlers. That means that the belt must be even narrower (5mm) than the GT2 belt on the Shapeoko2 (6.3mm), and it is already a limiting factor on the Shapeoko. They had to move to 3mm pitch (== thicker/stronger belt) to offset this. And to make sure that enough teeth are engaged, they had to use 20 tooth pulleys.
    I’m inclined to call this a nifty idea with unwanted side effects. Although the *theoretical* accuracy of the Ox is 0.0375mm (60mm per revolution / 200 steps per revolution / 8 microsteps) is worse than that of the Shapeoko2 (36 / 200 / 8 = 0.0225), the *real* accuracy of both machines is limited by other factors (rigidity or lack thereof, backlash in belt, wheels, bearings, and chip-size of material).

    in reply to: A little confused and annoyed… #6856
    chmr
    Member

    Hi, I try to chime in with some info to clear things up:

    Threaded rod: TR8*8/4-start means: TR=standardized trapezoidal screw; the first 8 is the outer diameter of the rod; the second 8 is the lead, 8mm per revolution; 4 start means there are really 4 threads on the rod, each with 2mm offset (pitch) to the previous. 4-start helps with max load and smoothness, and is important to match rod and nut, but it does not influence the calculation of lead. Your $3tr should really be 8.

    Step angle: According to the parts list, both the Nema17 and Nema23 motors are 200 steps per revolution (1.8 deg step angle). Set your $3sa=1.8 . Because your $3tr was also wrong, it evened out to the same distance (when tinyg tried to move the Z axis 8 mm, it calculated that it needs 0.5 motor revolutions = 200 steps with the old settings; with the new settings, it uses 1 motor revolution = 200 steps). But this does not explain the squirrelyness.

    X/Y travel: 60mm per revolution is correct according to the parts list (20 tooth pulley * 3mm belt pitch).

    I ran your gcode circle files, both of them run “fine”. I noticed some things in the files:
    1. You placed 4 tabs on the inner circle, but not on the outer circle. For the tabs, the machine has to decelerate x and y, lift Z up a bit, cut the tab, drop z down, accelerate x and y again.
    2. The gcode assumes that Z=0 is at the top of the material (very common). That means that positive Z coordinates are in the air, negative ones are cutting in the material. If you set up the 0 coordinate at the top of the work bed (not the material), it would explain why the machine tries to cut into the workbed.

    Velocity: The feeds in your files and parameters seem to be quite fast (in fact, I think 5000 mm/min feedrate would be too fast for all except *very* soft materials). I cannot see the 50mm/min and slow speed to move the gantry. Did you do this test with a different file or different settings?

    Limit/homing switches are a good thing, but I don’t think they would change anything about your problem.

    Edit: Nearly forgot, another common issue with Z going to deep is when the Z axis actually goes too short when commanded to go up (caused by sticking/binding Z nut, over temperature of driver or motor, too fast max speed $zvm, slipping pulley/coupling, slack belt). I don’t think this is your problem, but you can try to send the Z axis up and down manually with “G0 Z35” and “G0 Z0”. If it does not stop at the same point every time, investigate further in this direction.

    Btw, thank you for reminding me to download sketchUcam 1.2 🙂

    • This reply was modified 10 years, 2 months ago by chmr.
    in reply to: Getting really F'n frustrated #6828
    chmr
    Member

    Sorry for the confusion with tgfx, I wasn’t aware of the problems with it’s firmware update procedure.
    Also for flow control, both work, but stick with Carl’s suggestions. I am just a normal user who pops in occasionally, his answers have definitely more weight.

    Yeah, I meant $zvm and $zfr. Just reduce them to something like 400 for now, you can increase it gradually later when the machine works reliably.

    When you say that the same command works one time, but not again, can you give an example with the exact commands you are entering? For the move commands (G0 and G1), be aware that the coordinates are usually absolute, so “G0 X10” tells tinyg to move to X coordinate 10 mm. If it thinks it is already there, it just won’t do anything. You have to move it back first with “G0 X0”. A reset of the controller also resets the current coordinates to X0 Y0 Z0. By entering “?” you will get a status report including the current coordinates.

    in reply to: Getting really F'n frustrated #6815
    chmr
    Member

    I can see your frustration, and I try to answer your questions in sequence:

    Json: Forget it for now, it is very useful for people developing programs that talk to tinyg, but nor for the average user. That said, it’s documented at https://github.com/synthetos/TinyG/wiki/JSON-Operation and https://github.com/synthetos/TinyG/wiki/JSON-Details , linked from the tinyg start page.

    Firmware update: Carl already linked the page, but you probably don’t need it anyway. The easiest way to update the firmware is with tgfx.
    Note: Firmware updates reset the configuration to default.

    tgfx: Make sure you have the newest version, older versions don’t work properly with the recent firmware versions. You can get it from https://github.com/synthetos/tgFX#binary-downloads if you don’t have version 3625 already.

    Cambam: I second Carls’ suggestion to postpone it until you have tinyg itself configured and running. I think most people run the generic gcode backend with tinyg (not using Cambam myself).

    Flow control: Yes, tgfx sets $ex=2. Rightfully so, because RTS/CTS is the easiest and most effective type of flow control to use. Just set Coolterm options to also use CTS, save settings, and be done with it.

    Axis configuration: I found https://github.com/synthetos/TinyG/wiki/TinyG-Configuration-for-Firmware-Version-0.97 to be very useful for basic configuration. My suggestion is to work with 1 axis at a time, start with X (the easiest), and when that works move on to the next. The settings above are already a good starting point, I noted the following settings need verification:
    $1tr=40 (is 36.54 above, but 40 should be correct if you have the Nema23 upgrade from Inventables: pulley with 20 teeth, belt pich 2mm)
    $xvm=4000 (start with a low value for max velocity, then tune it later when the rest is working)
    $xfr=4000 (same)
    $xjm=200 (max jerk: start low, tune it later)
    Test it like Carl suggested.

    When you’re happy with X, continue with Y (motors 2 and 3) and finally Z (reduce $4vm and $4fr; $4tr above seems to be correct for stock machine, but not if you have an acme screw upgrade; might also want to experiment with different $4mi values).

    I really hope that gets your Shapeoko going, feel free to post more detailed questions if you still have problems.
    And a slight warning for the Shapeoko wiki: Some of the pages describe the procedures for GRBL without telling so, and the procedure for tiny might be different. This bit me when I started with CNC. If in doubt, ask here or in the tinyg section of the Shapeoko forum.

Viewing 15 posts - 1 through 15 (of 33 total)