Kodak Portrait
Despite the name, it's 3d. Despite the vendor/label, it's surprisingly mod-friendly
Current status
General notes/instructions
the stock print surface is a mirror, so try not to break it when removing prints or anything.
if printing pet-g, wait for the bed to cool down before removing the print, and/or use glue to provide a debonding agent. washing the bed with cold water also works.
the nozzle on the right (T0; default) is hardened steel; filaments with additives *should* work, but not tested yet
-
the printer uses the hotend on the right as a Z probe
the printer has been klipperified (WIP)! stock slicer won't work anymore!
password for root user is, for now, identical to hswaw wifi password
-
-
don't do Nix things when a print is in progress; overloads the RPI and makes klipper unhappy
takes a while to boot; when it's done you should see
KlipperScreen interface
profile(s) for slicer(s) (WIP)
PrusaSlicer
Very rudimentary working config. Still needs some adjustments. kodak.zip
There's a bed texture and shape included, but they don't get inlined into config; you'll need to set them yourself. Go to “Printer settings” → “General”, switch settings mode to expert, click “Set” next to bed shape, and load texture and model there.
When adding profiles for more filaments, you may want to lower the temperature from what you'd probably use on other printers, to compensate a bit for the poor part cooling of this printer.
Other slicers?
When configuring other slicers use this for “start g-code”:
PRINT_START T0_USED={ is_extruder_used[0] } T1_USED={ is_extruder_used[1] } T0_TARGET_TEMPERATURE={ first_layer_temperature[0] } T1_TARGET_TEMPERATURE={ first_layer_temperature[1] } BED_TEMPERATURE=[first_layer_bed_temperature]
The printer will handle everything on its own through this macro.
This for “tool change” (subject to change):
G1 Z{layer_z + 5} F5000
T{next_extruder} HOT=1 RETRACT=1
{if layer_num == 0 }
M109 T{next_extruder} S{first_layer_temperature[next_extruder]}
{else}
M109 T{next_extruder} S{temperature[next_extruder]}
{endif}
G1 Z{layer_z}
And this for finishing the print:
FINISH_PRINT
Adjust for macro expansion rules of your slicer. As far as I understand, re-creating these in cura-based slicers may not be trivial.
Hardware documentation
standard raspberry pi 3b
standard smoothieboard v1
LED driver board connected to the rpi (generic 4pin - rgb+ground - pwm-driven ledstrip)
removed most of hotglue as it did not hold the connectors anymore anyway
Raspberry PI
Nothing really surprising here
Smoothieboard
Almost all connected cables are labeled; motor connector labels are taken mostly from configuration file, as they were only labeled M{1..5}
Stock smoothieware config: https://code.hackerspace.pl/ar/kodak-portrait/src/branch/main/smoothie-stock/config
See also http://smoothieware.org/pinout
legend:
HE0: heater for extruder 1
HE1: heater for extruder 2
HBR: heatbed heater
FC: M106/M107 Fan; extruder fan(s?)
FA: M42/M43 Fan; “ambient fan”? possibly the exhaust/filter fan
Config also references the two free endsop inputs as filament runout sensors, but neither sensors nor cables are present.
Power supply
Again, nothing really surprising here. Just a “Mean Well RSP-320-12” and a stepdown board providing 5V to rpi and smoothie
TODO
WIP
This section needs expansion. You can help by prodding my (ari) ADHD brain to do something with it, or pick an item from TODO list yourself.
DONE
This section needs expansion. You can help by prodding my (ari) ADHD brain to do something with it, or pick an item from TODO list yourself.
hardware documentation (what's connected where and how)
calibration, at least to the extent reasonable before we have proper slicer profiles
general UI/UX:
fix camera/audio under nixos
solve filament/power switch access
filament runout sensors - ordered two, will need installing them properly and changing the printer config a bit
The printer is now 300% more gay!
Klipper side of the configuration is now done, for the most part
converted the printer from 12V to 24V
rework part cooling; it's abysmal
obtain more hotend socks, and rework the part cooling solution no longer relevant - switched to revo
skewed bed
actual printing area limitations
Preliminary findings
controlled with a normal rpi3 + smoothieboard combo
screen is connected over hdmi (+ usb for touch?), 800×480 res
camera uses the camera interface
one usb port is used for connecting to smoothieboard, one is routed to the outside, and one is free
there's a speaker!
doesn't appear to do anything fancy to lock-out mods
disassembly, at least for getting to the electronics compartment is trivial:
unscrew two screws on left and right (4 total) that hold the bottom panel (regular hex bit)
unscrew the feet (next size larger hex bit)
unscrew 4 screws on the *sides* of the metal box holding the electronics (the ones that you see in front of you hold the fans)
remember to detach the fans when opening the box
no longer relevant
these items referred to stock software/firmware, leaving them here for future reference for anyone from the wider internets stumbling upon this page
ran raspbian by default
didn't complain about creating /root/.ssh/authorized_keys
on running system, root filesystem is by-default mounted readonly, which is a Good Choice™ on an rpi with sd card; mount -o remount,rw /
and later mount -o remount,ro /
work as expected.
password for pi
user is, for now, identical to hswaw wifi password, passwordless sudo is enabled.
the printer runs its control panel using chromium pointed at a webserver running locally. that's listening on all interfaces. try
http://printers-ip-address:8888/home (check setup → connectivity → network)
Resources
Plans
Would prefer to keep hardware mostly unmodified, except for following xD
replace the e3d v6 with e3d revo (and obxidian nozzles) which is almost a drop-in replacement
replace the 12V PSU with 24V
add filament runout sensors
buy angled cables and rotate the screen proper way round.
accelerometer for input shaping
brushes for automated nozzle cleaning