Wednesday, October 30, 2019

First Layer Calibration

I've been generating a lot of print failures.

Mostly they show up on the first layer, but some happen much later on.

There seem to be some apparently random things going on.  The same print will work sometimes and not others.


I repeated the First Layer Calibration tests for a whole bunch of different settings.  I wondered what would happen with squish=0

I marked the patch with the squishing factor.

The PLA hardly stuck to the bed, and so when the hot end changed direction it would pull up the recently deposited PLA and drag it to the new position.  The patch was clearly inadequate.  Well at least that all makes sense.


Notice how the PLA has become almost transparent in the zig-zag pattern.  It was pretty hard to remove too.  So I think this can be called "well attached", but perhaps a little too attached?

Other squish factors

I looked end on at patches with different squish factors.

None of them looked like their diagram.

So then I looked at the faces of the patches.

 And their example...

Ability to print right angles cleanly

-1.255 is OK, but the corners are certainly rounded off
-1.4 produced decent corners

-1.000 produces rounded corners.
0.000 is a disaster as I'd expect

And the winner is:

Well since I have to choose, I'd say the appearance of 1.38 is the best.

But the first layer still doesn't stick all the time.

Acetone rocks

So I cleaned the sheet with acetone as they suggest.  It looked quite uniform afterwards, so I think I did manage to remove some residue.

Next I printed the most recalcitrant object. with my 1.38 number.

And this time it stuck.  I'm not saying the result looks good!

Tuesday, October 29, 2019

More "Squishing" - Printing issues again

Everything was printing OK until half-way through today, for no apparent reason I started getting "moth-eaten" prints.

I tried re-calibrating and squishing down a little more but it didn't change a thing.   I cleaned the nozzle, and wiped the bed.  All the settings are as per normal.  What's the problem?


I finally broke down and squished down a whole lot more, until I was getting perfect right angles at the corners of the "First layer calibration" pattern.  That subtracted an extra 0.12  mm from the bed, and seemed to improve things a lot.

But there are still apparently random things going on that I don't yet understand.

Sunday, October 20, 2019

Plant monitor under test again

I have installed my plant (senico radicans) monitor prototype.  Not quite finished yet but I want to see how well it works - if at all, before I decalre the boxes done.

The sensor is connected to the wireless relay which is powered by the solar cell.  The wires lead into the wireless relay via a couple of grommets.  I have not wired up the button/LED yet, and the holes are a little too close to the edge for comfort, so I might remake the cover.

The base station can be hundreds of yards away but it actually only about 4' away.  It receives the moisture and battery data from the base station using LoRa wireless, and then relays it to, a simple cloud service, using WiFi and the internet.

The box didn't print very evenly and has a noticeable band around the side.  Otherwise it turned out well.

I have a standard parametric box design that can be parameterized to handle any PCB.  The PCB is fixed to the base using screws that fit into nurled nuts that are hot-pushed into the plastic holes.  That works really well and is very simple to do.  I need to get some pan-head screws rather than these countersunk screws.

I need to find a better way to pass a USB cable through the plastic shell.  Have to look to see how the pros do it without a bunch more soldering of wires.

Base Station

The cloud service produces graphs that look like this:

Saturday, October 19, 2019

Supports/rafts & Shaun the Sheep

I printed Shaun the Sheep.  The first attempt collapsed because there were no supports under his head and belly.

The next attempt included rafts, but added two hours to the print time.
Shaun with supports

It took about 15 minutes to carefully remove all the supports.  Many snapped off easily leaving little behind, but a few had to be cut off.  Then I had to file off the rough remains.

Friday, October 18, 2019

Base Station Case

I finished the case for my base station.  I found an easy way to insert threaded nurled inserts into the plastic and then the PCBs can be attached with screws.

Incidentally, the base station receives LoRa packets from the sensor and posts them to the web using WiFi. 

The single button is for FOTA.  A single press on the recessed button/LED combo button requests it to go out the web and download my latest firmware.   It takes about 30s to load new firmware.

Saturday, October 12, 2019

PET (Ha)

This prints with a higher temp so I expected some issues.   It seemed to make a mess starting up.


The final results seems OK.


Friday, October 11, 2019


The socks David ordered arrived.  Blue and squishy,

It looks like it is pretty easy to fit it over the head without removing anything to do so - so I did.

Then I noticed that it wasn't seating well.  On further inspection I discovered there was a lot of melted filament (technically known as "gunge") stuck to the face of the heating block.  I turned the heat back on, and tried to wipe it off without burning my fingers.  I found that some slightly abrasive lens wipes were the most effective.  They are impregnated with alcohol which might have helped - I hope that's not a bad thing.

