Building the C-Bot 3d Printer : Part 39 : Magnetic, removable build plate

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


Back in Part 33 I’d added a nice, perfectly flat mic6 aluminum tooling plate as my bed.  And as a super flat surface, it’s been great.  Later, I added a piece of PEI to the top which in general, is a great surface to print on.

The issue, is that I have an inductive probe.  And these probes are designed to detect ferrous metals, like steel, not aluminum.  Because of that, with the PEI sheet on top, the probe was nearly 1mm from the top of the sheet.  Which caused various print failures over time, when some bit of plastic would ‘wick up’ while being printed, harden that way, and the probe would catch it.

Based on a recommendation, a buddy of mine recently picked up a Prusa i3 MK3 (which, for the price, is an amazing printer), that has a super slick removable flex-steel bed, with PEI (I think) impregnated on the top.  And since it uses an inductive sensor as well, the steel plate is the perfect thing to detect against.

After doing research onling, I found that BuildTak sells upgrade kits (‘Flexplate’) in various sizes that do this: I thought this would be a good route to go, until I saw the price: My 12″x12″ bed would run $170 for the kit.

After thinking about it a bit, I realized this isn’t a complex problem to solve:  All you need is a piece of thin, flat steel, and a magnet to hold it down.  And what if that magnet was flat as well, with sticky on one side to hold it to my aluminum bed?  After some searching on Amazon, I found these:

It showed up in the mail in only a few days:  I cut the magnetic sheet in half for a nice 12″x12″ chunk, and stuck that directly to my aluminum bed.

I took my orbital sander with some 100 grit to the steel sheet to roughen it up.

The steel sheet firmly magnetized itself in place, and I tuned my firmware for the new sensor offsets, and got to printing:

Just steel, and purple gluestick:  Perfect.

Update: A few things to note since first posting:

  • What I bought wasn’t ‘spring steel’  : While you have to put some effort into it, you can bend this metal to be non-flat.  Must be careful.  Or, buy spring steel.  I was aware of this ahead of time, this was mainly a test.
  • I print mostly in PLA, and the magnet & adhesive have done fine at 60c.  However, I have no idea how well that magnet or adhesive would do at say, 110c printing ABS.  Be aware of that if it’s your setup.
  • If this (magnets + adhesive + heat) becomes an issue, I plan to CNC some pockets into my bed, and drop in some strong magnets.  I’ve read that for high-temp applications, you want to go with ‘Samarium–cobalt (SmCo) magnets’.

From left to right: Aluminum plate, flexible magnet, steel sheet:

theSpread

Here, you can see the stack of aluminum build plate, magnet, and steel sheet.  The gap between the sensor and sheet is actually larger than that, I’d not set it’s height yet.

mindTheGap

Here’s showing off a little bit of flex:

bedLift

And finally, a successfully printed 200 micron calibration cube directly on the steel + purple gluestick:

And while it looks like there was a little bit of bed separation on that front corner, that thing was stuck down hard.

calibCube

Great, cheap, easy improvement!


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

Homebrewing : My first experience

Historical Notes

I think I first started caring about beer in the mid 2000’s:  I was plenty old enough to drink it, but I didn’t really enjoy it up until then:  The macro brands I grew up with never tasted good to me (just because you can do something doesn’t mean you should).  Even when I’d ask my imbibing friends it if they liked it, they’d just sort of shrug their shoulders.  It was more of a means to an end for them, the destination was far more important than the 12-pack journey.

Around that time my best friend moved to Portland, OR, and when I’d go and visit him we’d visit ‘brewpubs’ : Magical places where you could drink the (really good!) beer they made on site, and eat food.  Was nothing like I’d experienced anywhere else at the time, despite having lived in places like LA, Honolulu, and San Francisco.  Suddenly, beer was good.  Just not near me.  The beer aisle in Safeway was still entirely filled with case after case of macro brands.

Since I lived near San Francisco at the time, which is really close to the Napa, Sonoma, and Mendocino wine-growing regions, I branched into wine full-force for the next 10 years.  I still enjoyed a good beer, but they continued to be hard to find in any abundance.  Great wine was everywhere however, so it was easier to pick that low-hanging fruit off the tree of fermentation.

During that same time, my father and younger brother (in Alaska none the less) both got into the homebrew scene, and started knocking out tasty beers (& wines) I’d get to sample when we’d visit one another.  Then around the early 2010’s craft-brew really started taking off in the SF bay, and I dived in, visiting as many local breweries as I could.  Wine is still an amazing product, but my pallet shifted, hard into the land of malt and hops.  Safeway shifted too:  Only one small corner of that aisle had any macro:  The rest was all craft.  Safeway carrying craft beer?  The zeitgeist of the time was definitely swaying.

