Home

Awesome

Depreciated!

RRF 3.5.0 and later no longer support the M408 information fetch command used by PrintEYE

See : https://github.com/easytarget/PrintPy2040

For Posterity: (I am archiving this repo now)

Little Eyes For a printer..

Temperature display for RepRap firmware (eg Duet)

Prototype

Hardware

See: PrintEyeHardware.

The hardware for this is as important as the software; it runs on a standlaone ATmega328P on a custom PCB; this PCB has a FTDI connector for both programming and communicating to the target Duet controller.

Thumb Thumb

Software

Requirements

Bootloader

Printeye is designed with the current 'Vanilla' Arduino Uno bootloader in mind; aka Optiboot, this is an excellent bootloader with a very small (512Byte) footprint. It does work with the 2K bootloader in the Adafruit Pro Trinket I used for development, but free memory for program space is very low with this. *

Bootloader part two; MiniCore.

I have subsequently found MiniCore, which is one of a number of Optiboot implementations geared towards bare bones and breadboarded systems. It allows basic fuse choices such as CPU external frequency selection and brownout configuration to be set in tha Arduino IDE boards section easily.

Development

I used the Arduino IDE for development and testing; and did a lot of work using the serial monitor to debug the printer operation after capturing a lot of typical M408 responses at the start of the project (see this)

Duet/RRF Configuration

With 3.x Duet/RRF versions you need to specifically enable the UART output by adding the following line to the startup configuration in config.g:

M575 P1 B57600 S0 ; Enable serial for PrintEye

Control

You can use M118 from the terminal or in your macros to configure the PrintEye via Json.

The Jsmn library provides some robustness in processing key/value pairs (in the use of quotes etc); but the Json must be structually correct and terminated.

Octoprint progress display

I intend to try and re-write the existing OctoPrint progress display plugin; but that is a future plan. In the menatime a very acceptable workaround has been implemented in Slic3r instead to send the current print height durng printing:

Examples;

Disable sleep mode with M118 P2 S"{""pe_saver"":false}"

Use in macros like this:

; lights-dim.g
M42 P2 S0.1                  ; Heater2 (Led PWM) to 10%
M118 P2 S"{""pe_bright"":1}" ; Printeye as low as possible

Caveats

Enhancements:

For Later/Never