Posted on Leave a comment

FLSUN 50mm Blower Upgrade for Volcano

Upgrading my FLSUN to a 50mm Blower fan

When I upgraded my FLSUN Delta with a volcano kit from Aliexpress, I didn’t reinstall a part cooling fan. Mainly because I didn’t want to go back to the old 40mm fans I was previously using. I wanted to upgrade to a 50mm blower fan, and design a custom shroud for it.

You can find a 50mm blower fan on Aliexpress at this link.


Installing a blower onto the stock effector was pretty simple. Only one screw hole was available because of the design of my blower fan, so I opted to use a bit of epoxy for a stronger connection. Just the fan by itself worked quite well. It moved a lot of air towards the build plate, but it was pretty weak on freshly printed plastic. Since I’m using my delta to print at layers thicknesses up to 0.6mm now, I need stronger airflow around the tip of the nozzle.


Nozzle Designs

I went looking around, and I found a circular nozzle design on thingiverse. It worked pretty well! I found that it sent some of the airflow upwards towards the hotend, though. Using the snap-fit connector as a base and Fusion 360 for designing, I made three different attachments. The first attempt worked, but it suffered from the same problem as the circular nozzle. I used two channels to direct air downwards at a slight angle, but far too much air was directed to the hotend.

50mm Blower Nozzle V1
Nozzle V1


On the second attempt, I separated the channels from each other and added some chamfers to help direct airflow. I left some space on the front for air to move forward, still thinking that it would help or something. I also doubled the height of the channels. It worked much better than the first attempt, and the airflow was impressive. I still wasn’t satisfied with the amount of air that was being directed around the nozzle.


Next, I moved the openings to the bottom of the nozzle. I used large chamfers to control the direction of airflow as much as possible. The resulting part is quite effective, and has no problems keeping up with my printing. There’s definitely a lot of room to improve, though. For starters, the outputs are different sizes so the airflow is going to be uneven. I tried to make one output larger to compensate for the fact that it has bends and is offset from the nozzle, but I wasn’t sure exactly how to do it. Still, parts are turning out much nicer with the new fan and attachment installed.

50mm Blower Nozzle V3
50mm Blower Nozzle V3

The files can be downloaded here, on thingiverse.

Posted on Leave a comment

FLSUN Upgrade with AliExpress Volcano Knockoff

Volcano Clone Installed

Volcano Nozzle Upgrade on FLSUN Delta

I purchased a knockoff E3D V6 and volcano nozzle set on Aliexpress through Anycubic, because I wanted to upgrade my FLSUN Delta. The volcano upgrade is a nozzle set designed to allow significantly more filament to be extruded, so you can print tougher parts in less time. Genuine volcano kits are available for around $50 or more, but I’m a cheap bastard so I am going to use the chinese clone. It was around $11 for the entire kit when I purchased it in early March 2017. Shipping took a long time as expected with Aliexpress, but everything was there and it looked good. It came with a full clone J-Head assembly, including a 30mm fan, heating element and thermistor as well as a separate volcano kit. The volcano kit came with a larger heating block and four nozzles that range from 0.6mm to 1.2mm. Quality looked pretty good, and it’s definitely going to be an upgrade over my old, worn-in E3D V5 clone.


This slideshow requires JavaScript.


Upgrading my FLSUN delta was straightforward. Installing the new hotend was essentially the same process as removing the old one. I removed the old hotend by disconnecting the bowden tube, electronics and the two screws that hold it in place. I took the old hotend assembly out of the bracket. On the FLSUN delta, only two screws have to be loosened to remove the hotend assembly from the effector so it’s pretty easy. I put the new volcano hotend assembly into the bracket and tightened it into place. There is a screw that is used to adjust the auto-leveling function of the effector, and I had to make sure to readjust that to be accurate.

I soldered the fan to some extension wires so that I could run it down to the control board. The polarity of the thermistor and heating element don’t matter, so reconnecting them was easy. It took about fifteen minutes to install the new hotend, and run the wires. I had some trouble removing my old hotend assembly, because it melted into the plastic effector slightly over time.


