git | cv | links | quotes | ascii | mail


NOTE: I have read about 5% of this below at most.


If you are interested in gettin a job or hiring someone, reach me at I will reach you back on anything new.
All About Circuits forum's job board.
EEVBlog's job board.
Each publication of the embedded muse comes with a few interesting job offers.

Operating Systems

Sorted in no particular order.

"Free, Functionnnal and Secure"
Stefan S presentation on Drivers for arm based devices for OpenBSD.
Remote shell for a few people.

"The Power To Serve"

Plan 9

A research operating system.
More dead links every days.
The plan 9 doc.
get started with Plan 9 through 9front
A new approach to archival storage: append only deduplicated blocks.
Run a plan 9 network on OpenBSD, helps to understand what is Plan 9.
Run plan 9 user programs on other operating systems.
Subset of the programs of plan9port that compiles with musl as well.
Distro to get it to work on its machine.
Distro that is just a set of patches to the original.
Porting Plan 9 to POSIX.
Porting POSIX to Plan 9.


A operating system for teaching how operating systems works.
Entry point and about page.
I want more time to ReadIt!


A holy operating system.
Support for 3D mesh in assembly without recompiling. Because we can.


This one operating system.
The Linux Documentation Project, mainly Linux but not only.

If you do not compile a binary, it's someone else's binary.
Runit-based ditribution.
Lightweight (for real, not like Arch) distro.
A straightforward distro.
Hard to do any smaller.

Distro that symlink files as a package management system:
Interesting directory hierarchy, good introduction.
Very simple and efficient approach.
Overview of how to handle DMA when writing drivers: cache might get in the way!


This ubiquitous kernel.
The first step into kernel hacking.
The grimoire.


The Genode OS Framework is a tool kit for building highly secure special-purpose operating systems
Written in C++ (bleh) but a good way to study how to do a kernel.


Considered by some as the "state of the art" microkernel, for its efficient IPC mechanism. Microkernels were ignored for long due to the (by then) poor performance of IPC.

L3 kernel arrived and introduced a new IPC mechanism using shared memory pages rather than copying data across kernel/user space, which lead to very high performance.

Basically, L4 and seL4 is L3 IPC polished for security. L3 IPC can be looked up for understanding L4 IPC.
seL4 uses repo (bleh >:P) and cmake (bleh >:P) instead of more portable tools, but still worth a look at the code.
An early paper exposing the principles from which L4 family kernels are built.
Explanation that seL4 IPC is not quite the same as L4 IPC.
This is where the switch from old to new IPC mechanism change is explained.
Final answer on how to pass data between multiple threads/processes. If small, message-passing IPC interface; if large, shared memory pages instead.
"An efficient and secure microkernel built for ARM Cortex-M cores, inspired by L4".

Embedded kernels
Features a Hardware Abstraction Layer (HAL) usable stand-alone for supporting many chips at once.
Oriented toward use for satellites. Uses an automated certification process.
ROS - Robot Operating System (HZBA recommandation)


Not directly kernels, but share much of the goals of kernels.
bare-metal hypervisor specially designed for embedded real-time systems available for the instruction sets LEON2/3/4 (SPARC v8) and ARM v7 processors: outter-space ready!

Online classes by University of Florida
Project making use of (or providing?) the TrustZone.


A corner stone of security over a public network.
A gold mine of state of the art crypto references.
A hash function that is too good to be real.
An simple and unobstrusive way to spread PGP keys without manual work.
What is up on the dark side of the Wired?


The elephant in the room of crypto.
The entry point of its lair.
A (now not so) new style of crypto.
Standard exploiting curve crypto for dns.
The next style of crypto.

File Formats
Quite Ok Image format that defines a low-complexity encoding for images: Optimised for simplicity and low overhead rather than high compression rate. Suitable for embedded.

OpenSSH is good, and this one is too and is not as famous.
DNSCurve implemented after djbdns from the same author of tinyssh.
The arcan display server project.


An SMTPd server that aims simplicity, security, and general good design.
This is qmail, the venerable alternative to Postfix.
Not qmail, also not netqmail: continuation of both projects.
One-man project similar to notqmail in many aspects.
Overview of many qmail patches.

