<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Notes &amp; Développements</title>
    <link>https://blog.gabrielcharib.com/</link>
    <description>Articles techniques, projets et contributions — Gabriel Charib</description>
    <pubDate>Sat, 31 Oct 2026 18:01:59 +0100</pubDate>
    <item>
      <title>Contribution wLaunchELF &amp; serveur OpenPS2SDK</title>
      <link>https://blog.gabrielcharib.com/contribution-wlaunchelf-serveur-openps2sdk</link>
      <description>&lt;![CDATA[Petite contribution open source côté PlayStation 2, plus la mise en place d’un serveur auto-hébergé pour compiler avec l’OpenPS2SDK — sans tout installer sur mon Mac.&#xA;&#xA;!--more--&#xA;&#xA;Contribution : wLaunchELF&#xA;&#xA;PR mergée dans ps2homebrew/wLaunchELF :&#xA;&#xA;fix: clearer color labels in Screen Settings (Fixes #128)&#xA;&#xA;Dans Screen Settings, les couleurs 4 à 8 s’appelaient Normal, Graph1… Graph4. Peu clair : on ne voyait pas ce que chaque couleur changeait dans l’UI.&#xA;&#xA;| Couleur | Avant | Après |&#xA;|---------|-------|-------|&#xA;| Color4 | Normal | Text |&#xA;| Color5 | Graph1 | Folders |&#xA;| Color6 | Graph2 | ELFs |&#xA;| Color7 | Graph3 | Not Readable |&#xA;| Color8 | Graph4 | File Readable |&#xA;&#xA;Couleurs 1–3 inchangées (Backgr, Frames, Select).&#xA;&#xA;Côté code : nouvelles chaînes dans lang.h, mapping mis à jour dans config.c.  &#xA;Pas de changement des valeurs de couleur, des clés CNF (GUICol*), ni de la logique du file browser.&#xA;&#xA;Mergée le 10 juin 2026 dans master.&#xA;&#xA;Pourquoi un serveur de build ?&#xA;&#xA;Compiler le SDK PS2 sur un Mac, ça alourdit vite la machine. J’ai donc monté un serveur auto-hébergé avec l’OpenPS2SDK : édition / git sur le Mac, build sur le serveur.&#xA;&#xA;Chaîne de dev PS2&#xA;&#xA;Mac → Serveur OpenPS2SDK → Build ELF → Émulateur → PS2 réelle&#xA;&#xA;Comment je teste&#xA;&#xA;Émulateur — itérations rapides (lancer l’ELF, vérifier l’UI / les labels).&#xA;PlayStation 2 physique — validation finale sur console réelle.&#xA;&#xA;L’émulateur évite de brancher la PS2 à chaque micro-changement ; la console confirme que ça tient vraiment en conditions réelles.&#xA;&#xA;En bref&#xA;&#xA;Contribution upstream : labels de couleurs plus lisibles dans wLaunchELF.&#xA;Infra perso : serveur + OpenPS2SDK pour compiler hors du Mac.&#xA;Double test : émulateur au quotidien, PS2 pour le go final.&#xA;&#xA;Lien PR : https://github.com/ps2homebrew/wLaunchELF/pull/145&#xA;&#xA;Lire aussi&#xA;&#xA;→ Hackathon 2026 : faire du neuf avec de l&#39;ancien&#xA;&#xA;#ps2 #homebrew #wlaunchelf #opensource #openps2sdk #selfhosted&#xA;&#xA;---&#xA;&#xA;Auteur — Gabriel Charib  &#xA;Business Analyst Junior · notes techniques &amp; projets  &#xA;&#xA;← Tous les articles · Portfolio · LinkedIn]]&gt;</description>
      <content:encoded><![CDATA[<p>Petite contribution open source côté <strong>PlayStation 2</strong>, plus la mise en place d’un <strong>serveur auto-hébergé</strong> pour compiler avec l’OpenPS2SDK — sans tout installer sur mon Mac.</p>



<h2 id="contribution-wlaunchelf">Contribution : wLaunchELF</h2>

<p>PR mergée dans <a href="https://github.com/ps2homebrew/wLaunchELF/pull/145">ps2homebrew/wLaunchELF</a> :</p>

<p><strong>fix: clearer color labels in Screen Settings (Fixes #128)</strong></p>

<p>Dans <em>Screen Settings</em>, les couleurs 4 à 8 s’appelaient <code>Normal</code>, <code>Graph1</code>… <code>Graph4</code>. Peu clair : on ne voyait pas <strong>ce que chaque couleur changeait</strong> dans l’UI.</p>

<table>
<thead>
<tr>
<th>Couleur</th>
<th>Avant</th>
<th>Après</th>
</tr>
</thead>

<tbody>
<tr>
<td>Color4</td>
<td>Normal</td>
<td><strong>Text</strong></td>
</tr>

<tr>
<td>Color5</td>
<td>Graph1</td>
<td><strong>Folders</strong></td>
</tr>

<tr>
<td>Color6</td>
<td>Graph2</td>
<td><strong>ELFs</strong></td>
</tr>

<tr>
<td>Color7</td>
<td>Graph3</td>
<td><strong>Not Readable</strong></td>
</tr>

<tr>
<td>Color8</td>
<td>Graph4</td>
<td><strong>File Readable</strong></td>
</tr>
</tbody>
</table>

<p>Couleurs 1–3 inchangées (<em>Backgr</em>, <em>Frames</em>, <em>Select</em>).</p>

<p>Côté code : nouvelles chaînes dans <code>lang.h</code>, mapping mis à jour dans <code>config.c</code>.<br>
<strong>Pas de changement</strong> des valeurs de couleur, des clés CNF (<code>GUI_Col_*</code>), ni de la logique du file browser.</p>

<p>Mergée le 10 juin 2026 dans <code>master</code>.</p>

<h2 id="pourquoi-un-serveur-de-build">Pourquoi un serveur de build ?</h2>

<p>Compiler le SDK PS2 sur un Mac, ça alourdit vite la machine. J’ai donc monté un <strong>serveur auto-hébergé</strong> avec l’<strong>OpenPS2SDK</strong> : édition / git sur le Mac, <strong>build sur le serveur</strong>.</p>

<p><img src="https://blog.gabrielcharib.com/media/wlaunchelf-ps2/chemin.png" alt="Chaîne de dev PS2"></p>

<p><strong>Mac → Serveur OpenPS2SDK → Build ELF → Émulateur → PS2 réelle</strong></p>

<h2 id="comment-je-teste">Comment je teste</h2>
<ol><li><strong>Émulateur</strong> — itérations rapides (lancer l’ELF, vérifier l’UI / les labels).</li>
<li><strong>PlayStation 2 physique</strong> — validation finale sur console réelle.</li></ol>

<p>L’émulateur évite de brancher la PS2 à chaque micro-changement ; la console confirme que ça tient vraiment en conditions réelles.</p>

<h2 id="en-bref">En bref</h2>
<ul><li>Contribution upstream : labels de couleurs plus lisibles dans wLaunchELF.</li>
<li>Infra perso : serveur + OpenPS2SDK pour compiler hors du Mac.</li>
<li>Double test : émulateur au quotidien, PS2 pour le go final.</li></ul>

<p>Lien PR : <a href="https://github.com/ps2homebrew/wLaunchELF/pull/145">https://github.com/ps2homebrew/wLaunchELF/pull/145</a></p>

<h2 id="lire-aussi">Lire aussi</h2>

<p>→ <a href="/hackathon-2026-faire-du-neuf-avec-de-lancien">Hackathon 2026 : faire du neuf avec de l&#39;ancien</a></p>

<p><a href="https://blog.gabrielcharib.com/tag:ps2" class="hashtag"><span>#</span><span class="p-category">ps2</span></a> <a href="https://blog.gabrielcharib.com/tag:homebrew" class="hashtag"><span>#</span><span class="p-category">homebrew</span></a> <a href="https://blog.gabrielcharib.com/tag:wlaunchelf" class="hashtag"><span>#</span><span class="p-category">wlaunchelf</span></a> <a href="https://blog.gabrielcharib.com/tag:opensource" class="hashtag"><span>#</span><span class="p-category">opensource</span></a> <a href="https://blog.gabrielcharib.com/tag:openps2sdk" class="hashtag"><span>#</span><span class="p-category">openps2sdk</span></a> <a href="https://blog.gabrielcharib.com/tag:selfhosted" class="hashtag"><span>#</span><span class="p-category">selfhosted</span></a></p>

<hr>

<p><strong>Auteur — Gabriel Charib</strong><br>
Business Analyst Junior · notes techniques &amp; projets</p>

<p><a href="/">← Tous les articles</a> · <a href="https://gabrielcharib.com">Portfolio</a> · <a href="https://www.linkedin.com/in/gabriel-charib">LinkedIn</a></p>
]]></content:encoded>
      <guid>https://blog.gabrielcharib.com/contribution-wlaunchelf-serveur-openps2sdk</guid>
      <pubDate>Sat, 31 Oct 2026 15:24:14 +0000</pubDate>
    </item>
    <item>
      <title>Hackathon 2026 : faire du neuf avec de l&#39;ancien</title>
      <link>https://blog.gabrielcharib.com/hackathon-2026-faire-du-neuf-avec-de-lancien</link>
      <description>&lt;![CDATA[Thème du Hackathon 2026 : faire du neuf avec de l&#39;ancien.&#xA;&#xA;On a récupéré le clavier d’une calculatrice Texas Instruments, analysé ses entrées/sorties, puis branché le tout sur un Raspberry Pi Pico et un Raspberry Pi — jusqu’à l’ampli.&#xA;&#xA;!--more--&#xA;&#xA;Prototype dans son boîtier&#xA;&#xA;Le chemin&#xA;&#xA;Du clavier TI au son&#xA;&#xA;Clavier TI → Analyse I/O → Tableau (colonne, ligne) → Pico → Raspberry Pi → Ampli&#xA;&#xA;Dans la machine&#xA;&#xA;Au démontage :&#xA;&#xA;matrice clavier (contacts lignes / colonnes) ;&#xA;puce TI (TMC0984 ou TMC1501) ;&#xA;~11 fils entre matrice et carte — la base de l’analyse.&#xA;&#xA;Matrice et carte TMC0984&#xA;&#xA;Intérieur TMC1501&#xA;&#xA;Analyse I/O&#xA;&#xA;Chaque fil est soit :&#xA;&#xA;O (output) — on pilote une colonne (C1…C4) ;&#xA;I (input) — on lit une ligne (L1…L7, et Ls).&#xA;&#xA;| Colonnes = Outputs (O) | Lignes = Inputs (I) |&#xA;|------------------------|---------------------|&#xA;| C1 C2 C3 C4 | L6 L2 L7 L1 L4 L3 L5 Ls |&#xA;&#xA;Lien : on active une colonne, on lit quelle ligne répond.  &#xA;Le croisement (colonne × ligne) = la touche.&#xA;&#xA;Tableau I/O&#xA;&#xA;Référence du projet :&#xA;&#xA;touche → (colonne, ligne) → GPIO Pico → action&#xA;&#xA;Pico + Raspberry Pi&#xA;&#xA;Pico : scan des colonnes, lecture des lignes, debounce, événement « touche X ».&#xA;Raspberry Pi : logique + sortie audio vers l’ampli.&#xA;&#xA;Pi + ampli Fender&#xA;&#xA;Boîtier&#xA;&#xA;Coffret bois + plexi : le clavier TI reste visible, le montage est présentable.&#xA;&#xA;Prototype final&#xA;&#xA;En bref&#xA;&#xA;Récupérer le clavier TI.  &#xA;Séparer colonnes (outputs) et lignes (inputs).  &#xA;Remplir le tableau (colonne, ligne).  &#xA;Scanner avec le Pico, traiter avec le Pi, sortir le son.&#xA;&#xA;Lire aussi&#xA;&#xA;→ Contribution wLaunchELF &amp; serveur OpenPS2SDK&#xA;&#xA;#hackathon #raspberrypi #pico #hardware #texasinstruments #upcycling&#xA;&#xA;---&#xA;&#xA;Auteur — Gabriel Charib  &#xA;Business Analyst Junior · notes techniques &amp; projets  &#xA;&#xA;← Tous les articles · Portfolio · LinkedIn]]&gt;</description>
      <content:encoded><![CDATA[<p>Thème du Hackathon 2026 : <strong>faire du neuf avec de l&#39;ancien</strong>.</p>

<p>On a récupéré le <strong>clavier d’une calculatrice Texas Instruments</strong>, analysé ses entrées/sorties, puis branché le tout sur un <strong>Raspberry Pi Pico</strong> et un <strong>Raspberry Pi</strong> — jusqu’à l’ampli.</p>



<p><img src="https://blog.gabrielcharib.com/media/hackathon-2026/boitier-clavier.jpg" alt="Prototype dans son boîtier"></p>

<h2 id="le-chemin">Le chemin</h2>

<p><img src="https://blog.gabrielcharib.com/media/hackathon-2026/chemin.png" alt="Du clavier TI au son"></p>

<p><strong>Clavier TI → Analyse I/O → Tableau (colonne, ligne) → Pico → Raspberry Pi → Ampli</strong></p>

<h2 id="dans-la-machine">Dans la machine</h2>

<p>Au démontage :</p>
<ul><li>matrice clavier (contacts <strong>lignes</strong> / <strong>colonnes</strong>) ;</li>
<li>puce TI (<strong>TMC0984</strong> ou <strong>TMC1501</strong>) ;</li>
<li>~<strong>11 fils</strong> entre matrice et carte — la base de l’analyse.</li></ul>

<p><img src="https://blog.gabrielcharib.com/media/hackathon-2026/matrice-noire-tmc0984.jpg" alt="Matrice et carte TMC0984"></p>

<p><img src="https://blog.gabrielcharib.com/media/hackathon-2026/interieur-tmc1501-cablage.jpg" alt="Intérieur TMC1501"></p>

<h2 id="analyse-i-o">Analyse I/O</h2>

<p>Chaque fil est soit :</p>
<ul><li><strong>O (output)</strong> — on pilote une <strong>colonne</strong> (C1…C4) ;</li>
<li><strong>I (input)</strong> — on lit une <strong>ligne</strong> (L1…L7, et Ls).</li></ul>

<table>
<thead>
<tr>
<th>Colonnes = Outputs (O)</th>
<th>Lignes = Inputs (I)</th>
</tr>
</thead>

<tbody>
<tr>
<td>C1 C2 C3 C4</td>
<td>L6 L2 L7 L1 L4 L3 L5 Ls</td>
</tr>
</tbody>
</table>

<p><strong>Lien :</strong> on active une <strong>colonne</strong>, on lit quelle <strong>ligne</strong> répond.<br>
Le croisement <strong>(colonne × ligne)</strong> = la touche.</p>

<p><img src="https://blog.gabrielcharib.com/media/hackathon-2026/tableau-io-whiteboard.jpg" alt="Tableau I/O"></p>

<p>Référence du projet :</p>

<p><strong>touche → (colonne, ligne) → GPIO Pico → action</strong></p>

<h2 id="pico-raspberry-pi">Pico + Raspberry Pi</h2>
<ul><li><strong>Pico</strong> : scan des colonnes, lecture des lignes, debounce, événement « touche X ».</li>
<li><strong>Raspberry Pi</strong> : logique + sortie audio vers l’ampli.</li></ul>

<p><img src="https://blog.gabrielcharib.com/media/hackathon-2026/montage-pi-ampli.jpg" alt="Pi + ampli Fender"></p>

<h2 id="boîtier">Boîtier</h2>

<p>Coffret bois + plexi : le clavier TI reste visible, le montage est présentable.</p>

<p><img src="https://blog.gabrielcharib.com/media/hackathon-2026/prototype-final.jpg" alt="Prototype final"></p>

<h2 id="en-bref">En bref</h2>
<ol><li>Récupérer le clavier TI.<br></li>
<li>Séparer <strong>colonnes (outputs)</strong> et <strong>lignes (inputs)</strong>.<br></li>
<li>Remplir le tableau <strong>(colonne, ligne)</strong>.<br></li>
<li>Scanner avec le Pico, traiter avec le Pi, sortir le son.</li></ol>

<h2 id="lire-aussi">Lire aussi</h2>

<p>→ <a href="/contribution-wlaunchelf-serveur-openps2sdk">Contribution wLaunchELF &amp; serveur OpenPS2SDK</a></p>

<p><a href="https://blog.gabrielcharib.com/tag:hackathon" class="hashtag"><span>#</span><span class="p-category">hackathon</span></a> <a href="https://blog.gabrielcharib.com/tag:raspberrypi" class="hashtag"><span>#</span><span class="p-category">raspberrypi</span></a> <a href="https://blog.gabrielcharib.com/tag:pico" class="hashtag"><span>#</span><span class="p-category">pico</span></a> <a href="https://blog.gabrielcharib.com/tag:hardware" class="hashtag"><span>#</span><span class="p-category">hardware</span></a> <a href="https://blog.gabrielcharib.com/tag:texasinstruments" class="hashtag"><span>#</span><span class="p-category">texasinstruments</span></a> <a href="https://blog.gabrielcharib.com/tag:upcycling" class="hashtag"><span>#</span><span class="p-category">upcycling</span></a></p>

<hr>

<p><strong>Auteur — Gabriel Charib</strong><br>
Business Analyst Junior · notes techniques &amp; projets</p>

<p><a href="/">← Tous les articles</a> · <a href="https://gabrielcharib.com">Portfolio</a> · <a href="https://www.linkedin.com/in/gabriel-charib">LinkedIn</a></p>
]]></content:encoded>
      <guid>https://blog.gabrielcharib.com/hackathon-2026-faire-du-neuf-avec-de-lancien</guid>
      <pubDate>Sat, 31 Oct 2026 15:08:33 +0000</pubDate>
    </item>
  </channel>
</rss>