The SparkFun Stepoko is an Arduino compatible, 3-axis control solution that runs grbl software and is able to connect to your computer to accept stepper motor commands. The Stepoko's design and firmware are completely open source and it works with an open source Java based cross platform G-Code sending application to translate commands. By just looking at the pictures this board may look daunting but the simplest installation of the Stepoko consists of just plugging the stepper motors in, connecting it to power and to your computer! To top it off, we've designed the SparkFun Stepoko to fit and be secured inside of our Big Red Box as an effective enclosure option after a bit of milling to support the boards connectors and heatsink.
When looking at the SparkFun Stepoko it will be very easy to differentiate the two "hemispheres" of the board. The right side of the board has been dedicated to supplying power and system control. At the heart of the Stepoko is an Uno compatible ATmega328p. We’ve broken out all of the pins that are associated with the microcontroller and power supplies and an included chart in silkscreen on the back of the board that matches the grbl pin functions to the Arduino pin naming convention. Apply 12-30VDC to either the barrel jack or screw terminals (not both) and the Stepoko can supply up to 2.0A! Additionally, you will find a rail of screw terminals that function as Limit, Probe, E-Stop, etc connections.
Meanwhile on the left side of the board we can find all three of the stepper motor drivers for the SparkFun Stepoko. Each of the three axis drivers are controlled by a DRV8811 IC. The ATmega328p on the right side of the board talks to the 8811 by digital control signals that are able to set direction, enable the motor, and enact a step. Internally, it has a state machine that matches the states of each motor necessary to get it to perform. Modifying the Microstepping Control switches on each driver provide you to finely tune each array to your specified likeness. All the work that each stepper motor driver provides is contributed by the grbl software that comes pre-installed with each Stepoko.
Whether you are using the SparkFun Shapeoko on your own rig or on one our Shapeoko CNC Machine platforms you should be able to utilize this board to its full functionality without breaking a sweat!
This skill concerns mechanical and robotics knowledge. You may need to know how mechanical parts interact, how motors work, or how to use motor drivers and controllers.
Skill Level: Experienced - Your experiences should include working with stepper motors and feedback system. You may need to understand how encoders and more complex control systems work.
See all skill levels
Whether it's for assembling a kit, hacking an enclosure, or creating your own parts; the DIY skill is all about knowing how to use tools and the techniques associated with them.
Skill Level: Noob - Basic assembly is required. You may need to provide your own basic tools like a screwdriver, hammer or scissors. Power tools or custom parts are not required. Instructions will be included and easy to follow. Sewing may be required, but only with included patterns.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Based on 1 ratings:
I've got this running as a side project, and just purchased the board and the Big Red Box from Sparkfun. Here are a couple of thoughts.
1) Offer a milled version of the Big Red Box or at the very least, pdfs we can cut out and affix to the box for milling.
2) Offer a Stepoko version without the screw-terminal blocks. Leave the holes open like you did with the headers in the middle of the board. Or replace those terminals with something that is pluggable.
2a) It's a royal pain to get the wires to go in from the side once the board is installed in the box. And with a pluggable design, I can run my wires into the box from anywhere and have them go to the plug. I can't preinstall the wires and run them wherever I want because of the tight tolerances between the board and the box. Why is this a problem? In a wet/damp environment, we now have three sides of the box that are exposed to the elements (The bottom for the heat sink, one side for power/date, and now one side for motors/switches).
3) I now need to run wire from my stepoko to my motors. And while I could hard-wire it, I'd prefer to be able to plug/unplug things so that I can easily change distances, motors, etc... The cheapest option I've found are surplus AMP mate-n-lock connectors found in computers for power. A pack of six connectors and 24 pins would cost you around a dollar to put together, and you could sell it as an add-on for $5.
That's all for now. I haven't created my CNC table yet.
To all my Funion friends, here is the first thing that popped into my mind seeing this finally out in the wild.
Has anyone used this with a Shapeoko 2 and NEMA 17s? That's what I'll be using Stepoko with and wanted to know if someone can post their config file to review. Thanks! David
Please use larger screw terminal blocks on the next rev. of this board. These are way too small - especially where parallel gantry steppers are used (Shapeoko kit).
Just got mine fitted for the big red box. A bit of a pain. Perhaps Sparkfun could generate some pdfs that we could cut out, affix to the box, and use as cut guides for a dremel? Better yet, provide a milled box.
I killed a good two hours carefully measuring everything and then lasering those pieces out of the box.
How much current is available from the 12V regulator?
Does anybody know the differences between this board and the tinyg?
The pinouts that are labelled in the centre of the board, can I connect buttons to them and then to ground and activate the functions that are labelled? I would like to have physical buttons for some of those pins.
I too am looking to construct a external "control panel". There is documented information for some of these connections on page: https://learn.sparkfun.com/tutorials/stepoko-powered-by-grbl-hookup-guide/hardware-the-system-and-power-supply. Do all other functions on the Expansion Headers, JP19 & JP2, work the same way (ground pin to activate)?
Hello,
To answer both questions, the 328p is configured as input pullup, so on unused lines it's as simple as pulling them low to activate. Take a look at the product schematic where it can be seen that the functions with screw terminals all go through schmitt triggered buffers (U6). On the microcontroller side (the pin breakout), simply pulling low may fight U6's output drive so it's advisable to remove it if standard logic is to be used on the breakout port.
I always thought that if making a panel, I'd attach buttons for feed hold, cycle start/resume, and maybe reset by active closing to ground, and would attach an estop button to the screw terminals. The output pins (such as spindle PWM) are up to you.
Happy hacking
Ok. I see that. The bit I'm looking at is using individual switches to manually step the X, Y & Z spindle to a position. My guess is both the direction and step of a particular axis would have to be selected and then Step Enable but I'm not sure. It's probably a good idea to add a de-bounce circuit so I'd just use another 74HC7014D Schmidt Trigger on a daughter board arrangement. What do you think?
7Dec2016 edit: So I'm beginning to think a little differently about this. I still plan to build a control panel but I do not like the idea of multiple wires from the Stepoko board to a panel. I am looking at using a pair of Arduino Pro Minis using the I2C buss to facilitate the various control signals. The I@C bus is a three wire connection whereas I'd be looking at 10 plus wires otherwise. Since the Arduino can function as a Schmidt trigger, I won't need to develop a "daughter board" to de-bounce the switch signals. What do you guys think?
What are actual dimensions of the board? Hole placement and such? I am building a DIY CNC machine and want to possibly use this board but I need the physical specs. to actually mount and fit into my design. Also, where would the optimal fan placement be if one was to be used? Top left, top right, backside left/right?
I wasn't able to find a 3d version anywhere which is likely what you're looking for. Its approximately 3.5 x 6". You can find a dimensional drawing for the case it was designed for at http://cdn.sparkfun.com/datasheets/Prototyping/RedPlasticEnc.pdf
It is designed with a large heatsink on the bottom that is supposed to touch the bare metal of the machine. If you were to use a fan, I personally would mount the board vertically with a fan blowing over the heatsink from below. The vertical placement allows convection to dissipate heat even if the fan isn't functioning.
If you're mounting it inside the big red enclosure, the only room that you have to mount a fan is in the lid on one side of the box, where it would make most sense to mount it over the stepper controller side of the board, however, I don't know how effective it would be in that position. There is room enough to mount two 40mm fans on either side of the lid -- one for inflow, one for outflow, but again, you'll be mounting them on the wrong side of the board from the heatsink.
How hard will it be to add a digital readout?
I fired up the board last night and got the steppers running -- And difficulty in adding a DRO would depend on your definition of difficult. I see what I believe are serial transmit / receive on the board. So it might be as simple as grabbing a microcontroller of your choice to receive the data, parse it, and then print it on a display of your choice.
Or if you plan on having your computer run the thing through GRBL -- you can likely find an out of the box solution on ebay.
Nice work with the estop interlock.
This looks similar to using an Arduino and Synthetos gShield, why the high price point? I want to control my Sherline mill and looking at possible options. Does this require a fan for cooling?
It is definitely more than the Synthetos gShield but once you add in an Arduino, headers etc., it isn't quite as big of a difference. I'm not very familiar with the shield, but it looks pretty similar in feathers. A lot of the cost is also in the heat sinks. Each motor driver has a small heat sink on top as well as a massive custom heat sink on the bottom. While we've run this with a fan to make sure it works we not found it necessary to run with one on any of our projects. Keep in mind the massive heat sink sits against one of the Shapeoko rails so there is a lot of ability to dissipate heat through the heat sink as well.
Is there noise isolation circuitry for the input pins?
What version of Grbl does your board ship with? What is your recommended method for customers to update it as Grbl releases new versions?
Lead developer of Grbl here. I'm committed to fully supporting the StepOko board. You should be able to upload Grbl firmware updates via Grbl's supported Arduino IDE uploading method. I think you have to select either the Arduino Uno or Duemilanove as the board type. Not sure which yet.
This ships with 0.9. Because it is fully Arduino compatible you should be able to upload new code over USB with no problem. You will have to update you settings again so you probably don't want to do it all the time, but it should work fine when the time comes.
Is it a custom version of grbl or default. The latest version allows a "restore to factory defaults" option. If you build your own version of grbl with settings for the shapeoko, then you can issue a $RST=$ command to go back to the defaults
This comes with the grbl 0.9j with generic defaults, downloaded as hex from the grbl github. We've also thrown some basic shapeoko3 settings into the rom during our test process so that you can get going with the shapeoko3 right out of the box, though un-calibrated.
Issuing a $RST=$ returns the firmware to the grbl hard-coded settings (250 steps/mm, etc).