This case is a two piece sliding design for easy access to wiring, with a push button quick release for fast toolless access. It is designed to fit as many components as possible in a small footprint to save on bench space.
Short demonstration video: https://www.youtube.com/watch?v=4l3C41WNFsw
It can accommodate an SKR V1.3, a Raspberry Pi 3B+, 3 buck converters, a two channel 10amp relay, a single channel 30amp relay, two KCD11 switches, an XT60E-M panel mount power connector, and has a modular fan duct to optimize cooling.
Due to the packaging issues of having the larger SKR V1.3 board, a Raspberry Pi, and multiple additional modules, there is only a version with the cable port on the rear (no side port version available as on V1). Unfortunately as I have rewired my own printer with a longer wiring harness I cannot confirm if the stock wiring harness of the Ender 3 is long enough to be able to be used with minimal changes as was the case with V1.
UPDATE: (30 June 2020)
Very small revision to the case bottom. Had to move something that didn't combine properly by literally 0.051mm. Didn't affect function at all, it just annoyed my perfectionism.
Added a .STEP file so people can customize the case for their own components.
UPDATE: (31 July 2020)
This case is designed for an SKR V1.3, and the summary has always said this.
It does not fit stock Creality boards or any stock dimension boards such as the SKR Mini E3.
UPDATE: (14 November 2020)
Added wiring diagram image and text explanation of how the wiring works in my set up.
UPDATE: (14 November 2020)
Added a remix of the fan duct with a cut out for the EXT connector. This connector isn't used by the standard Ender 3 LCD, but some touchscreen mods need to use this connector.
You will need to use support in a few places. Use "touching build plate" with an 80 degree angle. I recommend using tree supports. See the included pictures for the required areas.
BOTTOM CASE:
On the bottom half of the case you NEED to support the top of the slider channels. It is also a good idea to support the rear IO opening of the Raspberry Pi, as it is a reasonably long bridge. The SD card opening on the bottom should be okay without supports, but they obviously don't hurt. The other areas should be fine, and you absolutely do not need supports for the fan grille area.
TOP CASE:
For best results print the top half of the case upside down (i.e. lcd screen flat to the bed). I advise against printing the top half of the case in an LCD side up orientation (i.e. as it would sit on your bench once completed). I have tried this, and found that the two sides can move slightly during the long print, and when the rear bridges them together you can end up with a layer shift effect. If shifted inwards it not only looks bad, but it can also prevent the case from closing.
You will NEED to support two places: the LCD lip at bed level, and the bottom (top when printing upside down) of the LCD lip at the front of the case. I recommend using tree supports as the front supported area is quite high and narrow, and the larger base of tree supports will be more stable for the long print. You don't "need" to support the rear button hole, but it doesn't hurt. The cooling outlets do not need support. If your slicer is trying to add a massive amount of support material to support the sliders, then you didn't set your support angle to 80 degrees.
Make sure the side with the cooling outlet is facing your part cooling fan's air stream, as cooling is critical here. The overhang angles on the SD card and USB openings have a tendency to curl up if not adequately cooled. Support doesn't help with this.
OTHER PARTS:
You need to print one duct, one button, two button retainers, two rockers, and two rocker pivots. Use a lot of walls/perimeters for the button bar, or even print it solid. The design may look bigger and stronger than it needs to be, but it actually bends quite a lot due to the resistance of the rocker "springs". If it bends too much it won't actuate the rockers enough for the case to open.
Similarly to the top half of the case, I suggest printing the fan duct orientated with the fan mounting face side of the duct facing your part cooling fan to prevent curling.
FASTENERS REQUIRED:
17x M2.5x6mm (or 5mm)
These are for the Raspberry Pi, relays, and buck converters. Obviously you will need less than 17x if you're not installing everything. Only the Raspberry Pi and relays actually require M2.5 due to hole size and component clearances, but I chose to also use M2.5 for the buck convertors so that the lower level is all the same size, reducing the chance of accidentally ruining an M2.5 hole with an M3 screw if your brain takes a vacation.2x M2.5x8mm
These are for the XT60E-M connector. The case is designed to accommodate countersunk screws because they look nicer, but you can use any M2.5 screw that doesn't have a huge head that blocks the XT60 connector from plugging in. You can also use longer screws (but not shorter) if you don't have any 8mm on hand.8x M3x10mm
Four for the SKR, four for the latch components. You can also use 15mm for the SKR. I recommend saving that for if you accidentally strip the first 10mm of thread.4x M3x12mm
These are for the case fan. As it's an uncommon size that you may not have on hand you can use longer screws (15-20mm) if needed. If using longer screws check that the bottom screw on the inside clears the SKR's EXP2 header, you can leave the screw out if it does not.
RASPBERRY PI:
You will need a 90 degree USB cable for powering the RPi. These are commonly (but not universally, so be careful) referred to as "left angle".
An example of what you want: https://i.imgur.com/nEgZJSN.jpg
Note the flat side of the connector facing up relative to the direction of the plug.Alternatively you can power the RPi by the GPIO pinheader, or a spliced 90 degree left angle USB cable/adapter, using a buck converter tuned to 5volt.
I know that powering the RPi like this isn't desirable for a lot of people. Earlier versions of the design had the SKR board turned 180 degrees so the PI could be further to the side to make room for a straight micro USB connector, but this pushed the wiring terminals of the SKR against the back wall of the case, making them very difficult to wire. As a core design goal of V2 was to make access to wiring easy (and indeed the reason for the two piece design) I decided to preference that.
POWER CONNECTOR:
The case accommodates an "XT60E-M" panel mount socket for the XT60 connector to plug in to. Although I originally designed an XT60 clamp ala V1, I learned that newer Ender3's use a branded AMASS XT60 connector (due to the crimping controversy), thus there are two different kinds of connectors used on different Ender 3's, which require different clamp designs. Using an XT60E-M accommodates everyone. 14 AWG (gauge) wire should be enough, silicone is nicer.
RELAYS:
There is space for two different relay boards. One is a two channel 5volt 10amp board for turning small accessories on and off (i.e. LED lights), and the other is a big single channel 5volt 30amp relay for switching the DC line between the power supply and the printer, allowing you to remotely turn the printer on and off via Octoprint.
To do this you need to leave the power supply running (don't worry, this is no different than leaving any "power brick" plugged in). If doing so I suggest using a Mean Well LRS-350-24 power supply, as comes standard with the Ender 3 Pro. Not only is it a more reputable brand that probably won't burn your house down, but it's fan turns off at low temperatures (i.e. when running only an idle RPi) so it doesn't permanently run a noisy fan like the factory Ender 3 non-Pro power supply does.
When installing the two channel 10amp relay you will likely need to trim some of the legs under the board to clear the roof of the RPi SD card slot. These are the legs nearest to the corner that doesn't have a screw. Just snip them off with the blue flush cutters that came with your Ender 3 until the relay can sit flat on it's mounting points. Doing so doesn't effect function or durability of the relay in any way.
As dimensions can vary, these are the relays I used:
https://www.aliexpress.com/item/32814917488.html
https://www.aliexpress.com/item/32801130690.htmlNote: I had trouble with the 30amp relay occasionally not triggering until I increased the voltage on the buck converter I'm using to power it to 5.25v (it's also powering my RPi, so that's as high as I was willing to go). I'm not sure it's just a bad relay (because I was too dumb to order a spare like I normally do), or if they're rubbish by design.
BUCK CONVERTERS:
If you use a buck converter to power your Raspberry Pi put a heatsink on the buck's LM2596 chip. It's well documented that running them at anywhere near their so called "3 amp" capacity can cause them to overheat.
As dimensions can vary, these are the buck converters I used:
https://www.aliexpress.com/item/32798886986.htmlNote: If you want to install a buck converter under the SKR board near the Raspberry Pi power connector make sure you buy buck convertors with silver capacitors. They are notably shorter than the black capacitors used on some buck converters, which may be too tall in this position.
SWITCHES:
Nothing too special here. The part is a "KCD11" switch. Use them as you wish. For what it's worth, I have mine as an override to turn the printer on without the RPi (middle output leg to 30amp relay trigger, one outer leg to RPi GPIO, the other leg to ground), and the second switch as an emergency shutoff that can cut the output of the first switch before the relay. I will however probably order an on-off-on switch to put both jobs on one switch, and use the second switch for my LED lights instead.
LATCH:
The retainers should (hopefully!) allow you to tighten the screws down fully while leaving enough of a gap to allow the latch parts to move freely. The compliant mechanism (springy bit) of the rocker will wear down over time. That's not to say they will excessively wear after only a few uses (they should last hundreds), but if you find the button not popping back out, print some new ones.
LCD CABLE:
The factory cable is a lot longer than required, and can be a pain when trying to close the case. You can shorten it using a 2.54mm 2x5p IDC connector. You just cut the cable, slide it in to the new connector, and squeeze it closed with a clamp/vice (or just hit it with a nearby wrench as I did) to pierce the cable. Buy more than one to practice on the bit of cable you cut off before you do the real deal.
FAN DUCT:
Unfortunately due to the LCD buzzer getting in the way, the cooling duct cannot extend to cover the (frontmost) X stepper driver. There is still plenty of airflow coming out the end of the duct to cool the X stepper, and the buzzer clears the driver and heatsink just fine.
Alternatively you can move the X stepper driver (and cable) to the unused E1 socket on the opposite end of the board. To do so you will need to make a few pinout changes in Marlin, as well as move two jumpers on the board.
(If you are not using Sensorless Homing, you do not need to move the Sensorless Homing jumper, or make changes to //Trinamic Stallguard pins in Marlin)
Jumper changes:
XUART jumper needs to be moved to E1UART
XST jumper needs to be moved to E1S
https://i.imgur.com/hTU0tDB.jpgIn Marlin you need to change to the following pin numbers in the file:
marlin > src > pins > lpc1768 > pins_btt_skr_v1_3.h
// Trinamic Stallguard pins#define X_MIN_PIN P1_26#define Y_MAX_PIN P1_29// Steppers#define X_STEP_PIN P0_01#define X_DIR_PIN P0_00#define X_ENABLE_PIN P0_10#ifndef X_CS_PIN #define X_CS_PIN P1_01#ifndef E1_CS_PIN #define E1_CS_PIN P1_17#endif// Software serial#define X_SERIAL_TX_PIN P1_04#define X_SERIAL_RX_PIN P1_01#define E1_SERIAL_TX_PIN P4_29#define E1_SERIAL_RX_PIN P1_17
Additionally you need to change to the pin numbers in the file:
marlin > src > pins > lpc1768 > pin_btt_skr_common.h
// Steppers#ifndef E1_STEP_PIN #define E1_STEP_PIN P2_02#endif#ifndef E1_DIR_PIN #define E1_DIR_PIN P2_06#endif#ifndef E1_ENABLE_PIN #define E1_ENABLE_PIN P2_01#endif
WIRING:
This was originally a discussion in the comments section about how the wiring works in my set up. There is also a wiring diagram which I've added in the images. It's by no means how you have to wire your set up, but I've added it here to give people a head start.
Relays:
The 30a relay turns the SKR on and off. It's controlled by the RPI GPIO pins, but can also be powered directly as an override (more explanation in the switches section below)
The 2channel 10a relay is also controlled by the RPI GPIO pins. Currently I use it to turn on/off my 24v LED strip, and have the second channel as a spare.Buck convertors:
One buck convertor is tuned to 5V, and powers the RPI and relays. I powered the relays via the 5v buck instead of by the trigger wire (you do this by removing the JD jumpers on the relays) because it means the power doesn't have to pass though the RPI (which should help avoid a low power situation on the RPI, but in reality probably doesn't matter), and because the RPI GPIO is only 3.3v which was struggling to power the big 30a relay which needs 5v to power it (3.3v as trigger seems to be ok though).
The second buck convertor powers my 12V Noctua case fan, and is after the 30a relay, so it turns on when the SKR is powered.
The third buck convertor is for the hot end fan (another 12v Noctua), and takes it's power from the SKR. The firmware is setup to use the spare heater mosfet to power/control the fan, and automatically turns on/off at 50 celcius.Switches:
In my current setup they both control power to the 30a relay. The first switch is used to choose between the RPI GPIO signal, or 5v directly from the buck convertor. That means if I'm in front of my printer and it's turned off, I can turn the printer on without needing to get a laptop/phone to load Octoprint.
(Apparently you can also setup Octoprint to use a momentary switch to work as an on switch, which might be a better way to do it)
The second switch is connected in line to the output of the first switch, so in an emergency I can "cut" the wire that controls the 30a relay, turning off the printer.
In the future I plan to redo the switches using three position on-off-on switches, so I can put the functions of both current switches on a single switch. That way I can use the second switch to manually control my lights in a similar way that I currently do the 30a relay.
Buy some adhesive silicone non-slip feet for the bottom of the case. It's a lot easier to open when it's not sliding around. The ones I personally use are intended for drone batteries, I find them a lot better than the little silicone dots. Search for "Battery Silicone Non-slip" on Aliexpress and you should find them for a few bucks. Make sure they're thin silicone, and not thick foam.
You can connect your Raspberry Pi to your SKR with three jumper wires instead of a USB cable, thereby keeping all the wiring internal to the case. Instructions for that can be found in his guide: https://github.com/bigtreetech/BIGTREETECH-SKR-V1.3/blob/master/BTT%20SKR%20V1.3/BIGTREETECH%20SKRV1.3%20guide%202019%20-%206.pdf
If you decide to dispose of an unneeded mattress by putting it in the trash over several weeks, don't cut it up inside your spare bedroom no matter how cold it is in the garage. You will end up with dust and lint all over your electronics enclosure, and it will look really bad in the pictures you upload to Thingiverse.
Button.stl | 515.7KB | |
Button_Retainer.stl | 366.5KB | |
Case_Bottom.stl | 2.4MB | |
Case_Top.stl | 1.3MB | |
Ender_3_External_Electronics_Case_V2.step | 2.0MB | |
Fan_Duct.stl | 835.2KB | |
Fan_Duct_with_cutout_for_EXT_connector.stl | 977.8KB | |
Rocker.stl | 54.7KB | |
Rocker_Pivot.stl | 410.0KB |