OpenSSL fork with focus on simplicity and sane defaults.
Sane alternative interface to the LibreSSL library.
You might already know this one.
A single-person TLS library.

System programming
An init system and supervision suite inspired from daemon tools.
Rewrite the layer between the kernel and the applications with minimalism.
Programming book for feeling fine with all these syscalls.
Dozens of minimal operating systems to learn x86 system programming
Learn X86-64 assembly as well as how computer works in general.
Use CPU cache as random access memory to write bootloader components in C.
Giving a new life to hardware born before me.
Z80 is simple enough so that skilled engineer can peice it back together from pieces and program most parts.
A class on compilation, with lectures notes openly accessible.
The great one C library for Linux.
concise explanation to long division algorithm
Bit twiddling for multiplication and division
Suckless - software that sucks less.
2f30 - div by 0: made with strange alien technology
HTTP serves companies, Gopher serves people.
Unix philosophy afficcionados forum.
Heavy tinkering intensifies...
Tildeverse - Association of like-minded ~tilde communities.

The fun of engineering hardware and firmware.
Getting started with ARM ST 32bit microcontroller, and board guide.
Community interested about simple microcontrollers such as AVR.
Manufacturer of AVR and ARM Freescale microcontrollers encouraging Makefile builds.
Programming an ARM STM32 Microcontroller without an extra SDK.
Demo scene on AVR microcontrollers!
Bare-metal programming guide for 8-bits microcontrollers.
Explanation on many things regarding development on ARM, as well as few mitigations features of some ARM processors.
Bare metal examples of STM32 programming, very useful for debugging or getting a stm32-blinky running from scratch.
Everything approved by the FCC has an ID, so it makes it convenient to lookup hardware by their FCC ID, such as regulation, or even user manuals.
Overview of MCU debug interfaces
The Wouter van Ooijen message is a great way to deal with unit systems in code.
IEEE Real-Time Systems Symposium
Interests, careers, and lives of engineers, artists, educators and makers.
Quantum computer control system
Website selling courses, also offering blog articles and learning material.
Fast AES library for 8-bit AVR processors
AT commands as used by multiple phone vendors explored in details from a leak.
Getting an ARM toolchain working in Gentoo in practice.
Resources on many firmware/software side of Embedded systems, with a focus on Microcontrollers.
Energy harvesting camera sensors.
Energy-harvesting replacement to many battery-powered devices.
Vector font from an old Apple plotter extracted.

Embedded Languages

Machine Learning

"Artificial Intelligence" is a concept to be discussed in philosophy. If dealing with computer science or mathematics, I prefer saying Machine Learning.
TinyML is a widely available Machine Learning library for embedded systems that would need any.
Practical instructions for getting started TinyML onto hardware.

Documentation systems
The simple document system used by this website.
I learned how to write (mdoc) man pages thanks to the layout of this page.
The venerable UNIX document system.
The document system of choice of academics.
The document system of Python and ReadTheDoc

Document browsers

Most HTTP/HTML browser presented here have a --dump flag of some sort, handful for converting html to mostly readable plain text.
Simple text-mode web browser
Classic text-mode web browser
Full-featured text web browser
Colorful text web browser
Text web browser with a cursor, bells and whistles

The famous Onion Router
Invisible Internet Project, like Tor, but not Tor.
Alternative internet featuring freedom and anonymity.
1 file, 2 functions, 300 lines DHCP and TFTP server!
Make all traffic go through DNS to bypass filtering.
IPv6 cheat sheet.
Low-tech internet for the masses.
Status monitor for certificates.
OUI table query, could be a simple script though.
Software package status for different operating system distributions.
Service that check DNS propagation across multiple servers worldwide.
Privacy-focused communication suite.
Associative ISP around Rennes, Brittany, France.
French celt (and viking (and celt again)) legends soaked geek lair
A BGP-aware whois service: whois -h " --roa 15169"
Since does not answer anymore, a distributed looking glass.
Use the libqmi to send AT commands to a mobile broadband modem on Linux (i.e. LTE/5G dongle)


Encryption wire protocols
A better DNSSEC without the bulk, currently used on that site.
A better TLS without the bulk.
RSS 3.0, which might never see any wide adoption because of backward compatibility matters to corporate people, but still a good example on how to simplify a format.