One final trip to Portland in winter 2017 cemented my future, after an old high-school buddy (now a distributor of brewery supplies) gave me his copy of Charlie Papazian’s “The Complete Joy Of Home Brewing” (while meeting at a brewery none-the-less) : I read that cover to cover over the next few days, and my fate was sealed:  In Jan of 2018, I brewed my first beer.

Below I will recount my first homebrew experience.


Research

This sections recounts areas of research I found valuable before I got started.  Off the bat I decided to go with a malt-extract process rather than all-grain.  All grain takes longer, more up-front cost… and for all I know at the end of the day, despite how much I enjoy drinking beer, I had no idea how much i’d enjoy making beer.

Books

These were books provided to me, and I’m glad they were:

I have a number more… just not got a chance to read them yet.

Videos

There are… many video’s on youtube for brewing.  These are some good into-level / informative video’s that I think do a pretty good job of explaining things.   While some of these cover all-grain (and I’m doing malt extract) they’re still applicable.


Equipment

Like mentioned above, I’m doing malt-extract brewing.  No all-grain yet, so my equipment list below reflects that (for example, no mash tun).  I purchased most of my gear from Amazon and MoreBeer.

I’m told you can make totally fine beer out of a bucket system for $100-$200 (the buckets are usually only $5-$10 a piece, that other cost is just for all the other gear you need), and I have no reason to doubt that.  However, I wanted something I could easily grow, and I like ‘new tech’, so I didn’t go the bucket route.  Because of that, my spreadsheet tells me I spent around $750 on the below setup, not counting the additional costs required to build-out my space.  However, moving forward, my only major costs are that of the beer ingredients, and the gas/electricity to heat/power things.

Fermenter

I did a lot of research into what type of fermenter I wanted to get for my first homebrew setup.  Three main options for the homebrewer presented themselves:

  • Plastic buckets:  Cheap, work just fine.  More siphoning required between primary & secondary (+ bottling bucket), not a big deal though with an auto-siphon.
  • Plastic conical: More up-front cost that buckets, but allows for primary and secondary fermentation in the same vessel (if you’re into doing such things) since it’s so easy to drop the trub from the attached container on the bottom.  Downside is they’re not as easy to move around as buckets, and you need custom freestanding mounts or brackets on your wall (which may or may not be a downside based on your space).
  • Metal conical : Way more expensive than plastic, looks great, lasts longer, but similar end results.

In the end, after much research, I decided to go with:  7.9gal FastFerment conical.

However, if money wasn’t an issue, I think it’d be hard to go wrong with the SS Brewtech 7 gal Chronical FermenterBeautiful, but 4x the cost.

The only main complaint I’d heard from people about the FastFerment was that the top wouldn’t seal well.  And when I got it, I experienced a similar problem : Trying to screw that lid on, I just couldn’t get it to sit/seal right.  I was frustrated.  However, this ended up not being an issue at all:  While trying to ‘screw it on dry’ gave me grief, when I did my first brewday runthough (just using water), it screwed on just fine:  Having a little bit of water/sanitizer in there made it tighten up with no issues and seal fine.

In addition to the basic things that come with it (airlock, tubing, etc) I also picked up the sampling port (convenient for taking gravity readings), carrying strap, and thermometer for its built-in thermowell.

Here it is in my scrap-wood-creation to hold it (I didn’t want to pay extra for the metal frame) during my initial leak-test (it passed just fine) :

20171226_152208

Brew Kettle

I went with the ‘8.5 Gallon Brewmaster Stainless Steel Brew Kettle, plus a screw-in thermometer for the extra port.  The bottom port works great for gravity-transferring wort into my fermenter.  I didn’t think much of it at the time of purchase, but the silicon handles are pretty nice too.

20180202_213003

I wanted a larger size kettle to help avoid boil-overs, and brew larger batches if I wanted too.

Propane Burner

I love beer but the Mrs does not, so I need to do all my brewing outside.  I picked up ‘The Dark Star Propane Burner 2.0‘ and it’s treated me fine so far.  Sounds like a jet engine.

20180116_203821

Immersion Chiller

Got this one off Amazon.  I was going to build it myself until I figured out the price of materials was only around $10 away from having that shipped to me.  Worth it.  While you don’t need an immersion chiller, the faster you can chill your wort the better, and I wanted to set myself up for success.

20180116_211025

Water Supply

We get our water from Hetch Hetchy, near Yosemite.  I’m told its ‘great water for beer’, but that doesn’t mean the pipes getting it to my house are. Not to mention fluoride and chlorine can be added.  Since I’m getting my water from a garden-hose faucet on the side of my house, I picked up both a water filter, and food-safe garden hose to do the transfer.

