ertuncozbay.dev/lab.html

191 lines
10 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-theme="colorful">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Lab &amp; Experiment Notebook — Ertunç Özbay</title>
<meta name="description" content="Workshop lab notebook of Ertunç Özbay: ESP32-S3 hardware protection notes, RLE MIDI-to-C compression tools, Linux Wine/DX11 experiments, and reverse-engineering study logs.">
<link rel="icon" type="image/svg+xml" href="assets/images/favicon.svg">
<link rel="stylesheet" href="assets/css/style.css?v=2">
</head>
<body>
<a class="skip-link" href="index.html#main-content">Skip to main content</a>
<header class="site-header">
<div class="container header-inner">
<a class="site-brand" href="index.html">
<span class="brand-mark" aria-hidden="true">EÖ</span>
<span>
Ertunç Özbay
<span class="brand-subtitle">embedded // hardware // open-source</span>
</span>
</a>
<div class="header-controls">
<div class="theme-switcher" role="group" aria-label="Select UI Theme">
<button type="button" class="theme-btn" data-set-theme="colorful" aria-pressed="true">🎨 Colorful</button>
<button type="button" class="theme-btn" data-set-theme="neon" aria-pressed="false">🌈 Neon</button>
<button type="button" class="theme-btn" data-set-theme="blueprint" aria-pressed="false">📐 Blueprint</button>
</div>
<button class="nav-toggle" type="button" data-nav-toggle aria-expanded="false" aria-controls="primary-navigation">
<span aria-hidden="true">☰</span>
<span data-nav-label>Menu</span>
</button>
<nav id="primary-navigation" class="site-nav" data-site-nav aria-label="Main navigation">
<ul class="nav-list">
<li><a class="nav-link" href="index.html">Home</a></li>
<li><a class="nav-link" href="about.html">About</a></li>
<li><a class="nav-link" href="projects/index.html">Projects</a></li>
<li><a class="nav-link" href="blog/index.html">Blog</a></li>
<li><a class="nav-link" href="lab.html" aria-current="page">Lab</a></li>
<li><a class="nav-link" href="contact.html">Contact</a></li>
</ul>
</nav>
</div>
</div>
</header>
<main id="main-content">
<div class="container">
<section class="workshop-hero" aria-labelledby="lab-heading">
<span class="workshop-eyebrow">🔬 WORKSHOP BENCH // LAB NOTEBOOK</span>
<h1 id="lab-heading"><span class="gradient-title">Lab &amp; Experiment Notebook</span></h1>
<p class="hero-lead">
Welcome to my open workbench. This page tracks my real engineering experiments, hardware debugging breakthroughs, Python/Rust tooling scripts, and reverse-engineering study notes.
</p>
</section>
<!-- Section 1: Current experiments -->
<section class="section-block" aria-labelledby="lab-current">
<div class="section-header">
<div>
<span class="section-label">01 // Active Bench Breakthroughs</span>
<h2 id="lab-current">Recent Hardware &amp; Firmware Experiments</h2>
</div>
</div>
<div class="card-grid-2">
<div class="card card-synth">
<div class="card-top">
<div class="card-meta">
<span class="badge badge-experimental">Solved on Breadboard</span>
<span>ESP32 Dual-Core • Python RLE</span>
</div>
<h3>Defeating the 30 Hz MIDI "Strobe-Light" Bug &amp; Piezo Bass Roll-Off</h3>
<p>
While building the <a href="projects/midi-breadboard-instrument.html">16-Track MIDI Breadboard Instrument</a>, raw MIDI delta-slices caused the LEDs and 1.3" SPI OLED to strobe violently. Writing a custom Run-Length Encoding (RLE) compressor in Python (<code>midi_to_c.py</code>) and transposing bass-heavy tracks like <em>Seven Nation Army</em> +2 octaves solved both flash exhaustion and piezo acoustic roll-off.
</p>
</div>
<div class="card-actions">
<a class="btn btn-cyan" href="assets/downloads/midi_to_c.py" download="midi_to_c.py">🐍 Download midi_to_c.py</a>
<a class="btn btn-emerald" href="assets/downloads/desk_rave_16track_esp32.c" download="mmcontroller.c">⬇ Download 16-Track C Code</a>
<a class="btn btn-secondary" href="projects/midi-breadboard-instrument.html">Full MIDI Project →</a>
</div>
</div>
<div class="card card-amber">
<div class="card-top">
<div class="card-meta">
<span class="badge badge-progress">Hardware Rev 0.1 → Phase 2</span>
<span>ESP32-S3-N16R8 • SPI2 Bus</span>
</div>
<h3>ESP32-S3 Octal PSRAM Pin Collisions &amp; Shared SPI2 Arbitration</h3>
<p>
On the <a href="projects/multi-functional-controller.html">Multi-Functional RC Controller</a>, the ESP32-S3-N16R8 reserves <code>GPIO 35–37</code> for internal Octal PSRAM/Flash. We remapped the shared SPI2 bus (<code>MOSI: 11, MISO: 13, SCK: 12</code>) with dedicated hardware CS lines for the nRF24L01+ (<code>CSN: 10</code>), MicroSD (<code>CS: 39</code>), and ST7789 IPS TFT (<code>CS: 40</code>).
</p>
</div>
<div class="card-actions">
<a class="btn btn-cyan" href="assets/downloads/mfc-1.kicad_sch" download="mfc-1.kicad_sch">📐 Download KiCad Schematic</a>
<a class="btn btn-emerald" href="assets/downloads/mfc_esp32s3_firmware.c" download="mmcontroller.c">⬇ Download S3 Firmware</a>
<a class="btn btn-secondary" href="projects/multi-functional-controller.html">Full Controller Page →</a>
</div>
</div>
</div>
</section>
<!-- Section 2: Software and conversion tools -->
<section class="section-block" aria-labelledby="lab-software">
<div class="section-header">
<div>
<span class="section-label">02 // Code &amp; Systems Tooling</span>
<h2 id="lab-software">Custom Compilers &amp; Linux Runtime Tools</h2>
</div>
</div>
<div class="card-grid-2">
<div class="card card-coral">
<div class="card-top">
<div class="card-meta">
<span class="badge badge-coral">KiCad • Hardware Design</span>
<span>Schematic &amp; PCB Capture</span>
</div>
<h3>KiCad Schematic Capture for ESP32-S3 Hardware (<code>mfc-1.kicad_sch</code>)</h3>
<p>
In <a href="projects/multi-functional-controller.html">multi-functional-controller</a>, we captured a complete modular schematic linking dual Hall-effect analog gimbals, a 16-channel CD74HC4067 multiplexer, an nRF24L01+ PA+LNA RF module, and an SSD1306 I2C OLED display to an ESP32-S3.
</p>
</div>
<div class="card-actions">
<a class="btn btn-emerald" href="/assets/downloads/mfc-1.kicad_sch" download="mfc-1.kicad_sch">⬇ Download KiCad Schematic</a>
<a class="btn btn-secondary" href="projects/multi-functional-controller.html">View Hardware Page →</a>
</div>
</div>
<div class="card card-emerald">
<div class="card-top">
<div class="card-meta">
<span class="badge badge-active">Python 3 • mido</span>
<span>Embedded Audio Tooling</span>
</div>
<h3>RLE MIDI-to-C Struct Compiler (<code>midi_to_c.py</code>)</h3>
<p>
Converts multi-channel `.mid` files into compact C99 <code>SequenceStep</code> struct arrays (<code>{frequency, duration, kick_drum, hi_hat}</code>), automatically routing MIDI Channel 10 and low bass notes (<code>&lt; MIDI 50</code>) to hardware percussion buzzers.
</p>
</div>
<div class="card-actions">
<a class="btn btn-secondary" href="https://git.ertuncozbay.dev/ertunc-ozbay/midi-breadboard-instrument/src/branch/main/scripts/midi_to_c.py" rel="noopener noreferrer">View Script on Git Server →</a>
</div>
</div>
</div>
</section>
<!-- Section 3: Reverse-engineering learning -->
<section class="section-block" aria-labelledby="lab-re">
<div class="section-header">
<div>
<span class="section-label">03 // System Internals</span>
<h2 id="lab-re">Reverse-Engineering &amp; Low-Level Study Log</h2>
</div>
</div>
<div class="callout-box magenta">
<span class="callout-title">Looking Under the Hood</span>
<p>
I study reverse engineering using <strong>Ghidra</strong>, <strong>x64dbg</strong>, <strong>radare2</strong>, and <strong>Cheat Engine</strong> to understand how compiled C/C++ binaries, memory layouts, calling conventions, and hardware registers work at the machine instruction level.
</p>
<p style="margin-bottom:0;">
Every time I inspect a compiled binary or debug an ESP32 panic backtrace, it reinforces why deep knowledge of C, memory alignment, and Assembly is indispensable.
</p>
</div>
</section>
</div>
</main>
<footer class="site-footer">
<div class="container footer-inner">
<div>
<strong>Ertunç Özbay</strong> — Electrical &amp; Electronics Engineering Student • <a href="mailto:ertunc.ozbay@outlook.com">ertunc.ozbay@outlook.com</a>
</div>
<ul class="footer-links" aria-label="Footer links">
<li><a href="projects/index.html">Projects</a></li>
<li><a href="blog/index.html">Blog</a></li>
<li><a href="lab.html">Lab</a></li>
<li><a href="contact.html">Contact</a></li>
<li><a href="https://git.ertuncozbay.dev/ertunc-ozbay" rel="noopener noreferrer">Git Server</a></li>
<li><a href="https://www.linkedin.com/in/ertunc-ozbay" rel="noopener noreferrer">LinkedIn</a></li>
</ul>
</div>
</footer>
<script src="assets/js/main.js?v=2"></script>
</body>
</html>