Display Squared

A display that puts on a display. Images are created using colored water that's precisely jetted through the air into a 100 x 56 pixel grid

Similar projects worth following
This project will conclude with a low-resolution display. It will take a digital image and manifest it in a more physical and tangible form. The magic of this project won't be in the displayed image itself, it will be through the process by which the image is formed. Water of various colors will be shot through the air using physics and a bit of magic (who can tell them apart anyways). The liquid will be propelled into specific cells and mixed in specific ratios to produce the final image.

The image displayed won't be particularly special, but the process by which it's made will be. Maybe focusing on the tangible and observable process by which information is constructed will help us all, or at least me, feel a bit more comfortable transitioning back to the grounded and physical world after a year that's been unprecedentedly difficult.

The last major project I did was called Liquid Lite Brite. Frankly, I wanted to show a nearby medical device company that I could build something similar to their product so that they would hire me. That didn't work out, but I got hired at a pretty sweet company called RISE Robotics instead, and I got a cool portfolio project out of it as well so no hard feelings. 

Here's a link to Liquid Lite Brite if you're curious. Below is a timelapse of Liquid Lite Brite building an image.  

I really loved how that project turned out, and I enjoyed working on it as well. Naturally, I want to make an improved version. The core concept for Display Squared is the same as Liquid Lite Brite. I'm going to have several reservoirs of colored liquid, and I'm going to mix them together in individual cells to produce an image. The similarities stop there though, because pretty much every detail of how I go about doing that is going to differ. Here's a top level comparison:

Liquid Lite BriteDisplay Squared
Resolution24 x 16 pixels100 x 56 pixels
Speed30 cells per minute300 cells per minute
Color Fidelity
Not great, only certain images workAdobe called and they want their display back
Dispensing MechanismPeristaltic pump and 3 axis gantryPressure based liquid propulsion

The part of this that I'm most excited about is the mechanism by which liquid will go from a reservoir to the proper cell. My plan here is to "aim" the liquid in the X axis using pressure. Here's a video showing the effect I'm talking about. 

I'm going to pressurize the water and jet it through the air into the proper cell. To change cells, I'm going to increase or decrease the water pressure so that it travels less far. That will get me X axis travel, and then I'm going to rotate the nozzle assembly to give access to all 100 x 56 cells. 

