Shared under the Creative Commons - Attribution - ShareAlike 3.0 license.
Code for the Arduino and Raspberry Pi now up on GitHub - very much work in progress
Overview;
The printer consists of the following parts; Data processing & overall control, a pair of stepper motors to control paper feed (rigid base board carrier) and print head translation and finally the print head itself. In order to attain the desired image resolution, the print head spinning mirror will scan a width of roughly 5mm, to generate a strip similar to that from an inkjet printer. The strips are then built up to form the completed image.
This is the current layout for the various modules (continued below the break).
Figure - System overview (click to expand for more detail)
Background;
The Iron based photographic printing (Siderotype) process dates back to the Herschel Cyanotype, better known as blueprint; which uses the sensitivity to UV light of specific Iron compounds to produce a print. There are numerous other 'alternative' photographic processes many of which should also be suitable.
With the advent of digital cameras it is necessary to print negatives onto transparency film, to allow contact printing, similarly when making enlargements, smaller negatives are scanned and then printed to transparency film.
However printer ink is designed for visible wavelengths and its response to UV wavelengths is variable enough between batches to require repeated time consuming calibration. The transparency film and inks are also fairly costly. The aim for this project is to remove them from the equation, and thus simplify the process from finalising an image to being able to process it. At the same time, allowing full scope in choice of chemistry and media.
I've had questions regarding using this method with other printing chemistry methods such as tintypes. Any chemistry that is sensitive to UV and does not have a very short life-span (wet plates may be possible with humidity control) should be viable. The more sensitive the chemistry, the faster the process should print, up to the limits of the electronics; laser power/signalling speed trade off.
Details;
The following design units have so far been identified. Each needs designing, prototyping and integrating;
- Controller (Raspberry Pi Zero; rPiZero, with TXS0108 voltage level converters for 3.3v to 5v signalling) - DONE
- Motor controllers for paper feed and head movement (DRV8880 stepper controller) - DONE
- Laser power modulation system (x8 iC-HKB 155MHz laser controllers) - DONE
- Laser thermal control system (MAX1968-3A TEC controller) - IN PROGRESS
- Laser calibration system for 7bit power levels + 1bit for laser threshold, using 16bit ADC current sense on the laser output, combined with laser photodiode measurement - DONE / ignoring power photodiode a this point
- Laser data control system (AD9850 Programmable frequency generator 45MHz, and 9bit x 2048 deep, IDT7203 FIFO unit, 8bits utilized) - DONE
- BDR-209 x16 bluray diode; estimated nominal 600mW (no datasheet or part number available for these) - OBTAINED
- Polygon mirror control system (LB11870 Mirror motor driver in samsung ML2241/2510/4725/4521HS/4321NS laser printer head) - DONE
- Laser trigger unit, read re-set (secondary laser system triggering a SR latch SN74LS279ADR) - DONE
- Translation stop/end sensors (opto interrupters) - DONE
- Temperature and humidity control system (Sensirion Humidity sensor SHT21) - DONE
- Focus system for beam (LB1935FA stepper controller & micro stepper motor) - DONE
- Paper feed geometry / kinematics - IN PROGRESS
- Print head mechanics - IN PROGRESS
- Exposure chemistry calculations (exposure duration / laser power) - DONE
- Optical path design (lens selection & adjustment mechanisms) - DONE
All of the setup and ~static systems are controlled by the Arduino using a low speed serial connection to instigate the setup and calibration steps and provide feedback to the piZero for logging/calibration/etc. Whilst the piZero can concentrate on feeding the data to the FIFO buffer and moving the print head and paper feed system.
The UV laser is highest power available (for reasonable cost); BDR-209 x16 bluray diode, nominal 600mW but they have been tested in short duration by others up to 1000mW. So this is as good at it gets with the current technology. A shorter wavelength would be better, but again they are only available at much lower powers (and significant cost). Note that any longer wavelength than 405nm is a no-go, such as the multi-Watt 450nm diodes, that will burn a hole, but wont produce an exposure.
Development Notes (for future, if budget allows; will get prototype running first):
- Current FIFO either needs replacing or D-type flip flops introducing to prevent off time during clock transitions. Currently this means that a portion of the time when the laser should be enabled it is off. Additionally this causes ripples in the output, having 'instantaneous' transitions should give a smoother operating behaviour for the laser.
- Variable clock generator can be replaced by smaller selection of frequencies, thus reducing cost and PCB real estate. Once the behaviour of the chemistry has been researched and requirements established.
- The FIFO, variable clock generator, SR latching logic and D flip flop could be replaced by DRAM and CPLD / FPGA, which would allow the data for a complete strip to be stored and cut down the data transferred during the write out process. Will help overcome issues of using non-real time OS of the Pi & signal transmission due to capacitance of the linking cable. Pi could be moved to the head or replaced with suitable alternative.
- Arduino board can be replaced with soldered ATMega IC or ARM core within FPGA itself
- Arduino controller, humidity/temp sensor and trigger laser controller can be laid out to reduce PCB space
- Depending on sensitivity of the chemistry, the number of laser controllers could be halved, again reducing cost and PCB real estate (each driver has 2 channels but only single fine-tune line), also allow the DAC to be reduced to x4 unit, reducing cost.
- With these changes it may be possible to reduce to a single board for the print head. Balance of cost and ease of fabrication (use or avoid BGA packages)