Fermentation Chamber

After much reading and discussion with other hombrewers, one of the biggest ‘failure points’ they’d experienced was keeping the correct consistent fermentation temperature.  If making ales, anything from 65-75 (very rough numbers) seemed like a safe temp, and most people keep their homes within that range most of the time.  However, one homebrewer commented that one day in the summer, the temp hit the high-90’s, and that batch of beer was ruined.

My house is small, so I had no room to store my fermenter in it.  But I do have room in my workshop for it.  However, the workshop is uninsulated, and it could hit mid-30’s on a cold CA winter night, or over 100 on a hot summer day.  I needed something to keep the beer at the right temp.

I found a number of devices to heat or cool the fermenter, but rarely at the same time.  I finally found a heat-exchanger that sits in the top of the fermenter (the BrewJacket), and can both heat and cool.  But it was close to $300-$400.  If I ever wanted to get another fermenter and do two brews at once, I’d have to get another $300-$400 doodad.  This seemed overly expensive, despite the convenience (I really wanted to get one…).

After seeing several designs online, I decided to build my own fermentation chamber.  Carving out a corner of my shop, I set to work installing a false-floor (most of my workshop is a dirt floor), table to sit all the gear on, and finally the chamber itself:

First I mocked the whole thing up in 3D to make sure it would all fit:

20180105_213153 < Looking x-ray through my workshop wall.  Everything brown is pre-existing.

Then got to the construction:

20180106_093159 20180110_213216 20180115_161027 20180127_150413

I used 1″ aluminum-faced foam board to insulate the chamber.  Found a $30 mini-fridge on Craigslist for the cooling, and used a 150w bulb to provide heat, all hooked up to an Inkbird Digital Temp Controller (seen hanging on the wall in the 3rd pic).  I cut some portholes in the ‘door’ seated with rectangular Plexiglas, sealed up on either side to form an insulatory air-chamber in the middle : I can now see the airlock, the top of the beer in the fermenter, and the collection ball in the bottom at all times, even with the door closed.  I also wired in a small low-speed muffin-fan that runs at all times, to keep the air circulating.

Sanitizing & Cleaning Products

For sanitization, I went with Star San, and for cleaning I’m using Five Start PBW.

Bottles

I decided to go with 750ml  amber swing-tops:  Two cases of 12 would do a 5-gal batch nicely, and I don’t have to wory about capping the bottles.  Plus, if I don’t finish the bottle (rare), it stays nice and sealed in my fridge.

20180104_192759

Other Gear

Other items of note include: Both steel (for stirring the wort) and plastic (for stirring the fermenter) 24″ brew spoons, two spray bottles (one for filterd water in case of boilovers, the other for spray-on sanitization), Hydrometer & Hydrometer jar, bottle filler wand, several reusable nylon bags for hops & specialty grains, extra food-grade vinyl tubing as needed.


Brewing Outdoors

Shown above is the fermentation chamber and gear storage area in my workshop.  But I brew outside, so I needed a space to do that.  A space I didn’t yet have.  So, construction commenced:

20180106_135037 20180106_143615

Now I had something to put my outdoor brewing equipment on.

20180120_164919

The above pic shows it all:  I do my boil on the (new) elevated bench which allows for easy gravity-feeding into the fermenter when complete.  I had previously made a sheet-metal covered L-shaped (foldable) frame I used for welding on:  I put my burner on that for an extra level of safety.


Brewday

Step By Step Guide

Before my first brewday, I did a complete run-through the the whole process using water.  For someone that had never brewed before, this was an invaluable setp, and allowed me to make a step-by-step guide for my future self: I found nothing so succinct online.  You can find that doc here: Extract Brewing: Brew Day: Fast Ferment.  Even if you don’t use a FastFerment, this is a good resource for anyone wanting to get into this hobby to see every exact step you’ll need to go through to brew an extract beer.

My First Beer

The first beer I choose was a ‘B3 Stout’ extract kit by MoreBeer.  I wanted something familiar, that shouldn’t be too hard to brew.  For the yeast, I went with Wyeast 1056 American Ale.

Process

Overall, it went off without a hitch:  I had a number of buddies over to help move things around, check temps, stir, etc, and it was really appreciated.  Could I do this by myself?  Sure.  Would it be as fun? Heck no 😉  And again, the doc I link to above lists the exact steps I went though.

The whole thing, from the start of the boil to the end cleanup took just around 3 hours.

