Posts Tagged ‘ rumba

Building the C-Bot 3D printer: Part 17 : Electronic & Software day 2

Jump to C-Bot blog index to see all the posts.


Update:  Since authoring this post I have switched my electronics to RADDS, and my firmware to Repetier.  See the “Part 31 post” for the latest on it.


After posting my z-stage problems to the C-bot forum, they suggested I try a couple things:  Loosen up the bolts on the ACME lead-screw blocks, and switch to using dual motor drivers, rather than one, like I’m currently doing.

I loosened things up, and it helped a negligible amount, but I was still unable to predictably raise the build platform.  So, I decided to dig into Marlin and enable dual-z-steppers.

Which I did, and then added an additional A4988 driver to the Rumba board to make use of it:

motor drivers

A4988 Drivers, with dual-z support.

I added the additional A4988 to the “Extruder 2” plug (on the far right), plugged the right z-stepper into it, and gave it a go:  The steppers would only lower, not raise.  NOW what?

Looking at the Marlin code, I noticed that the block I enabled (starting with ‘#define Z_DUAL_STEPPER_DRIVERS’) to support this looked different from the same block in the “Marlin Configurator“:  It appeared that it was also enabling “dual z endstops”, which I didn’t want to happen.  Rearranging the code resolved this, and now I have a bed that both lowers, AND raises.  Finally.  I was going to post this code-fix, but I diff’d the Configuration_adv.h file Mason had given me with the one I pulled down from GitHub, and that code section was radically different.  I’m not sure which is newer\older.  At least mine works now…


Now that I have the z-stage working, I decided to focus on the endstops:  I had mocked them up earlier, but didn’t have them wired properly… at ALL.  I spaced out and thought I only needed two wires (+-), but in reality you should also hook up signal, so the LEDs light up.  More splicing and crimping ensued, and I got the Geeetech v1.2 endstops wired up correctly, based on this great pic Mason pointed me to…

endstop diagram

… living in this thread, that explains it pretty plainly.  Thus the end results:

endstop wiring

From there, it’s getting them plugged into the Rumba correctly:

endstop connections

Note: Since I took this pic, I’ve changed my Y endstop so it is now Y-

 

Here’s the logic behind it:

  • Looking down on the build platform, zero XYZ is in the bottom left corner. +X is to the right, +Y is towards the back, and +Z is up.
  • The X-endstop is on the left side of the Y-gantry, that the extruder blocks hits when traveling left:  It is in the “negative” position, thus X-.
  • The Y-endstop is mounted on the top-left-rear corner of the printer, and the Y-gantry hits it when it moves back in a ‘positive’ direction.  So it’s Y+.
    • Note: Since I authored this page I’ve moved my Y endstop to the top-left-front corner, so it’s really Y- now.
  • The Z-endstop is mounted towards the top of the left rear leg of the printer, that the Z-stage hits when it lifts up.  Since when the build platform drops it’s going in a ‘positive’ direction (or, instead, imagine the build platform on the bottom of the printer, and the nozzle lifting up instead, which is effectively the same thing), it means it starts at the negative position, thus -Z.
endstop locations

Note: Since I took this pic, I’ve changed my Y endstop so it is now Y-, or on the front-left of the bot, rather than rear-left as in this pic.

 

Once the endstops were wired up, I was able to ‘auto home’ the whole system from the LCD, and… it worked.

Finally, no more blockers… next up will be calibrating the XYZ travel distances.


Jump to C-Bot blog index to see all the posts.

Building the C-Bot 3D printer: Part 15 : Software Day 1

Jump to C-Bot blog index to see all the posts.


Update:  Since authoring this post I have switched my electronics to RADDS, and my firmware to Repetier.  See the “Part 31 post” for the latest on it.


Instaling Marlin

Once all the wiring was mocked up, was time to get Marlin installed:  The Rumba already had a cut of Marlin on it, but I need an updated version turning on the coreXY mechanics.

Spent probably 4 hours on this….

The steps I went though were:

Installed latest Arduino IDE.

Downloaded zip of Marlin off of GitHub.

Copied the unzipped /Marlin-Release/Marlin subfolder to my /Documents/Arduino folder.

Copied the unzipped/Marlin-Release/ArduinoAddons/Arduino_1.5.x/hardware subfolder to my /Documents/Arduino/hardware folder.

Followed the “Quick Started Guide to program” on the Rumba page to do the initial tweaks to Marlin.

Uploaded and, the LCD screen stopped working >:-(

So I went to the RepRapDiscount Smart Controller page to glean what it had to say:  I wants you to set your board type to ’30’, which ain’t a Rumba, and other things that didn’t seem to apply to my board.

Mason sent me his cut of Marlin, and after I got it installed my LCD came back.  I need to diff files and see what I did wrong and he did right.  He did remember that he ‘had to go modify the LCD code to get it to work’.  Scary!

Tuning the stepper drivers

(Note, I have since replaced these with DRV8825’s, check out this post to see a better way to tune them up).

Once the LCD was working, I could start manually tuning the A4988 motor stepper drivers.  My previous post talks about the math to calculate the values, but that sort of goes out the window when you turn things on.  From the “Motor Calibration” section of the RepRap Wiki, they say:

“Each Pololu has a trimpot located next to the heatsink. The trimpot controls the current that is sent to each motor. Turning the trimpot counter-clockwise reduces the current to the motor, turning it clockwise increases the current to the motor.

Start by adjusting the trimpot down until your motor vibrates on the spot rather than turning cleanly. Now turn the trimpot in a clockwise direction in small increments (1 eighth of a turn) until the motors just start running. Then give the trim port a final turn of about 1 eighth of a turn and your should be good to go.”

So I did a bunch of that and got the X/Y steppers working, + the extruder.  But I couldn’t get my dual-Z steppers to work.  I had both stepper wires running into the same green terminal blocks.  Mason suggested maybe I connect one to the terminal blocks, and the other to the pins behind it:  That made things seemingly work better, but the z-stage still wouldn’t move.  I loosened the couplings that hold the leadscrews to the steppers, and then they’d start to turn.  But if I tighten them back up, no movement.  Currently stuck here.  Grrr…


Jump to C-Bot blog index to see all the posts.

Building the C-Bot 3D printer: Part 14 : Electronics Day 1

Jump to C-Bot blog index to see all the posts.

printing spaghetti monster

Spaghetti!


Update:  Since authoring this post I have switched my electronics to RADDS, and my firmware to Repetier.  See the “Part 31 post” for the latest on it.


 

Today I mocked up the bulk of the electronics:  Connecting wires, running cables, plugging them all into the Rumba.  The only ones I wasn’t able to complete were the wires for the extruder heater block and the HPB themistor, since my soldering iron broke.  I also wasn’t able to wire the the HPB relay fully, since I don’t have any extra 10awg wire laying around, that I’ll need to solder to the HPB leads.  But other than that, all the electronics got wired and hooked up.

Total time:  Around five hours.

Overall I:

  • Went to the electronics store and got all sorts of various JST connectors and whatnot to get everything hooked up.
  • Connected all wires to components, and into the Rumba (see gotchas below).  My Rumba kit came with a bunch of wires, which made this pretty easy.
  • Should call out that since I have two z-steppers, they both get slaved to the same stepper driver:  They both plug into the same terminals.  In the below image, this is circled in green.
  • Hooked up the LCD screen (see gotcha below).
  • Set the stepper drivers current limits (details below).
  • Turned it on.  Not much I can do since I need to update the firmware to recognize the Core-XY geometry.  But at least it turns on and I can play with the menus :)

Still need to:

  • Get some nice wire-wrap to cover all the bundles of wires.
  • Get more 10awg wire to hook up the HPB.
  • Find the final routing solution for all the wires.
  • Finish up the HBP and thermistor wiring/soldering.

Notes from the day:

The Rumba hardware I bought on Ebay:

Docs:

Handy pics I printed:

I had these around me all the time, made it easier to figure out where things went.

Jumper Settings:

There are several jumpers that need to be set on the Rumba.  My Rumba only came with one, but you need to set four total.

  • Be sure to set the jumper (to the left of the left most stepper driver) to 12v power, not the 3.3v USB.
  • Above the right three green mosfet terminals, there are jumpers:  Set each of them on to bottom two pins, setting them to 12v power.

In the below image, the jumpers are circled in yellow:

rumba

Red = flipped silkscreen. Green = Double z-steppers. Yellow = Jumpers. Note the order of the stepper wires circled in green is wrong in this shot.

Tuning the stepper driver current limit:

(Note, I have since replaced these with DRV8825’s, check out this post to see a better way to tune them up).

The OpenBuilds Nema 17 steppers I purchased can draw 1.68A per phase, according to the web page.  The A4988 Motor Stepper Drivers, from their page, list their ‘maximum current per phase’ at 2A:  It’s higher than our steppers can draw, and that’s good :)