Real time communication
A really, really good guide that cover simply and accurately SIP and surrounding protocols, with practical examples.
Services and documentation, blog (still very active) about SIP protoco.
Foundation for GSM support with free software, including bridging to SIP.
Status Quo of the IRC protocols actually used.
A gold mine for all things about streaming protocols.
Engineer who work on telecom software.

A concise description of the USB protocol inner working.
A more shallow overview of USB internals, to get on rail quick.
A short and efficient explanation about USB4 killing all ambiguities. I wish I found it earlier.
A short and efficient explanation about USB Power Delivery.
All the presentations of the USB-IF. A good collection!
An experiment to try USB 3.0 without the USB 2.0 D+/D- lines involved at all (cut off).
A good general introduction to the working of USB.
A succint introduction about the working of USB 3.1.
A more robust introduction to USB 3.0, the corner stone of modern USB.
USB Made Simple, good complement to USB in a Nutshell.
An explanation of enumeration with actual packet dump down to the bit level.

A presentation of the usefulness and practical details of RS-485.
Explanation of the implementation of RS-485.

Various protocols used in cars: Single Pair Ethernet, CAN, LIN

Insightful rationale around what JTAG is: "think of JTAG as I2C for testing".

Signal processing

Computer Vision
Step-by-step explanation of the steps involved with decoding an AprilTag.
Automatic White Balance is both a science and an art, and I know nothing of it!


Software has got to run somewhere right?

Sub-$10 board, as cheap as a bluetooth dongle, still with GPIO pins.
STM32H7-based board, suitable for audio appliances.
Project for incorporating open source hardware into server equipment.
Ben Eater's discrete CPU: instructions on how to make one out of a few chips on a breadboard.
Overview of devices that can act as pagers, with interesting modules for RPi.
A product ID range opened for open hardware projects, cost-free registration.
A module with an FPGA and a microcontroller.
Focused on Open Hardware medical supplies manufacturing and engineering.
History of Raspberry Pi devices.


Gateware is a software approach to hardware: hardware described by software. It is written in Hardware Description Language. It is then loaded onto FPGA or engraved onto ASIC chips.
An IP core is a complete description of integrated circuit for use to build a MCU or CPU. For instance, a UART protocol handler IP core, an I²C protocol handler core, the Bumblebee RISC-V processor core as used in the GD32VF103. It used to be "Intellectual Property" but is now just IP core. Othewise it would be worded a bit strangely: "open-source intellectual property" cores.
An inex of various source of openly available cores. No hosting service just a search engine and index. In the spirit of opencores but with no account needed: the content is usually hosted on a 3rd-party.
An index of multiple expensive money-pricey IP cores, but with documentation available. Still good to have a peek of what features to expect, what interface to expose from a finished IP core before providing one.
The POWER architecture by IBM is open-sourced as OpenPOWER. This group tries to get a very-high performance processor/GPU/... out of it.
Here we describe how to simulate the lowRISC SoC using Verilator
Help with getting a picorv32 core onto a small FPGA.
Small RISC-V core written in SpinalHDL.
Classes on digital logic circuits available online.
A gateware vendor largely open-sourcing its designs and providing tooling to use them.
FOSS Silicon foundation, doing GSoC
Verilog vs VHDL.
Shortcomings of Verilog.
FPGA info site oriented toward video.
Project create a free and open processor for embedded systems.
Personnal wiki about practical problems and solutions encountered in Verilog designs.
Siemens' effort to teach help future engineers to verify chips.
Archived version of a popular wiki about HDLs
FOSSI video channel featuring conference recordings.
List of resources about HDLs: conferences, software, learning material.
Demo of a conversion tool for turning a netlist into a SVG diagram.
A call for sanity and simplicity in FPGA design: avoiding signals out of phase with a clock.
A tiny GPU implementation for FPGAs.
Introduction to hardware description languages to software developers.
Nice resource with modern topics like Amaranth.
Presentation of several interconnects and comparison with Network On Chip (NoC)
What is this project and why does it have more hardware projects than one could dream of?