Things of note:

  • Like everything else you read, sanitization is king.  No, StarSan won’t hurt you, I got it all over myself with no ill effects.
  • Even watching the temp, the wort definitely tried to boil over.  Having that spray-bottle on-hand to get it down was really effective.
  • My base malt-extract came in a really big bag, and has the consistency of honey.  I intentionally didn’t warm it up to see the effect while pouring it:  Safe to say, I will be pre-warming it in the future, it’ll simply make it easier to pour out, and get more of it out.
  • I was never too sure if I activated the ‘smack pack’ successfully in the yeast:  But after siting out for an hour, it had definitely swollen up, which was a good sign.
  • Took about 25 minutes running the immersion chiller to hit 72 deg, to pitch the yeast.
  • Before I pitched the yeast, I took a gravity reading, it was at 1.065.

From there, I hauled it over to the fermentation chamber, got it locked in, and turned on the temp control.  Within a few hours it had settled on 65 deg, and stayed there for the next two weeks.

20180120_165929 Just before the door goes on for a week…

Above, you can see how I taped the temperature probe onto the side of the fermenter.  There’s a lot of discussion on the best place to put these, and I found more votes for this solution than others.  Based on the end results, I’d have no reason to change it.


Tracking The Fermentation Process

While fermentation can continue even after the airlock stops bubbling, it’s still a pretty good indication of what’s going on in there (or so I read).  I tracked the “BPM” (bubbles per minute) for the first week, here are the results:

  • Day #1 : (brewday) Not much.
  • Day #2 : Many bubbles (but I hadn’t started recording yet)
  • Day #3 PM : 70 BPM
  • Day #4 AM : 30 BPM
  • Day #4 PM : 20 BPM
  • Day #5 AM : 12 BPM
  • Day #5 PM : 5 BPM
  • Day #6 PM : 1 BPM
  • Day #7 PM : 1 bubble every 1min 30 sec.

On Day 8, I did the ‘secondary transfer’ (below), then let it ferment for another week (which as you’ll read below, was probably unnecessary(?)).


Secondary Transfer

There is plenty of discussion on whether or not you need to ‘transfer your beer to a secondary’ on the homebrew arena (all depending on the type of beer you’re making).  Passionate arguments on either side of the fence.  With the FastFerment though, why not?  There is no ‘transfer’ to speak of : You simply close the collection ball value, and dump the trub out.  Figured I’d give it a shot.

After a week of fermentation, I decided to ‘drop trub’, and it worked as advertised:

20180127_145209

Whole collection ball was full of brown goo I washed down my drain.

Also took a gravity reading from the sampling port:  Read 1.020

From there, I reinstalled the collection ball, re-opened it allowing the exiting beer (and any other trub) to drop in, and let it sit for another week of fermentation.


Bottleday

After two weeks of fermentation, I bottled.  On that day I took my final gravity reading:  1.020 : The exact same number as week ago… telling me fermentation actually only took one week.

Which means this beer clocks in at 5.9% ABV.  Respectable.

I closed the collection ball valve and removed it:  It was maybe 2/3 filled with trub, the rest beer, that all got dumped.  At which point I screwed on the bottle-filler attachment from the bottom:  No need to transfer to a ‘bottling bucket’:  You can bottle directly off the bottom of the FastFerment.  I have no pics of this process, but the FastFerment website has videos of it (linked above).

(Update/Edit) : The MoreBeer kit came with priming sugar I first boiled, then added directly to the fermenter and stirred it up with my spastic brewspoon (so as not to scrape the insides with the stainless one).

Had two other buddies over, and with them, we went though a process of:

  • Buddy #1 sanitizes bottles, hands me one.
  • I fill it with the bottling wand & close the swing-top.
  • I hand it to buddy #2, who takes it outside, washes it off, and stores it in a box.

Took, maybe an hour?

End result, beauty:

20180217_102848


The Verdict

Packed in their two 12-unit cardboard boxes, I let them bottle age in the fermentation chamber for two weeks at 65 degrees.

I had planned on bringing some into work on a Friday to share with people.  So, that Friday AM I cracked one open for the first time to sample it.  Much anticipation….

Ugh, it tasted pretty bad. But in hindsight, for three main reasons:

  • It was 8am. I don’t think I’ve ever had a beer at 8am.
  • I just brushed my teeth.  Peppermint toothpaste + dark stout do not mix.
  • It was room temperature.

I figured my palette was off and the beer was too warm, so I brought a few bottles in a cold pack anyway.

I was very pleasantly surprised that evening that it actually tasted pretty good.  In fact, everyone that tried it lauded how good it was.  Some more than others, but it was an entirely positive reception.  All the bottles were quickly drained.

