Recently, someone contacted me and asked if I could show her how to use her CNC machine that she bought last year to make v-carved signs. I did as much study as I could through YouTube to learn about the software that came with her machine. During my time with her, I got a chance to enjoy the $700 software package that is VCarve Pro. It was fairly easy to understand and use. However, the price tag is much more than I wanted to spend for software that I might use a few times a year.
There are a few other programs that do similar things, but the one I have experience with is Easel Pro (which is the software of choice for my CNC). But at $25 a month for a feature that I might or might not use during the month, I was still left searching for something more reasonable (even if it wasn’t as easy to use).
I’m not against paying for software; especially software that could potentially help me earn money in return. It can be an investment. But, I’m not primarily looking to make money with my CNC projects. I do the projects I do mostly out of personal enjoyment.
I have seen F-Engrave come up as an open source option for a couple of years. But, it has also been terribly confusing for me to wrap my head around. Having enjoyed the ease of VCarve and the cool effect that v-carving can give, I had to take the time to figure this out.
As is typical with open source software (I am a big fanboy), there is amazing power wrapped up in a less than stellar user interface. Front and center in F-Engrave is the ability to input text and carve it out all in one screen. However, this hides the fact that this is a powerful tool for creating intricate inlays and v-carving any design you can create in a design tool like Inkscape, CorelDraw or Adobe Illustrator.
I made a video on how to use the software, but also have written more detailed instructions here.
To import your artwork, you need to have saved it in DXF format from your design software. This can be text or actual art.
You can see I imported the Studebaker logo that I created in Inkscape by clicking File | Open DXF and navigating to my art to open it.
Following are the settings that are needed to do a v-carve. However, I don’t completely understand every option the software has to offer. For example, everything we are doing here to create a positive v-carve can be inverted to make a perfectly fitting inlay. But I’m still trying to figure some of that out.
At the bottom of the left-hand column, there is the V-Carve radio box. Select that. Even though it is the bottom of the column, it is important to choose that so that we have the correct options presented to us in the next steps.
Image Height is the final height of your art on the work piece. This defaults to 2 inches and is probably something that you will need to change unless you actually want your final art to be 2” tall.
Set Height as %. I am not sure why you would use this. A percentage of what?
Image Width is in percentage, but that is in relation to the height. 100% means that it will be normally proportional to the image height. Less than 100 and the image will be scrunched left to right. More than 100 and it will be stretched.
Image Angle is used to turn the image from horizontal to vertical or any position in between. You can play with the number and see what that does. Typically, this will be left at 0.0.
Origin is where you want to set the X0,Y0 (work home position) on your CNC machine. Typically this will be the bottom left or center of your artwork. To start your origin in the bottom left corner choose Default or Bot-Left (the same thing when using art) in the drop down menu. For a center origin choose Mid-Center.
Flip Image and Mirror Image are used for inlays. You will probably not use these for normal v-carving. You can click the check boxes to see what they do.
This is where you set the speed and plunge rate of your travel moves.
For wood, I have been doing 25 in/min using an X Carve machine. If your CNC is a smaller desktop version you may want to go much slower than that.
Plunge Rate should be something in the 5-10 in/min range unless you know your machine can handle something faster. The default of 0 copies whatever the feed rate is that you set in the box above.
Z Safe is how high above the work piece the machine will move before a travel move.
At this point you can hit the Calc V-Carve button and see the results of your settings. But there is another screen we must look at before you can save your project and cut your sign.
For our purposes, here are the things you need to choose and modify from the Settings screen.
Cutter Type will be a V-Bit. However, you can get similar but different results from the Ball Nose option.
V-Bit Angle is usually 90, 60, 45 or 30 degrees. Type in the angle of your bit.
V-Bit Diameter is the largest width of your bit. I usually use a ¼” router bit, meaning a ¼” shaft. But, that is not the number this option is looking for. This needs to be the size of the cutting area of the bit which will usually be larger than your bit’s shaft.
Cut Depth Limit is set to 0 by default. That means that the next line down is how deep the final cut will be. In my example it will be -0.433 inches. There is nothing you need to put in the Cut Depth Limit box unless the depth shown in the Max Cut Depth line is too deep for your material or deeper than you would like it to be.
If you need to adjust the Cut Depth Limit, then you need to type a negative number in the box.
At this point you could click the Calculate V-Carve button and be ready to save your gcode.
On the main screen of F-Engrave you can click File | Save G-Code to save your code. The default file format is .ngc. That may or may not be readable by your CNC control software. If it is, then you can save the file in that format and then send it to your CNC.
In my case, my control software of choice (right now it is OpenBuildsCONTROL) does not recognize the .ngc format. But, you can also manually change the file extension to .gcode if needed. Either way, it is a simple text file that is being created.
If, after calculating the v-carve you find that there are sections in your carve that have two white lines in a single section of the letter (like in the image below), then you will want to calculate a cleanup path.
Go back to the Settings | V-Carve Settings screen. At the bottom right you will see a Calculate Cleanup button. Leaving the settings at their default values, you can create a cleanup path that will use a ¼” end mill to flatten out the bottom of the carving. Why one would need to do this only became obvious to me once I did a cut that needed it.
In the following image the red arrows are pointing to areas within the letter that should have been carved out during the v-carving process. However, since the letter was so wide, the bit was not able to carve out the area needed without going too deeply into the wood. This is where a cleanup toolpath will flatten out that space inside the letter.
After clicking the Calculate Cleanup button, click Save Cleanup G-Code and save the cleanup toolpath. Again save it as an .ngc file or .gcode file as needed.
Run the main gcode file first on your machine, then the cleanup gcode after changing to a ¼” bit (or whatever size you specified in the Cleanup Cut Diameter box).
In the General Settings dialog box you can choose whether your units are inches or millimeters. All the other settings are probably important for something, but I have yet to figure them out. You may need to adjust the G Code Header and G Code Postscript for your machine. I was fairly successful in finding what those fields do by searching on Google.
Take the gcode file that was created and run it on your machine by using the CNC control software for your machine. This may be Easel, Universal Gcode Sender, Mach 3|4, OpenBuildsCONTROL, Ready2Control, LinuxCNC or many other control software options.
Actually controlling and sending the code to your machine is beyond what I can do here and keep this general enough for all machines.
The other great thing that F-Engrave can do, that I do not yet understand, is inlays. You are able to cut the inverse of the v-carve that we just did in another piece of wood and glue them together for a perfect match. Explaining that will have to wait until I get tired of this process and am ready to spend the time to learn the workflow. There are videos on this process, I just haven’t been able to wrap my head around the steps.
As mentioned at the beginning, I have done a video on the v-carving process that may be a bit easier for you to follow.
]]>It turned out, in this case, that the problem was the UPS the computer was plugged into. The battery was fully charged and had sufficient capacity. But the unit would randomly act like an electrical failure had occurred but would not make the switch to battery power. We experience frequent short power losses at our office (on average more than 1 a week). It is likely that the unit has been damaged by these regular power failures over the years that it has been in place. Fortunately, it is the unit that is shielding the computer from taking the hit on this.
This is one of those blog posts that I’m really writing for myself so that I can come back and find out how I did something if I need to do this again in the future. I’m just inviting the public to read over my shoulder.
I had not previously worked with monitoring voltage with an Arduino, but I knew it was possible. I also knew that the answer was by using a voltage divider. However, I didn’t know how they worked, so I had a little studying to do. I understand the math behind it, but I still haven’t wrapped my head around what is actually happening electronically. Mostly it is because it works and I haven’t really tried to understand it.
The need for a voltage divider is so that you can feed a higher voltage into an analog pin of the Arduino without destroying the Arduino. The analog pin can only take 5V in. Any more than that and you will destroy the unit (how much more makes it melt down is unknown by me, but I suspect it wouldn’t take much).
Since I wanted to measure the 12V output of the power supply, I needed to step down 12V to no more than 5V. But I didn’t want to use a voltage regulator that would give me a smooth 5V out. If I did that then I’m not actually monitoring the power supply output. I needed a way to vary the 5V going into the Arduino in relationship to how much the 12V fluctuates.
I could have measured the 5V or 3.3V outputs of the power supply, but I didn’t think those would have as much fluctuation as the 12V might if there was a problem with the supply. While those would have been simpler, and potentially not needed a voltage divider, if the 5V or 3.3V outputs spiked over 5V then it would have destroyed the Arduino. And, since I suspected there was a problem with the supply, I worked under the assumption that they might be spike over their intended voltage.
The idea of the divider is that you can feed in 12V (or, in the way I set mine up, anything up to 48V) and it will proportionally divide the supply voltage down to less than 5V. Any fluctuation in the input voltage affects the output voltage. In this way you can monitor voltage drops or spikes safely with a 5V tolerant analog pin of an Arduino.
The math is fairly simple. As you can see from the image above the output voltage is equal to voltage in times the value of resistor2 divided by resistor1 and resistor2 added together. There are calculators online that can do the math for you based on resistors you have available. The key is that you never want your output voltage to go over 5V. Therefore you should add in a bit of a buffer in case the voltage at your supply spikes for some reason.
In my case I wanted my output voltage to never be greater than 5V. I had a handful of resistors that I measured with a continuity tester. What worked for me was a 33K (which measured out to 32.7K) and a 3.9K (measured at 3.8K) resistor which would give me a 48V input max. I would have liked my tolerance to be a bit lower (20V) so that I felt like I got more resolution on my final reading, but these were the resistors I had handy.
Here’s the code that I used. The original author of the code is T.K.Hareendran that I got from the ElectroSchematics website. I have modified it to work for my project and therefore have taken his name off of it. But it might be beneficial to read his site on how it works or if you want to add an LCD display to the unit.
#include
#include
File myFile;
int pinCS = 10;
int analogInput = A0;
float vout = 0.0;
float vin = 0.0;
float R1 = 32700.0; // resistance of R1 (32.7K)
float R2 = 3800.0; // resistance of R2 (3.8K)
int value = 0;
void setup() {
Serial.begin(9600);
pinMode(analogInput, INPUT);
pinMode(pinCS, OUTPUT);
if (SD.begin()) {
Serial.println("SD card is ready to use.");
} else
{
Serial.println("SD card initialization failed.");
return;
}
Serial.println("DC VOLTMETER");
}
void loop() {
// read the value at analog input
value = analogRead(analogInput);
vout = (value * 5.0) / 1024.0; // Analog input reads voltage as a percentage from 0-1024
vin = vout / (R2 / (R1 + R2));
if (vin < 0.09) {
vin = 0.0; //statement to quash undesired reading !
//analogInput = analogRead(0);
}
Serial.println(vin);
//Create or Open file
myFile = SD.open("Voltage.txt", FILE_WRITE);
if (myFile) {
myFile.println(vin);
myFile.close();
} else
{
Serial.println("Error opening test.txt");
}
delay(1000);
}
This is not a perfect solution for several reasons, but it does (potentially) give enough information that can help me know for certain that the power supply is faulty. However, it can't tell me that it is not faulty because this particular power supply has 3 independent 12V outputs. A whole section of the supply can die and not affect the other 2. If I'm testing a good section there still could be 2 others that are faulty.
The problem, in this case, ended up being a bad UPS. However, if I had monitored this power supply for a few days I may still not have caught a true power supply problem. This circuit can really only tell me if the supply is faulty. It can't determine if it is definitively good. And, it may not present as faulty on the output I'm using during the test period. Therefore, there are plenty of ways that this circuit may not detect a faulty supply and it can never convince me that the supply is definitely not faulty. It only tests a small subset of potential power supply problems.
While, as mentioned, it cannot tell me if a supply is absolutely good, it does give me a chance to test the supply under load. That is one of the reasons I have not invested in a particular type of power supply tester---you can't test under load.
This does, however, help explain how a voltage divider can be used and how to read a higher voltage using an Arduino that is limited to 5V input. And, maybe, in the future when I need to remember how to use a voltage divider I will remember that I wrote this down and I don't have to go searching all over the Internet again for the solution.
]]>Recently I was at Digital Book World with my friend Len Edgerly from The Kindle Chronicles podcast. He and I have had an ongoing discussion about what makes a good interview. At Digital Book World (DBW) we talked specifically about interviews with authors.
This came up at DBW because Kathy Doyle from Macmillan Publishers was there and answered an audience question concerning suggestions for authors who who have been approached for an interview. I think she gave some good tips which included listening to other interviews that the interviewer has done to get a feel for what their style is.
Â
That brings us back to types, or styles, of author interviews. I have identified three types that I like for different reasons. As an author looking to do an interview with a podcaster or radio station, I think you should try to figure out what the purpose the interviewer is trying to accomplish by having you on their program.
Tell Me About the Author
Sometimes I am less interested in the book than I am the author and their story. This is the type of interview I enjoy on shows like The Kindle Chronicles. I like hearing the story of how the author got to where they are and what types of books they have written.
This type of interview will certainly talk about the author’s latest book, but I don’t listen to these types of programs to learn about books. I listen for the human interest story of how an author ended up where they are.
Then there are times when I am much more interested in the book than I am the author. For example, The Art of Manliness podcast does many author interviews. I enjoy these, not because of who the author is, but because of what the book is about.
In this type of interview I am wanting to hear about the content of the book. I want to find out if this is a book that I would be interested in buying.
In this interview type the host of the podcast, or other media outlet, has selected the author and book because it fits with their theme. Therefore, the theme of the book is the greater focus in this type of interview.
The third type of author interview that I enjoy is one where the host directs the questions to get the information out of the author that the host is interested in sharing. Todd Henry at The Accidental Creative podcast is a master at this.
Todd is not asking the author to come on the show to talk generically about their work. Todd has a very targeted topic and he interviews authors for the purpose of getting them to share targeted content for the listeners. He is brilliant at asking questions that pull out the few specific points that he wants to share with his audience.
In this type of interview the author may not have a chance to talk about the book as a whole, but may only cover a few select themes covered in the book. That is perfectly fine since the host has an agenda and a reason for sharing the author with his listeners.
There is no single best type of author interview. Each of these three interview types has a specific purpose. It would behoove an author to take the time to listen to a few interviews by the host and find out what the host wants to share with the audience. If you don’t hit the target, or especially if you don’t try, then your time may be wasted and the interview may never be played. I have done my share of interviewing and there are times when an interview never makes it out of the recorder because the guest never really understood what the purpose of the interview was.
If you are an author, take the time to learn why the host wants to talk with you. In the process, you may find new readers because they heard what they were listening for in that show.
]]>The purpose of this post is to just make a few comments and answer some of the questions that came up with an alternative way of doing things.
At 3:53 Padre says that a Chromebook might not be the best choice for running TinkerCAD. However, my run-of-the-mill, average Chromebook from 2014 does fine for most stuff. I have rarely felt like my local computer was the cause of any problems. It is usually related to the quality of the internet connection. When starting out, you probably won’t overtax a Chromebook’s ability. My point is, don’t be afraid to try if all you have is a Chromebook.
You definitely want a regular mouse connected to your machine. One with a scroll wheel and middle-click button are best. (Is there such a thing as a scroll wheel mouse that doesn’t have middle click anymore?)
Moving Around the Build Plane
At 21:53 Jason asks about moving around the build plane. Padre said that it is not possible to do what Jason wanted. But it is possible by using the middle-click button on the mouse. You can use the mouse’s middle button to control the point of focus. However, using the F key on the keyboard to lock focus on an object is pretty slick and easy (one of those features I did not know existed).
At 25:35 Jason wants to drop one shape onto another. This is an advanced technique, but Padre seemed to not know this. At first I thought it was that he did not want to explain the technique because it is more complicated. But, based on what else he said, I’m not sure he actually knows this ability exists.
You can stack shapes by adding another build plane (the software calls it a workplane) to the face you want to stack an object on. Use the Workplane icon to drag a new orange (temporary) workplane onto an object face. Then click the object you want to stack and hit the letter D.
The face that the new workplane goes on does not have to be a top or bottom face. It can be a side face. You can also choose a new workplane before bringing a new object onto the modeling area. Doing that will let you place text or other objects onto the workplane in the correct orientation.
To delete the temporary workplane and get back to the standard one select Workplane again and click anywhere outside the current temporary one.
Copy VS Duplicate
At 42:28 Padre says to use CTRL-C and CTRL-D to make a duplicate in the same place. You don’t need the CTRL-C step. By itself, CTRL-D makes a duplicate of the selected object.
If you want to paste an object, not in the same place, then you need to use CTRL-C and then CTRL-V. I can’t think of any time when doing this is better than just making a duplicate in place.
There are some interesting duplication rules in TinkerCAD that you may want to explore, but they are more advanced than this video is trying to be.
Starting at 47:30 Padre goes into a convoluted explanation of how to make a box smaller by subtracting 2 mm off of each side of the duplicate box so that you can keep them both centered. There is a much easier way to align 2 (or more) objects than trying to subtract a certain amount from each side of an object
Select the objects you want to align and choose the alignment tool. Alternately, after choosing the objects you can press the letter L on the keyboard. Once the tool is active, use the control dots to align the objects to each other in various ways. You can align left/right/center, front/back/center, or top/bottom/center. To accomplish center alignment, like in the video, you would choose the two center alignment dots on the build plane.
I agree that a good set of calipers/micrometer is better than the cheap ones. And sometimes it makes sense to spend money on better tools at the beginning. But this is one where I disagree with Father Robert. Buying a cheap set (sub $20) may be all you ever need. If you decide that 3D modeling is not for you, then there is no reason to have a $40 tool lying around that you will never use again.
I’ve had my $15 Harbor Freight calipers for over a year and have never had to replace the batteries (a complaint he has shared previously), nor had them fail in any way. I understand that better tools are likely to perform better and last longer, but this is one where I think I would recommend something inexpensive to get you into the field as opposed to scaring you off by suggesting a more expensive tool.
Thanks for the great video. I did learn a few things along the way. I just hope that some of the extra tips help make using TinkerCAD a bit more enjoyable.
]]>I will not go into every small step of setting up and configuring Marlin. There are plenty of guides online that can do a much better job. What I do want to cover are the configuration options that you need to know specifically for the Wanhao Duplicator i3 Plus and its various rebranded counterparts.
The steps per mm numbers above are what mine is currently set to. I am still doing some tuning to make things more precise, but this should get you started. I would assume that your numbers would be identical to mine assuming you still have the stock motors, belts and drive screws. However, other settings inside of Marlin could affect these numbers.
I will paste my full configuration.h file below, but here are the lines that I have changed. I will put the line number as it appears in the original Marlin 1.1.x configuration.h file. Listed below are what they were changed to for getting my printer working, but not necessarily perfect. I don’t anticipate that I will update this document with every little change I make in the future.
Lines 1231 and down have to do with the particular LCD display that came with my RAMPS board. You will have to look around for the settings for the display you are using. Mine says “RepRapDiscount Full Graphic Smart Controller” below the LCD.
Line 275 sets the type of thermistor for the heated bed. I uncommented line 326. This was to turn on a PID autotune feature on the control unit. PID is set with lines 339-341. The endstops have to be switched to true because on the Wanhao printer they are wired NO (normally open) as opposed to NC (normally closed).
The DEFAULT_AXIS_STEPS_PER_UNIT on line 512 is to set the motor driver steps. This is a line that you will adjust to dial in how far each step on the motor actually is. You can read the long and detailed version of axis calibration at the RepRap Wiki or check out this Instructable about calibration to get you started.
527 and 537 were changes I made because I was getting a drastic y-axis shift. It turned out the shift was due to the motor driver overheating. With a fan blowing on my RAMPS board I no longer have that problem. I may change lines 527 and 537 back to the default numbers to get more speed out of the printer.
That should be enough information to get you up and running with Marlin. Then you can spend the next 3 years continuing to tweak these settings and many other parameters.
]]>Communication from the control board underneath the printer to the small daughter board behind the actual print head is done through a 16-pin ribbon cable. I had to figure out which of the sensors and actuators in the daughter (or breakout) board corresponded with the ribbon cable pins.
In the end I eliminated the ribbon cable because I did not trust the breakout board behind the print head. This is the part that visibly failed when the motherboard on my printer died. Even though I did an attempt to fix it, I am not certain that all the wiring works as expected. I will explain at the end how I did my own wiring.
Following is an explanation of my original plan, which is probably what you want to do, even though it is more complicated. Then at the end I will tell you how I actually did my wiring. Much simpler. Much more logical. More work. Much uglier.
The Original Plan
This is the best way I could figure out how to explain the ribbon cable that made sense to me. If you discover that any of this information is incorrect, I would greatly appreciate you letting me know. This all seemed to work for me until the voltage regulator in my Arduino burned out. It was at that point I started doubting the breakout board and ended up replacing all the wiring from the print head down to the new RAMPS control board which I explain in the lower part of this post.
Above is a drawing of the output of the cable underneath the print bed. You need to patch into this cable and connect the various pins to the RAMPS control module.
Here is what I have figured out each of these pins do.
I used DuPont cables to plug into the ribbon cable and then out to the RAMPS module. I made them into blocks of cables (1X2 and 1X4) as much as was possible. This keeps you from accidentally switching around the wiring.
The complicated one was the wire coming out of pin 16. It needed to split three ways into the RAMPS board. One wire needed to go into 1 of the 2 inputs of the x-axis limit switch. Another wire for the hotend fan. Finally a wire for the hotend thermistor. You can see in the picture below how I split that out.
What I don’t show in the picture above is how those are all connected together. The black wire is coming out of pin 16 of the ribbon cable (using a male DuPont connector). I then cut that wire and soldered 3 wires with female connectors onto it. This gives me the three outputs needed for the x-axis switch, thermistor and fan.
I used wires (18 AWG) from a computer power supply for the next part. These were to form the blocks of wires that are needed to plug into multiple pins but go out to a single wires.
For pins 1-4 strip back between 1/4″ and 1/2″ of insulation of one of the 18 gauge wires. I used black since this was ground. Then split the bundle of stranded wire in half. Crimp a male DuPont connector onto half the wires and another one onto the other half so that you use up all the strands split evenly between the two DuPont connectors. These two connectors can plug into pins 1 and 2 or 1 and 3 on the ribbon cable. It does not matter which way you do it.
Do the same thing with another (black) wire. This one will plug into the other two pins in the ribbon cable you have not used out of pins 1-4. My package of DuPont connectors did not come with any 2X2 blocks. So I made them into two 1X2 blocks for this. But you can do a single block for both wires.
Pins 5-8 are done exactly the same. This time I used a yellow wire. You can see the blocks of wires I made for these 8 pins in the pictures above.
The two black wires (pins 1-4) can be soldered together and plugged into the negative terminal of D10 on RAMPS. The two yellow wires go into the positive terminal of D10. It actually does not matter for the purpose of the heater which wires go to the positive and negative power blocks, but it is important for the fan inputs which are also tied to that 5-8 block
A single 1X4 block can be made with pins 9, 11, 13, and 15. Keep them in order and connect them to the E0 four-pin set on the RAMPS board.
For pins 10, 12 and 14 I used 3 individual DuPont jumpers to go to the appropriate pins on the RAMPS board (the other thermistor pin, and the other x-axis switch pin into set 1 of the limit switch pins).
This is where I ended up deciding to go a different route on the wiring. What you are missing in my instructions above is the wiring for the print cooling fan. Pin 10 on the ribbon cable is the print cooling fan (called PWM fan on the breakout board up top). That fan would normally plug into the D09 connector of the RAMPS board. It is polarity sensitive.
The problem is that the wiring on the ribbon cable takes half of the fan wiring through pin 10 and the other half through pins 5-8. I think what this means is that you plug pin 10 into the negative side of D09 on RAMPS. Then you don’t do anything with the positive side of D09 since the fan is already being fed with pins 5-8 on the ribbon cable and is already connected.
It won’t hurt anything to give this a try. Logic tells me this should be the way the print cooling fan works. And if it doesn’t, you’ve not hooked up anything that is dangerous.
The non-ribbon cable wiring will be hooked up logically. This is all the stuff that hooked up to the original board directly. The heated bed goes to D08. The 4 motors plug into the X, Y and Z1 and Z2 of RAMPS. The bed thermistor will go into its place next to the hotend thermistor. The y-and z-axis switches plug into the 3rd and 5th set of limit switch pins.
After watching a video (below) of Tom Sanladerer talking about printer wiring, I decided to go with 2 stranded network cables. That gave me 16 wires to cover 14 inputs from RAMPS to the sensors and actuators up top.
I simply crimped on male DuPont pins at top and female ones at the bottom. Some of the ones at the bottom I plugged directly into RAMPS, some I used other DuPont jumpers to give me a little more length to reach other parts of RAMPS.
It should not matter which wires you use for each connection, but watch the video and see the tips Tom gives. Keep the twisted pairs together for the various connections. I did put the 4 heater connections on one LAN cable and the motor on another. I figured these were the biggest power users and it might help to separate them.
My setup isn’t elegant and I may find a better way to clean up the wiring. The network cables I choose (based on availability in my junk drawer) are not the most flexible. But this setup works well and is much simpler to figure out than using the ribbon cable with the original breakout board.
If I do make a change to this in any way, here are the two ways I would consider doing it:
If you have not already bought your RAMPS board, please read through this whole post before purchasing. After reading you can make a better choice and save a little work by buying the right one.
Also, don’t power up the RAMPS board until you have completed all the steps in this post. In a later post I will show you how to wire everything up. It is probably best to wait until you get to that point before applying power.
You should assume that your RAMPS board is designed to work with 12V. They do make boards that can accept both 12 and 24 volts, and you might want to buy one, but it is best to assume your board is 12V and confirm that it will work with 24 before plugging in the higher voltage to test.
The cost of a 12 volt RAMPS setup with stepper drivers and LCD screen is the same as a 12-24V RAMPS board by itself. All the 12-24V boards that I found had the Arduino Mega integrated into the same board as the Pololu shield. I personally like discrete components (as much as is practical) so that if one part dies it can be replaced without having to replace the whole system.
Therefore, my preference was to buy a $40 kit that included the Arduino, Pololu shield, stepper drivers and LCD that needed to be modified for 24V. As opposed to $40 just for the Arduino/Pololu integrated system without drivers and LCD but was already setup for 24V. You will have to decide that on your own. If you buy the 24V setup, then you can completely skip this step. But you will have to figure out the LCD and stepper drivers on your own. Also, I found out in the end of this conversion, the wider boards can’t be housed underneath the printer like the original board was. You will have to build a separate enclosure for it.
For the rest of this step, I assume you have a 12V RAMPS board. You can get them at the supplier of your choice: Amazon, eBay, dx.com, AliExpress or Gearbest. There are many other places to get them, but that should get you started. I chose Amazon for this because I wanted it quickly and for RAMPS, stepper drivers and LCD in one package buying from the Chinese shippers and waiting up to 2 months was not much cheaper (if at all).
Assuming you have a 12V RAMPS board, there are three types of components to check or modify to make it work with the higher voltage supply: capacitors, fuses and diode.
In the image above (you can click it to get a larger image), you will see various components highlighted with circles and arrows. Refer to this image in the explanation below.
There are two different sets of large, electrolytic capacitors. They are physically different sizes which should make it easier for you to identify. In the image above the capacitors circled in yellow are the ones you need to be concerned about. The 3 circled in green should not need to be checked or modified in any way for working with 24 volts.
The 6 yellow-circled capacitors should be rated at 35V or higher. Your’s may say something like 36V, 100V or some other cryptic code for the voltage rating. If these capacitors are less than 36V you really should replace them. If your capacitors are 24V or less, you can expect it to not work at all, or very unreliably until it fails. To make it easy try to buy a board with the right capacitors so you don’t have to replace them.
The reason we don’t have to worry about the green-circled capacitors and their lower rating is they are not using the 12 or 24 volts from our power supply. That segment of the board is stepped down to 5 volts. Therefore, whatever the manufacturer originally installed for that section of the board should be sufficient.
The diode (pointed at by the pink arrow) is the path through which electricity goes into the Arduino and powers it. Since most Arduinos are rated for up to 12V of power, we don’t want to feed 24V into it. By getting rid of this diode then we stop the 24V from going through the Pololu shield and into the Arduino. That means that after this step is complete we need to find a way to power the Arduino separately with 12V.
You can remove the pink-arrow-highlighted diode by snipping the wires on either side of it or by desoldering it. It would be very hard to get a pair of wire cutters in the space to snip the wires on the diode, but it is possible. I chose to desolder mine. You can watch a video or read an Instructable about desoldering components if you don’t know how.
There is another diode next to the poly fuses. You should leave this one in place. Only disable the one indicated by the pink arrow.
Now you have to power the Arduino in some way. The way I chose to do it, and the way I recommend, is to use a step down power converter. Also called a DC-DC or buck converter. What this does is take the 24V from the main power supply and converts it (steps it down) to 12V that can be used for the Arduino (and cool looking 12V LEDs). I had already installed one of these in my printer for the purpose of powering LEDs. So this was an easy route for me.
Just because something is easy, doesn’t mean it is best. However, in this case, I think this is the best way to go about powering your Arduino. The other option is to have an external 12V source for the Arduino. It can be a battery (which could leave you with a dead Arduino in the middle of a print) or it could be a second supply plugged into the wall (which is an extra external component). In either case, you need to tie the ground of the battery or secondary supply to the ground of the 24V supply. Too much work.
A small buck converter will take the 24 volts from our current supply and easily convert it to usable 12 volts. That is what it is designed to do.
My converter (shown above) can take up to 32 volts as input. Then there is a screw adjustment to dial in the output voltage. The one I am using is a buck and boost converter which means that it can also take a lower voltage and boost it to a higher voltage at the cost of amperage. I only used this because I have some sitting around. But if you are buying one for this project a simple buck converter will be fine.
I soldered wires from the IN+ and IN- side of the buck converter and ran those to the extra screw terminals on the power supply. Wasn’t it nice of Wanhao to leave an open spot for us to use? Make sure the IN+ goes to the +V terminal and the IN- goes to the -V of the power supply. The following picture shows where I tied in my buck converter. The first and fourth screw terminals (from the left) on my power supply were empty. These were the ones I used.
Turn the adjustment screw on the buck converter (actually a multi-turn potentiometer) on the buck converter until your volt meter reads 12V as output voltage on the other side of the DC-DC converter. That is where you will get the 12V that will be fed into your Arduino’s barrel jack. I soldered a short pigtail from the +/- OUT on the buck converter to a barrel plug appropriate for input into the Arduino. The center pin should be positive on the plug.
I printed a small sled for the converter to sit on and then hot glued the converter to the sled and the sled to the frame of the printer. (This was when my printer still worked.) For the time being, you can just put tape on the bottom of the buck converter to keep any solder joints from shorting out until you can print an insulating sled.
With the diode removed no voltage will pass from the Pololu shield to the Arduino. The Arduino will get all it’s power from the 12 volts of the buck converter. Since it is all tied into the same power supply, when you turn on the printer it will turn on all the different components like it did originally. The only difference is that part of the system is getting 24 volts and part is only getting 12 volts.
Fuses
You need to check that the fuses on your RAMPS board are capable of handling the higher voltage. The fuses are indicated with the red arrow in the picture above. One of these fuses on my board (the one closest to the power plug) needed to be replaced. It can be replaced with another resettable fuse of an appropriate capacity, or a different fuse type altogether. In my case I chose to use a fuse made for car applications.
The original fuse on my board was an MF-R1100 poly fuse. It is rated at 16V and 11 amps. Because the voltage is lower than what we need, then this one must be replaced. The other poly fuse on my board is rated up to 30V; therefore, it does not need to be replaced.
I replaced mine by desoldering the current fuse and making a holder for an automotive fuse. I did this by soldering 2 wires (20 AWG or better) about 1-1/2 inches long (length is not critical) to the board. Then I soldered the other end of the wires to female spade connectors appropriately sized for my fuse. You will see in the picture above that I am using a 10A fuse. I don’t know for certain that this is the right amperage. 5A was not enough and 10A hasn’t blown out.
CLARIFICATION: The fuse should be more than 5A. When testing, I blew out the 5A fuse almost immediately. I have read that a heated bed will pull up to 13A at 12V. Theoretically, that says to me that we want a fuse that is 7.5 to 8 amps since we are powering the heated bed with 24V now. I will update this if I find out something different. But for now, I am sticking with a 10A fuse.
I said at the beginning of this post that after reading through this you will have a better idea of how to make a better RAMPS choice.
As mentioned previously, you can buy a RAMPS setup that is already made for a 24 volt supply. That is probably the simplest thing that you can do at the expense of not being able to hide the electronics under the printer and not having discrete components that could be replaced.
If you are going with one of the cheap RAMPS setups (there are many for $40 or less on Amazon), then here are some of the things to look for.
The cheap ones will have to be modified. But if you aren’t wanting to do that, then you are missing out on the fun.
Here is a good video that talks about some of the downsides of the RAMPS setup. But while Tom mentions all the things he doesn’t like about it, he concludes by saying his main printer runs RAMPS. At least as of 3 years ago. I know he has many commercially made printers now and probably does not run a RAMPS based printer as his daily driver anymore.
I was helped through this step by reading other forum questions and watching videos. The following video is one that made sense to me after I had done a lot of other reading. It doesn’t tell you everything you need to know, but it is a great start with this step.
Maybe some of these questions that others have asked will have an answer that makes this step clearer. Here is a Reddit question about the conversion. This forum thread gets a little deep in the weeds, but reading the first response to the question may help clear up what I have posted above.
You can also read this very detailed explanation. It gets into much of the theory as to why you would want to do the conversion. We already know we need to because our printer is already a 24V printer and we have a 24V power supply.
]]>The reason I started through this is that my Monoprice printer stopped working properly (was not getting information from the hotend thermistor). Monoprice ultimately agreed to replace it, but I would have to send it back at my expense (more than $70 in shipping costs). I decided to do this upgrade instead. If you are buying a printer for the purpose of doing this upgrade, then stick with the Maker Select v2 (Duplicator I3 v2 or 2.1). That machine is much easier to convert and there is already a great tutorial on how to do it. You end up with the same features but at $100 cheaper for the original machine.
Here are some of the things that need to be considered in this conversion. These may or may not be covered in this order. There is much more to the conversion, but these are some of the decisions you should be thinking about before even starting down this path.
What is my authority for being your guide through this? Almost nothing other than I have done the conversion and my printer works at least as good as it did before. Therefore I don’t claim to be an authority on building and modifying 3D printers outside of my experience.
My first, and only, 3D printer is the Maker Select Plus by Monoprice (which is a rebranded Wanhao). I have no experience with any other printer. Mine worked fine for almost 4 months before it died and now I have successfully gotten it up and running again. I am a fan of open source software and hardware. While the Monoprice/Wanhao printer is not completely open source, it had enough modifiable components on it that I knew if it ever came to a dead printer that I could probably rebuild it using parts from Amazon and eBay.
As of the writing on this tutorial, I don’t have my printer working. I am documenting as I go. Hopefully, by the time most people read this, I will have my printer up and running and have corrected any documentation that I find did not lead me to a solution.
My printer is running well and I am pleased with the results of the conversion process. I don’t know that I would recommend undertaking this conversion unless your control board is unrepairable. In other words, I wouldn’t buy this printer for the sole purpose of swapping out the brains unless you got a good price on a non-working model.
I am open to any suggestions you may have on how to improve this information for the purpose of helping others. This certainly worked for me.
You will need a RAMPS board for this. RAMPS stands for RepRap Arduino Mega Pololu Shield. It is the basis for many RepRap designs, especially older ones. It is an open source design so that you could build your own, or buy one pre-built. There is a ton of information online about the board and you can get help with just about any aspect of configuration. There are newer control boards than RAMPS with more features, but I did not find any reason that made the newer boards superior for my purposes. Plus, the RAMPS board is so well documented and inexpensive that it is considerably more appealing to me.
Something else I discovered in the end of my conversion process is that the RAMPS board barely fits under the printer like the original mother board. Any of the other solutions would be too big to fit in the available space. You would have to build an external enclosure which defeats part of the purpose I had for buying the Plus version of this printer: the compactness compared to the original version.
You can get RAMPS kits from Amazon, eBay or one of the big Chinese shipping sites like dx.com, AliExpress or Gearbest. Where’s the best place to get one? I don’t know. I would recommend reading many reviews.
The one I bought on Amazon has not been overly impressive. There are some obvious quality control issues. After having it powered up for a few minutes the voltage regulator on the Arduino burned out. I was able to swap an AMS1117 5.0 regulator from another Arduino onto this board. Here’s my 3-star review of the product. (The seller has contacted me several times asking me to change the review to something better. Purchase at your own risk.)
You will probably want to get one of the kits with a screen, but it is not absolutely necessary if you are using an computer to be your print server. I am using a Raspberry Pi running OctoPi (OctoPrint). The cost is not that much more to get the screen and then you have the option to use the printer without a computer hooked up to it all the time.
You will also need an Arduino Mega which should come with a RAMPS kit. You can buy the shield without the Arduino, but unless you have one lying around unused, you should get a complete kit with one included.
The Maker Select Plus has a 24 volt power supply. It is supposed to be better for motor control. I’m sure it is, but it also adds to some of the complication of the conversion.
The Pololu shield (the PS of RAMPS) can work with 24V. But the Arduino (AM of RAMPS) cannot. You will need to supply the Arduino with 12V separately. You have to decide how you want to supply the two separate voltages. You will also need to modify the Pololu shield to make it work with 24V and not feed that 24V into the Arduino.
This is all explained in the next post.
This has been the tricky part of the conversion so far. The main issue is the breakout board and ribbon cable that come from just behind the print head. The ribbon cable is great in that it simplifies how many separate wires run from the print head to the control board underneath the printer. However, that also means we need to figure out which wires control which sensors and actuators. I have a wiring diagram that I included in a post about wiring.
There is a variety of firmware that you could use with RAMPS. In my build I am using Marlin. My choice is made on the fact that I have found quite a bit of information about Marlin and a friend who built his printer from scratch uses a Marlin variant. I can lean on him for configuration help. I may move to a different firmware in the future, but this is where I started and it is working for me.
So if you are ready to jump in then get started with the RAMPS information and move through the rebuild of your machine.
]]>Monoprice’s solution/agreement was that, yes the printer was poorly manufactured and that it is their fault that my printer does not work. However, because I installed firmware on it, they would no longer cover it under their normal warranty policy. I was welcome to send it back to them at my expense and they would replace it with a new machine.
There are two problems with that: at my expense and new machine. It would cost just over $70 to ship the printer back to them. I realize that if you are not interested in upgrading and modifying your own printer, $70 may seem like a good deal. However, I was probably going to replace all the logic parts on this printer in the future anyway. I like the design of the Maker Select Plus (though if you are doing this upgrade, the Maker Select v2 is the better choice at a cheaper price), but their motherboard and firmware are not the most friendly for hacking purposes. Since I already bought all the electronics to do the upgrade when they had originally convinced me that they would not consider replacement, I would rather move forward with that upgrade path.
The second problem I had with their offer is that they would completely replace the machine and not send me my old machine back. My machine is not perfect (print bed base is bent) but at least I know its quirks and have learned to work around them. I have also done some reversible mods, but I really don’t want to have to disassemble all of my LED and Z-axis upgrades and start over. I would rather have this same machine back.
Up to the point of them agreeing to replace the machine, I wasn’t even certain which of the two boards was at fault on this printer. At first it seemed like it was the main board. Then I found a burned electrical trace on the small breakout board as well as a couple of bad solder joints. Since I decided that I would not have the machine replaced I launched into repairing the breakout board myself. I found that the printer still did not function properly after repair. It displayed the exact same symptoms. So the problem is definitely the main board which may have caused the breakout board to fail.
Now I am in the process of installing a RAMPS board and getting it all wired up. (Here’s the board I bought. It seems the manufacturer/seller has some serious quality control issues. Spend more money for a better board if you are able to). Even though the original problem showed up 3 months ago, it took me a month to finally get Monoprice to answer emails and phone calls to come to the decision that I was going to keep it and not have it replaced. Then I began a busy time of work and travel that kept me from doing the upgrade. I am home for a few weeks and will get back to the RAMPS upgrade. I will document what I can here for others who want to convert their Maker Select Plus to an open source control board.
I have actually gotten far enough into the upgrade to be encouraged that this will work as well as I had hoped. I have been able to test most of the motors and sensors with the new board. I am now in the process of assembling the new wiring harness for the machine. I will probably break down the upgrade path into several blog posts. I hope it is a help to the next person who would like (or need) to do this conversion.
And for those who have the Maker Select v2 (or 2.1) or the Wanhao original version of the same thing, there is already a great tutorial on how to do the conversion. If you are looking for a base printer to convert, then the hardware on the $300 Monoprice v2 is almost identical to the $400 Plus (with the exception of the motherboard and control screen which get replaced in the conversion anyway). The Maker Select v2 is cheaper and easier to modify in this way.
]]>About a month ago (from when I am documenting this), my printer suddenly started reporting that the hotend temperature was 58° C no matter what the temperature actually was. It seemed likely that it was the thermistor itself since they seem to short out or go bad according to my reading. And they are so cheap that it is worth trying with a replacement.
I did not have a replacement yet, so I did some testing. The thermistor performed as expected when it was removed from the printer. Yet when the thermistor wasn’t even plugged in, the printer and OctoPi reported the hotend at 58°. Everything pointed to the main control board as being the problem.
It was a Sunday afternoon and Monoprice support was not open. So, it seemed reasonable to contact them via email. After waiting a couple of days with no response, I tried contacting them via chat. The chat sessions kept timing out. Presumably because there was no one available to help at that time.
Carlos from Monoprice finally got back with me by email on Thursday (4 days after my support request). He asked for more information and what exactly I had done to test for the problem. When he replied again on Friday it was agreed that the problem seemed to be the mother board. I would have to send in the whole printer for replacement and not just the board.
Well, in the mean time of waiting for support that I thought would never come, I reflashed the board to the Wanhao firmware (Monoprice has not released a firmware to the public even though theirs has had a typo in it since the printer first released). Even with the Wanhao firmware the symptoms were exactly the same. And, as a result of reflashing my board, I voided my warranty. So on Friday of that week, Carlos said that I could not get the board replaced under warranty. On top of that, Monoprice did not even have boards available they could sell me. They suggested that if I wanted to get a new board to buy it directly from Wanhao.
I started down the path to upgrade to a RAMPS control board. Ultimately that is where I will probably go with this printer. But for the moment, while making the conversion to RAMPS, I found a definite hardware issue that I thought Monoprice would like to know about.
I started a new support request email. This time on a Saturday because that is when I discovered the problem. They don’t have phone support on the weekends. After sending the support request I got a message saying that Monoprice support would get back with me within 1 business day.
On Thursday of the same week (today) I tried Monoprice support chat again. Between the last attempts and the attempts today, I probably tried to use their chat 6 or 8 times. Each time the session timed out without an explanation. I assume that it is because no one was available to help.
I called and was put on hold for only 7 minutes. For which I was very thankful. Israel answered and I started off by telling him that I was trying to follow up on an email support request. I gave him the ticket number and he was able to find my email. He apologized for their support being slow but that they were very busy. “Then,” I said to him, “don’t tell me that you will get back with me within 1 business day.” He agreed that something should be done about the message. What would be better, in my opinion, is to hire enough qualified people who could help them stay caught up.
While I don’t have much hope that Monoprice will replace the broken part on my printer, I did still want to do the responsible thing and let them know they had a problem. I believe my printer failed because of a manufacturer defect and I wanted to send them pictures of what was happening. That was the nature of my second request for support. Of course, I hope they do replace the bad part, but I have been in the warranty-voiding business for approximately 37 years. So I am used to it. In fact, this may be the first time that I have approached a company about warranty work. I usually try to fix it myself if it is something worth keeping.
What I discovered were some poor solder connections. As you can see in the picture, there are at least 2 bad solder joints. One of the bad solder jobs is on the thermistor connector. No surprise. I have confirmed that there is no electrical conductivity from that pin to the ribbon cable connecting plug.
You also see that the connector is red. It is the only connector on the breakout board that is not white. I wonder if other Monoprice/Wanhao boards are like this?
On the top side of the board there is a burned electrical trace. You can see in the picture below that there is an enamel coating on the board. But one trace, which happens to be for the thermistor that is not working, is burnt.
Again, I contacted Monoprice today to let them know about the problem and to see if they would at least replace that small breakout board. This board, by the way, is behind the print head and is only about 1.25 by 1.75 inches in size.
Israel said that I could send my pictures to him and he would pass them along to the next person. He also told me that the breakout board was not in stock at this time, but that I could call back on Monday and see if they had a projected date of getting more stock.
I dutifully sent my pictures to Israel today at the email address he provided. It is now 8 hours later and I have not heard back from him. A simple “thanks for the pictures” would have been nice.
We’ll see what happens.
]]>This is not intended to be a deep tutorial on the subject, but if you need more information you can check out the various links provided. This is mainly a quick write-up to show a friend how to do speed control on a fan that will eventually be hooked to a temperature sensor so that the fan can regulate the temperature inside an enclosed box.
The above items are not special or magical. If you don’t have a TIP122 transistor, you can probably make this work with just about any large transistor or MOSFET (large as in handling power as opposed to just physical size, though they often correspond). The same applies for the diode: as long as it is sufficiently large, it will probably work. The resistor size was chosen simply based on it being the one closest to my Arduino when I started the project.
I leaned heavily on an Instructables article for getting my wiring set up. Certainly check out his article for more details about the wiring if you need more than a schematic to figure this out.
Or, an even more detailed description of what we are doing (at least on a partial level) is the Adafruit article on motor control. They have lots of pictures and a great explanation. But what their article is lacking is how to power a motor that needs much more voltage than what the Arduino can provide. That is why you are reading this article.
Here is my schematic of the build.
I find it helps to try to understand what is happening in the electrical path so that I can complete the build and adjust the hardware or the code. Let me try to logically walk you through what is happening. Check out the video below for a rough verbal description.
The two connections to the Arduino are ground and digital pin 9 which is what sends the PWM signal to the transistor. PWM signal goes out of the Arduino into a resistor. I’m not entirely sure how much resistance is needed for this build. It works with no resistor and I have seen builds that call for up to a 2.2 kΩ. I don’t know that the resistor value is super critical, but you should probably include one.
So far we have PWM → resistor.
Now you go from the resistor to the base of the Darlington transistor. I am using a TIP122 because that is what I had handy. This should work identically with a TIP120 (and probably dozens of other transistors).
When the base of the transistor gets power from the PWM signal, it will allow power to pass through from the collector to the emitter. Check out Adafruit’s explanation of transistors for more details.
When the signal on the base pin triggers the collector/emitter connection, the transistor begins passing 12V from the power supply to the fan. The signal on the base is making the transistor act like a switch to turn on and off the collector/emitter connection.
Therefore, we kinda have 2 separate halves to this project:
Between the collector and emitter we also insert a diode. This prevents the spinning of the fan (or DC motor) from pushing power back through the transistor and blowing up the Arduino. A DC motor (which a fan is) generates electricity when spinning but does not have outside power pushing it. So when the Arduino stops sending a signal to the fan the fan will spin down and in the process create a small DC voltage. In this case it is probably not enough to matter, but it is a good habit to put a diode in place to stop the newly created voltage from traveling backwards into the Arduino. As you probably know, a diode only allows the electricity to travel one direction. We want power to travel from the Arduino to the fan but not the other direction.
Both the ground coming from the Arduino and the ground of the 12V power supply need to be tied together. You should have only 1 ground in a circuit even if you have multiple power supplies and voltages.
In my video below you also see an LED and another resistor. This is just an indicator that power is being supplied. The second resistor is 100 kΩ. Also carefully chosen because of its proximity to my workspace.
Note that the code in the video turns the fan/LED full on and full off. However, the code I provide here is full on and only about 40% off. Being able to adjust the speed of the fan using PWM is what this project is about. Therefore you can adjust the provided code to run the fan at any speed you would like.
int TIP120pin = 9; // PWM signal out to transistor on pin 9 void setup() { pinMode(TIP120pin, OUTPUT); } void loop() { analogWrite(TIP120pin, 255); // Run full speed (255) delay(3000); // for 3 seconds analogWrite(TIP120pin, 100); // Run at approximately 40% speed delay(6000); // for 6 seconds }
This sets pin 9 as the control pin. Then makes its pinMode to be an output. The loop turns on pin 9 at 100% speed (255) for 3 seconds and then drops to 40% speed (100) for 6 seconds.
And that’s it!
The ultimate project is to control the fan based on temperature. Getting temperature values from a digital or analog temperature sensor on an Arduino is fairly simple. It then becomes a matter of telling the fan PWM to raise or lower the speed based on the temperature.
]]>There are certainly more comprehensive guides. This is not intended to replace them. I don’t intend to explain a lot of what is happening with the cube and I assume a basic understanding of how the cube works for my guide. And that you can solve one side on your own.
Again, this is written down here so that I can consistently go to the same method and talk people through how to use it. (Since I don’t use a beginner method myself, I don’t easily remember these steps).
A good comprehensive guide to fill in any gaps (except where we differ on our steps) is at SolveTheCube.com.
Hold the cube so that one face is pointed to you. You can easily understand that there are six sides with a face (F), left (L), right (R), top (called up) (U), bottom (called down) (D) and back (B). Each face will be turned 1/4 turn either clockwise or counter-clockwise.
For the beginner method you will only use the above mentioned letters to denote turns. The letter by itself indicates a 1/4 turn clockwise. That is clockwise when looking at that particular face directly. If the letter has a tick mark after it (‘), then you turn the side counter-clockwise.
A number after the letter indicates how many 1/4 turns you do. This is only ever the number 2. Because it is a half turn, it does not matter whether you turn the cube clockwise or counter-clockwise. Whichever works best in the situation.
Decide on a color to start with. I only recommend you start by solving the white side because most guides on the Internet assume you are starting with white. Other than for that reason, you can start with any side you want.
We are separating solving the first layer cross and corners though you could actually solve them together. The cross includes the center piece and all four edge pieces.
There is not much to say about solving the cross. If you can solve one side completely, then you can do the cross easily.
Again, if you can solve one side, you can solve the first layer corners. This is an intuitive step and should be figured out. If you can’t solve one layer on your own, then this guide is not the right one for you.
Each edge and corner of the first layer must line up, color wise, with the other pieces and center pieces on each side
Turn the cube over so that the solved side is on the bottom. Line up a center piece on what is now the top layer with a side making an upside-down T (as in the illustration). There are three possible edges that could could make the upside-down T. You want one that does not have the top layer color in it. For example, if your top layer is yellow and you are trying to make a blue T, you need a blue edge piece that does not have a yellow side. So a blue-red or blue-orange piece is what you need (on a cube with a standard color scheme).
You now have the upside-down T and need to put the top layer edge piece between the front and left sides.
U’ L’ U L U F U’ F’
You now have the upside-down T and need to put the top layer piece between the front and right sides.
U R U’ R’ U’ F’ U F
You now need to get a cross on the top layer. You may also end up with other top-layer colors in place. If starting the solve from the white face, this will mean you need to look for the yellow pieces on the top layer.
In this step it does not matter what corners are oriented properly. We are only concerned with the edges.
If you have the middle and two edges facing up, and those two edges are side by side (not opposite of one another) you have a corner case. Hold the cube so that the two properly oriented edges are on the left and back edges like in the illustration. In this picture you are looking at the top of the cube. You still need to solve it with the face and right sides being the unsolved edges.
If you have the middle and two edges facing up, and those two edges are opposite one another (not side by side) you have a line case. Hold the cube so the line goes left to right like in the illustration. In this picture you are looking at the top of the cube. You still need to solve it with the front and back sides being the unsolved edges.
Perform both the corner case algorithm and line case algorithms one after another. It does not matter which one you do first. Just make sure you orient the cube properly between the algorithms.
Orient the cube like in one of the cases above and do either algorithm until the cross is in the right place. You might have to do it as many as 3 times. But this requires that you only learn one algorithm.
The cross might be solved at this point. Meaning that you can turn the top layer (also known as the last layer) and all the edges will line up with the side colors all at the same time. More than likely though, you will only have 2 edges that line up on the proper color.
To swap the front and left side edges do the following algorithm. This means that your good edges will go in the back and right sides of the top layer. It is possible that your two good edges are opposite one another. In this case, just do the algorithm twice. The first time to get two solved edges adjacent to one another and the second time to finish orienting the top cross.
This algorithm has a name–Sune.
In this step we need the last layer corners to be in their correct places even if they are not twisted the right way. With the first two layers and the top cross solved and correctly oriented, you need to look at each corner and see if they are in the right spot. Meaning, the yellow/blue/orange corner piece is in the corner between the yellow/blue/orange sides.
You should have at least one corner that is in the right place. Turn the whole cube–not just the top layer–so that the correct corner piece is in the front-top-right corner position.
This algorithm may need to be done twice from the same orientation. Check to see if all corners are in the right spots after the first time. If not, then do it a second time.
U R U’ L’ U R’ U’ L
Only one super-simple step away from solving the cube! While it is super-simple, it may also be the most confusing. There are a couple of parts in this step that seem to trip people up until they understand it.
If any of the three statements above is not true, then you are not ready to move on to this step.
Place an unsolved corner in the front-top-right position. Perform the following algorithm two or four times to twist that corner into proper orientation.
R’ D’ R D
After 2 or 4 cycles through that simple four-step move, you will have the corner solved. However, it may look like you have messed up the cube. Don’t panic!
Do not turn the cube, but turn the top layer until the next corner that needs to be solved is in the front-top-right corner and do R’ D’ R D again either 2 or 4 times. Keep turning the top layer (not the cube) and performing the algorithm until the whole cube is solved.
If not, read through the description carefully and try to figure out what went wrong. It could also be that my description does not make sense to you. There are plenty of other beginner’s guides. Try one of them to see if another works better for you.
Not every beginner’s method is the same. There are many different methods that could be considered a beginner’s one. Beginner’s guides are usually defined by having more steps but with fewer or simpler algorithms. In each step the algorithm should work even if you have to apply it several times. This is in contrast to advanced solving methods where an algorithm will solve the case each time but there may be as many as 57 algorithms to choose from in each step.
Solve the Cube’s guide is very similar to my guide, but with much better pictures and explanation.
Mats Valk’s video guide playlist. As of this writing, Valk holds the world record for the fastest human solve–4.74 seconds. However, the videos are a beginner’s method using one main move to explain the method. Very clever and might become my go-to way to teach new cubers.
Yet another guide from Ruwix. They link to more at the bottom of their page.
]]>My book light project wasn’t really as much about making a usable lamp as much as it was about learning how to work with certain materials. After buying a 5 meter roll of white LED lights for a bigger project, I wanted some simple lighting task to learn how to use them. I also had a partial sheet of 1/8″ acrylic (Plexiglas) that I wanted to do something with.
The project proposal was inspired by something I saw on Instructables. (At least I think it was there. I did a quick search and could not find it). I needed to hollow out a book then install the lights and acrylic sheet. That was the basics of the project. I also wanted to make a switch so that when the book opened it would automatically turn on the light. That switch mechanism is what delayed the project every time I got into it again.
Oh, and, as always for my projects, I wanted to spend as little money as necessary.
I got two books from a used book store that gives away books that they don’t feel have any resale value. I got two because my original plan was that I would practice on one and then I would make my final project from the nicer book. At this point, the second book light will never be made. I learned what I wanted from the project and don’t really plan to make the second one.
I closed the book with wax paper between the front cover and the rest of the book so I could glue all the pages together. This kept the front cover free from the glue I was about to apply. I painted the edges of the book with Elmer’s glue to hold them together. I think I may have fanned the pages a bit to make sure I got glue in between the pages as much as was practical and not just on the edges (I really don’t remember since it was well over a year ago that I started the project). While the book dried from the gluing, I pressed it down with other books on top. I wanted to make sure the pages didn’t wrinkle too much.
I figured out how much margin I wanted to leave in the book and cut everything inside that line using an array of X-Acto knives and box cutters. The variety in blades was because I kept thinking that something would make the process easier and quicker. It is just a tedious process. You should not try to cut more than a few pages at a time.
After the book was hollowed out I painted the inside of the pages with Elmer’s glue, put my wax paper back in the front cover and then weighted the book down again to dry. I don’t remember how long I let it all dry, but as you can tell, I was not in a hurry.
I painted the acrylic sheet with a frosted spray paint. I did this on both the inside and the outside of the acrylic. This helps to diffuse the lights and make a more even glow instead of seeing the harsh individual LEDs.
I installed a little wooden strip on the inside of the hollowed out area to act as a platform for the Plexiglas. I used contact cement for this. Hot glue would have probably been sufficient. The wood needed to be about 1/8″ below the top of the book pages so that the acrylic sheet could sit flush with the pages.
The LED strip has an adhesive back that helped me to attach it to the wood strips. However, I just used very rough scrap wood and did not think to sand the strips because they would not be seen. The problem with not sanding them is that the LED adhesive back did not stick too well. I had to hot glue some parts of the strip to the wood.
The lights are 12V lights. With LED strips you have to be careful to make sure you have enough amperage to run the lights. However, since I am using such a small number of lights, I figure just about any 12V power supply that I have will be strong enough (I really should do the math and find out).
I have a box full of wall plugs (or wall warts, or AC-DC power supplies). I found one with the right plug and had a positive center polarity. Because I was wiring this up myself I could have reversed the wiring if I needed. However, what seems to be standard in the maker world (and is a standard in my personal construction) is that the center pin of an electronics project should be positive polarity. By always doing it this way I never have to guess as to how I wired a project. But you must check your power supply because they aren’t always wired this way.
Another seeming standard is the size of the plug and jack used in these types of projects. Unlike the commercial world where every manufacturer wants to have a different size plug and wiring standard, we use 5.5 mm plugs and jacks. Not the smallest, but easy to work with. Plus by using the same thing every time all you have to look for in your pile of power supplies is one with the right voltage.
The main thing that held up my project is I wanted a certain type of switch. My desire was to have the light automatically turn on when the book was opened. When explaining my project to a friend he introduced me to a reed switch. This is one that is activated in the presence of a magnet.
What I needed was a normally closed (NC) reed switch. The magnet would be on the cover of the book with the switch being near a metal plate under the diffused acrylic sheet. When the book was closed the magnet would stick to the metal plate and activate the switch. This activation of the switch would open the circuit and cause the light to go off. The normally closed reed switch allows the electricity to turn the lights on when the magnet was not close to it.
But going back to one of the premises of the project—spend as little money as necessary—I quickly found that reed switches could be had for next to nothing or be very expensive. A normally open (NO) reed switch cost about a quarter each if you didn’t go for the bottom of the barrel (the ones I bought were 11 cents each). But NC reed switches are about $2 each. I didn’t want to spend that much for a simple switch.
So the project went on hold every time I started into it again because I could not get the switch mechanism the way I wanted it. There is a fairly simple way to make an NO switch act like an NC switch using a transistor, but, the way I understand it, it uses a little bit of electrical current to not turn on the lights. If the book is plugged in and not being used it is still draining electricity. I didn’t want to do that.
Enter Maker Faire and my renewed interest. I dug through all the switches I have at the house and could not quite find what I needed. My friend who introduced me to reed switches said that he had an extra normally closed pushbutton left over from another project. It was much bigger than what I wanted, but I was able to make it fit the project.
I needed more magnetic strength to close the book and push down the switch than what I had originally put into the book. So I replaced my metal closing plate with another magnet. However, because these were strong neodymium magnets, they were almost too strong to be able to open the book without tearing all the glue apart.
Did you know you can demagnetize a magnet? I found out through Google searching that you could heat a magnet and it would demagnetize it. This is because a magnet (at least a neodymium magnet) is made by heating the material inside a magnetic field. The hot molecules in the neodymium align to the polarity of the magnetic field. Keep the new magnet in the magnetic field as it cools off and those molecules are fixed in that North/South arrangement and you end up with a strong magnet. By heating the magnet outside of a magnetic field those molecule get all jumbled up and it is no longer a strong magnet. I assume this would work with any type of magnet, though you probably should not do it with rubbery craft magnets unless you like potential toxic materials filling your kitchen.
My wife cooked my magnet with lunch. 450 degrees for 10 minutes did the trick. It was still magnetic but not nearly as strong. The book opens and closes very easily now but is still strong enough to push the plunger on the push button switch.
I took my local librarian to the Maker Fair in Atlanta with me. She enjoyed all the different projects she saw. She went because she is interested in various STEAM programming that could be done in the library to attract young people. We have talked about me teaching various projects to kids at the library, but have not found the right project. We did know that we wanted to do something with soldering irons so the kids could learn that useful skill.
I was hesitant to take a book that I butchered into the library to show it off. But when I showed it to the librarian last week she immediately knew that is what she wanted to do for our Teen Tech Week program coming up in a few months. And, as barbaric as it sounds, she volunteered to gather the needed books and cut out the pages. I guess she would rather have the kids wielding 350 degree hot pokers than using a bunch of box cutters.
The purpose of this project was to be a learning experience. And it was. I learned that it is possible to weaken a magnet by heating it. I learned how to work with the LED light strips. I have even made another project since then using the LEDs—the tracing table that the book is sitting on when I took the pictures. I also learned that cutting out the guts of a book is harder than it looks. Though the switch isn’t what I originally planned, I learned that sometimes it is better to complete a project than to insist that it be a certain way and never be completed.
I also learned that not all librarians will weep at the sight of a hacked book.
]]>I know plenty of people who seem to have stopped learning because they graduated from high school or college. It is amazing—and sad—to me to see so many people who seem to have the attitude that because they are now out of school, they don’t need to learn anything else. Some even feel like they can’t learn anything new. All their learning took place in school as if it is required to have a classroom and a teacher to guide the learning process.
“You can’t teach an old dog new tricks” is one of the worst attitudes that has permeated our society. I certainly understand that some things might get more difficult with age. But the majority of the time I hear this in relation to something that a person just doesn’t want to learn. Or, worse yet, is when the person is convinced that they can’t learn.
Let’s take typing as an example, but this can be applied to so many skills and areas of learning.
How many times have you seen someone who sits at a computer all day but has never learned to type properly? I don’t know that everyone needs to learn to type 100 WPM, but most people could do better than what they do. I have friends who use two or three fingers on each hand and claim that they do just fine with typing. They refuse to try to learn to type properly because “it will take too much time to learn the right way and I have real work to do.”, “I have my own way and it works for me.”, or “I’ve tried it the right way and I can’t learn it.”
Certainly there may be a better way to type than what we are taught in school. However, I think most typing curriculum is based in research. Using 8-10 fingers on the keyboard has to be more efficient than 4-6. Yet, if you still think that your way is better I would love to read your scientific basis for that. I wouldn’t mind learning a new way to type if it is better. Over the years we will end up doing more and more typing, not less and less. I am all for a better way.
I don’t expect everyone to learn the superior Dvorak keyboard layout, but at least learn QWERTY the best you can.
If these folks would consider how much time they would save by learning to type properly, they would understand that it is worth taking 2 weeks to learn the right way. Then they will hone their new-found skill as they go about their normal jobs.
As to “I can’t learn it (typing/language/grammar/whatever)”, who was the expert in that skill who convinced you that you were not capable of learning it? Many people with the attitude that they can’t learn something made that determination on their own and are limited by that attitude—not by their actual ability.
I don’t think I was like the Math Dude who said his love of learning did not end after school. The truth is, I don’t think mine even started until I got out of college. I somewhat remember a time a couple of years after college that I discovered the wealth of knowledge contained in books. This was before the world had easy access to the Internet.
It’s not that I didn’t have a thirst for knowledge in school, it was that I wanted so much more of some subjects and much less of others. I still don’t consider myself a lover of history, but give me a compelling historical account of an event and I will learn every detail there is to learn. I do remember in high school really enjoying physics, calculus and something called college math (it seemed to be a primer on logic that used various math disciplines as the teaching tool). Enjoying those subjects and actually getting good grades were not necessarily synonymous.
I also loved any statistic I could get my hands on concerning the Dallas Cowboys and the many great players we had through the 1980s. As often as I could, I would buy The Dallas Morning News from the gas station on the way home from school on Mondays. That gave me the best set of facts and figures from the weekend game.
So I’ve always had an intense desire to learn something, but I certainly didn’t enjoy school and having to study everything equally. I didn’t even enjoy college all that much. It was one of those things that I endured because it was the right thing for me to do.
Don’t let your love of learning die just because you are no longer tortured by a teacher and a classroom. Find something to be curious about. I just can’t imagine going through life without any desire to learn something new. I see people who have lied to themselves about not being able to learn new skills or information and I have to wonder where the fun in life is for them. I may be missing something and they may have a curiosity that I never see, but people who are curious usually have trouble containing their curiosity when talking with others.
Stay curious!
]]>The book was The Internet of Things by Donald Norris. Though I hadn’t read much about IoT, nor anything by Donald Norris, I was still excited about getting the book. The subtitle of the book got me even more excited since I am a fan of the Raspberry Pi and becoming an Arduino aficionado: Do-It-Yourself at Home Projects for Arduino, Raspberry Pi and BeagleBone Black.
Knowing quite a bit of what would be in the front several pages of the book, I decided to skip ahead and start reading at the first thing that might catch my eye. Unfortunately, the first thing that jumped out at me was a poorly formed portion of PHP code on page 25.
I tried running the code and was surprised to find that it worked even though it wasn’t written correctly. Since PHP isn’t a language I know well, I decided to get some help in figuring this out. I sent off a message to my PHP friend and he confirmed that the code was not correct, but explained that the reason it still worked was because there was only one error of that type in the code. The server was smart enough to compensate for the mistake but would have failed had there been another one like that.
I then continued to scan through the book not thinking that one error was that big of a deal. But I noticed—just 4 pages later—the text gave 2 different names for the same table when talking about setting up a database for a project. That particular section of the book asked the reader to manually create database tables from the command line in MySQL. If that last sentence didn’t make sense to you then you probably understand that this was harder than normal people usually deal with. Yet the book seemed to be written for normal people.
Because there were two different names for the same table, there was no way for the reader to accomplish the task of setting up a working database the way the text expected. This was on page 29 of a 352 page book. If the book had many more errors like this then it would be unusable…
At this point I started looking for errors. Since it was a library book, I used sticky notes to mark my findings. From page 25 to 201 (a little more than half the book), I ended up with 46 sticky notes pointing out mistakes that I found. The vast majority of them were editing and formatting errors. Because it is a technical book, many of the errors were not the kind that could be easily caught by a proofreader, but there were a good handful of those too.
It seems like this book skipped a couple of steps before it got sent to the printing press.
This book is published by TAB, an imprint of McGraw-Hill. A month or so previous to this incident I had pointed out a couple of minor mistakes in another McGraw-Hill/TAB book (Hacking Electronics) to my librarian. Though nothing was too egregious with Hacking Electronics, I told her when I returned the book that I had previously noticed a few mistakes in other TAB books. When I brought The Internet of Things book to show her my findings I also grabbed Hacking Electronics from the shelf.
My librarian was eager to know what I thought about the new book. That is, until she saw that I was also carrying Hacking Electronics. She remembered my complaint about that book and knew immediately that the new book probably had mistakes in it too.
She began flipping through the book to look at my colorful sticky notes. On the first page of the first chapter she saw a style error that I had not even seen. With an average of one mistake every 3.8 pages that I found, it did not surprise me that she caught one immediately.
I contacted McGraw-Hill and asked if there were any corrections submitted for the book. I was put in touch with a senior editor for the division. He said that nothing had been submitted for the book. Unfortunately, McGraw-Hill does not have a system in place for the public to submit corrections like O’Reilly does.
I told the editor that I had found some mistakes in the material and said I was disappointed in the quality of the book. He was kind (or at least diplomatic), and asked me for some examples of the problems so that he could ask the author about them. My level of disappointment reached a new low at that comment. In my mind, not a single one of the errors I found were author errors.
The way traditional publishing companies work, at least as I understand them, is that the author submits the material and an editor works with them to make the material better. The few frustrations that I had with the author were because of comments like, “I showed you the right way to do this in chapter 2, but I already have this example written this way, so you modify my code to do it the right way that I showed you.” That came from page 150 of the book. (Not a direct quote but the same sentiment). While I don’t like that the author said that, an editor is the one who should have slapped the author and said, “Don’t be lazy! Fix it yourself!”
It is an editor’s job to find problems like that and tell the author to do better. Therefore, I still don’t see that as anything that the author should have to fix. He doesn’t know the problem exists. He is too close to the work. An editor is the one who is supposed to catch problems like that.
In response to the editor who said that he would take some examples and pass them along to the author, I told him I didn’t think that the problem were author problems. I was glad to provide some examples, but the examples were more formatting, editing and proofreading errors. I did not give him the example from page 59 where the author told the reader to write their code properly. I wanted to emphasize that, in my opinion, the problem was a McGraw-Hill / TAB problem, not an author problem.
Here are a few examples.
Then there are the many places where formatting is not consistent in the book. The book uses mono spaced text for code examples, but several places there is normal text within the code that will break the code if put into a program. Those lines should be normal text or set off from the code as comments.
In the whole time I communicated with their editor, I felt like I had a listening ear. However, he kept insisting he would talk to the author about the things I found. Without trying to be too unkind I told the editor that I didn’t think the author was responsible for the majority of the errors, “unless McGraw-Hill/TAB is a self-publishing platform and the author is responsible for doing his own editing and layout work.” After that comment I didn’t hear from the editor for another month until after I sent 2 more emails asking if the line of communication was still open.
Though I only sent the editor about 1/3 of my findings, he didn’t seem to want any more. Of course, I also didn’t want to spend much time doing, for free, the work that McGraw-Hill is already paying their staff to do.
At this point I think I have reached the end of what I can do with my contact at McGraw-Hill. I really want them to continue to put out books on subjects like this. This is the kind of book that gets me excited to go to my library. But, if technical books, from a publishing house that is a major player in textbooks, have so many errors in them that the information is not usable, then I am not sure I want to read them.
I know it sounds like I am being nit-picky about the book, but I really never even fully read it and I found all these mistakes. I only skimmed through looking for things that caught my eye or sounded interesting to read. There were huge sections of code that I completely overlooked because they were in languages that I didn’t know. So unless I was actually trying to do the project, I didn’t need to try to understand how it worked.
The thing that bothers me most about all of this is that my library has been given no assurance that they can confidently buy a McGraw-Hill / TAB book that will be better edited in the future (an assurance I asked the editor to give me on several occasions). I also don’t feel like I got anywhere with the publisher. As I said, the editor I talked to was kind, but his responses were very political. There was no commitment to assuring me that this was a one-time case.
My hope is that there will be an improvement in their process and that I can confidently enjoy books by publishers like McGraw-Hill. But when traditional publishers begin to act like the self-publishing companies they seem to detest, they lose their authoritative position in the market through laziness.
]]>