This slideshow requires JavaScript.


Systems Check

Temp Graph

I accidentally overtightened the thermistor, which caused it to short and throw a temperature error. I checked the thermistor using a multimeter, and found that the resistance was 0Ohms which confirms a short circuit. I wanted a reading between 70k and 80k to confirm that it was working. I fixed my mistake by putting some kapton tape on the exposed wire, and then I carefully put it back into place. I wrapped the hotend in some ceramic insulation, and then I wrapped the insulation in aluminum tape.

I ran a quick self check, and then a PID tune. If you need to do a PID tune, I personally referenced Tom’s guide for configuring Marlin. Everything looked great, and the temperature was surprisingly stable after my first check. The temperature graph shown is from the purple vase print that’s coming up.



I loaded a scripted vase into Simplify3D, and sliced it in vase mode. I wasn’t sure was settings to use to start with, so I went with the following:

  • 0.8mm nozzle
  • 0.4mm layer height
  • line width of 1.0mm

I thought that using a line width of 1.0mm would cause the layers to squish together firmly, increasing strength. I primarily wanted the volcano to quickly print strong objects, so I thought that a vase would be a perfect way to test speed and the strength of walls/layers.

Right off the bat, there was some cooling issues due to the lack of a part fan. The thick lines were holding onto too much heat, and they started to sag. I added a small desk fan to help with air circulation, and the print quality increased quite a lot. Printing slower would also help. I have some blower fans coming in the mail that I will install on the effector for a more permanent solution. I stopped the vase print after 15 minutes to examine it. The surface finish is beautiful, where the part was properly cooled. The thick layers have a charming texture and the way that they line up nicely is quite satisfying. It’s also incredibly strong, the thick lines give the vase some real structure even though it’s only one layer thick. The infill left a lot to be desired, lots of missed gaps because of the huge extrusion width. I can fix that with settings, though!

Purple Vase 0.4mm Layers
Purple Vase 0.4mm Layers

I tried some cable chains at 0.4mm without any part cooling, at around 80mm/s print speed. I printed four links at once, to give each piece some time to cool down. They came out quite ugly with 0.4mm layers, but they functioned well enough and were very strong. Most importantly, they printed FAST. It only took about 2 minutes to print each link, which is at least two times faster than my original Prusa i3 Mk2s with the stock setup.

This slideshow requires JavaScript.

I started tweaking the settings a bit, and settled on the following for my next test:

  • 0.3mm layer height
  • 0.8mm line width
  • 25% overlap
  • 200C nozzle
  • 80mm/s print speed

I noticed that the volcano nozzle has significantly less oozing than the stock nozzle, so I reduced my retraction from 6mm to 3mm. I put a desk fan in place to act as part cooling, and printed some test nuts & bolts. I printed two bolts and two nuts at the same time, with the bolts spaced apart to test retraction. I added a 2-layer brim to the parts to make sure they stayed put on the bed. They came out looking pretty nice, and the total print time was only around 10 minutes! Retraction seemed perfect. They worked right off of the build plate and they are incredibly strong. There are some minor banding and over extrusion issues, but for the third print after upgrading the quality impresses me.


I adjusted some acceleration settings to help compensate for the heavier hotend, and then I ran another vase mode print. I printed another scripted vase, this time at 160% scale. Still using the 0.8mm nozzle, and a layer height of 0.3mm. An hour into the print, my filament ran out, so I had to stop the print. I managed to print about 85% of the vase, so I’m not calling it a total failure. The vase came out incredibly strong, and the surface finish is getting better with every print.

This slideshow requires JavaScript.