Python-based HDL. The most active project.
The language Amaranth was forked from (by some of its authors).
A company basing everything off Amaranth to build actual chips. Good Amaranth get-started doc.

Verilog / SystemVerilog
A long-winged effort for documenting a learning-path through verilog and hardware design.
Resources on Verilog and SystemVerilog, as well as introduction to ASICs.
A place to learn Verilog and SystemVerilog design techniques, coding styles, for RTL design and verification!
Used by most chip makers, and lingua frinca of the FPGA world.
Comprehensive Verilog and SystemVerilog resource
Exercises and learning material for Verilog.
Explaining a lot of concepts of the Verilog language.
Verilog language and syntax.
Verilog language and syntax.
Verilog language and syntax.
Verilog language and syntax, and RTL-related topics.
SystemVerilog language and syntax.
Introduction to Verilog and resources for learning.
VLSI Chaps - Courses on VLSI production process, EE, and HDL
A very good introduction to SystemVerilog, going fast yet taking its time and explaining things calmly.
The definitive data table for open source software support for SystemVerilog features.
Explanation of Verilog and SystemVerilog using Quartus and ModelSim.
Work in progress book available online about SystemVerilog and verification.
A Godbolt-like online linter showing extensive linting for a Verilog source pasted-in.
A systemverilog, akin to a compiler frontend, but not any known backend for it yet.
Coding style for Verilog/SystemVerilog with a clever way to name signals with _d for latch input, and _q, _q2, _q3 for latched output.

If it is not Verilog, it is likely going to be VHDL.
HDL course oriented on VHDL.

Haskell-based HDL.

Scala-based HDL.

A language built around Verilog, as some kind of preprocessor.


Simulating hardware at gate or circuit level.
Tool building on top of ngspice
Wikipedia list of HDL simulators
The great one tool for VHDL.
A simulator turning Verilog into C++, providing a thin C++ api to interact with simulated hardware.
Some other simulator that I should try some day!


Introduction to VLSI manufacturing processes
Welcome to the ASIC world
We develop a free and open source semiconductor manufacturing process standard [...]
An open source PnR tool for hardware ASICS.
System-to-Asic blog with description of the ASIC world.
The end-format that describes an ASIC that a foundry can use.
ASIC design from RTL all the way down to GDSII.
ASIC cell edition tool suite.
OpenLane is an automated RTL to GDSII flow based on several components including OpenROAD, Yosys, Magic, Netgen, CVC, SPEF-Extractor, CU-GR, Klayout and a number of custom scripts for design exploration and optimization.
Best lecture ever!
Index of corporations doing ASIC design.
The one tool in use for ASIC design. I like its TCL/Tk interface! :)
A collection of various VLSI tools documentation and help: Magic, IRSIM, HSPICE, PowerView, Verilog-XL, PLA Tools, Cadence.
Laboratory of the University of the Philippines Diliman building ICs.
Making a variation of the load to communicate to something that drives it to sense this: passive transmission!
HardCopy® II ASIC Family Technical Information

LIDAR Magazine
The international society for optics and photonics.
Chips and Cheese. The Devil is in the Details.

fpga toolchain for Xilinx 7-Series, Lattice iCE40, Lattice ECP5 FPGAs, QuickLogic EOS S3
Introduction to FPGAs by SparkFun
Lessons for practical approach to FPGAs.
Introduction to FPGAs published on HACKADAY.
Open toolchain
An open-source framework that enables rapid prototyping of customizable FPGA architectures.
Definitions and learning material
Open source toolchain components, alternative stack to Yosys/NextPNR
FPGA Assembly (FASM) tooling
Project to gather resources a bit like what I am doing now.
Some links are being gathered here too.
Overview and advises of FPGA boards for getting started
A tiny tiny FPGA chip using open-source toolchain components.
Introduction to FPGAs underlying principles.
Discovery of the fomu board, a nimble ICE40 dev board.
Open the lid of the FPGA chip.
Website dedicated to FPGAs along with a Wiki.
Interfacing an FPGA with a MCU
Digilent (National Instrument)'s forum.
A resource about FPGAs, computer history, and computer architecture.
Introduction about FPGA in both English and Arabic languages.
Educational resources that supports the use of FPGAs for teaching and research in University and College courses.
Blog on various things including security and FPGA, like composing a system with VexRISC-V and olof/wb-intercon.
All work and no fun makes Jack a dull boy...


