diy lcd screen case free sample
I saw a really cool video of a PC case called "Snowblind", that had a transparent LCD Screen as a side panel. I was amazed over how cool it was. The only problem was that it was really expensive. Therefore, I tried making my own! In this instructables I will go through how I made it, and how you could make your own. The best of all, since it was made from an old monitor that was thrown away, it was basically free! I just added some LED strips on the inside of the case to get better contrast on the screen. You could probably re-use the monitors backlight, but it"s safer and easier to just get some cheap LED strips.
First, remove the frame of the panel. It is fixed with clips, so just bend the frame a little and lift the frame up. Next, separate the front LCD from the backlight. For the next step, you will have to be careful. This step involves removing the anti glare film. It is glued to the panel, and therefore it"s easy to break the LCD when trying to remove it.
Then you are done modding the LCD! Now, you can hook it up to the panel and test it. Just be careful with the ribbon cables going from the LCD PCB to the panel.
The side panel of this case fits the LCD perfectly. Just line it up to the side facing the back, and to the top, and use some tape to tape it to the glass. Then, use some vinyl on the outside where the LCD is not covering the glass.
It"s really important to have lots of lights inside the case, to make it easier to see the LCD. Therefore, try to fill the case with even more LED strips.
You are now ready to assemble everything. In this case, the controller fit nicely in the hard drive compartment, so I glued it there and fed the ribbon cable through the hole in the inside of the case. That way it was pretty much hidden inside the case.
You can now power up the computer, open the screen settings and set it up for dual screens. You might have to flip the display 180 degrees too. When you have done that, open Wallpaper Engine and set a wallpaper of choice!
Hey I have a little question, I also have a Dell 1905FP, but I think it"s an older model because I don"t have a ribbon cable but a normal cable with a plug. My problem is that I have peeled off one film but it still looks like there is a second film on the back because it is still a little blurry. But I"m afraid that if I try to pull them off, my LCD display will break. Maybe you have an idea. Thanks in advance
Really neat. I saw the same snowblind case and wanted it but too expensive. I also saw someone who made their own using a USB monitor. But I like your setup better.2
Terrific job! May I ask why you would need to remove the front polarizer? If my understanding is correct, both the front and back polarizers are needed in order for the LCD to work properly (i.e., the light gets polarized by the back polarizer first, and then passes through the front polarizer)? You comments will be appreciated!
Hey, great work on this project. I wanted to buy the snowbind case but couldn"t justify the cost. I have the same case and I ended up picking up the same monitor that you used in your project.
Is it possible that you post or send me photos of the inside of the case when you have this installed? I"m just a bit confused on how you wired up everything?
I tried taking some photos, but I have covered the screen PCB with a cover, so it was hard to see in the photos. I basically just laid it inside the case with a 90-degree angle. I tried drawing it here: (view from the front)0
I used "wallpaper engine" to just set the animations as wallpaper on that screen. I mentioned it in the last step, but I could probably make a own step about that, if you are interested in more details.2
I think you should have more pics and info about the re- mounting the LCD. After all if you don"t do it right all that work is for nothing. While I understand your wiring diagram, I think that it should be explained and a larger part of this Instructible...for example to get white lite your are powering all 3 lanes (red,green,blue) on the RGB tape.
Hello, Wonderfull project, I have the same case and I would love to do it (if I have time and the screen to the right size). Just a question, can you put a photo of the cable connection to see if it"s easy to open the case ? One little suggestion, instead of connecting the panel to the graphic card (which mean to run a cable outside, why don"t you use a USB to VGA or DVI converter (like this https://www.amazon.fr/Adaptateur-convertisseur-adaptateur-Affichage-multi-écrans/dp/B079L81FRD/ref=asc_df_B079L81FRD/?tag=googshopfr-21&linkCode=df0&hvadid=227894524041&hvpos=&hvnetw=g&hvrand=17927658121409960098&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9055710&hvtargid=pla-442905712462&psc=1) ?
Thanks! So I actually bought one of those adapters, as well as an internal USB 3.0 to USB A port and tried it that way, but I couldn"t get it to work reliably. You might have better luck than I have, but I found it simpler to just run the cable through the case. I just removed one of the PCIE slot covers, and ran it out through there, so opening and closing the case is not a problem.More CommentsPost Comment
Hi everybody! Bill Owen from Mnpctech. I hope you"re having a great day! Several people have asked if I could share the steps on how I do my Touchscreen LCD mod in PC Computer case bezels, and you’ve come to the right video!
I’ve been using this Amazon 5 Inch Capacitive Touch Screens for $52.99 delivered on Amazon Prime, I’ll posted a link in Video description. The kit comes a with Micro USB for power and HDMI video connector, but these cables are too short for these PC case mods. It includes M3 stand-offs, a Driver Disc and some Instructions. It’s a 5 point Capacitive Touch screen with a Resolution of 800 x 460, which is just fine for it’s 5” viewing screen In addition to the LCD touchscreen, I will buy the following cables for my Desktop Custom PC LCD Case Mod.
One 3ft “Right Angle” 270 degree HDMI cord, 6” 90 Degree Angle HDMI Extension Adapter, and 3ft USB Male to Micro B power connector. For Mounting the LCD Touchscreen Panel, I use 3/16” thick Black acrylic to make custom mounting brackets for the LCD touch screen.
You can PAUSE the video on this page to record the measurements that I’ve made for cutting the acrylic. This PC Case Mod is very easy. "The reason I’m making brackets for my desktop PC LCD Monitor Mod?" I want the ability to easily install or remove the Touchscreen with thumbscrews. I’m using 1/8” drill bit for acrylic, and 6/32 thread tap, These Black thumbscrews from Mnpctech.com. I’ll use the 1/8” drill bit to increase the diameter of the holes in the LCD pcb frame.
I discovered these drill bits for plastic several years ago, Notice the bit isn’t splintering or cracking the acrylic as I make the holes. Mnpctech stocks a variety of these drills bits. My mod requires Twelve 6/32 washers, and links posted in description, “Why so many washers?” We want the Touchscreen to mount flush on the backside of the bezel, I also don’t want to apply any unnecessary pressure to the screen or the PCB, See how this sheet of paper easily slides under the screen Next stage is cutting the hole in the bezel, The best PC case for this mod is the ones without optical drive bays, which every popular case manufacturer now offers.
If you’re using an older case with 5.25 drive bays, you could attach a mounting plate with 5” opening that covers THREE 5.25 bays. That’s how we did this mod in the early days of PC Modding. Determine and measure out a location in the center of your bezel, you can also mount the LCD vertically if you prefer, and just change the screen orientation in Windows. Since the bezel is plastic, I’m using a Dremel with 1.5” reinforced cut off wheel, Don’t forget to always wear eye protection when using power tools. Oops, WTH? Hahaha After cutting our 5” diagonal square hole, I’ll hand file the edges so everything is precise and clean. You may have to remove sound insulation foam from backside of your bezel, I’m using E6000 adhesive to attach the two mounting brackets. This adhesive is very GOOEY at first, so consider masking off the screen, to prevent getting any of this on it. I like that it’s tacky for couple of minutes, so I have time to position the LCD in place, and then I’ll temporarily tape it in place while it cures overnight.
Mounting your Touchscreen LCD in the PC this way allows you to easily remove and re-install the LCD at any time. Especially if you ever need to replace it for some reason. Let’s get this LCD touchscreen connected to the PC, all of the cables are routed from the front to thee rear PCI slots. *3ft “Right Angle” 270 degree HDMI cord *6” 90 Degree Angle HDMI Extension Adapter cable, I plug this compact cable into the Touchscreen to save space. *3ft USB Male to Micro B power connector This mod is great if you want an extra screen for monitoring your hardware and temps. You can also display Weather or calendar or email notifications,
Check out http://www.Rainmeter.net this community offers several hundred custom mad graphic interfaces for FREE, and you can configure your screen to display a variety of updated information tasks Thanks for watching! And Again, all of the products used in this PC case mod are listed in the video description.
The Hyte Y60 is one of the best PC cases on the market, and it’s getting a big upgrade in the form of an official DIY mod kit. TheHyte Y60 LCD DIT kit is available now for $120, allowing you to replace one of the tempered glass panels of the case with a programable screen.
If you frequent PC builds on Reddit or Instagram, you’ve probably seen this mod before. For months, community members have bought screens that fit in the gap in Hyte’s case and used community 3D-printed mounts to attach them. In a Reddit thread several months back, in fact, the company responded to a user’s build with “THIS IS SO COOL.”
Hyte is now selling the kit in an official capacity. The $120 kit includes the screen, a driver board to deliver power and data to the screen, and the cables to hook everything up. Unfortunately, it’s not an all-in-one solution out of the box. You still need to 3D-print a mount for the screen, but Hyte includes the file you need to print.
The screen comes with a resolution of 1920 x 515, and it’s not something you can control through software. Instead, the included driver board includes a mini HDMI connection that you’ll need to route through your PC and connect to your graphics card. After that, the panel will show up as another monitor in your operating system.
Originally, the mod was made for Aida64’s SensorPanel software, which allows you to display sensors like system utilization, CPU speed, and temperature in custom themes. You can still download and use these themes with Hyte’s DIY kit, but you can also display images, videos, or anything else you want.
The LCD kit was among Hyte’s CES 2023 announcements. The company also announced the new Hyte Y40 case, which is a slimmed-down version of the wildly popular Y60. Instead of the dual-chamber design of the Y60 and fish tank-like look, the Y40 opts for a traditional power supply basement and a slimmer form factor.
Although it’s smaller overall, the Y40 actually has more space for your graphics card, which could make a big difference with GPUs like the RTX 4090. The vertical GPU mount includes four slots as opposed to the three slots on the Y60. The case is also $50 cheaper, clocking in at $150.
Rather than plug your Raspberry Pi into a TV, or connect via SSH (or remote desktop connections via VNC or RDP), you might have opted to purchase a Raspberry Pi touchscreen display.
Straightforward to set up, the touchscreen display has so many possibilities. But if you"ve left yours gathering dust in a drawer, there"s no way you"re going to experience the full benefits of such a useful piece of kit.
The alternative is to get it out of the drawer, hook your touchscreen display to your Raspberry Pi, and reformat the microSD card. It"s time to work on a new project -- one of these ideas should pique your interest.
Let"s start with perhaps the most obvious option. The official Raspberry Pi touchscreen display is seven inches diagonal, making it an ideal size for a photo frame. For the best results, you"ll need a wireless connection (Ethernet cables look unsightly on a mantelpiece) as well as a Raspberry Pi-compatible battery pack.
In the example above, Belkin WeMo switches and a Nest thermostat are manipulated via the Raspberry Pi, touchscreen display, and the InControlHA system with Wemo and Nest plugins. ST:TNG magic comes from an implementation of the Library Computer Access and Retrieval System (LCARS) seen in 1980s/1990s Star Trek. Coder Toby Kurien has developed an LCARS user interface for the Pi that has uses beyond home automation.
Building a carputer has long been the holy grail of technology DIYers, and the Raspberry Pi makes it far more achievable than ever before. But for the carputer to really take shape, it needs a display -- and what better than a touchscreen interface?
Now here is a unique use for the Pi and its touchscreen display. A compact, bench-based tool for controlling hardware on your bench (or kitchen or desk), this is a build with several purposes. It"s designed to help you get your home automation projects off the ground, but also includes support for a webcam to help you record your progress.
The idea here is simple. With just a Raspberry Pi, a webcam, and a touchscreen display -- plus a thermal printer -- you can build a versatile photo booth!
Projects along these lines can also benefit from better use of the touchscreen. Perhaps you could improve on this, and introduce some interesting photo effects that can be tweaked via the touchscreen prior to printing?
How about a smart mirror for your Raspberry Pi touchscreen display project? This is basically a mirror that not only shows your reflection, but also useful information. For instance, latest news and weather updates.
Naturally, a larger display would deliver the best results, but if you"re looking to get started with a smart mirror project, or develop your own from scratch, a Raspberry Pi combined with a touchscreen display is an excellent place to start.
Want to pump some banging "toons" out of your Raspberry Pi? We"ve looked at some internet radio projects in the past, but adding in a touchscreen display changes things considerably. For a start, it"s a lot easier to find the station you want to listen to!
This example uses a much smaller Adafruit touchscreen display for the Raspberry Pi. You can get suitable results from any compatible touchscreen, however.
We were impressed by this project over at Hackster.io, but note that there are many alternatives. Often these rely on compact LCD displays rather than the touchscreen solution.
Many home automation systems have been developed for, or ported to, the Raspberry Pi -- enough for their own list. Not all of these feature a touchscreen display, however.
Another great build, and the one we"re finishing on, is a Raspberry Pi-powered tablet computer. The idea is simple: place the Pi, the touchscreen display, and a rechargeable battery pack into a suitable case (more than likely 3D printed). You might opt to change the operating system; Raspbian Jessie with PIXEL (nor the previous desktop) isn"t really suitable as a touch-friendly interface. Happily, there are versions of Android available for the Raspberry Pi.
This is one of those projects where the electronics and the UI are straightforward. It"s really the case that can pose problems, if you don"t own a 3D printer.
Adding a display to your Arduino can serve many purposes. Since a common use for microcontrollers is reading data from sensors, a display allows you to see this data in real-time without needing to use the serial monitor within the Arduino IDE. It also allows you to give your projects a personal touch with text, images, or even interactivity through a touch screen.
Transparent Organic Light Emitting Diode (TOLED) is a type of LED that, as you can guess, has a transparent screen. It builds on the now common OLED screens found in smartphones and TVs, but with a transparent display, offers up some new possibilities for Arduino screens.
Take for example this brilliant project that makes use of TOLED displays. By stacking 10 transparent OLED screens in parallel, creator Sean Hodgins has converted a handful of 2D screens into a solid-state volumetric display. This kind of display creates an image that has 3-dimensional depth, taking us one step closer to the neon, holographic screens we imagine in the future.
Crystalfontz has a tiny monochrome (light blue) 1.51" TOLED that has 128x56 pixels. As the technology is more recent than the following displays in this list, the cost is higher too. One of these screens can be purchased for around $26, but for certain applications, it might just be worth it.
The liquid crystal display (LCD) is the most common display to find in DIY projects and home appliances alike. This is no surprise as they are simple to operate, low-powered, and incredibly cheap.
This type of display can vary in design. Some are larger, with more character spaces and rows; some come with a backlight. Most attach directly to the board through 8 or 12 connections to the Arduino pins, making them incompatible with boards with fewer pins available. In this instance, buy a screen with an I2C adapter, allowing control using only four pins.
The screens are capable of a large variety of preset characters which cover most use cases in a variety of languages. You can control your LCD using the Liquid Crystal Library provided by Arduino. The display() and noDisplay() methods write to the LCD, as shown in the official tutorial on the Arduino website.
These tiny LCD screens are monochrome and have a screen size of 84 x 48 pixels, but don"t let that fool you. Coming in at around $2 on AliExpress, these displays are incredibly cheap and usually come with a backlight as standard.
Depending on which library you use, the screen can display multiple lines of text in various fonts. It"s also capable of displaying images, and there is free software designed to help get your creations on screen. While the refresh rate is too slow for detailed animations, these screens are hardy enough to be included in long-term, always-on projects.
For a step up in resolution and functionality, an OLED display might be what you are looking for. At first glance, these screens look similar to the 5110 screens, but they are a significant upgrade. The standard 0.96" screens are 128 x 64 monochrome, and come with a backlight as standard.
They connect to your Arduino using I2C, meaning that alongside the V+ and GND pins, only two further pins are required to communicate with the screen. With various sizes and full color options available, these displays are incredibly versatile.
These displays can be used in the same way as the others we have mentioned so far, but their refresh rate allows for much more ambitious projects. The basic monochrome screen is available on Amazon.
Thin-film-transistor liquid-crystal displays (TFT LCDs) are in many ways another step up in quality when it comes to options for adding a screen to your Arduino. Available with or without touchscreen functionality, they also add the ability to load bitmap files from an on-board microSD card slot.
Arduino have an official guide for setting up their non-touchscreen TFT LCD screen. For a video tutorial teaching you the basics of setting up the touchscreen version, YouTuber educ8s.tv has you covered:
With the touchscreen editions of these screens costing less than $10 on AliExpress, these displays are another great choice for when you need a nice-looking display for your project.
Looking for something a little different? An E-paper (or E-ink depending on who you ask) display might be right for you. These screens differ from the others giving a much more natural reading experience, it is no surprise that this technology is the cornerstone of almost every e-reader available.
This article has covered most options available for Arduino displays, though there are definitely more weird and wonderful ways to add feedback to your DIY devices.
Now that you have an idea of what is out there, why not incorporate a screen into your DIY smart home setup? If retro gaming is more your thing, why not create some retro games on Arduino?
Dirt, fingerprints, and dust can make your computer screen difficult to read; however, it"s easy to clean your screenwhen needed. There are monitor-cleaning kits you can buy, but they may damage your monitor if they"re designed for a different type of monitor. For example, a monitor cleaner that is designed for glass screens may not work with some non-glass LCD screens. The safest method is simply to use a soft clean cloth moistened with water.
From time to time, you should clean your computer case and the sides and back of the monitor to avoid a buildup of dust and dirt. Here are a few tips you can use when cleaning these surfaces.
Clean the monitor housing and case (butnotthe monitor screen) by spraying a safe cleaning solution onto a paper towel or anti-static cloth and wiping in a downward motion.
Many computer desks have an enclosed compartment for the computer case. If you have this type of desk, you may want to position the case so it is not against the back side of the desk. If the compartment has a door, you may want to leave it open to improve airflow.
Taking good care of your computer is important. Cleaning your computer, components, and peripherals helps keep everything in good working condition, helps prevent germs from spreading, and helps allow proper air flow. The picture shows an example of how dirty the inside of your computer case can get. Looking at this picture, it"s immediately obvious that all the dust and dirt is going to prevent proper air flow and may even prevent the fan from working.
Be cautious when using any cleaning solvents; some people have allergic reactions to chemicals in cleaning solvents, and some solvents can even damage the case. Try always to use water or a highly diluted solvent.
Cloth - A cotton cloth is the best tool used when rubbing down computer components. Paper towels can be used with most hardware, but we always recommend using a cloth whenever possible. However, only use a cloth when cleaning components such as the case, a drive, mouse, and keyboard. Don"t use a cloth to clean any circuitry such as the RAM or motherboard.
Why? Cleaning your case keeps the appearance of the computer looking new. While cleaning, if you see ventilation slots, these can be cleaned or cleared to help keep a steady airflow into the computer and keep all components cool.
Procedure: The plastic case that houses the PC components can be cleaned with a slightly damp lint-free cloth. For stubborn stains, add a little household detergent to the cloth. Don"t use a solvent cleaner on plastics.
When cleaning the LCD or LED screen, it is important to remember to not spray any liquids onto the screen directly. Press gently while cleaning and do not use a paper towel since it can scratch the screen.
To clean the LCD or LED screen, use a non-rugged microfiber cloth, soft cotton cloth, or Swiffer duster. If a dry cloth does not completely clean the screen, you can apply rubbing alcohol to the cloth and wipe the screen with a damp cloth. Rubbing alcohol is used to clean LCD and LED monitors before it leaves the factory.
Procedure: A glass monitor screen can be cleaned with ordinary household glass cleaner. Unplug the monitor power cord and spray the cleaner onto a lint-free cloth to prevent fluid from leaking into any components inside the monitor. Vacuum off any dust that settled on top of the monitor and make sure no books or papers are covering the air vents. Obstructed monitor vents can cause the monitor to overheat or even catch on fire.
We suggest only using a cloth dampened with water when cleaning non-glass monitors or any anti-glare screens. Using ordinary household glass cleaner on special screens, especially cleaners with ammonia, can remove anti-glare protection or other special surfaces.
Procedure: Our recommendation when cleaning the motherboard from dust, dirt, or hair is to use compressed air. When using compressed air, hold it upright to prevent any of the chemicals from coming out of the container, which may damage the motherboard or other components. Also, ensure when using compressed air that you always blow the dust or dirt away from the motherboard or out of the case.
Another good alternative to compressed air is a portable battery powered vacuum. Portable vacuums can effectively remove the dust, dirt, and hair from the motherboard completely and prevent it from getting trapped in the case.
Procedure: First, make sure to turn off the printer before cleaning it. Dampen a cloth with water or rubbing alcohol and wipe the case and each of the buttons or knobs on the printer. As mentioned earlier, never spray any liquid directly onto the printer.
Procedure: To clean the PalmPilot screen, use a soft cloth moistened with rubbing alcohol and rub the screen and the casing of the palm pilot. It is not recommended to use glass cleaner as it could damage plastics over time.
In this Arduino tutorial we will learn how to connect and use an LCD (Liquid Crystal Display)with Arduino. LCD displays like these are very popular and broadly used in many electronics projects because they are great for displaying simple information, like sensors data, while being very affordable.
You can watch the following video or read the written tutorial below. It includes everything you need to know about using an LCD character display with Arduino, such as, LCD pinout, wiring diagram and several example codes.
An LCD character display is a unique type of display that can only output individual ASCII characters with fixed size. Using these individual characters then we can form a text.
The number of the rectangular areas define the size of the LCD. The most popular LCD is the 16×2 LCD, which has two rows with 16 rectangular areas or characters. Of course, there are other sizes like 16×1, 16×4, 20×4 and so on, but they all work on the same principle. Also, these LCDs can have different background and text color.
Next, The RSpin or register select pin is used for selecting whether we will send commands or data to the LCD. For example if the RS pin is set on low state or zero volts, then we are sending commands to the LCD like: set the cursor to a specific location, clear the display, turn off the display and so on. And when RS pin is set on High state or 5 volts we are sending data or characters to the LCD.
Next comes the R/W pin which selects the mode whether we will read or write to the LCD. Here the write mode is obvious and it is used for writing or sending commands and data to the LCD. The read mode is used by the LCD itself when executing the program which we don’t have a need to discuss about it in this tutorial.
Next is the E pin which enables the writing to the registers, or the next 8 data pins from D0 to D7. So through this pins we are sending the 8 bits data when we are writing to the registers or for example if we want to see the latter uppercase A on the display we will send 0100 0001 to the registers according to the ASCII table. The last two pins A and K, or anode and cathode are for the LED back light.
After all we don’t have to worry much about how the LCD works, as the Liquid Crystal Library takes care for almost everything. From the Arduino’s official website you can find and see the functions of the library which enable easy use of the LCD. We can use the Library in 4 or 8 bit mode. In this tutorial we will use it in 4 bit mode, or we will just use 4 of the 8 data pins.
We will use just 6 digital input pins from the Arduino Board. The LCD’s registers from D4 to D7 will be connected to Arduino’s digital pins from 4 to 7. The Enable pin will be connected to pin number 2 and the RS pin will be connected to pin number 1. The R/W pin will be connected to Ground and theVo pin will be connected to the potentiometer middle pin.
We can adjust the contrast of the LCD by adjusting the voltage input at the Vo pin. We are using a potentiometer because in that way we can easily fine tune the contrast, by adjusting input voltage from 0 to 5V.
Yes, in case we don’t have a potentiometer, we can still adjust the LCD contrast by using a voltage divider made out of two resistors. Using the voltage divider we need to set the voltage value between 0 and 5V in order to get a good contrast on the display. I found that voltage of around 1V worked worked great for my LCD. I used 1K and 220 ohm resistor to get a good contrast.
There’s also another way of adjusting the LCD contrast, and that’s by supplying a PWM signal from the Arduino to the Vo pin of the LCD. We can connect the Vo pin to any Arduino PWM capable pin, and in the setup section, we can use the following line of code:
It will generate PWM signal at pin D11, with value of 100 out of 255, which translated into voltage from 0 to 5V, it will be around 2V input at the Vo LCD pin.
First thing we need to do is it insert the Liquid Crystal Library. We can do that like this: Sketch > Include Library > Liquid Crystal. Then we have to create an LC object. The parameters of this object should be the numbers of the Digital Input pins of the Arduino Board respectively to the LCD’s pins as follow: (RS, Enable, D4, D5, D6, D7). In the setup we have to initialize the interface to the LCD and specify the dimensions of the display using the begin()function.
The cursor() function is used for displaying underscore cursor and the noCursor() function for turning off. Using the clear() function we can clear the LCD screen.
In case we have a text with length greater than 16 characters, we can scroll the text using the scrollDisplayLeft() orscrollDisplayRight() function from the LiquidCrystal library.
So, we have covered pretty much everything we need to know about using an LCD with Arduino. These LCD Character displays are really handy for displaying information for many electronics project. In the examples above I used 16×2 LCD, but the same working principle applies for any other size of these character displays.
In this tutorial, I’ll explain how to set up an LCD on an Arduino and show you all the different ways you can program it. I’ll show you how to print text, scroll text, make custom characters, blink text, and position text. They’re great for any project that outputs data, and they can make your project a lot more interesting and interactive.
The display I’m using is a 16×2 LCD display that I bought for about $5. You may be wondering why it’s called a 16×2 LCD. The part 16×2 means that the LCD has 2 lines, and can display 16 characters per line. Therefore, a 16×2 LCD screen can display up to 32 characters at once. It is possible to display more than 32 characters with scrolling though.
The code in this article is written for LCD’s that use the standard Hitachi HD44780 driver. If your LCD has 16 pins, then it probably has the Hitachi HD44780 driver. These displays can be wired in either 4 bit mode or 8 bit mode. Wiring the LCD in 4 bit mode is usually preferred since it uses four less wires than 8 bit mode. In practice, there isn’t a noticeable difference in performance between the two modes. In this tutorial, I’ll connect the LCD in 4 bit mode.
Here’s a diagram of the pins on the LCD I’m using. The connections from each pin to the Arduino will be the same, but your pins might be arranged differently on the LCD. Be sure to check the datasheet or look for labels on your particular LCD:
Also, you might need to solder a 16 pin header to your LCD before connecting it to a breadboard. Follow the diagram below to wire the LCD to your Arduino:
Now we’re ready to get into the programming! I’ll go over more interesting things you can do in a moment, but for now lets just run a simple test program. This program will print “hello, world!” to the screen. Enter this code into the Arduino IDE and upload it to the board:
There are 19 different functions in the LiquidCrystal library available for us to use. These functions do things like change the position of the text, move text across the screen, or make the display turn on or off. What follows is a short description of each function, and how to use it in a program.
TheLiquidCrystal() function sets the pins the Arduino uses to connect to the LCD. You can use any of the Arduino’s digital pins to control the LCD. Just put the Arduino pin numbers inside the parentheses in this order:
This function sets the dimensions of the LCD. It needs to be placed before any other LiquidCrystal function in the void setup() section of the program. The number of rows and columns are specified as lcd.begin(columns, rows). For a 16×2 LCD, you would use lcd.begin(16, 2), and for a 20×4 LCD you would use lcd.begin(20, 4).
This function clears any text or data already displayed on the LCD. If you use lcd.clear() with lcd.print() and the delay() function in the void loop() section, you can make a simple blinking text program:
This function places the cursor in the upper left hand corner of the screen, and prints any subsequent text from that position. For example, this code replaces the first three letters of “hello world!” with X’s:
Similar, but more useful than lcd.home() is lcd.setCursor(). This function places the cursor (and any printed text) at any position on the screen. It can be used in the void setup() or void loop() section of your program.
The cursor position is defined with lcd.setCursor(column, row). The column and row coordinates start from zero (0-15 and 0-1 respectively). For example, using lcd.setCursor(2, 1) in the void setup() section of the “hello, world!” program above prints “hello, world!” to the lower line and shifts it to the right two spaces:
You can use this function to write different types of data to the LCD, for example the reading from a temperature sensor, or the coordinates from a GPS module. You can also use it to print custom characters that you create yourself (more on this below). Use lcd.write() in the void setup() or void loop() section of your program.
The function lcd.noCursor() turns the cursor off. lcd.cursor() and lcd.noCursor() can be used together in the void loop() section to make a blinking cursor similar to what you see in many text input fields:
Cursors can be placed anywhere on the screen with the lcd.setCursor() function. This code places a blinking cursor directly below the exclamation point in “hello, world!”:
This function creates a block style cursor that blinks on and off at approximately 500 milliseconds per cycle. Use it in the void loop() section. The function lcd.noBlink() disables the blinking block cursor.
This function turns on any text or cursors that have been printed to the LCD screen. The function lcd.noDisplay() turns off any text or cursors printed to the LCD, without clearing it from the LCD’s memory.
This function takes anything printed to the LCD and moves it to the left. It should be used in the void loop() section with a delay command following it. The function will move the text 40 spaces to the left before it loops back to the first character. This code moves the “hello, world!” text to the left, at a rate of one second per character:
Like the lcd.scrollDisplay() functions, the text can be up to 40 characters in length before repeating. At first glance, this function seems less useful than the lcd.scrollDisplay() functions, but it can be very useful for creating animations with custom characters.
lcd.noAutoscroll() turns the lcd.autoscroll() function off. Use this function before or after lcd.autoscroll() in the void loop() section to create sequences of scrolling text or animations.
This function sets the direction that text is printed to the screen. The default mode is from left to right using the command lcd.leftToRight(), but you may find some cases where it’s useful to output text in the reverse direction:
This code prints the “hello, world!” text as “!dlrow ,olleh”. Unless you specify the placement of the cursor with lcd.setCursor(), the text will print from the (0, 1) position and only the first character of the string will be visible.
This command allows you to create your own custom characters. Each character of a 16×2 LCD has a 5 pixel width and an 8 pixel height. Up to 8 different custom characters can be defined in a single program. To design your own characters, you’ll need to make a binary matrix of your custom character from an LCD character generator or map it yourself. This code creates a degree symbol (°):
The body of the case is 3D printed and it has clear acrylic sides so that you’re able to see into it. I’ve used an Ice Tower to cool the CPU, but have mounted the fan onto the side of the case rather than on the heatsink.
I’ve also included an OLED display on the front of the case which displays the Pi’s IP address and some stats like the CPU, storage and memory usage, and the CPU temperature.
I’ve also put together a pack with some additional case variations which is available through this link – Additional 3D Print Files. This pack includes:
I drew a rough outline of the case and then positioned the Raspberry Pi within the case so that the USB and Ethernet ports are available through the front and the Power, HDMI, and audio ports are accessed through the side panel.
The OLED display is positioned on the front of the case above the ports. The OLED display will be held in place with two small clips on the top edge and a screw with a plastic clip at the bottom, a design which I’ve used before on my Arduino based reaction timer.
I don’t remove the SD card on the back of the Pi very often, so I didn’t add a cut-out for it. If you do, then just add a circular cut-out to the case at the back so that you can still access it. It is going to be a bit of a chore to swap the SD card if you don’t have this cut-out as you’ll need to remove the Pi from the case to access it, I’m happy with doing this if I ever need to change the card.
I 3D printed the Raspberry Pi 4 Desktop Case using Black PLA with a 0.2mm layer height and 15% infill. I also added print supports for the cutouts for the display and ports on the front. You’ll probably need to add these as well, which is easy to do in your slicing software. You’ll also need to print the small plastic display clamp.
Now that the main body of the case is complete, let’s mount the Raspberry Pi into it. Start by screwing the brass standoffs into the holes in the base.
I’ve just changed the orientation of the screws and standoff mounts supplied with the Ice Tower so that they screw straight into the bottom of the case and don’t require and through holes. If you follow the Ice Tower installation manual, you’ll notice that the standoffs and screws are installed the opposite way around.
Next, we need to remove the fan from the Ice Tower so that we can attach it to the acrylic side panel. By moving the fan onto the side panel, we make sure that cool air is being drawn in from the outside of the case and then has to leave from the exhaust air vents on the opposite side.
I started in Tinkercad again and positioned a block in the case roughly where the Ice Tower heat sink is going to be so that the holes for the fan are in the correct place on the side panels. I then exported the side profile of the case and heat sink to open up in Inkscape to draw the laser cutting profile.
We can remove the inside edge profile as we only need the outline of the case and the screw holes. We need to add a hole for the fan and the four surrounding holes for the fan screws. We’ll also need to add cut-outs for the ports along the side of the Raspberry Pi.
If you want to re-use the fan screws, they’ll be too short to fit through the acrylic and fan and then into the nuts, you’ll need to press the nuts into the front (acrylic side) of the fan. You’re relying on the friction between the nut and the fan to hold it in place, but it works fine in this case as there isn’t much load on them.
I’ve also made an Ice Edition of this case using white PLA for the case and a blue-tinted acrylic for the side panels. This Ice Edition Kit is available through my Etsy store.