<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Uduli Gunathilake</title>
    <description>The latest articles on Forem by Uduli Gunathilake (@uduli03).</description>
    <link>https://forem.com/uduli03</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3921106%2Fb55144f6-a190-4cb0-8f42-5b6f73720c4f.png</url>
      <title>Forem: Uduli Gunathilake</title>
      <link>https://forem.com/uduli03</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/uduli03"/>
    <language>en</language>
    <item>
      <title>My First PCB Design Experience: Building a Simple 2N2222 Audio Amplifier Using KiCad and EasyEDA</title>
      <dc:creator>Uduli Gunathilake</dc:creator>
      <pubDate>Sun, 10 May 2026 15:41:17 +0000</pubDate>
      <link>https://forem.com/uduli03/my-first-pcb-design-experience-building-a-simple-2n2222-audio-amplifier-using-kicad-and-easyeda-2kjn</link>
      <guid>https://forem.com/uduli03/my-first-pcb-design-experience-building-a-simple-2n2222-audio-amplifier-using-kicad-and-easyeda-2kjn</guid>
      <description>&lt;p&gt;Until recently, PCB design was something that looked incredibly complicated to me.&lt;/p&gt;

&lt;p&gt;I used to see images of professionally designed circuit boards online and always wondered:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How do people actually make these?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This project became my first real attempt at understanding that process.&lt;/p&gt;

&lt;p&gt;Using a simple 2N2222 transistor audio amplifier circuit, I started learning how schematics become actual PCB boards using KiCad and EasyEDA. What seemed like a small beginner electronics project quickly became one of the most valuable learning experiences I’ve had so far.&lt;/p&gt;




&lt;h3&gt;
  
  
  Starting With the Circuit
&lt;/h3&gt;

&lt;p&gt;The project was based on a simple transistor amplifier using the 2N2222 NPN transistor. The circuit itself was not very large, but it introduced many important electronics concepts including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;transistor biasing&lt;/li&gt;
&lt;li&gt;signal amplification&lt;/li&gt;
&lt;li&gt;grounding&lt;/li&gt;
&lt;li&gt;coupling capacitors&lt;/li&gt;
&lt;li&gt;PCB routing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The amplifier circuit included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;resistors&lt;/li&gt;
&lt;li&gt;electrolytic capacitors&lt;/li&gt;
&lt;li&gt;input and output connectors&lt;/li&gt;
&lt;li&gt;speaker output&lt;/li&gt;
&lt;li&gt;power input section&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The purpose of the circuit was simple:&lt;br&gt;
to amplify a small audio signal enough to drive a speaker.&lt;/p&gt;

&lt;p&gt;Even though the circuit looked simple on paper, implementing it as a PCB was a completely different experience.&lt;/p&gt;




&lt;h3&gt;
  
  
  Discovering the Difference Between a Schematic and a PCB
&lt;/h3&gt;

&lt;p&gt;At first, I thought creating a schematic was the difficult part.&lt;/p&gt;

&lt;p&gt;I was wrong.&lt;/p&gt;

&lt;p&gt;After completing the schematic in KiCad, I encountered something called footprints. That was when I realized PCB design is not only about electrical connections — it is also about physical hardware.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flidcep0dzx02ol1n23a4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flidcep0dzx02ol1n23a4.png" alt=" " width="800" height="679"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 1: Schematic - KiCad&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa8lwsn9m3sb3jmyzwvo7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa8lwsn9m3sb3jmyzwvo7.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 2: Schematic - EasyEDA&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every component needed a real physical package:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;resistors needed through-hole footprints&lt;/li&gt;
&lt;li&gt;capacitors needed proper spacing&lt;/li&gt;
&lt;li&gt;connectors needed accurate pin pitch&lt;/li&gt;
&lt;li&gt;the transistor required a TO-92 package&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without assigning footprints correctly, KiCad simply refused to generate the PCB layout.&lt;/p&gt;

&lt;p&gt;Seeing errors like:&lt;/p&gt;

&lt;p&gt;“No footprint assigned”&lt;br&gt;
“Malformed board outline”&lt;br&gt;
“Unconnected items”&lt;/p&gt;

&lt;p&gt;became part of the learning process.&lt;/p&gt;

&lt;p&gt;At first it felt frustrating, but eventually those errors started teaching me how PCB software actually works.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Most Challenging Part: PCB Routing
&lt;/h3&gt;

&lt;p&gt;The routing stage was definitely the hardest part of this project.&lt;/p&gt;

&lt;p&gt;The moment the components appeared inside the PCB editor, the screen filled with yellow connection lines going everywhere. My first layout looked extremely messy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tracks crossing each other&lt;/li&gt;
&lt;li&gt;components placed randomly&lt;/li&gt;
&lt;li&gt;routing becoming impossible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a while, it honestly felt overwhelming.&lt;/p&gt;

&lt;p&gt;Then I learned one important lesson:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Good PCB routing starts with good component placement.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once I reorganized the components according to the signal flow of the circuit, everything became easier.&lt;/p&gt;

&lt;p&gt;I arranged the board like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;audio input section on one side&lt;/li&gt;
&lt;li&gt;transistor stage in the center&lt;/li&gt;
&lt;li&gt;output section near the speaker connector&lt;/li&gt;
&lt;li&gt;power section separated cleanly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That small change made routing far more manageable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzfn2e84rtj1toi5f7nwb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzfn2e84rtj1toi5f7nwb.png" alt=" " width="800" height="437"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 3: EasyEDA PCB Layout&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F72lz595du5h3uc8kmt83.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F72lz595du5h3uc8kmt83.png" alt=" " width="800" height="585"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 4: KiCad PCB Layout&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Learning About Copper Layers
&lt;/h3&gt;

