Assembling Raspberry Pi 5 And Installing Home Assistant

Step By Step Guide To Assemble A Raspberry Pi 5 And Install Home Assistant OS Or Any Other OS

Assembling a Raspberry Pi 5 is a matter of just 10 minutes.

Before you start assembling the Raspberry Hardware, go to your PC or Apple Computer and prepare an SD-Card or SSD Drive with the operating system that you want to use on the Raspberry Pi. Once the drive is prepared

Once you have prepared the disk drive that you want to use in your Raspberry Pi, here are the steps to put together the Raspberry Hardware and run it:

Mounting Active Cooler

For this you need the Raspberry Pi 5 board and the Raspberry Pi 5 Active Cooler kit:

The Raspberry Pi 5 Active Cooler kit can be part of the Raspberry housing. In this case, the active cooler kit is located inside the housing, and you need to unscrew the housing and open it to get to the cooler.

Two Mounting Holes

First, identify the two mounting holes on the Raspberry Pi 5 board. The active cooler fan has two snap-connectors that fit tightly into these holes.

Also indentify the major components on the board that emit heat and need cooling: the processor, the I/O controller, the memory, and the power management chip.

Thermal Adhesive

On the back side of the active cooler, thermal adhesive can be seen. Peel off the cover, then place the fan onto the board so that the spring-loaded pins fit into the two mounting holes.

Do not confuse the two mounting holes with the four holes that are used to mount a hat (extension board). You may want to practice first and get a good understanding how the fan needs to be positioned before you peel off the adhesive cover and firmly press the pins into the mounting holes until they snap into place.

Next, connect the plug from the active cooler to the connector on the board - done.

Adding Disk Drive To Raspberry

Raspberry Pi 5 really shines when you add a fast SSD Drive to it. In this section you learn how you add such a drive to your Raspberry Pi.

A SSD drive isn’t required, though. You can also use a SD Card.

A SD Card is not recommended for your primary operating system because it is so much slower than an SSD drive and can also wear out over time. Using an SD Card can still be a good option for special scenarios where you want your Raspberry to run a different environment temporarily.

In either case, make sure you pre-loaded your operating system of choice to either the SSD drive or a SD Card before you proceed.

SD Card

If you chose to use a SD Card, simply slide it into the Raspberry Pi SD Card reader.

SSD Drive

To add a SSD drive to the Raspberry Pi, you need the *M.2 Shield for Raspberry Pi which looks fairly similar to the USB adapter you used to pre-load the drive on your PC.

The board is slightly bigger and has three mounting holes.

When you unpack the shield, make sure you identify a small flat ribbon cable that comes with it and is easily lost or confused with a stick of tape.

Mounting Ribbon Cable

In a first step, connect the ribbon cable to the shield. The connector on the shield has a plastic lock that can be turned up (unlock) and down (lock).

Turn it up, then place one side of the ribbon cable into the connector, and secure the cable by turning the plastic lock down.

Next, place the SSD drive with its contacts into the matching connector, and push it in. This procedure is identical to previously mounting the SSD drive to the USB adapter.

In fact, the SSD drive will again tilt upwards until you push it gently down and secure its end with a screw.

Mounting Spacer Bolts

In order to mount the M.2 Shield to the Raspberry Pi 5, you need to first add three spacer bolts to the board. The bolts come with the metal housing. One of the mounting holes remains untouched for now:

Do not use the black screws to secure the bolts to the board. Use the smaller bolts that came with the metal housing. They serve as feet and are required to later mount the board to the metal housing.

Mounting M.2 Shield

Now you can place the M.2 Shield on top of the spacer bolts and screw it to the Raspberry Pi 5.

The final step is connecting the ribbon cable to the connector on the Raspberry Pi 5 board. This is a bit fiddly but the connector works similar to the other one and has a plastic lock. Pull it up to unlock the connector, and press it back into place to secure the cable.

Adding RTC Battery

If you got yourself an external battery case to power the RTC (real time clock), make sure you push the small switch to the on position.

Open the case, and insert a CR2032 button cell. Next, plug it into the designated connector on the Raspberry Pi 5 board.

Housing

Finally, get the metal housing parts ready.

Insert the assembled Raspberry Pi 5 into the main housing component with the network connectors facing to its open side.

Screw it to the metal housing using the larger four screws.

If you added an external battery case, use double-sided tape to fix it to the ethernet jack. Make sure the battery case is not blocking the ventilation.

