Three recent physical projects: Difference between revisions

No edit summary
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''[[Dankblog|dankblog!]] 2024-06-22, 2334 EST, at [[Viewpoint|the danktower]]'''
'''[[Dankblog|dankblog!]] 2024-06-22, 0130 EDT, at [[Viewpoint|the danktower]]'''
 
[[File:Printingstation.jpg|frame|my printing station]]
I recently got my [https://bambulab.com/en/x1 Bambu X1 Carbon] working again, after being offline for almost two years. Doing so motivated me to knock out some projects I'd been contemplating.
I recently got my [https://bambulab.com/en/x1 Bambu X1 Carbon] working again, after being offline for almost two years. Doing so motivated me to knock out some projects I'd been contemplating.


Line 30: Line 30:
Finally, we'll want to add WiFi to this setup (the Mega has neither Ethernet nor WiFi built in). Get an [https://www.amazon.com/DIYmall-ESP8266-ESP-01S-Serial-Transceiver/dp/B00O34AGSU ESP8266 ESP-01S] WiFi module along with a [https://www.eitkw.com/product/esp-01-adapter-module-3-3-5-v-arduino-compatible/ 3.3V-5V adapter]. Without the adapter, you'll need to level shift the 5V UART TX signal from the Mega, and add some resistors on the power hookup. This $0.50 adapter handles that for you. Stick it in the top, and solder all four points. Obviously, use unoccupied horizontal channels. Two wires for V and G, four solder points, you know the drill. We'll also need two longer wires for RX and TX. Solder them in, and prepare a 1x2P Dupont hookup. These will be going into RX3 and TX3 on the Mega.
Finally, we'll want to add WiFi to this setup (the Mega has neither Ethernet nor WiFi built in). Get an [https://www.amazon.com/DIYmall-ESP8266-ESP-01S-Serial-Transceiver/dp/B00O34AGSU ESP8266 ESP-01S] WiFi module along with a [https://www.eitkw.com/product/esp-01-adapter-module-3-3-5-v-arduino-compatible/ 3.3V-5V adapter]. Without the adapter, you'll need to level shift the 5V UART TX signal from the Mega, and add some resistors on the power hookup. This $0.50 adapter handles that for you. Stick it in the top, and solder all four points. Obviously, use unoccupied horizontal channels. Two wires for V and G, four solder points, you know the drill. We'll also need two longer wires for RX and TX. Solder them in, and prepare a 1x2P Dupont hookup. These will be going into RX3 and TX3 on the Mega.


We'll want some kind of housing to keep these sensors and plugs in place, but we don't want to block the air intakes. I designed the following in a few minutes using [https://github.com/dankamongmen/openscad-models/blob/master/airmon.scad OpenSCAD]:
We'll want some kind of housing to keep these sensors and plugs in place, but we don't want to block the air intakes. I designed one in a few minutes using [https://github.com/dankamongmen/openscad-models/blob/master/airmon.scad OpenSCAD]. This results in a cuboid with two channels for the sensors, and a through for the plugs. I printed it with black ABS. Thread the plugs through, and then ensure all eight sensors are securely in their channels. If you'd like, add some superglue to these channels. You ought now have a secure sensor array.


<syntaxhighlight>
That's the hard part. Now, print a case for the Mega; I liked [https://www.thingiverse.com/thing:4375248 this one] from Thingiverse. I used PLA here, mostly because I needed to print supports for the topside, and I didn't have any HIPS breakaway filament. PVA isn't suitable for ABS; the temperature mismatch will fuck up adhesion.
include <cyl_head_bolt.scad>
[[File:Megaprint.png|frame|Printing the top]]
With our case in hand, insert the Mega2560 and close the case. Solder two wires from the V and G channels of the perfboard, and take these into a [https://www.amazon.com/dp/B07QLL5NXT USB-B screw terminal] (the Arduino wants 7V from a direct line in, but only 5V from a USB hookup). Insert the terminal into the Mega. Insert the 1x2P plug into TX3+RX3, and the 1x8P plug into A0..A7. You ought now power on the Mega when you attach the USB to the top plug. Congratulations! The Arduino code is trivial; just poll the eight analog inputs, and stream the results over WiFi using MQTT or whatever you'd like.


outw = 37.5;
outl = 88.37;
thick = 1.5 + .6;
h = 8;
difference(){
cube([outw + 2, outl + 2, h]);
union(){
translate([1, 1, 2]){
cube([thick, outl, h]);
}
translate([outw + 1 - thick, 1, 2]){
cube([thick, outl, h]);
}
translate([(outw + 2) / 2, 5, h]){
  hole_threaded(name="M4", h, "yes", cltd=0.6);
}
translate([(outw + 2) / 2, outl - 5, h]){
  hole_threaded(name="M4", h, "yes", cltd=0.6);
}
}
}
</syntaxhighlight>
This results in a cuboid with two channels for the sensors, and a through for the plugs. I printed it with black ABS. Thread the plugs through, and then ensure all eight sensors are securely in their channels. If you'd like, add some superglue to these channels. You ought now have a secure sensor array.
That's the hard part. Now, print a case for the Mega; I liked [https://www.thingiverse.com/thing:4375248 this one] from Thingiverse. I used PLA here, mostly because I needed to print supports for the topside, and I didn't have any HIPS breakaway filament. PVA isn't suitable for ABS; the temperature mismatch will fuck up adhesion.
[[File:Megaprint.png|Printing the top]]
==Case faceplate with OLED display==
==Case faceplate with OLED display==
I'd already [[Waveshare_AMOLED|designed this faceplate]] and the AMOLED+[[Raspberry_Pi|Raspberry Pi]] that sits inside. I added a strip of high-intensity CoB LEDs, as long intended. I reprinted it using black ABS. To power the 12V LEDs, I took a SATA power cable and cut off the female end. I then separated the five cables. Bifurcate the ground wire, and solder a ground + 12V to the LED strip. SATA provides 5V and 12V (and sometimes 3.3V, unnecessary here), so we'll use the 5V to power the Pi+AMOLED (this will provide more amperage than a USB hookup). Bifurcate the 5V and second ground line, and solder one pair to each of two USB-µA plugs. Thread the LED strip through the faceplate in front of the OLED.
[[File:Frontplate-leds.jpg|frame]]
Beautiful! Tremendous! This occupies two 5.25" bays.


==Filter tower==
==Filter tower==
Some filament types produce toxins when printed, including my workhorse ABS. It thus seems sensible to try and filter some of the VOCs. There's a lovely "[https://www.printables.com/model/272525-bentobox-v20-carbon-filter-for-bambu-lab-x1c-enclo BentoBox]" model for the Bambu X1C on Thingiverse. Grab it, and print the seven necessary components (I used ABS). They'll snap into one another, and you can add 2mm disk magnets to improve on things. I had numerous high-power 12V (6+ krpm) 40mm fans extracted from a [[A_Rack_of_One%27s_Own|Supermicro 4U server]] lying around, perfect for the BentoBox. I added activated acid-free charcoal and a HEPA filter and connected the two fans with a Y cable. There were now two problems:
* How to power the fans?
* How to control the fans?
I only wanted the (loud) fans to run when I was actually printing toxic materials. The easiest way to do this was a NO (normally open) temperature switch. Only toxic materials require heating the chamber up to 35C or higher, and I keep the Danktower significantly cooler than that (35C~=95F). Then, to drive the fans off the 24V of the Bambu, I used an efficient, cheap LM2596 buck converter. Easy peasy!


'''previously: "[[The_beginning_of_the_end_of_iptables|The beginning of the end of iptables]]" 2024-04-19'''
'''previously: "[[The_beginning_of_the_end_of_iptables|The beginning of the end of iptables]]" 2024-04-19'''


[[Category:Blog]]
[[Category:Blog]]
[[Category:Projects]]