Code Monkey home page Code Monkey logo

photon-ultra-controller-rp2040's Introduction

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

photon-ultra-controller-rp2040's People

Contributors

nemoandrea avatar

Stargazers

 avatar Tillmann avatar Benedict Diederich avatar Yangyuanxin avatar  avatar Silvio Tisato avatar  avatar

Watchers

Benedict Diederich avatar  avatar  avatar

photon-ultra-controller-rp2040's Issues

Sponsor

​​​Hello
This is Liam from PCBWay.
Deeply impressed by your project which is novel and creative,
I’d like to sponsor your project by providing free PCB prototyping,
All I ask for in return is a slight promotion or review of our quality or service.
Would you be interested in partnering up? Contact me: [email protected]

Sourcing parts

Hey, this is an amazing resource. Thank you for making this open source! I was wondering if you can get the DMD module as a spare part without buying the whole device. Cc: @ranranking

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.