&lt;p&gt;Before this project, I had no idea what copper layers actually meant in PCB design.&lt;/p&gt;

&lt;p&gt;While working in KiCad, I learned about:&lt;/p&gt;

&lt;p&gt;F.Cu (Front Copper)&lt;br&gt;
B.Cu (Back Copper)&lt;br&gt;
Edge.Cuts&lt;br&gt;
PCB outlines&lt;/p&gt;

&lt;p&gt;I also learned how PCB manufacturers use the Edge.Cuts layer to determine the physical shape of the board.&lt;/p&gt;

&lt;p&gt;For this design, I used a simpler single-layer style approach to keep the routing easier and more beginner-friendly.&lt;/p&gt;




&lt;h3&gt;
  
  
  Using KiCad and EasyEDA
&lt;/h3&gt;

&lt;p&gt;This project gave me the opportunity to explore both KiCad and EasyEDA.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;KiCad&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;I mainly used KiCad for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;schematic design&lt;/li&gt;
&lt;li&gt;footprint assignment&lt;/li&gt;
&lt;li&gt;PCB routing&lt;/li&gt;
&lt;li&gt;copper layers&lt;/li&gt;
&lt;li&gt;3D PCB viewing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;u&gt;EasyEDA&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;EasyEDA helped with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;quick circuit visualization&lt;/li&gt;
&lt;li&gt;understanding PCB layouts&lt;/li&gt;
&lt;li&gt;comparing workflows between tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Working with both tools helped me understand how professional PCB design software operates.&lt;/p&gt;




&lt;h3&gt;
  
  
  What This First PCB Taught Me
&lt;/h3&gt;

&lt;p&gt;This project taught me much more than just how to connect electronic components.&lt;/p&gt;

&lt;p&gt;It taught me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;patience during debugging&lt;/li&gt;
&lt;li&gt;logical component placement&lt;/li&gt;
&lt;li&gt;PCB workflow basics&lt;/li&gt;
&lt;li&gt;practical electronics design&lt;/li&gt;
&lt;li&gt;how hardware is prepared for manufacturing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most importantly, it taught me that PCB design is not something you learn only by watching tutorials.&lt;/p&gt;

&lt;p&gt;You learn it by struggling through errors, experimenting with layouts, fixing mistakes, and slowly improving with each attempt.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;There is still a lot for me to learn, but this first PCB design experience made electronics feel much more real, practical, and exciting.&lt;/p&gt;

&lt;p&gt;And honestly, it made me want to build even more.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>beginners</category>
      <category>design</category>
      <category>learning</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Authentication Made Simple: My First Experience with Asgardeo</title>
      <dc:creator>Uduli Gunathilake</dc:creator>
      <pubDate>Sat, 09 May 2026 05:24:10 +0000</pubDate>
      <link>https://forem.com/uduli03/what-is-asgardeo-a-beginners-guide-to-easy-authentication-51e5</link>
      <guid>https://forem.com/uduli03/what-is-asgardeo-a-beginners-guide-to-easy-authentication-51e5</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Every modern application needs a secure login system, but for beginners, authentication can feel complicated and overwhelming. While exploring cloud technologies and developer tools, I came across Asgardeo by WSO2 — a platform designed to simplify authentication and identity management.&lt;/p&gt;

&lt;p&gt;As someone still learning about APIs, authentication, and web security, I wanted to understand how developers manage user login systems without building everything from scratch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F673j9xb44u1666ocwz5q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F673j9xb44u1666ocwz5q.png" alt=" " width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Asgardeo?
&lt;/h2&gt;

&lt;p&gt;Asgardeo is a cloud-based identity and access management platform developed by WSO2. It helps developers add secure login, user management, and authentication features to applications quickly and efficiently.&lt;/p&gt;

&lt;p&gt;Instead of manually building login systems, developers can use Asgardeo to manage authentication through a centralized platform.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Authentication is one of the most important parts of modern application security.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Features I Found Interesting
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Easy authentication setup&lt;/li&gt;
&lt;li&gt;User management&lt;/li&gt;
&lt;li&gt;Social login support&lt;/li&gt;
&lt;li&gt;Beginner-friendly dashboard&lt;/li&gt;
&lt;li&gt;Cloud-based platform&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fokuj38vh7r3z5odzlksp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fokuj38vh7r3z5odzlksp.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 1: Exploring the Asgardeo dashboard&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjj7s37az8sto00pli5k3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjj7s37az8sto00pli5k3.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 2: Application Creation Page&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started with Asgardeo
&lt;/h2&gt;

&lt;p&gt;To begin exploring Asgardeo, I created a free account and explored the dashboard interface. After that, I created a sample Single Page Application to understand how authentication systems are configured.&lt;/p&gt;

&lt;p&gt;The setup process was smooth and beginner-friendly, which made it easier to understand identity and access management concepts.&lt;/p&gt;




&lt;h2&gt;
  
  
  My Thoughts
&lt;/h2&gt;

&lt;p&gt;Before exploring Asgardeo, authentication and identity management felt like difficult topics to understand. However, after using the platform, I realized that modern tools can simplify these concepts for beginner developers.&lt;/p&gt;

&lt;p&gt;I especially liked the clean interface and the guided setup experience. It helped me better understand how secure login systems work in real applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Exploring Asgardeo gave me practical exposure to authentication technologies and helped me better understand modern application security concepts.&lt;/p&gt;

&lt;p&gt;I look forward to learning more about APIs, cloud technologies, and identity management systems in the future.&lt;/p&gt;

</description>
      <category>wso2</category>
      <category>asgardeo</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
