Dan
Forum Replies Created
-
AuthorPosts
-
DanKeymaster
I haven’t compiled ESP32, so I can’t confirm. Looks like they have their own implementation of Servos. Maybe come to our Discord and we can help more? https://www.marginallyclever.com/channels/
DanKeymasterI like (and made a few comments on) your PR 🙂
DanKeymasterFrom the code you posted it looks like chip select is pin 53 (matches board_ramps.h) and sd card detect is 48 (board_ramps.h has 49 as the default). Look for
#if LCD_TYPE == LCD_IS_128X64
in the code. I don’t have a 128×64 screen so I can’t test it locally.
At the top of your code there’s an “const int chipSelect = 53;” and later the number 53 is used many times instead of the word chipSelect, which is the point of having chipSelect. in I would use a
#define CHIP_SELECT 53
and then use the world CHIP_SELECT instead of ’53’ where appropriate. The pre-processing step of the compiler will replace the word with the equivalent number. it’s probably better than ‘const int’ because a const int might take up some ram if the compiler is dumb, and ram in an arduino is in short supply. also if it actually takes up ram then the firmware has to look up that number every time it is used, which is slower than having the number hard coded on hand ready to go.
48 should have been been done the same way. The point of defines like that is so that only one place has to be changed to update all the code.
DanKeymasterdid you branch from the main repository? You should be able to submit a PR with either github desktop or through the github website. I haven’t contributed to many other projects so I’m not confident enough to guide you. Come to our Discord if you need more help or to chat live about development. https://www.marginallyclever.com/channels/
DanKeymasterIt looks like this is a windows security issue. Windows Firewall(?) likes to block unrecognized apps from opening COM ports.
DanKeymasterI think some work needs to be done to customize STEPS_PER_UNIT for each motor. I’ll open a ticket. https://github.com/MarginallyClever/Makelangelo-firmware/issues/101
DanKeymasterCan you tell the motors to move enough to turn the screw one, exactly?
DanKeymasterDo you have the updated script in SB2 format? I only have it in SB3.
DanKeymasterI’ll open a ticket in case someone wants to tackle this challenge. In the meantime I notice that the same scratch program can be run without the “whenIReceive” blocks, like so:
DanKeymasterHmm… there is support for lists but not for WhenIReceive. Tricky!
DanKeymaster@mrbernd please share! Is this written in Scratch 2 or Scratch 3? We don’t support 3 yet, the format is WAY more complicated under the hood.
DanKeymasterOk, I’m not convinced that reflashing the firmware is the right answer. The code works fine. It’s something in the after-flash settings that is funny.
I would try this:
– connect to robot and send D8. record values for L and R.- home machine
- draw rectangle
- tweak L and R values with D7. adjustments should be small, +/-5.
- home and draw again. results will have changed.
- based on change, repeat until satisfied.
-
when satisfied, send D9 to save new calibration
Does that help?
DanKeymaster- Which direction was your original line supposed to go? ie what was the gcode?
- Did it move horizontally left or horizontally right?
- Did it move vertical first, then horizontal sideways?
- Does it do the same error every time? (is it testable)
- Did you start at the home position? (is the initial condition always the same)
- If you swap the motors does it do the same thing in reverse? (eg is it the motors or the brain)
Um…
- If you jog in 10x and jog out 10x, does it always return to the same point? (test on each motor)
- As this is a makelangelo 3 (huge), are you certain your starting point is in the middle? Calibrating a 3 is the hardest part.
DanKeymasterIt looks like your machine rebooted and started again from the beginning, without being re-homed.
DanKeymasterWell then I’m not certain why it’s not working. In the past it’s always your user or your java does not have permission to access the serial port. The question now is how do we debug this?
what model mac? what os version?
DanKeymasterhttps://github.com/MarginallyClever/Makelangelo-firmware/wiki/gcode-description
D11 in your firmware should do the default setup.
D7 and D8 commands will show or update the belt length. if your test drawing is coming out crooked, shorten a few millimeters. I use the “run border” command from the LCD to check if the drawing is square.
by default D11 should be enough because we use a machine to cut belt with good precision (0.1mm) and all machines are built the same AND they drew the picture correctly so…
if you’re running the dev branch of the firmware I believe D11 has been replaced with M502, factory reset.
DanKeymasterDid you change the firmware to 1/32? I believe by default it’s 1/16.
DanKeymasterThere is no support for UNO, which does not have enough CPU internal clocks (or power) to run the firmware.
We don’t officially support L293D. it will take me several days to start looking at the question more seriously. Anyone else out there trying this setup?
DanKeymasterThat’s not right…. can I see the motor mounts at the top? It could also be that the machine is incorrect about the length of the belt. as a result it thinks the center is lower than it actually is. this means the drawing happens higher than it should, and you get this warping effect.
We can solve this in software, it’s just a question of figuring out what’s changed.
DanKeymasterDoes this help? I just added a section for linux/osx
https://mcr.dozuki.com/Guide/How+to+update+Makelangelo+firmware/4#s356DanKeymasterAt the time of writing this platformio is becoming a big thing.
Also I have just deleted all the old dead branches from the code.- This reply was modified 4 years ago by Dan.
DanKeymasterAfter setting the limits you still have to SAVE the values. M500.
DanKeymasterPlease show video of problem. Show entire machine, not just pen tip.
-
AuthorPosts