I’m quite happy with how the upgrade went, and I’m surprised at how low the cost was considering the quality of components. It took forever for the parts to arrive, but when you consider the incredibly low cost you can’t beat it. The seller ANYCUBIC also refunded me on a set of 5 nozzles that took an extremely long time to arrive, and they were responsive to questions. A genuine volcano setup would most likely produce higher quality parts, and it’s going to be made with higher quality materials and more stringent quality control. On the other hand, you really can’t complain about the knock off when you basically get two functional hotend setups for around $11 Canadian. It was basically a straight replacement for the stock nozzle on my FLSUN delta. There was some minor fidgeting to get the fan attachment on with the stock effector, but it ended up working out fine. It took about 30 minutes to change the hotend and get printing. Half of that time was spent doing a PID tuning.

The strength of printed parts and increase in speed is awesome. I primarily use my original Prusa i3 for prints where quality is important, so it’s great to have this option on my delta to rapidly produce tough parts. The volcano clone still produces high quality prints under the right conditions, and it will only get better as I tune in my settings. It’s also nice to have a higher quality hotend assembly on the Delta, so that I can reliably print materials other than just PLA.


I seriously suggest this upgrade to anyone that’s considering it. The monetary investment, and time spent is so small compared to the time it will save when printing. Upgrading from a 0.4mm nozzle to a 0.8mm nozzle immediately cuts print time in half. Thicker lines also mean less layers and stronger layer adhesion, which results in much stronger parts. Plus, bigger individual lines means less individual movements and it results in smaller gcode files that are easier to process! The only downside ( other than aesthetic quality ) is that the upgrade doesn’t come with a dedicated part cooling fan, so I’m going to have to improvise. I’ll probably just hot glue a blower fan onto the effector and call it a day.


Posted on Leave a comment

3D Printed Arduino + Bluetooth Tank

3D Printed RC Tank

I’ve been working on a new remote controlled tank in my spare time. My goal with this project is to make a cheap, printable RC tank kit. This post goes back and forth between talking about the tank, and a basic tutorial on how the components and code work together.

Currently it’s a working prototype. The tank uses an Arduino Nano clone (ATmega328) as the primary board. An L298n H-Bridge is used to control the left and right motors independently, allowing it to quickly turn or revese. It uses the HC-06 Bluetooth module to receive commands. The power comes from two 18650 batteries that are connected in series.

3D Printed RC Tank



I purchased the majority of the hardware from Aliexpress, because it’s so cheap. The links below are to the stores that I used, but you can find the same parts on many websites other than Aliexpress.

  • Arduino Nano V3 Clone ( AtMega328p ) – Link
  • L298n H-Bridge Motor Controller – Link
  • HC-06 Bluetooth Module – Link
  • 2x DC Motor + 64:1 Gearbox – Link
  • 2x 18650 Battery – I took mine from an old laptop, wired them in series for 7V+
  • 1x 500mA Polyfuse – Optional, put between power source and VIN


I salvaged some steel weights from an old set of window blinds, and super-glued them to the base to add some weight.

Tank Front View
Tank Front View



The frame of the tank was printed as a solid piece. There are four mounting spots for wheels. The two at the front are designed so that small bearings will slot into them, so that the front wheels spin freely. The other two of the mounts are designed to hold the gearbox motors. I made a T-shape in the center of the frame so that I can mount a breadboard on top of the frame. The frame design leaves much to be desired, it’s much too thin and flexible.

This slideshow requires JavaScript.

The front and rear wheels have teeth that are spaced out, so that they catch on the inside of the cable-chain tracks. The teeth are tapered slightly to keep the tracks aligned, and there is a guard on the front wheels to ensure that they stay on. The battery holder has holes in the sides and bottom so that wires can pass through. Screws hold the wheels in place.

RC Tank Sideview
RC Tank Sideview



The Arduino and L298N are powered using two 18650 batteries. These are fairly common rechargeable batteries, with an output around 3.7V. I wired my batteries in series. My schematic says 7.2V, that’s a typo, it’s really 7.4V+. I use the VIN pin on the Arduino Nano to power the chip.

The 5V output on the Arduino powers the HC-06 module. Make sure that you’re using an HC-06 module with a breakout board like mine, so that it is 5V tolerant. This is because the raw HC-06 chip is NOT 5V tolerant.