FItted the boot and re-ran the TreeFrog - the one that failed with "Thermal Runaway" last time I ran it.  This time I used absolutely bog-standard parameters supplied by Prusa for Generic PLA.

As usual, the temp sank on layer two.  The temp for layer 2 is supposed to drop from 215 to 210.  In fact it dropped to 205 and then recovered in about a minute.  So far so good.


After each print quite a bit of gunge builds up around the sock hole and interferes with the next print.  Seems important to clean the sock off every 2/3 prints.


My first design didn't print well, and there were a bunch of design snags I hadn't quite appreciated.  It might be useful to figure out how to render a PCB in 3D so I can see how it fits before printing.

My second design came out a lot better.

The lid clicks on and off, and holds pretty tight (I have to use a spudge to get it off).  The retaining lips seem to flex just the right amount and don't snap off!

The antenna and illuminated button fitted quite tightly.  The USB plug fits tight in the hole - perhaps a bit to tightly.  Obviously I have a bit more soldering to do!


I decided to mount the PCB using nurled captive nuts that I could push into the plastic.  I used the tip of the soldering iron to heat them up and push them in.  It was surprisingly easy.  I have used countersunk screws in this image because that's all I had to hand.

Printing Parameters

I finally managed to reliably print stuff.  There seemed to be two issues:

I was using the FAST filament setting and this was certainly faster!  It simply didn't print the last 10%.

When I changed to the 0.15 OPTIMAL settings things got a lot better.

I also followed David's advice and set the temp lower except for the first two layers.

Revising parameters


After the first layer the fan turns on and drops the temp so low that it generates a "Thermal Runaway" error.  I changed the params as follows and got a better result

Partial printing

A couple of attempts resulted in prints that stopped short of producing a finished print.  I changed the printing quality to "0.15 OPTIMAL" and that seemed to fix that problem.

FlashAIR - Success at last

Scroll down to the "FlashAir 3rd attempt - success at last"

Attempt #1 

I found the SD card annoying.  It was easy to flip the "locked" switch when inserting or removing the card from the reader.

Solution (not)

I bought a FlashAir SD card.  This is an SD card that has a WiFi interface.  The card can be left installed and loaded/uploaded with files over WiFi using a web interface.

The device fails both from a software, and a hardware standpoint.  It's a shame because it would be really neat if it worked correctly.

It is intended to be used in cameras that don't have wireless, so that they can upload pictures to the web.   So using it to download gcode files is conceptually a small difference.  I found examples of people who use this card on their 3D printer.

It takes a bit of fiddling to set it up, but even though this was a bust I am recording the process.

The card has to be initialised using software downloaded from here:

In fact I suspect that it isn't necessary to use this software unless the card needs re-initializing.


Configuring the card to work as I desired was simple but very obscure.  After trawling around on the web for a while I discovered that the configuration is fairly simple.  
Once the card can be made visible to a computer, it might be necessary to change the properties of the card so that all the files are made visible.  

A file called "CONFIG" will be found, and should be set up as follows.



Once the file has been saved the card can operate stand-alone.  I actually simply plugged it into a PSU to test that it would work stand-alone.
Because my APPNAME=prusa I was able to find a web-site called http://prusa

Uploading files to the card was clumsy.  You have to type in another URL: http://prusa/upload.cgi

I guess this would have been just about OK.  The UI is about a simple as it can get.   You use the "Choose File" button to select a file, and the "submit" button to upload it.

It's so quick that it feels like it failed!
When the upload is complete it completely confusesd me by displaying the following.

So I uploaded a bunch more to make sure I wasn't being a dummy...

However when I went back to the directory listing mode I found this:

I found that although I could access the card if I pushed it into the SD card slot of my laptop, I couldn't access it using USB plug-in devices as shown in my photo above..  So connecting to the desktop machine was out!  

Plugging the card into the Prusa I found that I could indeed download files OTA to the card.  Yay!

However the card does not function as a viable SD card when plugged into the Prusa.
The card is capable of powering up, and displays some kind of directory structure.  

Sadly there only entry in the list that does anything is "Back".  The directory entry does sweet FA.

Possible reason for problems

My FlashAIR card is SDXC (64GB) and I suspect Prusa only accepts the old style SDHC (up to 32GB).  The new format uses the exFAT file format, and I'm guessing Prusa expects FAT.

FlashAir Setup 2nd attempt - TBD

GitHub - FlashAirDevelopers/FlashAirFileManager: The application to browse and download files on FlashAir™ via the network. - XXX deprecated