It’s March 3rd as I type this, a month after bottling, and honestly they continue to get better:  The was some initial bitterness on the end I didn’t care for, that’s all but gone now.  It’s evolving into a smooth malty/roasty stout that goes down really easy.  When you crack open the swingtop it pops like a champagne bottle, and it pours a thick creamy head.  A very good first try!

20180303_172657 (the head is a nice light brown… that light is just really yellow)

I’m really looking forward to doing this again!  Definitely an extremely positive first experience.

Things I think helped get me success:

  • A lot of reading & research ahead of time.
  • Dry (well, wet) runthrough ahead of time.
  • Making my step-by-step guide for the brewday was invaluable.
  • OCD sanitization.
  • Fermentation chamber with hot & cold temp control.
  • Good water.
  • (seemingly) quality ingredients.

And as Charlie Papazian says all through his book: “Relax! Don’t Worry! Have a homebrew.”

New CNC Cut : Anchorage To Talkeetna

When I was at our family’s cabin in the Talkeetna (Alaska) area last, my father gave me some birch from our property he’d felled, milled, and planed.  I brought that back to CA, and for the longest time have been thinking what to cut on it.

Realized it would make a great Christmas gift to give it back to them with some art.

As a test piece, since I’d never used this wood before, I turned some clouds from the SW corner of Jupiter’s Great Red Spot into a height map, and cut that.  It took 9 hours with rough + finish, mainly because of all the height variation and the 1/8″ tapered ballnose I used for the finish:

theSpot_web

Armed with that test success, I moved onto my next piece.

Using terrain2stl, I captured the terrain between my hometown (Anchorage) and the region our cabin is at (Talkeetna).  I cleaned this up in Autodesk Maya, added the text, and send this to MeshCAM where I generated the toolpath for my X-Carve CNC:

anch2talkeet_beauty_web anch2talkeet_angle_web

After a combined 6 hours for the rough, finish (both with a 3-flute upcut .25″ ballnose endmill), and pencil cleanup (on the text, with 1/8″ tapered 2-flute upcut ballnose) passes I did some sanding, stained it, then applied the paint for Cook Inlet, and the major rivers in the area.  Measure over a foot wide, and around 30″ tall.

Turned out beautiful, and I look forward to seeing it at our cabin next time I’m up there.

New 3D Printer: Tevo Little Monster + Duet Conversion

For some time I’ve been considering the purchase of a delta 3d printer.  After much research, I settled on a Tevo Little Monster (TLM below).  It was a bittersweet purchase, since I had to sell my first printer (after 5+ years of ownership), my Makerbot Replicator (original), to both make capital, and make some room for it.

Tevo Little Monster and the C-Bot: New best friends.

Tevo Little Monster and the C-Bot: New best friends.

This blog post is mainly written as a resource to myself to track info, troubleshoot problems, and list upgrades.

TLM Links:

TLM Pros:

  • Price:  I picked it up for $750 and free shipping.
  • Print Volume:  The machine is a beast: 45″ tall (without the spool holder, which makes it even higher), with a diameter of around 23″. It has a print volume of roughly:
    • 500mm tall (I was able to squeeze out 510mm)
    • 350mm diameter.
  • One of the main reasons I bought this printer was is ‘beautiful in simplicity’ construction: Despite the size listed above, the frame is only made up of 5 parts:  The 3 OpenBuilds C-Beam style extruded arms that connect to the top/bottom plates.  Everything was cut to the same length, and it was square immediately after bolting it together with no adjustments.
  • Integrated BLTouch in the delta effector.  Docs here.
  • 120v AC bed with SSR: ‘Nuff said.
  • Elegant electronics boxes and power cabling.
  • A ‘hanging bowden’ style extruder:  Keeps the mass directly off the delta effector, and decreases the bowden tube length significantly.  Based on experience, I dislike bowden’s and the blobs they produce.

TLM Cons:

  • MKS SBase V1.3 : While it runs Smoothieware and comes with a small touchscreen, I’ve heard quite a few problems from people running this knockoff Smoothieboard.  It also uses integrated DRV8825 steppers, which historically aren’t the best choice for 3D printers (needing separate ‘TL Smoothers’ to help remove artifacting).
  • Knock-off hotend and extruder:  While these are based on the E3D-v6 hotend and Titan extruder, they’re complete knockoffs.  And they gave me more grief than anything else stock on the bot:
    • The knockoff Titan extruder started squeaking in the first month.
    • The PTF fitting in the knockoff heatbreak disintegrated, dropping metal chunks into my filament path.  I didn’t realize this until taking the whole thing apart and shinging a light in there, and seeing stuff reflect back.
    • I didn’t realize it at the time, but it appears that the heatbreak isn’t all metal (like a standard E3D) : It had some sort of plastic liner.  Later, that liner failed, and completely jammed it.
    • I’m not sure the ‘.4mm nozzle’ was really .4mm at all.  After swapping to a legit .4mm volcano nozzle, I noticed an improvemnt in print quality.
    • Basically, ditch that entire hotend for the real thing and save yourself a bunch of pain.
  • The bed isn’t removable. However, you have plenty of access to it, so I don’t feel removing prints from it should be an issue.  And since it’s mounted directly to the base of the machine, I don’t see any calibration issues if I have to really pull on the print to get it off.

