diff --git a/public/1/mobo.png b/public/1/mobo.png deleted file mode 100755 index 99c6e73..0000000 Binary files a/public/1/mobo.png and /dev/null differ diff --git a/public/2/flashing.jpg b/public/2/flashing.jpg deleted file mode 100755 index 58236c3..0000000 Binary files a/public/2/flashing.jpg and /dev/null differ diff --git a/public/2/hassio_automation.png b/public/2/hassio_automation.png deleted file mode 100755 index 5c483e5..0000000 Binary files a/public/2/hassio_automation.png and /dev/null differ diff --git a/public/2/hassio_dashboard.png b/public/2/hassio_dashboard.png deleted file mode 100755 index 2002a8e..0000000 Binary files a/public/2/hassio_dashboard.png and /dev/null differ diff --git a/public/2/sensor.jpg b/public/2/sensor.jpg deleted file mode 100755 index 6aeeaf0..0000000 Binary files a/public/2/sensor.jpg and /dev/null differ diff --git a/public/2/testing.jpg b/public/2/testing.jpg deleted file mode 100755 index b476d06..0000000 Binary files a/public/2/testing.jpg and /dev/null differ diff --git a/public/3/fans.jpg b/public/3/fans.jpg deleted file mode 100644 index f31bbba..0000000 Binary files a/public/3/fans.jpg and /dev/null differ diff --git a/public/3/panels.jpg b/public/3/panels.jpg deleted file mode 100644 index 7140676..0000000 Binary files a/public/3/panels.jpg and /dev/null differ diff --git a/public/3/patchpanel.jpg b/public/3/patchpanel.jpg deleted file mode 100644 index 00fddbb..0000000 Binary files a/public/3/patchpanel.jpg and /dev/null differ diff --git a/public/3/switches.jpg b/public/3/switches.jpg deleted file mode 100644 index aabc3e6..0000000 Binary files a/public/3/switches.jpg and /dev/null differ diff --git a/public/404.html b/public/404.html deleted file mode 100644 index e81a736..0000000 --- a/public/404.html +++ /dev/null @@ -1,193 +0,0 @@ - - - -
- - - -My home was undergoing reconstruction during 2022, and with a fresh start you get the opportunity to fix problems that plagued you before. The old building was constructed in the 1980s and with the brick and cement walls in India it is impossible to get a good Wi-Fi connection or add cabling to add additional access points. This time, I made sure to have at least one CAT6 cable going to each room, in order to be able to fix any dead spots by simply adding in access points in problem spots, and turning a bundle of wire into a home network system that handles terabytes of data each month has been a learning experience. -...
-My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things: -...
-After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows: -AMD Ryzen 4600G 4x8 GB DDR4 3200 by Crucial Gigabyte Gaming X B450 Motherboard 1TB SSD storage 12TB HDD storage Cooler Master MWE 450 Bronze V2 450W PSU Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn’t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard’s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated. -...
-After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows:
-Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn’t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard’s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated.
-Since this project had to be halted while I could figure out what I could do about this situation, I continued undertaking smaller projects in order to keep busy. While looking around my drawer for DuPont leads for something else, I found my saving grace, a CH341A programmer and an EEPROM clip. I had completely forgotten that I had these in my possession, and immediately realized that they are what going to save this project.
-I removed the CPU from it’s socket in order to protect it from reverse voltage from the programmer and hooked the clip directly onto the motherboard’s EEPROM chip
-Upon running flashrom, surprisingly the chip was detected on the first try, and I was able to read the data off the EEPROM without any hiccups
-~ flashrom -p ch341a_spi -r output1.bin
-flashrom v1.2-552-gea0ae15 on Linux 6.0.12.rog.fc37 (x86_64)
-flashrom is free software, get the source code at https://flashrom.org
-
-Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
-Found Winbond flash chip "W25Q128.W" (16384 kB, SPI) on ch341a_spi.
-Reading flash...
-
-I then repeated the same command again, outputting to output2.bin. After comparing the MD5sum of both output1.bin and output2.bin and checking that they are the same file, hence ensuring that the connection on the chip is stable, I then sent the command to write the new firmware file onto the EEPROM
-~ flashrom -p ch341a_spi -w B450GX.63e
-
-After waiting for the flash to finish, I was finally greeted with the gigabyte BIOS menu, finally marking this project as finished
- - -My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things:
-With this information, I decided upon using a system that would use a light sensor in order to check what the current light status is outdoors and use that information along with the sunset and sunrise time of the day to determine when the lights are turned on and turned off.
-I began creating a light sensor using a NodeMCU ESP8266 as the microcontroller of choice. It is a low power device with plenty of GPIO pins as well as having built in Wi-Fi, which makes it very easy to use along with the rest of the control infrastructure. I added a BH1750 which is a digital light sensor which communicates via serial peripheral interface to the microcontroller and provides it the ability to sense the light outside. This is a foundation on which is project is built as the time when the lights are triggered can vary based on the seasons and setting a fixed time for triggering would be unlike how a human would determine their state.
-I used ESPHome to add functionality to the device. I did consider writing software for this myself that would communicate over MQTT but ultimately decided against it as ESPHome provides their own API for communication to HomeAssistant, and it would be one less component that would need to be maintained.
-I then designed and 3d printed a case for the microcontroller using my Ender 5 Pro and Fusion360, and then used prusaslicer to print it out using PLA plastic. The case is built to snap together on both sides but I added tape as an additional layer of security.
-I then began to work on the hardware which would control the power to the lights. I had 5 individual lights that needed to be powered on and off, and decided to use a 6 relay smart switch in order to control them. I found a company based in Delhi called Tinxy that was manufacturing smart relay boards themselves along with writing the software for them, and decided that they would be perfect for the task at hand. I overwrote the factory software on the ESP8266 microcontroller on the smart relay board with ESPHome by soldering on header pins to allow a serial communication bridge and began experimentation.
-According to the documentation provided by Tinxy, the board uses serial communication to communicate to another microcontroller onboard as the ESP8266 does not have enough GPIO pins in order to accommodate 6 relays, status LEDs, reset buttons and more. The communication to the microcontroller was a simple string which followed the following pattern.
-#1100# ;Turn Relay 1 on
-#1000# ;Turn Relay 1 off
-#2100# ;Turn Relay 2 on
-#2000# ;Turn Relay 2 off
-
-Using this, I created dummy switches in ESPHome which send these commands when the switch is turned on or off over the GPIO 1 and 3 pins which are for hardware serial TX on the ESP8266.
-After adding the ability to trigger the hardware using HomeAssistant locally, I connected the relay board to mains voltage in order to test out if everything works as intended.
-With the hardware portion out of the way, I was finally able to begin work on the software component of this project. I used HomeAssistant for handling the automation of the project as it provides a solid backbone to build software on and integrates very well with all of the components of the project.
-I began by mapping out what conditions need to be satisfied in order to determine what the state of the lights would be. I decided upon using the data from the light sensor, if the sun has set or risen, the current status of the switches as well as a time condition in order to make sure that the lights still trigger in case one or more of the other conditions fail, for example in case of the light sensor malfunctioning or not having internet access which would disallow polling the status of the sun.
-I tuned and tweaked the value for the light intensity using security camera footage until I was pleased with the results and after finishing the software component this project has finally come to a wrap.
- - -My home was undergoing reconstruction during 2022, and with a fresh start you get the opportunity to fix problems that plagued you before. The old building was constructed in the 1980s and with the brick and cement walls in India it is impossible to get a good Wi-Fi connection or add cabling to add additional access points. This time, I made sure to have at least one CAT6 cable going to each room, in order to be able to fix any dead spots by simply adding in access points in problem spots, and turning a bundle of wire into a home network system that handles terabytes of data each month has been a learning experience.
-The first order of business for making this operational was to terminate the cables in order to be able to connect devices between them. According to my research, the recommended way to approach this was using a patch panel. A patch panel takes the 8 conductors on a CAT6 cable and turns them into female connectors that you can attach to your rack and ensures that the solid conductors aren’t stressed from moving around.
-I then had to determine what switches I would need to handle all the traffic. I wanted a gigabit uplink on the minimum for all devices and had to provide power to 5 IP cameras, preferably over PoE. I ultimately decided to use a Netgear GS108PP switch for gigabit PoE for the cameras and a Netgear GS324 for the non PoE devices.
-The heart of this setup was the Mikrotik hAP AC2. It has been my router of choice for a few years as it can comfortably NAT a gigabit connection, is extremely customizable due to RouterOS and draws only about 5w due to its quad core ARM CPU. The hAP however does not support being rack mounted, as it is meant for a SOHO setup. I fixed this problem by modeling and 3D printing a tray for the router that could be rack mounted ensuring that the setup stays cleaner overall.
-With the equipment installed I added an ESP8266 with a DS18B20 temperature sensor to the bottom of the GS324 in order to monitor temperatures in the rack, and noticed that the equipment could reach 40-50C during the summer months. This is an acceptable temperature for the equipment installed and within the operating specifications but I would prefer to have lower temperatures for power savings as well as equipment longevity, so I 3d printed plates with holes and mounting points for 120mm PC case fans that I could attach to the front of the rack in order to maintain positive airflow into the rack and keep things cool.
-The 3 fans blowing on the equipment temperatures lowered to a much more acceptable 35C, ensuring that the equipment would work reliably and will not cause random issues due to overheating. I unfortunately could not disable the LEDs on the fans as they were wired in series with the motor but functionality comes before form.
-After finishing installing everything inside the rack and connecting my server to the hAP, I was able to begin network configuration. I decided upon the following network layout.
-10.0.0.0/23 - LAN
-- 10.0.0.0/24 - DHCP
-- 10.0.1.0/24 - Static IPs
-10.0.2.0/24 - Cameras
-10.1.1.0/24 - Wireguard
-
-I decided to make a /23 subnet for the local network. This is because of the high number of static IPs in the network because of the 50 or so smart devices in the house along with other equipment such as printers and the access points. I also decided to put the cameras in their own network that does not have internet access in the interest of privacy. The cameras can be accessed from outside the network by simply connecting to the wireguard tunnel.
-The choice of access points was critical for this project. The options available in India were fairly lackluster, with most options being intended for ceiling or wall mounts, which would not work with my setup. I had previous experience with using OpenWRT as my routing platform of choice, and wondered if it could be used for access points as well. Looking around in the documentation, I found this page, which details how an OpenWRT device can be setup in order to act as a WAP. This information along with the usteer package, which uses 802.11v and 802.11v to aid devices to pick the best access point to connect to gave me a fairly stable and well performing wireless network. However, if I were doing another project like this, I would definitely look into enterprise WAPs instead. The OpenWRT APs lack any sort of features for management and updating and can be quite unstable between firmware revisions. The setup also requires far more manual setup and tuning than something like a proper WAP would and with more performance.
-The final access point collection looked like this:
-All devices other than the Xiaomi are MT7621 devices, which is a quite mature target platform for OpenWRT and is quite stable. The Xiaomi AX3200 just obtained stable support for OpenWRT but also performs quite well, reaching near gigabit speeds with 802.11AX
-#Final Thoughts
-Creating this network has been an incredible learning experience that challenged both my hardware and software knowledge, as well as taught me quite a lot about how to plan for infrastructure and to chose suitable hardware. I would definitely recommend taking on a project like this as compared to simply hiring someone to do it for you, as it teaches you the ins and outs of your home network and allows you to quickly and easily modify or fix any problems you may have with it in the future.
- - -My home was undergoing reconstruction during 2022, and with a fresh start you get the opportunity to fix problems that plagued you before. The old building was constructed in the 1980s and with the brick and cement walls in India it is impossible to get a good Wi-Fi connection or add cabling to add additional access points. This time, I made sure to have at least one CAT6 cable going to each room, in order to be able to fix any dead spots by simply adding in access points in problem spots, and turning a bundle of wire into a home network system that handles terabytes of data each month has been a learning experience. -...
-My house has outdoor lights on the front façade as part of the overall design of the house. These lights were currently turned on manually at a regular time everyday, but someone had to go to turn them off for the night. This proved to be very inconvenient, and resulted in my dad asking me to create some sort of solution to automate the task. I started mapping out the problem in order to understand it better and to break it down into components in order to understand how this would be solved, and concluded the following things: -...
-After running a homelab on an old laptop for many years, I finally decided to bite the bullet and finally part out a PC to use as my home server, to run my websites, cloud storage, home automation using Home Assistant, and local DNS resolution on my network. The specs of the final build were as follows: -AMD Ryzen 4600G 4x8 GB DDR4 3200 by Crucial Gigabyte Gaming X B450 Motherboard 1TB SSD storage 12TB HDD storage Cooler Master MWE 450 Bronze V2 450W PSU Despite the current silicon shortages, acquiring the parts was surprisingly quick and painless. After collecting all the components that were ordered, I begun the simple process of assembling it all together only to discover that I got no sign of life upon pressing the power button. Now, it was my first time building a PC but it wasn’t my first time taking on a project like this, which made it all the more confusing as to why there was a problem. I was reading the motherboard’s manual and scratching my head when suddenly it hit me. The motherboard was manufactured in October 2020, which meant that the BIOS revision on the motherboard was much older than what was required in order for it to support my CPU. This was quite a big problem. I had no older CPU which I could use to update the motherboard, and without this, the build was completely halted. I tried looking around local shops in order to find anyone who would update the BIOS but could not find anyone willing to take the project on, leaving my only option being taking the 45 minute drive to the closest service center in order to get it updated. -...
-