FlashAir 3rd attempt - success at last

  • I bought a 32G W04 card.
  • All the setup programs etc are useless, unless you have to re-init the card.

  • Plug the card into a computer that has a card reader, and use a text editor to edit the file: CONFIG
This is the right stuff to put into the file
UPDIR=/<Directory name to put G-Code>

  •  Save the file, and wait 10s.  Do not safely eject the card.

  • Now make a network drive:

Should be able to drag and drop GCode files onto the card.
NOTE that Prusa only shows files with the ".gcode" or ".gc" extension

  • Now can go to Prusa find the file and print it.
Some more documentation

Tuesday, October 8, 2019

Printing a model via Slic3r for the first time

Update 10/17/2019

Here are some useful words on cooling parameters.

It's all about getting the right parameters. (10/9/2019)

First job, download the manual.  All the relevant stuff was here.

Next, download the slicer and firmware.

Install the slicer "slic3r"

Ran treefrog I downloaded from itnernet before I realised that Prusa use the same model :-)

Prusa reports that it needs new firmware

Thermal Runaway during printing!   Better install new firmware.

Download firmware, and install manual
Connected printer USB to PC
Printed the upgrade instructions.  Reference to Slic3R PE which doesn't seem to be part of the release.

Better instructions here
Although the COM port shows up, the printer needs to be switched on.  Duh!

Tried again - flashing failed.  Now the printer is unresponsive - no UI.  It also erports that it is a Prusa 2.5 now!  Did I somehow load the wrong firmware - checked... no!

< various read and write commands followed by this>

avrdude-slic3r: verifying ...
avrdude-slic3r: 244050 bytes of flash verified

avrdude-slic3r: safemode: hfuse reads as D0
avrdude-slic3r: safemode: efuse reads as FD
avrdude-slic3r: safemode: Fuses OK (E:FD, H:D0, L:FF)

avrdude-slic3r done.  Thank you.

avrdude-slic3r -v -p atmega2560 -c arduino -P COM16 -b 115200 -D -u -U flash:w:1:C:\Users\lamming\Desktop\PRUSA\prusa3d_fw_MK3_3_8_0_2684.hex:i

avrdude-slic3r: Version 6.3-20160220-prusa3d, compiled on Sep 16 2019 at 11:15:49
                Copyright (c) 2000-2005 Brian Dean,
                Copyright (c) 2007-2014 Joerg Wunsch

                Using Port                    : COM16
                Using Programmer              : arduino
                Overriding Baud Rate          : 115200
avrdude-slic3r: prusa_init_external_flash(): MK3 printer emitted incorrect start code: `echo: `
avrdude-slic3r: arduino_open(): Failed to initialize MK3 external flash programming mode
avrdude-slic3r: Could not open port: COM16

avrdude-slic3r done.  Thank you.

Power cycle doesn't cause a reboot.  Should I remove USB cable?

Noticed a useful document

Contacted David to see if this is a 3Mk3.  No!!  It's a 2.5S

[13:50, 10/8/2019] Mik Lamming: R u available to consult?
Is this a i3 mk3?
[13:54, 10/8/2019] David Carkeek: Sure! It's an i3 Mk2.5S
[13:54, 10/8/2019] David Carkeek: The i3 has a 24V power supply, so the motors are faster and the hot bed heats better.
[13:55, 10/8/2019] David Carkeek: Also, the i3 has extruded aluminum rails so it's sturdier.
[13:56, 10/8/2019] David Carkeek: The "S" upgrade was primarily new linear bearings.
[13:58, 10/8/2019] David Carkeek: The "2.5" upgrade was a new hot bed, magnetic surface, new PINDA probe and holder, new extruder and fan, filament sensor. This enabled some software improvements.
[14:02, 10/8/2019] Mik Lamming: OK, I'm having some minor issues. I tried to print the treefrog example. It got about 2m into the process and then stopped saying "thermal runaway". UI dead. Had to turn off. Turned back on and it said "upgrade firmware". That was my downfall. I thought it was a i3 Mk3 because that's what it says on the bendy plate. Took me a while to figure out the instructions for firmware upgrades were wrong. Finally did an upgrade. Verified OK but then gave some gobledigook
[14:02, 10/8/2019] Mik Lamming: avrdude-slic3r: arduino_open(): Failed to initialize MK3 external flash programming mode