Upgrades:

First thing, the knock-0ff Smoothieboard had to go.  My C-Bot has been running RepRap Firmware on a RADDS setup for some time, so for this bot, it was time to get the real deal:  A Duet Ethernet with touchscreen.

Installed:

Future:

  • Remaining parts of a real E3D-v6 Volcano Hotend (hotblock, heater cartridge, and thermistor)

Duet Pros

I can’t say enough good things about the Duet ecosystem.

  • 32 bit processor, no delta computation speed issues.
  • Live tuning of nearly every value:  Via the Duet Web Interface (or any connected gcode sender) you can live tune nearly ever firmware setting.
  • Updating firmware is as easy as uploading a single file.  No pre-compile (or Arduino IDE) necessary.
  • Integrated steppers + 1/256 silence : The integrated TMC2660 drivers, when driven at 1/16 microstepping uses their ‘microPlyer’ tech to interpolate to 1/256 : The loudest thing on the machine is the PSU’s fan.  Creepy quiet.  you can check out their pdf datasheet here for more techy-info, or this forum post.
  • RepRap Firmware : Having used Marlin, Repetier, and Sailfish firmwares in the past, RRF is hands down my favorite.  Super easy to edit, and create custom macros.
  • Duet Web Control (DWC) : Comes with its own web-server, similar to Octoprint, but specifically for the Duet hardware.
  • Actively developed, active community/forum.

Duet Links

RepRap Firmware Links

Assembly Notes

The assembly of the TLM took a little under three hours with the help of a friend, following the printer instructions that came with it.  Nothing was missing, nothing went wrong.  The only think that took a chunk of time was rewiring the electronics to plug into the Duet.

  • For setting up the TLM with the Duet, this is the assembly guide I used: https://www.thingiverse.com/thing:2355136 : This was a lifesaver!  Used all their firmware configurations by default.  There’s also a forum post here that discusses this conversion.
  • Had to rewire the endstops:  The order of the wires that plug into the Duet are a very different order from the wires that plugged into the MKS SBase, and are an even different order than how they plug into the endstops themselves.  Tracking this order is (obviously) really importing when rewiring them!
  • All the other connectors that plugged into the MKS SBase plugged directly into the Duet, except I had to cut off the side-clips so they could slide into the Dupont conectors correctly.  A combo of side-cutters and exacto-knive
  • BLTouch :
    • Had two sets of wires:  One needed entirely rewired to plug into the Duet expansion pin, while the other needed trimmed & rewired to a single plug, since the other wires weren’t needed.
    • Had to cut the trace on the board (after removing from the delta effector) to switch it from 12 to 24v.
  • I needed to switch the PSU from 220v to 110v, based on where I live.
  • As it turns out, the thermistor for the heated bed was bad: I kept getting 9000 deg reading from the firmware.  However, and somewhat coincidentally, they shipped with an extra thermistor;  I taped it to the bottom of the silicon heater, and it was up and running.
  • The top of each of the tower carriages has a small set-screw that is what trips the optical endstops.  I hadn’t done any adjustments to these:  They ‘looked’ ok.  A few weeks of printing later I checked them with my calipers, and they were up to 1.5mm off from each other, and felt loose in their threads:  I removed them all, applied blue threadlocker, and  screwed them in so a consistent amount was sticking out the top (6mm seemed like a good number).

Slicer Configuration

I use Simplify3D as my primary slicer :  It actually has a built-in preset for the TLM : Help -> Configuration Assistant -> Select Printer -> Tevo Little Monster.