driver tuningThere appear to be a variety of ways of setting the current limit, but a way that Mason used is this :  Using alligator clips, connect one lead from your multimeter to the ground pin on the A4988, and the other to a small screwdriver:  You can then put the screwdriver in the trimpot and check the resistance :  For the A4988, you want to set it to just under 2.5x what the stepper can draw (you can find this formula under the ‘Current Limiting’ section of the A4988 page linked to above).  My stepper can draw 1.68A, that divided by 2.5 would be .672, or 672 ohm on my multimeter.  Note, after going through all these steps, I learned that the value on the multimeter actually needs to 10x that amount: So I’ll got just a bit under, and set it to 6500 ohm.   It should be noted that other stepper drivers have different values.  For example, the DRV8825 (what Mason’s using) divides by 2, not 2.5.

ALL THAT BEING SAID, none of it really mattered later, when I went to go dial in the settings manually (later post).  So maybe it’s a good place to start, but ultimately doesn’t seem to matter.

VERY IMPORTANT:  When you go to install the stepper drivers in the Rumba, be sure to insert the stepper drivers in with the trimpot “down”, or away from the capacitor beneath it.  See my above image for reference.  I found docs online describing this, and telling me to do the exact opposite (which would probably blow the drivers):  As it turned out, this was for a RAMPS 1.4 board, rather than a Rumba 1.4 board. Close one!