avrdude-slic3r: Could not open port: COM16
[14:03, 10/8/2019] Mik Lamming: OK, so that makes sense because it is a 2.5S
[14:03, 10/8/2019] Mik Lamming: Just tied to flash 2.5s and it failed. I'm going to reset everything and retry
[14:06, 10/8/2019] David Carkeek: There are two versions of the controller board and you need to be sure that you select the right one when you flash it. The same thing happened to me when I selected the wrong controller.
[14:06, 10/8/2019] Mik Lamming: OK - how do I identify the controller board?
[14:06, 10/8/2019] David Carkeek: The thermal runaway error happens with the new fan because the extruder cools down too much when it turns on and doesn't have time to recover before the thermal runaway error kicks in.
[14:07, 10/8/2019] David Carkeek: Then newer firmware was supposed to partially fix the thermal runaway error by not requiring a ramp speed as fast as what was used before.
[14:08, 10/8/2019] David Carkeek: But I could never get it to work with the fan speed set at 100%.
[14:08, 10/8/2019] Mik Lamming: Do I need the Mk2.5 or the Mk2.5S firmware
[14:08, 10/8/2019] David Carkeek: 2.5S
[14:09, 10/8/2019] David Carkeek: There are two solutions for the thermal runaway problem. One is to put a silicone sock on the outside of the extruder.
[14:09, 10/8/2019] David Carkeek: The other solution is to set the fan speed at something like 70%. To do that do you have to edit the G-Code.
[14:10, 10/8/2019] Mik Lamming: OK - good info.
[14:10, 10/8/2019] David Carkeek: If y ou are making a new model there is an option to set the maximum fan speed in the slicer.
[14:10, 10/8/2019] Mik Lamming: There are dire warnings about not installing wrong firmware!! I wonder if I have done something dire.
[14:11, 10/8/2019] David Carkeek: For the question about the controller, I have to look. it's obvious when you know what to look for and when it happened to me I was just careless and didn't pay attention.
[14:11, 10/8/2019] David Carkeek: when it happened to me, I was sure that I had bricked to controller, but it seems to be pretty resilient and it was still okay.
[14:14, 10/8/2019] Mik Lamming: There is a document that shows the controller types.
[14:14, 10/8/2019] David Carkeek: I just downloaded the firmware to take a look it's the RAMBo13A that you want.
[14:16, 10/8/2019] David Carkeek: there are versions for different languages. English is part of all of them, so it doesn't matter which one you choose.
[14:17, 10/8/2019] Mik Lamming: Well anticipated! 🙂
[14:19, 10/8/2019] Mik Lamming: Flashing the French version... 🙂
[14:29, 10/8/2019] Mik Lamming: I guess it flashed, but is this message OK?
[14:30, 10/8/2019] Mik Lamming: Now I'm going to try and print the treefrog example again. So two questions: Which of these is the right device to choose
[14:30, 10/8/2019] Mik Lamming: And do you hand-edit the gcode to turn down the fan speed, or is there some control somewhere?
[14:33, 10/8/2019] David Carkeek: If you're in Slic3r there's a setting.
[14:33, 10/8/2019] Mik Lamming: I am
[14:35, 10/8/2019] David Carkeek: I'm going to have to install the program to look at it because I can't remember enough details to explain how to get there.
[14:36, 10/8/2019] David Carkeek: Did you install 2.2.8?
[14:36, 10/8/2019] Mik Lamming: No, no! I'll figure it out. Just want to be sure I have the right controller specified. See aboce. There are lots of different 2.5S models
[14:37, 10/8/2019] Mik Lamming: 2.2.8 Slic3r
[14:37, 10/8/2019] David Carkeek: You have the right one selected.
[14:38, 10/8/2019] David Carkeek: All those other ones are if you have the multi-material unit installed.
[14:38, 10/8/2019] Mik Lamming: Ohhhhh! Duh. OK.
[14:42, 10/8/2019] Mik Lamming: Oh - what size noxel is fitted?
[14:43, 10/8/2019] Mik Lamming: nozzle
[14:51, 10/8/2019] Mik Lamming: This look right
[14:57, 10/8/2019] David Carkeek: It's the standard nozzle. Maybe 0.25?
[14:57, 10/8/2019] Mik Lamming: OK thanks.
[15:00, 10/8/2019] David Carkeek: Maybe 0.4?
[15:00, 10/8/2019] David Carkeek: Probably 0.4mm
[15:01, 10/8/2019] Mik Lamming: I wonder if the hole looks like 0.4mm
[15:01, 10/8/2019] David Carkeek: Yes, it's 0.4
[15:02, 10/8/2019] David Carkeek: I'm sure it would if it was clean.
[15:02, 10/8/2019] Mik Lamming: Oh thanks. That's great. Did you try smaller nozzles at all?
[15:02, 10/8/2019] David Carkeek: Only the standard 0.4mm
[15:03, 10/8/2019] David Carkeek: It would be good to try others, probably.
[15:03, 10/8/2019] Mik Lamming: The watch case looked pretty good at 0.4
[15:39, 10/8/2019] Mik Lamming: I set the min and max fan speed to 70%