Pins 2 and 3 are connected to the HC-06, and pins 4 through 7 are connected to the L298N. On the L298N, pins ENA and ENB are used for PWM control of the outputs, so that you can achieve finer speed control. I don’t utilize these, so they are set high.




There are only two main components to control other than the Arduino itself, they are the HC-06 and the L298n. The HC-06 is going to receive data from an external source, and then pass it to the Arduino. Then the Arduino will make a decision, and send signals to the L298N to turn on the motors.

There is a link at the bottom to download the full code, or read through and copy/paste the example blocks.



The program imports the SoftwareSerial library, and establishes pins for motor control. A char named btData is used to handle incoming Bluetooth data. Then pins 2 and 3 are declared as RX and TX using SoftwareSerial.

//SoftwareSerial library is included so that we can utilize pins 2 and 3 for the HC-06
#include <SoftwareSerial.h> //Pins 4, 5, 6, 7 used for motors.
const int motorRF = 4; //RF = Right motor, Forward direction 
const int motorRR = 5; //RR = Right motor, Reverse direction 
const int motorLF = 6; //LF = Left motor, Forward direction 
const int motorLR = 7; //LR = Left motor, Reverse direction 
char btData; //char used for bluetooth data - receives commands like "1", "2", "a", etc. 

SoftwareSerial HC06(2,3); //RX, TX - Pins 2 and 3 used for HC-06 Module



Serial communication is set up, and a string saying “Hello” is sent as a self-check. Then digital pins 4, 5, 6 and 7 are declared as outputs, in order to send signals to the L298n.