Gotchas:

  • So when I looked at the Nema-17 wiring harness, I realized that the order of the wires changed down the length of the harness.  This is shown in the below image.  So, I went through every single end terminal and swapped them out to the same as the other end, thinking this was correct. It is not, just leave it alone.  I got to swap it all back again :S
    • From this diagram, A/Green, A-/Yellow, B/Red. B-/Blue
    • From the Rumba Board:  1B/Black, 1A/Green, 2A/Red, 2B/Blue
    • But… comparing those two things makes absolutely no sense since both the colors and A/B descriptors differ.  According to Mason he plugged his into the board in the order RBGY, and it works, so that’s what I’ll do.
  • The silkscreen on the Rumba is wrong when it comes to the two smart-display ribbon cables:  When I first turned it on, the LCD didn’t light up, and it just made a slow beeping sound.  After doing some searching, I learned that the skilkscreen for that area on my Rumba was both reversed, and backwards.  Meaning, I needed to plug the ‘exp1’ cable into ‘exp2’, and the ‘exp2’ cable into exp1.  And, they both had to be rotated 180 degrees.  Crazy!  In the above image, this is circled in red.
  • My soldering iron died.  So sad.

Jump to C-Bot blog index to see all the posts.

Building the C-Bot 3D printer: Part 1

Jump to C-Bot blog index to see all the posts.


Sneak peek of the final result:

Finished C-Bot!

Finished C-Bot!

This series of blog posts tracks my progress of building a “C-Bot” 3d printer.  All the pages should be considered living documents, and will get updated throughout the build as I learn/understand more of the process.

This is not a ‘printer build howto’, but rather my experience during the build.

Also, this is by far the most complex thing I’ve ever built:  While I’ve been actively 3D printing for three+ years now, have built quite a few electronic/robotics projects (as covered by this blog), and have no fear of programming, I definitely feel like an explorer who just crested a rise to see a fascinating valley full of unknown wonders I must traverse.  I hope the locals are friendly…


I’ve owned a Makerbot Replicator (1) 3d printer since early 2012 (when they were first released).  Like all 3d printers it took some time to get ‘tuned in’, but overall it’s been an extremely reliable machine, and I haven’t had any problems with it for over a year.  However, I’m yearning for something more.  Specifically, something bigger.

The idea of a cubic foot is enticing, but limiting:  At that size, my first (and really only, based on my specs) choice was the Type A Machines Series 1 ($2749, or $3199 for the new Pro):  I love everything about it, and they make it close to where I live.  I was almost ready to pull the trigger on it, when my friend and co-worker Mason Sheffield did some research, and decided to build the “C-Bot“, over on OpenBuilds.  He’s been blogging about his experience here.  The C-Bot was designed by Carl Feniak, and seems to check all my boxes:

  • Core-XY mechanics.
  • Modular size: make it any size\shape you want (within reason).
  • High-resolution, fast.
  • OpenBuilds V-Slot linear-rail system for all moving parts.
  • You choose the electronics.

Carl did a great job with providing build documentation and a BOM, considering he’s releasing it all for free.  Mason took that improved upon it with more info, and even redesigned some of the printable parts.  All told he probably spent around +-$1200 (+ his time) for a great printer with a square foot build volume.

The rear of Carl’s C-Bot

mason_c-bot

Mason’s C-Bot

 

The closest competitor doesn’t even come close to that cost:  The F306 (which looks amazing) is around $4k, and the Makerbot Z-18 is $6500.   I liked the size and specs of the gMax 1.5 XT ($1895), but I’m not a fan of moving build platforms.  The Rostock Max kit is also a great value ($1k), but talking with their support and users, it just didn’t have the speed I was after.  I should note I’m not trying to speak ill about any of them, they all seem like solid offerings.

While I was on vacation I loaned my Replicator to Mason, and he printed out all the parts for his printer (and mine, before I was even sure I wanted to build one).  When he got his printer assembled & running, and started bringing the results into work, I knew it was the time:  Armed with Mason’s updated BOM, over the course of two days I ordered all the parts, and am currently eagerly awaiting their arrival.  The only difference between mine and his:  Mine will have a build volume two foot tall, with a negligible impact on price:  just some longer aluminum extrusions & wires.

That means I’ll have a core-xy printer with a two cubic foot build volume, for around $1300.  Presuming I can actually build it :)

Current Hardware\Firmware highlights:

Future posts will cover the build process as the parts arrive!


Jump to C-Bot blog index to see all the posts.