You gotta know if you can press the big START BATCH PRODUCTION 100000000 ITEMS button without risk.
List of verification tools, conferences, projects, tools, examples...
A testbench toolsuite in python, that supprots most simulators and HDLs around.
Introduction to Cocotb as well as python async, used by cocotb.
ZipCPU has good introduction about verification.
Siemens needs more verification engineers, and has a practical approach to the problem.

Reverse Engineering
A series of videos teaching hardware hacking step by step.
A command-line yet intuitive and heavily scriptable reverse engineering tool suite.
A fork of radare2, some continuation of it.


Documentation of the internals of MicroPython
Documentation on how to build MicroPython modules from C.


Hardware needs components made of something right?
A report about Lead toxicity, not a lot about electronics, but more than other similar documents: "Young children (<6 years old) of workers exposed to high levels of Pb in workplace air at an electronic components plant (61–1,700 μg Pb/m3 ambient concentrations) had significantly elevated PbBs (13.4 μg/dL) compared with children from the same locale whose parents did not work in the electronics plant (7.1 μg/dL) (Kaye et al. 1987)."
Dave Jone's forum, topic around Electrical Engineering and Hardware design.
Interesting approach to a charge pump with good compromise between voltage rating and power.

USB-based oscilloscopes that give a good value for price.

Parts and Components
SMD part marking identification database.
A reference of LMxxx parts names.
Network and Accessories secure authentication: offloading crypto to hardware.
Network and accessories secure authentication: offloading crypto to hardware.
Transient Voltage Suppressor diode that I saw work very well by my own eyes (ok photo).
Brushless DC driver with PWM input.

Summary of various prototyping methods.
RF Filters out of PCB... prototyped with tape!
Audio Power Amplifier done using Manhattan Construction method.
HamCom talk about Prototyping using Manhattan Construction method.
Hand-made complex digital electronics as a piece of art for point-to-point prototyping.
Practical and straightforward guide toward copper-island prototyping.
An entire paper about Manhattan Prototyping.
A beautiful and structured approach to Manhattan construction.
IEEE Spectrum on prototyping high-frequency electronics.
Paper on prototyping by Jim Williams himself.
Overview of several prototyping methods.
Tutorial on prototyping with focus on Manhattan Construction.
Solder wick as high-current conductor.
Prototyping boards for SMD parts
Kynar wire-based prototyping.
A marvelous take at copper-island prototyping!
Description of the feel of various copper clad cutting tools.
A description of copper clad prototyping by Roger Griswold. 2002 but still rather up to date, and has interesting insights about efficiency..
SMD prototyping board


Computers are digital, and the world is analog. Now what?
What is the point of Analog in a digital-centric industry anyway?
A free series of textbooks on the subjects of electricity and electronics.
A classic, bookmarked on every electronics engineer's computer.
Discussion about Mixers and other thingS.
Talks about many challenges of analog aspects of (i.e. digital) signals.
w2aew - Mostly videos on hobby electronics, test & measurement, ham radio, and other stuff.
Online Circuit simulator.
Offline Circuit simulator, able to produce a netlist in various format, including spice for simulation.
Explanation of how a reference voltage circuit using bandgap phenomenon of BJT works, by its author.
Avoid Common problems often encountered when designing amplifier circuits, by Analog Devices.
Microchip Tips And Tricks for level shifting.
How to do a separate analog ground on mixed-signal designs.

Power electronics
A soft introduction to ESCs.
General blog with good notes on Inductor in SMPS among other things.
ESC PCB design.
Manufacturer of a lot of modules related to power electronics.
Simple audio power amplifier done right.
Praise of driving speakers by current, which drives it in the end, instead of voltage.
Best explanation of a push-pull amplifier I could find insoar (see subtitles).

: The basics of wind turbines control.
The short and long answer on how to drive a MOSFET from an MCU: bootstrapping. Reminder: MOSFETs need a 10 V to 12 V voltage difference between the Gate and Source to fully turn on, way above any MCU pin.
High-side N-MOS bootstrapping in one picture.


ADCs, DACs, and how to exchange information with them, and interface them with a digital design.
Developos the situation, challenges, practices, and covers solutions and approaches.

Signal Processing
MIT's OpenCourseware on signal processing.
MIT's OpenCourseware on DSP.
WikiBook on DSP.
Longform article about use of lookup table (LUT) in the context of software.

PCB design
PCB soldering 101 published on HACKADAY.
Getting started with soldering BGA chips.
Comments on importance of prototyping before making a board.
Filament LEDs looks like being fun!
Tutorial on how to build a PCB
Serie of post to cover basics of many different software tools for PCB.
Repairing a broken pad can be tedious
Eric Bogatin has a lot of wisdom to share about PCB design in practice.
Most environment friendly, yet very efficient and affordable solution to etching. This method using HCl does not involve discarding the copper removed from the board: the dangerous reactant here.
A. Zonenberg's PCB design check-list before sending something to a fabrication lab.

Hamradio and RF signals

"Ham" for amateur, the world of broadcasting and receiving information through electromagnetism.
Introduction to sending data over an amateur radio.
Swiss army knife desktop software for radio hardware.
Series of articles to affordable gears for Ham Radio.
A lot of different resources about HamRadio!
Open Hardware/Firmware radio project.
Very frequently encountered radio project.
uSDX clone based off the RP2040.
Open Hardware/Firmware radio project.
Open Hardware/Firmware radio project.
Open Hardware/Firmware radio project.
Open Hardware/Firmware radio project with only an USB interface.
Wikipedia list of radio transceivers.
A QRP (low-power radio operation) passionate.
Has a list of analog radio kits.
Protocol for computer-SDR communication off USB 2.0/3.0.
Many SDR projects end-up here.
Annoying mailing list popup, but great lessons on modern radio design. Not only explains the "what", but also the rarely explained "why" of radio design.
Explanation of IQ signals basics.
Radio Frequency spectrum analyser for a large rane of frequencies.
Old Man International Sideband Society, on 7.185 MHz.
Map of online SDR.
Space and Sun weather forecast.
Space and Sun weather forecast by Tamitha Skov.
In-depths articles about multiple topics around radio frequencies.
A frequency map of each band, describing the best practices.
An SDR on a tiny M.2 module.
Radio antenna build kit explained, featuring practical antenna crafting.
Endfed antenna balun building and installation.
End-fed long wire (EFLW) or "random wire" antenna design.

Summary of 4 major demodulation techniques.
Explanation of the Convolution demodulation technique, yet another one.
Pace's Advanced Techniques for Digital Receivers.

An introduction to antenna design.
Practical guide to antenna
VU2NSB about wave polarisation practices, and what-for, and why vertical or horizontal is used.
Many antenna designs tried by this guy.
In case you are wondering what kind of risk you are exposed to with radio waves.
Principle of operation of Yagi-Uda antennas explained clearly.
Some more practical take on Yagi Antennas, but ignore the formulas (feets instead of meters).
A very good collection of guides to antennas from the beginning to the end.
A primer on baluns.
Decoding the LoRa PHY, 33C3.

Solder a screen flexible connector directly onto a PCB.
Why soldering is not always the best option.
Random musings and sometimes detailled rework footage.

Description of the front-panel protocol.
Detailed schematic diagram of the whole radio circuits, leaked from the FCC website, later removed.

Engineering Sciences
I was told, the "Engineering entrance door. Come in through (welcome!) or stay out."

Cover some basic circuits frequently encountered.
The reference for understanding batteries working.
Very good explanation of the challenge of various kind of motors by
Visual tags system and library to decode them, with explanation, used for positioning.

OpenFixture - Generate test fixture from OpenSCAD.

Art and Culture
Where ascii art packs from various artists groups get released
xer0's place
Netscape, Mozilla, XScreensaver, the DNA Lounge night club.
error: unknown block type: 221A defunct hero who fought (and won) for human right (see its work on Pacer) to the edge of legality (but neverr harming anyone), who commited suicide after the NSA put a heavy pressure on him. He invented RSS. It is thank to him that we the law of the United States documents are available for free to their citizens. He broke the law for that to happen, and then the made the law change.