Slide in the top cover, and use the smaller four screws to screw it to the larger part of the housing - done.

Connecting

To test-drive the Raspberry Pi, you need a network cable and a USB C power supply capable of at least 30W.

Connect the network cable to the network jack, and connect the power supply to the USB C connector.

Once you power on the Raspberry Pi, you see LED lights blinking as the SSD drive is accessed by the Raspberry Pi 5.

If you don’t like being blind-folded, connect the Micro HDMI cable to the display connector right next to the USB C connector, and connect the cable to a computer display. This was you can see what the Raspberry Pi 5 is doing.

Let the device work for a few minutes: it is automatically booting from your SSD drive and installing the software that you preloaded before. This part can take up to 10 minutes to complete.

In the end, Home Assistant should be up and running. If you have connected a computer display, it tells you the assigned IP address:

Web Interface

You do not need to know the Raspberry IP address to access Home Assistant through a web browser. Open a browser, and enter homeassistant.local:8123.

If this mDNS name does not resolve, then this indicates a network issue that you should resolve (see below). mDNS is used by Home Assistant and ESPHome to identify devices, and when it does not work correctly, you are most likely running into many other issues down the road.

Network Address Does Not Resolve

The network address homeassistant.local:8123 uses the name and port of your instance. The default port is 8123. If you change the name or port of your Home Assistant, the address needs to be adjusted accordingly.

The address is based on mDNS and works only locally (within a network). Many users run two different networks without knowing. When you have set up your WiFi in Router Mode (and not in Access Point Mode), the WiFi nework is separated from your wired network.

If in this case you have connected the Raspberry Pi 5 using a network cable, then you can only use the mDNS address from other network devices that are wired. It will not resolve for computers and devices that are connected to your network using WiFi.

If mDNS resolution fails, you can always use the actual IP address, i.e. 192.168.2.127:8123/. However, this is only a temporary workaround, and you should fix your network. mDNS is required by many other services (such as ESPHome).

Obtaining IP Address

By default, and depending on your general network setup, the Raspberry Pi 5 typically receives its IP address dynamically from your DHCP server. This means that its IP address can change over time. It does not make much sense then to note the IP address, or add bookmarks to it.

If you rely on using the raw IP address to connect, there are two ways to determine it:

  • Computer Display: hook up a computer display as described above to see the local Raspberry Pi 5 screen. On the screen, the currently assigned IP address is listed.
  • Port Scan: by default, Home Assistant uses port 8123. By scanning your network for this port, you can retrieve the currently assigned IP address within a few seconds. Below is a PowerShell script that can do this for you:
# install DoneLandTools module from the Microsoft PowerShellGallery.com if you haven't done so lately:
Install-Module -Name DoneLandTools -Scope CurrentUser -Force

# scan your network for port 8123:
Find-NetworkDevice -FindAllWebInterfaces -Port 8123

After a few seconds, Find-NetworkDevice returns all IP addresses that responded to the specified port, and opens these interfaces in your web browser.

Slow Website?

This website is very fast, and pages should appear instantly. If this site is slow for you, then your routing may be messed up, and this issue does not only affect done.land, but potentially a few other websites and downloads as well. Here are simple steps to speed up your Internet experience and fix issues with slow websites and downloads..

Comments

Please do leave comments below. I am using utteran.ce, an open-source and ad-free light-weight commenting system.

Here is how your comments are stored

Whenever you leave a comment, a new github issue is created on your behalf.

  • All comments become trackable issues in the Github Issues section, and I (and you) can follow up on them.

  • There is no third-party provider, no disrupting ads, and everything remains transparent inside github.

Github Users Yes, Spammers No

To keep spammers out and comments attributable, all you do is log in using your (free) github account and grant utteranc.es the permission to submit issues on your behalf.

If you don’t have a github account yet, go get yourself one - it’s free and simple.

If for any reason you do not feel comfortable with letting the commenting system submit issues for you, then visit Github Issues directly, i.e. by clicking the red button Submit Issue at the bottom of each page, and submit your issue manually. You control everything.

Discussions

For chit-chat and quick questions, feel free to visit and participate in Discussions. They work much like classic forums or bulletin boards. Just keep in mind: your valued input isn’t equally well trackable there.

  Show on Github    Submit Issue

(content created Jun 01, 2024 - last updated Jul 07, 2024)