Close

Touch Screen and more Pictures

A project log for CIJ Printer

An Open Source Continuous Inkjet Printer

dominik-meffertDominik Meffert 04/23/2024 at 04:010 Comments

Here are some pictures of the 7-inch ESP32 powered control touchscreen and the latest changes to the prototype:

The squares on the left are touch buttons for the printer functions and on the right, you can see the sensor data on the top and the current time, date, day, and room temperature on the bottom.

ESP32 LCD Touchscreen

Since the display has no IO pins, I reassigned the 4 pins that were used for the micro SD card to use 2 of them for I2C (SCL and SDA) and the other two for PWM.

To access the pins I soldered wires to a micro SD extension flat-band cable.

Micro SD "Adapter"

Connected via I2C are a DS3231 real-time clock, an ADS1115 ADC, and an MCP23017 IO extension.

ADS1115, DS3231, MCP23017 and 8Ch Relay Module

- The MCP23017 is used for switching the relays and valves and reading the inductive sensors of the viscosimeter.

- The ADS1115 is used for reading the analog voltage of the pressure, conductivity, and temperature sensors.

- The DS3231 is used to keep track of the time and measure the room temperature.

3.3V/5V logic level converter and AMS1117

The touchscreen is powered by an AMS1117 3.3V regulator.

While the ESP32 is running well on 3.3V the LCD seems to need a higher voltage since it's flickering a bit when powered by 3.3V which doesn't happen when powered by its USB-C connection.

To get rid of the heat from the Peltier module I added a dual-fan radiator, with the fans pointing toward the grid frame of the machine.

Backside of the Radiator
Front View of the Machine

Currently, I'm using two XL4016 step-down converters for converting 24V from the power supply to 5V and 12V.

While the 5V is used for powering the I2C devices and sensors, the 12V is used for the Peltier module and viscosimeter valve.

XL4016 for 12V and 5V

A single relay module is used to open the valve for lifting the 8mm steel ball inside the viscosimeter. The falling steel ball gets detected by 2 inductive sensors.

Relays Module, 12V/5V Optocoupler, TDS Sensor Amplifier

For the viscosimeter, I used a clear polycarbonate pipe with a 10x8mm diameter and 150mm length. The distance between the two sensors is 60mm.

New Viscosimeter with Peltier Module and Circulation Pump
Thermometer on the Main Ink Cycle

I used a dual MOSFET module for switching the 12706 Peltier module with a 1kHz PWM signal.

Dual MOSFET Module

The Peltier model draws around 50W during testing and the MOSFET module gets very hot without cooling so I will likely place the MOSFET modules for both Peltier modules next to each other and add a small silent 40mm fan for cooling.

Peltier Module

Together with the pump that pumps the ink around inside the viscosimeter and also heats it up, a thermistor in the cross-fitting, and some PID code, the temperature of the ink inside the viscosimeter can be kept constant without oscillation.

In the future, I will add some code to flush the viscosimeter from time to time with fresh ink to check if the viscosity has changed and automatically add solvent if the viscosity has risen too high because of solvent evaporation. 

For flushing, the viscosimeter is connected to the main ink cycle by two valves that can be opened to let fresh ink flow through the viscosimeter while the pump is running and the measuring pipe's valve is opened to flush all the old ink out.

LCD with Wifi Connection Indicator
For the next update I'm planning to add a data logging feature to write all sensor readings and machine function states together with a timestamp to a file on an FTP server to make it possible to analyze every test run and see what changes in the sensor readings follow the performed action.

I think this will add a lot of value to the machine since it makes the testing results more comparable and will provide a way to share the collected data besides recording videos and taking pictures. In the best case, it would be possible to display the sensor readings as graph lines and have a way to see which machine function was active at a time, e.g. to see that the viscosity decreases with a temperature rise or that the pressure drops when the ink valve is opened and so on.

Thank you for your interest in my project :)

Discussions