I only had to modify a few things to start:

  • In RRF’s config.g, you need to set ‘M555 P2’ : This ‘sets compatibility’ to look like Marlin, which appears only to matter when trying to communicate with host software like Simplify3D, Octoprint, etc.  Up until then I had it set to P0 (RepRap Firmware), and I couldn’t get S3D to connect.  What’s interesting is that the baud rate seems to not matter:  I’ve had a number of different values and it connects fine.  RADDS, on the other hand, needs 115200.
  • Created a new ‘Tools -> Firmware Configuration’ setup for all the appropriate RepRap Firmware G & M codes.  It’s also important in the ‘Communication’ tab to set ‘Flow Control’ to ‘Hardware Flow Control’.
  • The above Duet assembly guide Thingiverse link comes with all the needed configuration .g files to get things working properly.  To support them, here’s my start/end scripts.  Obviously, you need to ‘Run Mesh Grid Compensation’ (G32) to store out the heightmap.csv that the G29 reads before print.  But you really only need to do this once in a great while.
; starting script
G32 ; Run the bed.g macro which homes and auto-calibrates the machine - also loads the last mesh grid
G92 E0 ; zero extruder
M98 PpurgeBeforePrint.g ; Purge the extruder along the front of the printer
; ending script
G1 E-10 F900 ; Retract 10mm at 15 mm/sec of filament to clean the nozzle.
M106 P1 S0 ; turn off filament cooler fan
M104 S0 ; turn off extruder
M140 S0 ; turn off bed
G28 ; Home all
M98 PplaySong.g ; play song when print ends
  • The purgeBeforePrint.g has the below code.  I found that printing small items, even with multiple skirts, didn’t always purge enough based on all the ‘pre-drool’ that came out of the head.  This lays down a fat line across the front.  A lot like my old Makerbot used to do.
G1 X-60 Y-150 Z.4 F3600
G1 X60 Y-150 Z.4 F1200 E30
  • In the G-Code tab, make sure to:
    • Set “Relative Extrusion Distances”.
    • Set the “Firmware Configuration Type” to the custom firmware I made above.
  • In the Temperatures tab, I always uncheck “Wait for  temperature controller to stabilize before beginning build”, since RRF will become non-responsive until that temp is hit.  I manage my own temps manually.

Getting started with Adafruit’s Circuit Playground Express

Overview

I’ve had a dream of authoring Python code directly on a microcontroller board for a long time.  That became a reality with MicroPython and the pyboard, but I didn’t jump in until my Circuit Playground Express (CPE, below) board from Adafruit showed up recently.

cpe <- CPE in bootloader mode!

This blog post is written as notes for my future-self, when I forget things.  But feel free to follow along reader…

I wrote this guide because despite the fact Adafruit has lot of data out there, it took me hours to sort through it all and figure out what applied, and what didn’t.


 

Circuit Playground Express Links


Required Hardware


Adafruit Setup Docs

It should be noted that I myself did all of these steps in the below order.  Which makes me wonder, for example, if the drivers & utils I installed during the Arduino section benefited later steps.  Each of these docs is broken out into more detail below The Bootloader section.

  • Circuit Playground Lesson #0 : Arduino Setup
    • This is authored for the “Circuit Playground” (the precursor to the CPE, it is a different thing), but docs still appears to apply.  Probably the best first place to start, but focused on Arduino.
  • MakeCode
    • If you want to try your hand at MakeCode programming on the CPE (Visual blocks, or JavaScript), start here.
  • CircuitPython Setup
    • This is actually a sub-doc for another tutorial, but explains how to setup CircuitPython on the CPE.
    • CircuitPyhon is based on MicroPython, with some differences.

The Bootloader

This CPE bootloader info applies to Arduino, MakeCode, and CircuitPython, so it’s worth calling out here.

Check the Bootloader:

  • Nice (MakeCode) overview here: “Downloading and Flashing“.  It should be noted that Arduino uploads via its own IDE, but you still need a bootloader to receive the data.  More info under “UF2 Bootloader Details“.
  • The first time you plug the CPE in over USB (before any other configuration / software installs), see if the bootloader works.  Press the reset button twice:  All the ring-LEDs should turn green, and D13 should be slowly pulsing.  The image a the top of this post shows this.
  • The issue I had is, the image in the linked docs don’t show the green LEDs:  Since mine were green, and the image of the docs were not, I thought I had a problem.  I did not.
  • IMPORTANT: Once the software is configured correctly (this started happening for me once I configured Arduino), entering bootloader mode should pop open a (Windows) Explorer.  However, the CPE has two different “Windows Explorer modes”:
    • “Bootloader Mode” : Again, all the LEDs should be red, and you should see a few files on it:
      • INDEX.HTM <- web link to the CPE
      • INFO_UF2.TXT  <- tells you about the bootloader
      • CURRENT.UF2  <- the current firware
    • “Program Mode” (I made that term up) : This is the the mode where you can drag & drop your programs onto the board.  This shows up on first time plug-in (usually takes 30 seconds or so for the Explorer window to pop open), or when you press the reset button once.  For example, with CircuitPython installed, I see these files:
      • /lib <- imported bundle libraries
      • code.py <- Main code to execute
      • boot_out.txt
  • Here’s a short video showing how the bootloader works:


Initial Arduino Setup

Based on Circuit Playground Lesson #0 : The links below are entirely from this tutorial, I’m just calling out some of the major points & gotchas.

I got the CPE with the goal of authoring Python code for it.  But based on all the initial documentation I could find, it seemed like Arduino was where one should start.

Install

  • From the docs for your OS: (Windows links below)
  • Add Circuit Playground to Arduino
    • (Obviously) follow all the steps here adding drivers and external packages.
    • This part really confused me for a bit (and Adafruit tech support to the rescue):  Be sure to choose the right board from Tools -> Board Menu.
      • The right board will be under the “Arduino SAMD (…) Boards” section, called “Arduino Circuit Playground Express”.  Any other board with a similar name (like, say, “Circuit Playground”) is wrong.  You’ll know it’s wrong because it won’t upload your sketch correctly.
      • See verbose errors and whatnot from my forum post here.
    • Once you’ve selected the correct COM port, you can then access:
      • Files -> Examples -> Adafruit CircuitPlayground  -> And choose a sketch therein for upload & test.
  • Other Notes:
    • During this process, I couldn’t get Arduino to connect.  After rebooting my machine and restarting the Arduino IDE, it asked me to install additional drivers, which I did.  Around that time things started working correctly.

Docs

  • The Arduino “Adafruit Circuit Playground Library Reference” can be found here.

Initial MakeCode Setup

Based on Adafruit’s MakeCode docs:  MakeCode provide a visual programming environment, JavaScript, all programmed in-browser.

Install

There really isn’t an “Install” per-say:  Just browse to : https://makecode.adafruit.com to open the editor.

You can now code in either the “visual blocks”, or JavaScript.

Presuming you can enter “bootloader” mode (discussed in the Arduino section above), once you save a .uf2 file from the MakeCode app, if you drag & drop it onto that open Explorer window, the window should close, and the app immediately run on your CPE.  Pretty slick!

I presume though, that some of those Arduino install steps were required, since my PC wouldn’t recognize the CPE as a USB device properly until then, which would have prevented me from dragging & dropping the .uf2 files onto it.

Docs


Initial CircuitPython Setup

From the Adafruit “Circuit Python Setup” docs (for the Metro M0 Express board, not that it matters so much).

This is the whole reason I got this hardware, so far, not disappointed!

Install

  • The above docs do a great job of covering it, but be sure you choose “Circuit Playground Express” options, since the tutorial was written for another board.
  • I flashed the CPE by just drag&dropping the downloaded ‘adafruit-circuitpython-circuitplayground_express-1.0.0.uf2’ (for CircuitPython 1.0, not 2.0, which at the time of this writing just came out and is in beta) file onto the CPE while in bootloader mode.  Note, it did take ‘a while’ for it to update, at one point I thought maybe it had broken.  But then it started working again.
  • I used the CircuitPython Blinky example to upload my first Python module, and it worked!
  • It appears that my current version of CircuitPython is running Python version 3.4.0.

Getting Bundles

  • CircuitPython ‘bundles’ Python libraries together for use on the CPE. Since the space on the CPE is so limited, sometimes you can only include specific compiled libraries with your module.
  • You can access the bundles here @ github: adafruit/adafruit_CircuitPython_Bundle
    • Don’t make the mistake I did:  Just grab (for example) the “adafruit-circuitpython-bundle-1.0.0-20170815.zip” file in the downloads section, not one of the individual libraries above:  They don’t have the ‘lib’ folder you need for transfer to the CPE.

Setting up a Serial REPL Editor

This is a great feature, that allows you to have a live Python interpreter running on the CPE.  This lets you query the board directly in a live coding session, awesome feature.  What is REPL you ask:  Answer here!

An overview of how to set this process can be found here: “Serial REPL“.

Other Info:

  • I used PuTTY for this connection.
  • It looks like the COM port for my CPE changes pretty often, so I have to access the Windows Device Manager every time I want to run this feature.  Mine shows up as “Teensy USB Serial”, and tends to bounce around COM9->11
  • You can’t connect when you’re in bootloader mode:  Get a program running first.
  • Note, on first time connect, you can’t connect in via REPL until the Windows Explorer (auto) opens:  That signifies that the machine is ready.
  • If, when the terminal screen comes up its black/no info, hit ctrl+c to break out of the running program and access the terminal: >>>
  • type help() to see a list of built-in functions.
  • You can use this same connection (before the ctrl+c) to see the output of any module currently running.

Docs


Really look forward to seeing what this little board can do!