Flash it right!

avrdude-slic3r -v -p atmega2560 -c wiring -P COM16 -b 115200 -D -U flash:w:0:C:\Users\lamming\Desktop\PRUSA\prusa3d_fw_MK25S_3_8_0_2684_RAMBo13a_en-fr.hex:i

avrdude-slic3r: Version 6.3-20160220-prusa3d, compiled on Sep 16 2019 at 11:15:49
                Copyright (c) 2000-2005 Brian Dean,
                Copyright (c) 2007-2014 Joerg Wunsch

                Using Port                    : COM16
                Using Programmer              : wiring
                Overriding Baud Rate          : 115200
                AVR Part                      : ATmega2560
                Chip Erase delay              : 9000 us
                PAGEL                         : PD7
                BS2                           : PA0
                RESET disposition             : dedicated
                RETRY pulse                   : SCK
                serial program mode           : yes
                parallel program mode         : yes
                Timeout                       : 200
                StabDelay                     : 100
                CmdexeDelay                   : 25
                SyncLoops                     : 32
                ByteDelay                     : 0
                PollIndex                     : 3
                PollValue                     : 0x53
                Memory Detail                 :

                                         Block Poll               Page                       Polled
                  Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
                  ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
                  eeprom        65    10     8    0 no       4096    8      0  9000  9000 0x00 0x00
                  flash         65    10   256    0 yes    262144  256   1024  4500  4500 0x00 0x00
                  lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                  hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                  efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                  lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                  calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
                  signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

                Programmer Type : Wiring
                Description     : Wiring
                Programmer Model: AVRISP
                Hardware Version: 15
                Firmware Version Master : 2.10
                Vtarget         : 0.0 V
                SCK period      : 0.1 us

avrdude-slic3r: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude-slic3r: Device signature = 0x1e9801 (probably m2560)
avrdude-slic3r: safemode: hfuse reads as D0
avrdude-slic3r: safemode: efuse reads as FD
avrdude-slic3r: reading input file "C:\Users\lamming\Desktop\PRUSA\prusa3d_fw_MK25S_3_8_0_2684_RAMBo13a_en-fr.hex"
avrdude-slic3r: writing flash (218614 bytes):
avrdude-slic3r: stk500v2_command(): command failed

Writing | ################################################## | 100% 41.06s

avrdude-slic3r: 218614 bytes of flash written
avrdude-slic3r: verifying flash memory against C:\Users\lamming\Desktop\PRUSA\prusa3d_fw_MK25S_3_8_0_2684_RAMBo13a_en-fr.hex:
avrdude-slic3r: load data flash data from input file C:\Users\lamming\Desktop\PRUSA\prusa3d_fw_MK25S_3_8_0_2684_RAMBo13a_en-fr.hex:
avrdude-slic3r: input file C:\Users\lamming\Desktop\PRUSA\prusa3d_fw_MK25S_3_8_0_2684_RAMBo13a_en-fr.hex contains 218614 bytes
avrdude-slic3r: reading on-chip flash data:

Reading | ################################################## | 100% 27.98s

avrdude-slic3r: verifying ...
avrdude-slic3r: 218614 bytes of flash verified

avrdude-slic3r: safemode: hfuse reads as D0
avrdude-slic3r: safemode: efuse reads as FD
avrdude-slic3r: safemode: Fuses OK (E:FD, H:D0, L:FF)

avrdude-slic3r done.  Thank you.

Some success

I wonder what this means?

Need to adjust fan speed to prevent thermal runaway.


Day 1

Day 1

Just returned from UK, I went to have lunch with David.  To my surprise he carried two large boxes to my car and put them in.  He was lending me his 'spare' Prusa.  I'm not often left speechless, but...

Day 4

I managed to finish all the jobs I had in progress, and started to set up the Prusa.  Finding space for it was a challenge.

Took a while to figure out the UI.  I found a couple of files on the SD card that were something I had asked David to try out for me.  I tied to print them, and hey...  it worked and it did a great job.

Tourbillon Project

Tourbillon Project I was interested to push the limits of 3D printing... basically for the hell of it, and to distract me from being indoors...