1. T0FDM
  2. T1Paste
  3. T2Pick & place
  4. PProbe

Zouhair El Koush

CCE student · AUB · Beirut

Embedded systems & hardware.

I lead the electronics on AUB's BAJA SAE race car, run the print platform behind the AUB Makerspace, and I'm designing LOOM, a machine that prints parts with working circuits inside them.

The plate here is a simulated LOOM job printing this page. When it finishes, click any part.

Datasheet · page 1 of 2

About

ZEK-01Zouhair El Koush · embedded systems & hardware engineer, student
Rev. 2026-10
American University of Beirut · MSFEA

1 · General description

I'm a third-year Computer & Communications Engineering student at the American University of Beirut, working in embedded systems and hardware. I lead the electronics of AUB's BAJA SAE car: three ESP32s covering data acquisition, the driver dashboard and pit telemetry. I'm also designing a multi-tool 3D printer that builds circuits inside printed parts.

The software follows from the hardware. I run the Red Room's print infrastructure end to end: the portal the engineering student body submits jobs through, the staff dashboard behind it, the Azure Functions API underneath, and the Raspberry Pi that drives the printers over a dedicated LTE link.

2 · Key specifications

ParameterValueSource
ESP32 boards on the car3
Sensor channels40+
Telemetry sample rate20 Hz
Print jobs handled500+ / sem.
Printers driven over LTE4
Estimator mean error3.14 g
Z error budget< 50 µm

3 · Features

  • Electrical & electronics systems lead, AUB BAJA SAE team
  • Head of Design & Manufacturing, JEDIs, at the AUB Makerspace (the Red Room)
  • Built and maintains the makerspace's print platform, used by the engineering student body
  • Teaching assistant for EECE 231, Introduction to Programming (Python), Fall 2025
  • Six years on a school radio and TV crew, ending as lead technician
  • Arabic native · English and French fluent

4 · Functional block diagram

Hardware that has to keep working outside the lab: on a race car, in a makerspace people depend on, or inside a printed part. Click a lane to tune in.

ZEK-01 datasheetPin configuration on page 2 ↓

Receiver RX-5 · FM 88–108 MHz

Projects

Each project is a station. Turn the knob, press a preset or hit Scan. The write-up decodes as the signal locks.

LOCK
88.00MHz FM
--------
Signal

Presets · press to tune

91.5 MHz · Multi-tool additive manufacturing

LOOM

3D printing with embedded electronics · design revision 2, in development

A desktop machine that prints a plastic object and builds working electronics inside it, in one job, with no one touching it halfway through. Four tools ride one motion platform and swap automatically. Against the commercial precedent, Voxel8, the difference is that the machine places the components itself instead of a person pausing the print.

  • T0 · FDM hot end. Lays the dielectric structure.
  • T1 · Pneumatic syringe. Writes conductive traces, then deposits conductive-adhesive dots.
  • T2 · Vacuum head. Picks and places SMD components.
  • P · Metrology tool. Contact probe plus down-camera. Every tool is re-probed against a bed datum after each change.
  • The number that forces the architecture. A sub-50 µm tool-tip Z error budget across automatic tool changes. 5 K of thermal drift in a 500 mm aluminium frame alone accounts for 59 µm.
  • Two MCUs, one Klipper instance. Axes are allocated so a multi-stepper axis always lives with its endstop. No homing move crosses a USB boundary.
  • Hybrid CAM. Extending OctoPnP into toolchanger-aware CAM that interleaves printing, dispensing and placement in a single G-code job, with camera-based recovery of each tool's XY offset.
  • Owner-repairable by design. No tool carries electronics, so no tool can fail in a way its owner can't diagnose. With T0 alone it is an ordinary FDM printer.

95.3 MHz · Vehicle electronics & telemetry

BAJA SAE Electronics

Electrical & electronics systems lead, AUB BAJA SAE team · Jan 2026 – present

I lead the electrical and electronics subsystem of AUB's student-built off-road race car: three ESP32s across three boards covering data acquisition, the driver dashboard, and telemetry back to the pit over LoRa. Power is a LiFePO4 battery plus an alternator, sized for 4+ hour endurance runs.

  • Three boards, three jobs. Data acquisition, the driver dashboard and pit telemetry each run on their own ESP32.
  • 40+ sensor channels. Brake pressures and temperatures, engine and CVT temperatures, wheel speeds, battery voltage, fuel level and GPS.
  • 20 Hz streaming. The firmware samples every sensor and pushes structured GPS and sensor packets over UART to the pit client.
  • BAJA DAQ client. A Python desktop app with a live GPS map, a drag-and-drop dashboard, and race review with timeline scrubbing and lap playback.
  • Custom module builder. Teammates build new dashboard widgets (gauges, graphs, status lights) from the UI, without writing code.
  • Design report. I wrote the subsystem's technical design report: architecture, sensor selection, wiring, and coordination with the powertrain, brakes and chassis teams.

99.1 MHz · Makerspace platform

The RedRoom PMS

Print management for the AUB Makerspace · in production

The tool the AUB engineering student body uses to get things printed. It runs inside AUB's WordPress makerspace page as an authenticated iframe, and it replaced a manual spreadsheet workflow with a permission-gated queue, inventory, analytics and access control.

  • A real auth chain. WordPress passes the logged-in user, an Azure Auth Function issues a JWT, and a Permissions Function fills the session before any page renders.
  • Seven permission-gated pages. Print queue, printers, analytics, access management, users and inventory, a read-only wall monitor, and a separate student portal.
  • Two auth flows. Staff carry a permission record. Students get a simpler parallel flow that only ever shows their own requests.
  • Danger zone. The semester reset is gated to the Head Jedi and Web roles.
  • Estimates built in. 3DPME quotes filament weight the moment a student uploads, with no slicer in the loop.
  • Fleet control. PCS drives the physical printers through a Cloudflare Worker and a Raspberry Pi relay.

102.7 MHz · Subsystem of the RedRoom PMS

PCS

Printer Control System · the half of the platform that touches machines

Staff monitor every printer and control the Klipper ones from a browser tab: send a sliced G-code file, pause, resume, cancel, add or rename printers, and watch live webcam feeds, all inside the AUB WordPress iframe.

  • Secrets never reach the browser. A Cloudflare Worker holds the fleet API key and the Access service token server-side, and gates every request by origin and session.
  • Cloudflare Access in front of the Pi. The edge validates the service token and forwards a signed JWT, which the relay checks instead of trusting a header.
  • FastAPI relay on a Raspberry Pi 5. Fans status out across the fleet; a print request passes a ready check and an identity check, returns 202, and uploads in the background.
  • MAC-keyed self-healing. Printer IP addresses drift on every power cycle, so the relay keys each machine by MAC address and finds it again on its own.
  • Degrades instead of failing. On a relay hiccup the Worker serves the last known good state from a 5-second cache.
  • Adaptive polling. Every 30 to 90 seconds depending on activity, over the Red Room's own 4G LTE link.

106.1 MHz · Subsystem of the RedRoom PMS

3DPME

3D Print Material Estimator · filament weight without a slicer

Estimates a print's filament weight from geometry alone, so the portal can quote a job the moment a student uploads it. It reads the mesh itself (convexity, bounding-box fill, surface-to-volume and height ratio) to classify each part and apply calibrated corrections. It runs as an Azure Functions endpoint that the RedRoom PMS calls.

  • Geometry rules. Ten detection rules derived from how parts actually print: flat plates, hollow shells and tall structures each get their own correction.
  • Multi-part assemblies. Reads ZIP and RAR archives of STL parts and detects mixed assemblies, such as threaded screws next to large blocks with internal holes.
  • Fine geometry detection. Face density picks out threaded bolts and nuts and raises their estimate.
  • G-code ground truth. Parses slicer output for the real weight, which is how the benchmark was measured.
  • Four input formats. STL, ZIP, RAR and G-code.

Logic analyzer LA-8 · 8 channels · 2018 – 2026

Experience

Every role is a channel, high while it was active. Drag the cursor through time, or click a channel.