void setup() {
  HC06.begin(9600); //Begin serial at 9600 baud as "HC06"
  HC06.println("Hello."); //Sends "Hello." through serial, to acknowledge startup

  pinMode(motorRF, OUTPUT); //Sets pins 4 through 7 to OUTPUTs, to control the L298N
  pinMode(motorRR, OUTPUT);
  pinMode(motorLF, OUTPUT);
  pinMode(motorLR, OUTPUT);



The loop works by cycling until data is available at the HC-06 module. When data is received, it enters the loop and then makes decisions. In this case, I use the numbers 1 through 4 to control the state of the L298N. When a ‘1’ is received, the Arduino sets pins 4 and 6 to HIGH, so that the L298N enables the outputs in a manner that turns both motors forwards. I use a delay function, so that it keeps the motor on for a second.

void loop() {
  //Loops until data is sent to HC06
  if (HC06.available()){ //When data is available in the HC06, do this
    HC06.println("Reading."); //Prints "Reading." through serial, to acknowledge incoming data
    btData =; //Reads "HC06" and stores the value into the char "btData"

    if (btData=='1'){ //If the HC-06 receives a 1, do this
      HC06.println("Forward."); //Sends "Forward." through serial, to acknowledge that a 1 was received
      digitalWrite(motorRF, HIGH); //Activates the motors so that the tank moves forwards
      digitalWrite(motorLF, HIGH);
      delay(1000); //Delays for approximately one second
    if (btData=='2'){ //If the HC-06 receives a 2, do this
      HC06.println("Reverse."); //Sends "Reverse." through serial, to acknowledge that a 1 was received
      digitalWrite(motorRR, HIGH); //Activates the motors so that the tank moves backwards
      digitalWrite(motorLR, HIGH);
      delay(1000); //Delays for approximately one second

    if (btData=='3'){ //If the HC-06 receives a 3, do this
      HC06.println("Left."); //Sends "Left." through serial, to acknowledge that a 1 was received
      digitalWrite(motorRF, HIGH); //Activates the motors so that the tank rotates left
      digitalWrite(motorLR, HIGH);
      delay(1000); //Delays for approximately one second
    if (btData=='4'){ //If the HC-06 receives a 4, do this
      HC06.println("Right."); //Sends "Right." through serial, to acknowledge that a 1 was received
      digitalWrite(motorLF, HIGH); //Activates the motors so that the tank rotates right
      digitalWrite(motorRR, HIGH);
      delay(1000); //Delays for approximately one second

    digitalWrite(motorLF, LOW); //Turns all of the motors off, by setting everything to LOW
    digitalWrite(motorLR, LOW);
    digitalWrite(motorRF, LOW);
    digitalWrite(motorRR, LOW);

Download the full code here.


Connecting to the HC-06

I use the mobile app Bluetooth Electronics to connect to and send commands to my HC-06 module. I like using my phone since I can follow the car around. You can also use PuTTy, or another program to send serial commands to the HC-06 from a laptop or desktop.

The HC-06 becomes available for pairing when it is powered on. Pair your device with it, using the default password of “1234“. Once your device is paired with the HC-06, you’ll be able to connect to it using your program of choice.

To connect to it using Bluetooth Electronics, make sure that you’ve paired your device with the HC-06 and then open Bluetooth Electronics. Click “connect” at the top, and select your HC-06 from the list. Assuming you wired it correctly and it’s paired, you will now be able to send commands to it through the app. The app makes it incredibly simple to create a customized GUI for sending commands to the tank.


Future Design Ideas

I plan on making a lot of changes to this tank. I’m going to redesign the majority of the frame and the connection points on the wheels so that they are stronger. I want to increase the number of batteries to 3, so that it’s capable of higher speeds. The battery holder design is a little bit too short, requiring tape to stay closed, so I’ll fix that in the next revision.


I am working on a standalone program so that the project can be controlled in an easier manner. Instead of having it drive for predetermined lengths of time according to command-line strings, I plan on having a GUI with realtime feedback. There are a lot of options for making a program like this. I have been experimenting with python to some success, but I might resort to using one of the many application builders that are available. For right now, the Bluetooth Electronics app meets all of my requirements so I’ll continue down that path until I need more complicated functionality.


A great upgrade for the system would be to use an ESP8266. It would provide greater control options, and it would lower the cost and footprint. The extreme simplicity of the Arduino and HC-06 combination make it very easy to use and adapt, so I am going to continue using it for this project. Plus, I have a bunch of Nanos and HC modules sitting in a drawer collecting dust; it’s about time I turned them into something. My next RC vehicle project will hopefully utilize wifi.


More on this project is coming.

Thanks for reading!


Posted on Leave a comment

Designing and 3D Printing an Integrated Circuit Holder

3D Printed Integrated Circuit Holder

3D Printing / 3D Printed Integrated Circuit Holder

3D Printed Integrated Circuit HolderI spend way too much time on Aliexpress in the middle of the night. As a result, I’ve amassed a huge collection of assorted ICs. Who can resist a pack of 20 ICs for $1 with free shipping? Not me, that’s who. I enjoy making models and I have a 3D printer, so took a crack at solving the problem by designing and 3D printing my own IC organizer.


I designed it so that each compartment would hold a single 8-pin IC, and to use as little plastic as possible. Compartments can be added or removed to hold as many ICs as needed, and can be positioned into whatever configuration is desired.


I started by creating a basic design, which was just a box that was slightly larger than a standard 8-pin IC. More boxes were used to create the rough profile of an IC. Then I subtracted the IC profile from the original box using the Advanced Boolean tool. I added a notch  to each side of the holder to make it easier to add or remove ICs. Then I copy and pasted the individual holder until I had as many as I desired.


Printing involved exporting the model as an STL through 3DS Max. I imported it into Repetier Host, sliced the model using Slic3r and then I printed it on my Kossel Delta.


Here’s a video of the entire process, from initial design to 3D printing to being used.


I used the following printer settings:

  • 0.4mm nozzle width
  • 0.3mm layer height
  • 200C nozzle temperature
  • 103% extrusion multiplier
    • Better bonding and surface finish at 103%, but reduced dimensional accuracy
  • 120mm/s internal speed, 90mm/s surface speed
  • 25% speed first layer


Download the 3DS Max and STL files:


Leave a comment: