Bambu Carbon X1C: Difference between revisions

Line 72: Line 72:


====Electronics====
====Electronics====
I'll be adding an ESP32-WROOM with a:
I'll be adding an [https://docs.arduino.cc/hardware/uno-r4-wifi/ Arduino UNO R4 Wifi] plus:
* DS18B20 [https://en.wikipedia.org/wiki/1-Wire 1-Wire] temperature sensor
* DS18B20 [https://en.wikipedia.org/wiki/1-Wire 1-Wire] temperature sensor
* 2x IRLB8721 logic-level MOSFETs
* 2x IRLB8721 logic-level MOSFETs
* Molex [[PC Fans|4-pin fan]] plug
* a Molex [[PC Fans|4-pin fan]] plug
* SSD1306 OLED display
* an SSD1306 OLED display
* 60C normally-closed temperature switch
* a 60C normally-closed temperature switch
* 120VAC -> 12V 10A AC adapter
* a 120VAC -> 12V 10A AC adapter
* 2x 12V ceramic heating elements
* 2x 12V ceramic heating elements
* LMS2596 buck converter taking 12V to 5V for the air quality sensors
* a LMS2596 buck converter taking 12V to 5V for the air quality sensors
* [[Three_recent_physical_projects|air quality sensors]]
* [[Three_recent_physical_projects|air quality sensors]]
The AC adapter theoretically offers 120W, but it's safer to assume no more than 90W (¾ of the rated output). This will be used to drive our heating elements and fans. The ESP32 itself is powered off the AMS circuit. It ought not draw more than 500 mA, even when transmitting on wireless, which ought be safe (and is less than our fans were drawing). Remember, Bambu doesn't guarantee any slack on the AMS circuit, and expressly instructs you not to draw from it.
The AC adapter theoretically offers 120W, but it's safer to assume no more than 90W (¾ of the rated output). This will be used to drive our heating elements and fans. The Arduino itself is powered off the AMS circuit. Leaving aside peripherals, it ought not draw more than 500 mA, even when transmitting on wireless. This ought be safe, and is less than our fans were previously drawing from the AMS. Remember, Bambu doesn't guarantee any slack on the AMS circuit, and expressly instructs you not to draw from it.


The temperature switch is a final guard against a failure in power control; it will open (disabling the heater) at 60C, the maximum temperature we want in the chamber. The ESP32 enables the heater when either:
The temperature switch is a final guard against a failure in power control; it will open (disabling the heater) at 60C, the maximum temperature we want in the chamber. The Arduino enables the heater when either:
* the chamber temperature, as measured by the ESP32, is below 10C, and anything is being printed, or
* the chamber temperature, as measured by the DS18B20, is below 10C, and anything is being printed, or
* the filament being printed is associated with a desired chamber temperature, and the chamber temperature, as measured by the ESP32, is below that temperature. no filament is associated with a desired chamber temperature above 60C.
* the filament being printed is associated with a desired chamber temperature, and the chamber temperature, as measured by the DS18B20, is below that temperature. no filament is associated with a desired chamber temperature above 60C.
The ESP32 enables the fans (via PWM) when either:
The Arduino enables the fans (via PWM) when either:
* the filament being printed is associated with toxicity, or
* the filament being printed is associated with toxicity, or
* the VOC detector indicates more VOCs than normal
* the VOC detector indicates more VOCs than normal
These filament associations are encoded in the firmware. The filament being printed is acquired from the Bambu's MQTT. The VOC detector may fire even when there is no printing going on (it is expected, for instance, to run for some time after conclusion of a print).
These filament associations are encoded in the firmware. The filament being printed is acquired from the Bambu's MQTT. The VOC detector may fire even when there is no printing going on (it is expected, for instance, to run for some time after conclusion of a print).


 
[[CATEGORY: Hardware]]
[[CATEGORY: Projects]]
[[CATEGORY: 3D printing]]
[[CATEGORY: 3D printing]]