I want my entire pixel grid to be 400mm width by 225mm depth. This means that each cell will only be about 4mm x 4mm. That's a fairly small target to hit. Doing this on a small scale makes this considerably harder to engineer than the fountain in the YouTube video above! Accurately controlling the pressure of a vessel containing a liter of water is way easier than controlling the pressure of just a ml of water at a time. That said, I have some ideas for making it happen, and the napkin math works out for now. In the next update. I'll go over some of the basic mathematics required to make Display Squared work. 

  • Test Fixture and Lessons Learned

    zachfrew06/14/2021 at 00:36 0 comments

    The goal of building a test fixture was to prove out the fluid jetting concept and sanity check my math in the physical world. The test fixture involves the pressure vessel mounted on the actual load cell I plan on using. I attached a tube and nozzle to the quick release fitting, and I tested how far the water traveled for different fluid heights. I would show you this process, but it was fairly messy and I've only got a few hours left to submit this to the rethink displays contest.

    So what did I learn? As expected, there are losses in the system. The fluid travels less far than I was expecting by what looks to be a factor of around 25%. This isn't particularly concerning. I was expecting loss due to turbulent flow effects and friction. This error will be easy to compensate for by increasing the fluid height. 

    That said, the turbulent flow causes a more significant problem, albeit one that is solvable. As the stream exits the nozzle, it rather quickly increases in diameter and turns into more of a spray. It was naïve of me to expect that the jetted water would maintain a consistent diameter at the furthest extents of the display. It appears that the stream is breaking apart at a distance of around 150mm, which isn't going to cut it for this project. 

    This is solvable by modifying the nozzle geometry, but I'm sure it's going to take some iteration. My working theory is that turbulent flow effects are having the largest effect on stream length currently, so that's what I'm going to tackle next. 

  • Makin' Parts

    zachfrew06/13/2021 at 21:57 0 comments

    Let's start this update with a colorful video of me milling the polycarbonate pressure vessel bottoms. Most of the space in my apartment is taken up by various machines including this Shapeoko CNC Router. Unfortunately, I live in a fairly typical apartment building, and I'm not sure my neighbors would appreciate the unbridled noise of my Shapeoko at work. As a result, I built an MDF and acoustic foam enclosure for the Shapeoko which gets the router mostly within acceptable noise levels. The RGB LEDs were a necessary touch to the enclosure. 

    Pictured below are all the components necessary for mounting the pressure vessel to a load cell. All that's left to do for a rough proof of concept is to assemble it all together and see if the fluid launches approximately as far as I'm expecting for a given height. 

  • CAD Proof of Concept

    zachfrew06/13/2021 at 21:33 0 comments

    I didn't have quite as much time as I was hoping to work on Display Squared this weekend, but I did get this CAD proof of concept finished in time to submit this project the the 2021 Hackaday Prize. Below you'll see the current mechanical plan for this project.

    The ruby red cylinder is my pressure vessel. This is the container that I'll be varying the height of to extrapolate pressure using Pascal's Law. That pressure vessel has a quick-connect tube output that leads into the Solenoid Valve. The Solenoid Valve will be controlled by an Arduino, and it will open and close to allow water to flow out from the output nozzle. The solenoid valve and output nozzle assembly is going to be actuated along the Y Axis with a simple stepper motor, GT2 belt, and linear rail configuration. Here's a shot of what this is all going to look like from the front. 

    Now I just have to get to making these parts. This CAD is far from finished, and I'm mostly looking to put enough of this assembly together to do a quick sanity check on my math from the previous build update. 

  • The Math

    zachfrew06/11/2021 at 02:09 0 comments

    Let's start with the display grid itself. It's going to be a 100 x 56 pixel grid with a width of 400mm. The first question to ask is: at what speed does the fluid have to exit the nozzle to reach the furthest extent of the grid? I.e, what velocity is required to jet the fluid a distance of 400mm? This is a classical physics problem, and it's one of the first problems you'll encounter in a Physics 1 course. It's so classical in fact, that I felt no desire to revisit my High School years and instead plugged the values into an online solver (boring, I know). To solve for velocity I need the launch angle and horizontal distance. 

    This is the naïve version of projectile motion. In reality there are other factors that will affect the velocity including drag and air resistance. For our purposes, I just want to prove that the concept is possible so ballpark figures will be close enough. Using the projectile motion calculator I learn that the velocity needed to jet the fluid 420mm is 2.029m/s. Why 420mm and not 400mm? Beyond my own childishness, I chose to offset the display grid 20mm so that the 1st pixel is 20mm away from the nozzle as opposed to 0mm away. At 0mm away, the velocity to get to the 1st pixel would be... 0m/s which presents an issue because the fluid is much more likely to stick to the nozzle instead of nicely falling into the 1st pixel.

    What about the velocity needed to get to pixel 99? What about pixel 1? Those values are below. 

    Pixel 100: 2.029m/s

    Pixel 99: 2.017m/s

    Pixel 1: 0.443m/s

    Here we see that I have a velocity difference of about 0.012m/s between adjacent pixels. Realistically, I would want to be able to control the fluid velocity at intervals of 0.006m/s to make sure that I hit the correct pixel each time. That is a small value, but it's not an absurdly small value. 

    The next question to ask is: What fluid pressure is required to achieve a velocity of 2.029m/s or 2.017m/s or 0.443m/s. For that, we're going to use Bernoulli's equation which relates the pressure of a fluid, it's kinetic energy, and it's potential energy. To solve Bernoulli's equation I need: fluid pressure after it exits the nozzle, fluid density, gravitational acceleration, the initial height of the fluid, and the final height of the fluid. The values after solving Bernoulli's equation are below. 

    Pixel 100 : 103,377 Pascals

    Pixel 99: 103,355 Pascals

    Pixel 1: 101,422 Pascals

    This is where I started to get concerned. Varying the pressure of water by approximately 20 Pascals is a tough problem indeed (0.003PSI for reference). This is the sort of problem I wouldn't encounter if I was dealing with larger volumes of water and larger distances. Even measuring the pressure of a fluid that accurately is expensive. Omega brand pressure sensors with that sort of accuracy will run you in the ballpark of $500 for the transducer alone!

    This is where the fun engineering begins. Instead of measuring pressure directly, what if I extrapolated it some other way? Pascal's Law states that the Pressure of a fluid is equal to its Density * Acceleration due to Gravity * Depth. That means that with the fluid Pressure, Density, and Acceleration due to Gravity all of which are known, I can extrapolate Pressure. Pascal's principle has some strange implications. For example: the pressure of a fluid at the bottom of a theoretical 100m long straw is identical to the pressure at the bottom of 100m lake. This is a great video on the topic: 

    Using Pascal's law, I can vary the height of a fluid and extrapolate the pressure as a result. For example, I know that at a height of 0.21m, the hydrostatic pressure at the bottom is 103,378Pa. I know that at height 0.208m, the fluid pressure at the bottom is 103,358Pa. Remember from earlier, I need to be able to vary the pressure by 20Pa to make this work and hit the correct pixel. Based on...

    Read more »

View all 4 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates