Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

Basic PCB and software to control the Anycubic Photon Ultra's DLP controller board and the DMD itself. Based on RPI Pico board.

License

Notifications You must be signed in to change notification settings

openMLA/photon-ultra-controller-rp2040

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Important

This repository has been archived as the implementation turned out to have too many limitations regarding memory. It will work for 2-bit images, but the newer approach is all around more capable. The replacement approach uses the DPI of a raspberry pi, and can be found at openMLA/photon-ultra-controller

Photon Ultra DLP controller

This repository contains PCB design files and code for a replacement mainboard for the Anycubic Photon Ultra.

The replacement board allows users to generate the signals required for the DLP controller board (designed by eViewTek) & DMD that comes with the photon ultra. It does not capture the full functionality of the Anycubic mainboard as it does not control the interface LCD, control the mechanics (stepper motor) or run any resin 3D printer slicer software. It only controls the DLP projector with an arbitrary 2-bit* 1240x720 image. Exposure time can be set per image.

This project might be of interest to you if you own a photon ultra and are interested in either

  1. Using the photon ultra for PCB fabrication (use the DLP to expose a photoresist)
  2. Are looking to use a DMD for other applications but are not ready to build your own controller board.

If you are interested in learning more about the Photon Ultra, you can find more information on this photon ultra teardown blog post. More images are available on request.

If you have another board that uses the DMD chipset (e.g. Anycubic D2 or Mars 4 DLP), you can probably modify the project with minimal effort and get it to work for those boards too! (you would have to maybe have to adjust the traces to the FPC, and maybe tweak the physical connectors etc; but code and approach would be very similar)

💡 UV Patterns

Note

Due to RAM limitations (and my c programming skill limitations) the board can only display 2-bit images if you use the full resolution of the DMD. More RAM would solve this issue.

Below an example of the eViewTek board and optical engine controlled by the pico pio units, showing the OpenMLA project logo. Note that the pattern is 2-bit, so there are only 4 intensities (of which 1 is OFF).

image of projected UV light showing the logo of the openMLA project. The pattern is 2-bit.

Below another example of the 4 grayscale values that can be shown.

PCB

The PCB uses a Raspberry Pi Pico board as the central controller. The PIO blocks of the RP2040 generate the timing signals for the DLPC1438 chip on the DLP controller board.

Using the board

The board is shaped to fit in the original mainboard space. The buttons, usb-c programming port and barrel jack are all accessible through the original Photon Ultra enclosure. This means you can use the original fittings, and everything in terms of cables should just fit.

Of course if you do not plan on using the DMD in the context of the photon ultra, you could easily redesign the board to be much more compact.

Code

The code for this project is written in C, and unfortunately I am not a C programmer so it is very sloppy code. If you know of ways to make parts more elegant don't hesitate to make a pull request with changes.

More important than the code is the approach taken to power up and control the photon board, and more specifically the DLPC1438. A walkthrough of steps and gotchas can be found in the guidelines. Most of it will also be mentioned in the code for the project, but having a separate document is more convenient.

The PIO implementation is a modified version of the nice writeup by Hunter Adams.

To convert images for display, there is a simple python utility that converts a grayscale image into the right byte format for display. You can run it on the demo images to verify assembly.

Context

This work was developed as part of the openMLA project, where the goal is to build an open hardware lithography system. Eventually an open hardware DLP controller board will be published as part of openMLA, but this represents an intermediate step.

Project TODO

  • ✅ Establish I2C communication with DLPC1438

  • ✅ Verify UCB programming and linear regulator

  • ❓ Verify 12V power delivery to board (should be fine as of version 0.1.4)

  • ✅ Verify 51-pin connector and pinout is correct

  • ✅ Verify (2-bit) images can be sent and projected

  • ❓ Implement SPI interface for transferring images to the pico

  • ❓ Minimise flickering

Acknowledgements

The following KiCAD external libraries were used

About

Basic PCB and software to control the Anycubic Photon Ultra's DLP controller board and the DMD itself. Based on RPI Pico board.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published