diff options
Diffstat (limited to '_projects')
| -rw-r--r-- | _projects/desktop-unix.md | 31 | ||||
| -rw-r--r-- | _projects/desktop-unix/dotfiles.tar.gz | bin | 6397999 -> 0 bytes | |||
| -rw-r--r-- | _projects/desktop-unix/linux.png | bin | 206255 -> 0 bytes | |||
| -rw-r--r-- | _projects/desktop-unix/openbsd.png | bin | 318897 -> 0 bytes | |||
| -rw-r--r-- | _projects/my-first-pcb.md | 65 | ||||
| -rw-r--r-- | _projects/my-first-pcb/back.jpeg | bin | 0 -> 34023 bytes | |||
| -rw-r--r-- | _projects/my-first-pcb/back_design.jpeg | bin | 0 -> 31946 bytes | |||
| -rw-r--r-- | _projects/my-first-pcb/front.jpeg | bin | 0 -> 28997 bytes | |||
| -rw-r--r-- | _projects/my-first-pcb/front_design.jpeg | bin | 0 -> 32174 bytes | |||
| -rw-r--r-- | _projects/my-first-pcb/gerber_back.zip | bin | 0 -> 48217 bytes | |||
| -rw-r--r-- | _projects/my-first-pcb/gerber_front.zip | bin | 0 -> 49605 bytes | |||
| -rw-r--r-- | _projects/my-first-pcb/source.tar.gz | bin | 0 -> 6660 bytes | |||
| -rw-r--r-- | _projects/my-first-pcb/thumb.jpeg | bin | 0 -> 27235 bytes |
13 files changed, 65 insertions, 31 deletions
diff --git a/_projects/desktop-unix.md b/_projects/desktop-unix.md deleted file mode 100644 index 92bca29..0000000 --- a/_projects/desktop-unix.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Desktop Unix -date: 2025-09-21 -author: Wickramage Don Sadeep Madurange -thumbnail: linux.png -layout: post ---- - -The year 2020 transformed my personal computing experience. In March 2020, I -stumbled upon Arch Linux and discovered that I could customize my desktop -environment to look and work any way I liked. I exercised that newfound freedom -to create a Matrix-themed setup: - - - -The system employs the X display server and the i3 window manager. The terminal -emulator used is Urxvt. The translucent effect is achieved with the help of the -Xcompmgr compositor. This sort of setup was popular among minimalist Linux -users. - -In February 2024, I switched to an OpenBSD system with Xenocara (the OpenBSD -build of X display server) as the display server and i3 as the window manager: - - - -Unlike Linux, OpenBSD includes a coherent desktop environment out of the box. -Except for the window manager, for which I prefer a tiling one, I'm now using -the default OpenBSD setup. For the window manager, I use dwm from the Suckless -team. - -Files: [dotfiles.tar.gz](dotfiles.tar.gz) diff --git a/_projects/desktop-unix/dotfiles.tar.gz b/_projects/desktop-unix/dotfiles.tar.gz Binary files differdeleted file mode 100644 index c6774c4..0000000 --- a/_projects/desktop-unix/dotfiles.tar.gz +++ /dev/null diff --git a/_projects/desktop-unix/linux.png b/_projects/desktop-unix/linux.png Binary files differdeleted file mode 100644 index 40bc33b..0000000 --- a/_projects/desktop-unix/linux.png +++ /dev/null diff --git a/_projects/desktop-unix/openbsd.png b/_projects/desktop-unix/openbsd.png Binary files differdeleted file mode 100644 index d7489f7..0000000 --- a/_projects/desktop-unix/openbsd.png +++ /dev/null diff --git a/_projects/my-first-pcb.md b/_projects/my-first-pcb.md new file mode 100644 index 0000000..be425f4 --- /dev/null +++ b/_projects/my-first-pcb.md @@ -0,0 +1,65 @@ +--- +title: My first PCB +date: 2025-07-14 +author: Wickramage Don Sadeep Madurange +layout: post +thumbnail: thumb.jpeg +--- + +In 2023, I started tinkering with DIY electronics as a hobby. Until now, I've +been using development boards like the Arduino Uno and ESP-32-WROOM so that I +can focus on the software. Recently, I decided to step outside of my comfort +zone and design a PCB from scratch for a door lock I'm working on. + +The lock comprises two subsystems: a fingerprint sensor in front of the door +and a servo connected to the physical lock behind the door. The fingerprint +sensor authenticates the person and signals the servo behind the door to unlock +the door over an encrypted RF channel. + +<table style="border: none; width: 100%"> + <tr style="border: none;"> + <td style="border: none; width: 49.5%; vertical-align: top; text-align: center;"> + <img src="front_design.jpeg" alt="Design (front)" style="width: 100%"> + <p>Footprint (front)</p> + </td> + <td style="border: none; vertical-align: top; text-align: center;"> + <img src="front.jpeg" alt="PCB (front)" style="width: 100%"> + <p>PCB (front)</p> + </td> + </tr> + <tr style="border: none;"> + <td style="border: none; width: 49.5%; vertical-align: top; text-align: center;"> + <img src="back_design.jpeg" alt="Design (back)" style="width: 100%"> + <p>Footprint (back)</p> + </td> + <td style="border: none; vertical-align: top; text-align: center;"> + <img src="back.jpeg" alt="PCB (back)" style="width: 100%"> + <p>PCB (back)</p> + </td> + </tr> +</table> + +The PCBs have two layers. A copper region serves as the ground plane. The 0.3 +mm wide 1 oz/ft<sup>2</sup> copper traces can carry up to 500 mA (the tracks +connecting the power source and the linear regulators have a width of 0.5 mm). +Both subsystems were functional. I was able to control the servo reliably using +the fingerprint sensor. + +The designs aren't without flaws, however. The main shortcoming of the circuits +is that they draw significant amounts of quiescent currents despite employing +sleep modes. The linear regulators were a poor choice as they dissipate too +much heat. The fingerprint sensor and the servo draw 13.8 mA (3.3 V) and 4.6 mA +(5 V) respectively, as long as they are connected to the power supply. + +Although the circuit didn't draw more than 200 mA without a load, the servo +under load could draw up to 600 mA. I'm sailing too close to the wind with 0.3 +mm copper traces. Instead, 0.4 mm wide 2 oz/ft<sup>2</sup> traces would have +been safer. + +I'm working on improving the design to reduce idle current consumption and +extend the battery life. Despite its deficiencies, this was my first PCB +design, and I'm glad that it worked as well as it did. Custom PCB design marks +an important milestone in my DIY electronics journey. + +Files: [gerber_back.zip](gerber_back.zip), [gerber_front.zip](gerber_front.zip), + [source.tar.gz](source.tar.gz) diff --git a/_projects/my-first-pcb/back.jpeg b/_projects/my-first-pcb/back.jpeg Binary files differnew file mode 100644 index 0000000..f458e69 --- /dev/null +++ b/_projects/my-first-pcb/back.jpeg diff --git a/_projects/my-first-pcb/back_design.jpeg b/_projects/my-first-pcb/back_design.jpeg Binary files differnew file mode 100644 index 0000000..b6c0f5d --- /dev/null +++ b/_projects/my-first-pcb/back_design.jpeg diff --git a/_projects/my-first-pcb/front.jpeg b/_projects/my-first-pcb/front.jpeg Binary files differnew file mode 100644 index 0000000..2b2931f --- /dev/null +++ b/_projects/my-first-pcb/front.jpeg diff --git a/_projects/my-first-pcb/front_design.jpeg b/_projects/my-first-pcb/front_design.jpeg Binary files differnew file mode 100644 index 0000000..f81f09c --- /dev/null +++ b/_projects/my-first-pcb/front_design.jpeg diff --git a/_projects/my-first-pcb/gerber_back.zip b/_projects/my-first-pcb/gerber_back.zip Binary files differnew file mode 100644 index 0000000..26659ad --- /dev/null +++ b/_projects/my-first-pcb/gerber_back.zip diff --git a/_projects/my-first-pcb/gerber_front.zip b/_projects/my-first-pcb/gerber_front.zip Binary files differnew file mode 100644 index 0000000..864334e --- /dev/null +++ b/_projects/my-first-pcb/gerber_front.zip diff --git a/_projects/my-first-pcb/source.tar.gz b/_projects/my-first-pcb/source.tar.gz Binary files differnew file mode 100644 index 0000000..c31aa22 --- /dev/null +++ b/_projects/my-first-pcb/source.tar.gz diff --git a/_projects/my-first-pcb/thumb.jpeg b/_projects/my-first-pcb/thumb.jpeg Binary files differnew file mode 100644 index 0000000..be7143d --- /dev/null +++ b/_projects/my-first-pcb/thumb.jpeg |