CaptureChannels D0–D7Colours follow the resistor code
  1. LOOM

    Personal project

    Jul 2026 – present

    Designing a four-tool desktop machine that prints parts with working circuitry inside them. Control electronics specified; design at revision 2.

  2. Electrical & Electronics Systems Lead

    AUB BAJA SAE Team, MSFEA

    Jan 2026 – present

    Own the electrical subsystem of a student-built off-road vehicle: a three-ESP32 architecture, battery and alternator power for 4+ hour endurance runs, and the subsystem design report covering 40+ sensor channels.

  3. Teaching Assistant, EECE 231

    MSFEA, AUB · Introduction to Programming (Python)

    Fall 2025

    Led a weekly Python lab for a full semester: data structures, file I/O and problem-solving fundamentals, plus office hours, debugging help and grading.

  4. Head of Design & Manufacturing, JEDIs

    AUB Makerspace · the Red Room

    Summer 2025 – present

    Started as a volunteer in my first summer, joined the JEDIs (Junior Engineer Design Interns) for fall 2025 and spring 2026, and became Head JEDI in summer 2026. I guide student projects from concept to working prototype and run workshops, and I built and maintain the print portal, the staff dashboard, the Azure back end and the Pi-driven printer fleet.

  5. B.E. Computer & Communications Engineering

    American University of Beirut, MSFEA

    Sept 2024 – present

    Coursework includes Electronic Circuits, Signals & Systems, Computer Architecture, Computer Networks and Numerical Methods.

  6. French Baccalauréat

    Grand Lycée Franco-Libanais, Beirut

    2021 – 2024 · 3 years

    The three lycée years: Seconde, Première and Terminale. Specialties in Mathematics and Physics-Chemistry, with NSI (computer science) as a third specialty through Première.

  7. Trophée NSI · Prix spécial du jury

    National computer science competition

    2023

    Jury prize for a software project built from scratch.

  8. Lead Technician, GLFM

    School radio & TV station

    2018 – 2024 · 6 years

    Six years on the crew, ending as lead technician: training students on live camera operation, editing in Premiere Pro and Audacity, and running live-show equipment.

Datasheet · page 2 of 2

Skills

Every skill is a pin, wired to the work it came from. Hover a project to light up what it used, or hover a pin to see where it was used.

ZEK-015 · Typical application circuit
QFP-28 · 25 skills · 3 supply pins

HW hardware · TL tools · SW software & cloud · PRG programming · PWR supply · NC no connection

PinNameTypeWhere it was used
Embedded & hardware
1ESP32HWThree-board BAJA architecture: DAQ, dashboard, LoRa pit link
2ARDUINOHWLOOM control electronics: Mega 2560 + RAMPS, Nano + CNC shield
3RPI5HWRaspberry Pi 5 running the Red Room printer relay over 4G LTE
4GPS_NEO6MHWLive position and lap timing in the BAJA DAQ client
5SENSORSHWSensor integration: 40+ channels across the BAJA vehicle
6FDM_SLAHW3D printing: a mixed Bambu, Creality and Elegoo fleet, and LOOM is a printer
7KLIPPERHWKlipper / Moonraker: two MCUs under one Klipper instance; Moonraker through the PCS relay
Tools & simulation
8ONSHAPETLLOOM toolchanger, frame and Z stack-up
9PSPICETLPSpice / OrCAD: electronic circuits coursework
10VIVADOTLDigital design coursework
11GITTLGit / GitHub: every project here; RedRoom deploys from GitHub Pages
12WIRESHARKTLWireshark and Packet Tracer: computer networks coursework
13LINUXTLUbuntu and Kali; Debian on the Pi 5 that runs the printer fleet
14NCNCNo connection
Software & cloud
15AZURE_FNSWAzure Functions: RedRoom auth, permissions and KV APIs; the 3DPME endpoint
16CF_WORKERSWCloudflare Workers: holds the fleet API key and Access token server-side
17FASTAPISWThe printer relay on the Pi, behind Cloudflare Access
18RESTSWREST APIs: every service above, plus JWT session gating
19DOCKERSWOpen WebUI and Bambuddy containers on the Pi
20GCLOUDSWGoogle Cloud: coursework and side deployments
21NCNCNo connection
Programming
22PYTHONPRGTA for EECE 231 · BAJA DAQ client · 3DPME · the Pi relay
23CPPPRGC++: ESP32 firmware sampling and streaming at 20 Hz
24JSPRGJavaScript: RedRoom staff pages, student portal and the Cloudflare Worker
25HTML_CSSPRGThis site, and every RedRoom page
Supply · languages
26VDD_ARPWRArabic · native
27VDD_ENPWREnglish · fluent
28VDD_FRPWRFrench · fluent (French Baccalauréat)
ZEK-01 datasheetPage 2 of 2

Transmitter TX-1 · LoRa-style chirps · 868.1 MHz

Contact

You're at the pit wall. The BAJA car is on track sending telemetry; write a message and put it on air. Your mail app opens with it ready to send, or just copy my email below.

Every key you type goes on air. You can draw on the waterfall too.

Spectrum · waterfallBW 125 kHz · SF7
RX · listening on 868.1 MHz
Draw on the waterfall, or paint a shape into the spectrum
Packet logsimulated pit link
    Emailelkoush390@gmail.com
    Universityzhe12@mail.aub.edu
    GitHubgithub.com/zouhair-bit
    LinkedInlinkedin.com/in/zouhair-elkoush