josuah.net | panoramix-labs.fr

cv | links | quotes | mail

Links

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

Jobs

If you are interested in gettin a job or hiring someone, reach me at me@josuah.net. I will reach you back on anything new.

https://forum.allaboutcircuits.com/forums/jobs-career-advising.55/
All About Circuits forum's job board.
https://www.eevblog.com/forum/jobs/
EEVBlog's job board.
http://www.ganssle.com/tem-back.htm
Each publication of the embedded muse comes with a few interesting job offers.

Operating Systems

Sorted in no particular order.

OpenBSD

https://www.openbsd.org/
"Free, Functionnnal and Secure"
https://yewtu.be/embed/W5qhWw07qpU
Stefan S presentation on Drivers for arm based devices for OpenBSD.
//dataswamp.org/
Remote shell for a few people.

FreeBSD

https://www.freebsd.org/
"The Power To Serve"

Plan 9

A research operating system.

https://9p.io/plan9/
More dead links every days.
https://cat-v.org/
The plan 9 doc.
https://fqa.9front.org/dash1.ghostintheminesweepershell.pdf
get started with Plan 9 through 9front
https://doc.cat-v.org/plan_9/4th_edition/papers/venti/
A new approach to archival storage: append only deduplicated blocks.
https://www.ueber.net/who/mjl/plan9/plan9-obsd.html
Run a plan 9 network on OpenBSD, helps to understand what is Plan 9.
https://9fans.github.io/plan9port/
Run plan 9 user programs on other operating systems.
https://tools.suckless.org/9base/
Subset of the programs of plan9port that compiles with musl as well.
https://9front.org/
Distro to get it to work on its machine.
https://9legacy.org/
Distro that is just a set of patches to the original.
https://harvey-os.org/
Porting Plan 9 to POSIX.
http://jehanne.io/
Porting POSIX to Plan 9.

xv6

A operating system for teaching how operating systems works.

https://pdos.csail.mit.edu/6.828/2017/xv6.html
Entry point and about page.
git://github.com/mit-pdos/xv6-public.git
cloneit!
https://pdos.csail.mit.edu/6.828/2017/xv6/book-rev10.pdf
I want more time to ReadIt!

TempleOS

A holy operating system.

https://templeos.org/
Support for 3D mesh in assembly without recompiling. Because we can.

GNU/Linux

This one operating system.

https://tldp.org/
The Linux Documentation Project, mainly Linux but not only.

Distributions:

https://www.gentoo.org/
If you do not compile a binary, it's someone else's binary.
https://www.voidlinux.org/
Runit-based ditribution.
https://crux.nu/
Lightweight (for real, not like Arch) distro.
https://www.slackware.com/
A straightforward distro.
http://tinycorelinux.net/
Hard to do any smaller.

Distro that symlink files as a package management system:

https://gobolinux.org/
Interesting directory hierarchy, good introduction.
http://sabo.xyz/
Very simple and efficient approach.
https://elinux.org/images/3/32/Pinchart--mastering_the_dma_and_iommu_apis.pdf
Overview of how to handle DMA when writing drivers: cache might get in the way!

Linux

This ubiquitous kernel.

https://kernelnewbies.org/
The first step into kernel hacking.
https://docs.kernel.org/
The grimoire.

GenodeOS

The Genode OS Framework is a tool kit for building highly secure special-purpose operating systems

https://genode.org/about/index
Written in C++ (bleh) but a good way to study how to do a kernel.

L4

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.

https://sel4.systems/
seL4 uses repo (bleh >:P) and cmake (bleh >:P) instead of more portable tools, but still worth a look at the code.
https://www.cs.fsu.edu/~awang/courses/cop5611_s2004/microkernel.pdf
An early paper exposing the principles from which L4 family kernels are built.
https://microkerneldude.org/2019/03/07/how-to-and-how-not-to-use-sel4-ipc/
Explanation that seL4 IPC is not quite the same as L4 IPC.
https://trustworthy.systems/publications/nicta_full_text/8988.pdf
This is where the switch from old to new IPC mechanism change is explained.
https://docs.sel4.systems/projects/sel4/frequently-asked-questions.html#how-can-threads-communicate
Final answer on how to pass data between multiple threads/processes. If small, message-passing IPC interface; if large, shared memory pages instead.
https://github.com/f9micro/f9-kernel
"An efficient and secure microkernel built for ARM Cortex-M cores, inspired by L4".

RTOS

https://opentitan.org/
https://www.tockos.org/
https://zephyrproject.org/
https://os.mbed.com/
https://en.wikipedia.org/wiki/VxWorks
https://nuttx.apache.org/
https://www.chibios.org/
Features a Hardware Abstraction Layer (HAL) usable stand-alone for supporting many chips at once.
http://tinyos.stanford.edu/
https://www.rtems.org/
Oriented toward use for satellites. Uses an automated certification process.
https://www.ros.org/
ROS - Robot Operating System (HZBA recommandation)

Hypervisors

Not directly kernels, but share much of the goals of kernels.

https://en.wikipedia.org/wiki/XtratuM
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!

Security

http://cyberforensic.net/
Online classes by University of Florida
https://www.op-tee.org/
Project making use of (or providing?) the TrustZone.

Crypto

A corner stone of security over a public network.

https://ianix.com/
A gold mine of state of the art crypto references.
https://github.com/BLAKE3-team/BLAKE3
A hash function that is too good to be real.
https://autocrypt.org/
An simple and unobstrusive way to spread PGP keys without manual work.
https://darknetdiaries.com/
What is up on the dark side of the Wired?

DJB

The elephant in the room of crypto.

https://cr.yp.to/
The entry point of its lair.
https://curvecp.org/
A (now not so) new style of crypto.
https://dnscurve.org/
Standard exploiting curve crypto for dns.
https://pqcrypto.org/
The next style of crypto.

File Formats

https://qoiformat.org/
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.

Software

https://tinyssh.org/
OpenSSH is good, and this one is too and is not as famous.
https://mojzis.com/software/dq/
DNSCurve implemented after djbdns from the same author of tinyssh.
https://arcan-fe.com/about/
The arcan display server project.

Qmail

An SMTPd server that aims simplicity, security, and general good design.

https://cr.yp.to/qmail.html
This is qmail, the venerable alternative to Postfix.
https://notqmail.org/
Not qmail, also not netqmail: continuation of both projects.
http://openqmail.org/
One-man project similar to notqmail in many aspects.
http://www.memoryhole.net/qmail/
Overview of many qmail patches.

Libraries

https://www.libressl.org/
OpenSSL fork with focus on simplicity and sane defaults.
https://man.openbsd.org/tls_init.3
Sane alternative interface to the LibreSSL library.
https://openssh.com/
You might already know this one.
https://bearssl.org/
A single-person TLS library.

System programming

http://smarden.org/runit/
An init system and supervision suite inspired from daemon tools.
https://skarnet.org/software/
Rewrite the layer between the kernel and the applications with minimalism.
https://en.wikipedia.org/Advanced_Programming_in_the_Unix_Environment
Programming book for feeling fine with all these syscalls.
https://github.com/cirosantilli/x86-bare-metal-examples
Dozens of minimal operating systems to learn x86 system programming
https://bob.cs.sonoma.edu/IntroCompOrg-x64/book.html
Learn X86-64 assembly as well as how computer works in general.
https://www.coreboot.org/images/6/6c/LBCar.pdf
Use CPU cache as random access memory to write bootloader components in C.
https://yin.neocities.org/boards/pc1512/
Giving a new life to hardware born before me.
http://www.valachnet.cz/lvanek/diy/rc2014/index.html
Z80 is simple enough so that skilled engineer can peice it back together from pieces and program most parts.
https://www.cs.cmu.edu/~rjsimmon/15411-f15/schedule.html
A class on compilation, with lectures notes openly accessible.
http://musl.libc.org/
The great one C library for Linux.
https://stackoverflow.com/questions/5284898/implement-division-with-bit-wise-operator
concise explanation to long division algorithm
https://web.archive.org/web/20081021011744/http://cm.bell-labs.com/cm/cs/who/dmr/odd.html
Bit twiddling for multiplication and division
//suckless.org/
Suckless - software that sucks less.
//2f30.org/
2f30 - div by 0: made with strange alien technology
//bitreich.org/
HTTP serves companies, Gopher serves people.
https://nixers.net/
Unix philosophy afficcionados forum.
https://z3bra.org/
Heavy tinkering intensifies...
//tildeverse.org/
Tildeverse - Association of like-minded ~tilde communities.

Embedded

http://www.ganssle.com/
The fun of engineering hardware and firmware.
https://stm32-base.org/
Getting started with ARM ST 32bit microcontroller, and board guide.
https://avrs.fi/
Community interested about simple microcontrollers such as AVR.
https://www.pjrc.com/
Manufacturer of AVR and ARM Freescale microcontrollers encouraging Makefile builds.
https://vivonomicon.com/2018/04/02/bare-metal-stm32-programming-part-1-hello-arm/
Programming an ARM STM32 Microcontroller without an extra SDK.
https://www.linusakesson.net/pages/scene.php
Demo scene on AVR microcontrollers!
https://lujji.github.io/blog/bare-metal-programming-stm8/
Bare-metal programming guide for 8-bits microcontrollers.
https://embeddedsecurity.io
Explanation on many things regarding development on ARM, as well as few mitigations features of some ARM processors.
https://vivonomicon.com/category/stm32_baremetal_examples/
Bare metal examples of STM32 programming, very useful for debugging or getting a stm32-blinky running from scratch.
https://fccid.io/
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.
https://interrupt.memfault.com/blog/a-deep-dive-into-arm-cortex-m-debug-interfaces
Overview of MCU debug interfaces
http://www.ganssle.com/tem/tem440.html#article2
The Wouter van Ooijen message is a great way to deal with unit systems in code.
http://2022.rtss.org/
IEEE Real-Time Systems Symposium
https://embedded.fm/
Interests, careers, and lives of engineers, artists, educators and makers.
https://m-labs.hk/experiment-control/artiq/
Quantum computer control system
https://embeddedartistry.com/
Website selling courses, also offering blog articles and learning material.
https://github.com/rgrgrg/AVR-AES-faster
Fast AES library for 8-bit AVR processors
https://atcommands.org/
AT commands as used by multiple phone vendors explored in details from a leak.
https://forums.gentoo.org/viewtopic-t-1085836.html
Getting an ARM toolchain working in Gentoo in practice.
https://microcontrollerslab.com/
Resources on many firmware/software side of Embedded systems, with a focus on Microcontrollers.
https://atmosic.com/
Energy-harvesting replacement to many battery-powered devices.
https://hackaday.com/2018/01/08/extracting-a-vector-font-from-a-vintage-plotter/
Vector font from an old Apple plotter extracted.
https://github.com/bitbank2
Plenty of libraries for handling things like GIF/PNG/JPEG/TIFF/SVG/... for embedded.

Video and Image Processing

https://wiki.x266.mov/
A wiki about all things encoding.
https://yewtu.be/watch?v=TGUgD2n56Fs
Video compression algorithms efficiency compared under constant bandwidth.
https://2384176.fs1.hubspotusercontent-na1.net/hubfs/2384176/Webinars/MIPI-Webinar-Introduction-MIPI-Camera-Command-Set-v1.pdf
A presentation about MIPI by MIPI Alliance.
https://timbaumann.info/svd-image-compression-demo/
Interactive demo of SVD image compression methods. Some might run on an NPU.
https://link.springer.com/article/10.3103/S1060992X22010039
Energy harvesting camera sensors.
https://www.baslerweb.com/en/learning/cmos-sensor-selection/
A presentation of image sensor families from SONY (the IMX### sensors).

Embedded Languages

https://github.com/hannobraun/kari
https://github.com/andrewchambers/hm3
https://github.com/toitlang/toit
https://github.com/pikasTech/PikaPython
https://github.com/xodio/xod
https://github.com/KarolS/millfork
https://github.com/vtereshkov/umka-lang
https://github.com/coder-mike/microvium
https://github.com/blech-lang/blech
https://github.com/rhaiscript/rhai
https://github.com/espruino/Espruino
https://wiki.tcl-lang.org/page/Small+Tcl
https://github.com/elua/elua
https://monome.org/docs/teletype/studies-1/
https://github.com/wren-lang/wren
http://www.cs.cmu.edu/~412/lectures/L03_Forth.pdf
https://www.stsci.edu/~idash/pub/dashevsky0607rcsgso.pdf
https://sneklang.org/
https://github.com/microsoft/devicescript
https://github.com/tatethurston/embedded-typescript
https://berry-lang.github.io/
http://www.ulisp.com/

Machine Learning

"Artificial Intelligence" is a concept to be discussed in philosophy. If dealing with computer science or mathematics, I prefer saying Machine Learning.

https://tinymlbook.com/
TinyML is a widely available Machine Learning library for embedded systems that would need any.
https://github.com/hollance/TinyML-HelloWorld-ArduinoUno
Practical instructions for getting started TinyML onto hardware.

Documentation systems

https://josuah.net/tool/notmarkdown/
The simple document system used by this website.
https://manpages.bsd.lv/
I learned how to write (mdoc) man pages thanks to the layout of this page.
https://troff.org/
The venerable UNIX document system.
https://www.latex-project.org/
The document system of choice of academics.
https://www.sphinx-doc.org/
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.

http://retawq.sourceforge.net/
Simple text-mode web browser
http://links.twibright.com/
Classic text-mode web browser
http://www.elinks.cz/
Full-featured text web browser
http://lynx.browser.org/
Colorful text web browser
http://w3m.sourceforge.net/
Text web browser with a cursor, bells and whistles

Networking

https://www.torproject.org/
The famous Onion Router
https://geti2p.net/en/comparison/tor
Invisible Internet Project, like Tor, but not Tor.
https://freenetproject.org/
Alternative internet featuring freedom and anonymity.
http://brokestream.com/netboot.html
1 file, 2 functions, 300 lines DHCP and TFTP server!
https://code.kryo.se/iodine/
Make all traffic go through DNS to bypass filtering.
https://www.roesen.org/files/ipv6_cheat_sheet.pdf
IPv6 cheat sheet.
https://stackoverflow.com/questions/14388706/how-do-so-reuseaddr-and-so-reuseport-differ#14388707
Semantics of SO_REUSEADDR and SO_REUSEPORT.
https://solar.lowtechmagazine.com/2015/10/how-to-build-a-low-tech-internet.html
Low-tech internet for the masses.
https://crt.sh/
Status monitor for certificates.
https://hwaddress.com/
OUI table query, could be a simple script though.
https://repology.org/
Software package status for different operating system distributions.
https://whatsmydns.net
Service that check DNS propagation across multiple servers worldwide.
https://dark.fi/
Privacy-focused communication suite.
//grifon.fr/
Associative ISP around Rennes, Brittany, France.
https://www.swordarmor.fr/
French celt (and viking (and celt again)) legends soaked geek lair
whois://whois.bgpmon.net
A BGP-aware whois service: whois -h whois.bgpmon.net " --roa 15169 216.58.192.0/22"
https://ping.pe/
Since https://mtr.sh/ does not answer anymore, a distributed looking glass.
https://www.switchdoc.com/2021/05/tutorial-using-cellular-modems-with-the-raspberry-pi-4b/
Use the libqmi to send AT commands to a mobile broadband modem on Linux (i.e. LTE/5G dongle)

Protocols

Encryption wire protocols

https://dnscurve.io/
A better DNSSEC without the bulk, currently used on that site.
https://cr.yp.to/tcpip/minimalt-20130522.pdf
A better TLS without the bulk.
http://www.aaronsw.com/2002/rss30
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

http://rtcquickstart.org/
A really, really good guide that cover simply and accurately SIP and surrounding protocols, with practical examples.
https://sip5060.net/
Services and documentation, blog (still very active) about SIP protoco.
http://osmocom.org/
Foundation for GSM support with free software, including bridging to SIP.
https://ircdocs.horse/
Status Quo of the IRC protocols actually used.
https://telecom.altanai.com/
A gold mine for all things about streaming protocols.
https://sites.google.com/view/altanai/about-me
Engineer who work on telecom software.

USB

https://beyondlogic.org/usbnutshell/
A concise description of the USB protocol inner working.
https://www.usbmadesimple.co.uk/
A more shallow overview of USB internals, to get on rail quick.
https://www.usb.org/sites/default/files/D1T1-2%20-%20USB%20Type-C%20System%20Overview.pdf
A short and efficient explanation about USB4 killing all ambiguities. I wish I found it earlier.
https://usb.org/sites/default/files/D2T2-1%20-%20USB%20Power%20Delivery.pdf
A short and efficient explanation about USB Power Delivery.
https://www.usb.org/documents?search=&category%5B%5D=64
All the presentations of the USB-IF. A good collection!
https://electronics.stackexchange.com/a/266990
An experiment to try USB 3.0 without the USB 2.0 D+/D- lines involved at all (cut off).
https://www.electronicdesign.com/technologies/industrial/boards/article/21801151/how-to-create-and-program-usb-devices
A good general introduction to the working of USB.
https://www.slideshare.net/rainnyQ/instruction-of-usb-31
A succint introduction about the working of USB 3.1.
https://www.mindshare.com/files/resources/MindShare_Intro_to_USB_3.0.pdf
A more robust introduction to USB 3.0, the corner stone of modern USB.
https://www.usbmadesimple.co.uk/
USB Made Simple, good complement to USB in a Nutshell.
https://codelv.com/usb/setup-packets/
An explanation of enumeration with actual packet dump down to the bit level.

RS-485

https://hackaday.com/2022/04/05/hacker-dictionary-rs-485-will-go-the-distance/
A presentation of the usefulness and practical details of RS-485.
https://www.cuidevices.com/blog/rs-485-serial-interface-explained
Explanation of the implementation of RS-485.

CAN

https://www.keysight.com/us/en/assets/7018-06531/flyers/5992-3744.pdf
Various protocols used in cars: Single Pair Ethernet, CAN, LIN

JTAG

https://www.openocd.org/doc/doxygen/html/primerjtag.html
Insightful rationale around what JTAG is: "think of JTAG as I2C for testing".

Signal processing

Computer Vision

https://docs.wpilib.org/en/stable/docs/software/vision-processing/apriltag/apriltag-intro.html#processing-technique
Step-by-step explanation of the steps involved with decoding an AprilTag.
https://www.mathworks.com/help/images/comparison-of-auto-white-balance-algorithms.html
Automatic White Balance is both a science and an art, and I know nothing of it!

Hardware

Software has got to run somewhere right?

Devices

https://www.nordicsemi.com/Products/Development-hardware/nrf52840-dongle
Sub-$10 board, as cheap as a bluetooth dongle, still with GPIO pins.
https://www.electro-smith.com/daisy/daisy
STM32H7-based board, suitable for audio appliances.
https://www.opencompute.org/
Project for incorporating open source hardware into server equipment.
https://eater.net/
Ben Eater's discrete CPU: instructions on how to make one out of a few chips on a breadboard.
https://debugger.medium.com/howto-using-a-pager-in-the-21st-century-6a57454ecde8
Overview of devices that can act as pagers, with interesting modules for RPi.
https://pid.codes/
A product ID range opened for open hardware projects, cost-free registration.
https://www.siliconwitchery.com/
A module with an FPGA and a microcontroller.
https://opensourcemedicalsupplies.org/
Focused on Open Hardware medical supplies manufacturing and engineering.
https://www.elinux.org/RPi_HardwareHistory
History of Raspberry Pi devices.

Gateware

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.

https://opencores.org/
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.
https://www.librecores.org
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.
https://www.zipcores.com/ip-core-listings.html
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.
https://libre-soc.org/
The POWER architecture by IBM is open-sourced as OpenPOWER. This group tries to get a very-high performance processor/GPU/... out of it.
https://lowrisc.org/docs/untether-v0.2/vsim/
Here we describe how to simulate the lowRISC SoC using Verilator
https://pingu98.wordpress.com/2019/04/08/how-to-build-your-own-cpu-from-scratch-inside-an-fpga/
Help with getting a picorv32 core onto a small FPGA.
https://github.com/SpinalHDL/VexRiscv
Small RISC-V core written in SpinalHDL.
http://stevenbell.me/
Classes on digital logic circuits available online.
https://github.com/enjoy-digital/litex
A gateware vendor largely open-sourcing its designs and providing tooling to use them.
https://www.fossi-foundation.org/
FOSS Silicon foundation, doing GSoC
https://electronics.stackexchange.com/a/163110
Verilog vs VHDL.
https://insights.sigasi.com/opinion/jan/verilogs-major-flaw/
Shortcomings of Verilog.
https://projectf.io/
FPGA info site oriented toward video.
https://openrisc.io/
Project create a free and open processor for embedded systems.
https://verilogpractice.wordpress.com
Personnal wiki about practical problems and solutions encountered in Verilog designs.
https://verificationacademy.com/forums/
Siemens' effort to teach help future engineers to verify chips.
https://web.archive.org/web/20190115080828/http://hamsterworks.co.nz/mediawiki/index.php/Main_Page
Archived version of a popular wiki about HDLs
https://yewtu.be/c/FOSSiFoundation
FOSSI video channel featuring conference recordings.
https://hdl.github.io/awesome/
List of resources about HDLs: conferences, software, learning material.
https://neilturley.dev/netlistsvg/
Demo of a conversion tool for turning a netlist into a SVG diagram.
https://www.doulos.com/knowhow/fpga/synchronization-and-edge-detection
A call for sanity and simplicity in FPGA design: avoiding signals out of phase with a clock.
https://github.com/sylefeb/tinygpus/
A tiny GPU implementation for FPGAs.
https://www.hackster.io/sthibault/hardware-as-code-part-i-an-introduction-48bacb
Introduction to hardware description languages to software developers.
https://cfu-playground.readthedocs.io/en/latest/
Nice resource with modern topics like Amaranth.
https://www.intechopen.com/chapters/76266
Presentation of several interconnects and comparison with Network On Chip (NoC)
https://ohwr.org/
What is this project and why does it have more hardware projects than one could dream of?

Amaranth

https://amaranth-lang.org/docs/amaranth/latest/intro.html
Python-based HDL. The most active project.
https://m-labs.hk/migen
The language Amaranth was forked from (by some of its authors).
https://docs.chipflow.io
A company basing everything off Amaranth to build actual chips. Good Amaranth get-started doc.

Verilog / SystemVerilog

http://zipcpu.com
A long-winged effort for documenting a learning-path through verilog and hardware design.
https://www.theoctetinstitute.com/
Resources on Verilog and SystemVerilog, as well as introduction to ASICs.
http://www.verilogpro.com/
A place to learn Verilog and SystemVerilog design techniques, coding styles, for RTL design and verification!
https://en.wikipedia.org/wiki/Verilog
Used by most chip makers, and lingua frinca of the FPGA world.
https://www.chipverify.com/
Comprehensive Verilog and SystemVerilog resource
https://hdlbits.01xz.net/wiki/Step_one
Exercises and learning material for Verilog.
https://fpgatutorial.com/
Explaining a lot of concepts of the Verilog language.
https://verilogguide.readthedocs.io/
Verilog language and syntax.
http://www.referencedesigner.com/tutorials/verilog/verilog_01.php
Verilog language and syntax.
https://peterfab.com/ref/verilog/verilog_renerta/
Verilog language and syntax.
https://www.fullchipdesign.com/
Verilog language and syntax, and RTL-related topics.
https://www.systemverilog.io/
SystemVerilog language and syntax.
https://www.asic-world.com/verilog/veritut.html
Introduction to Verilog and resources for learning.
https://yewtu.be/channel/UCzvXC7WbnaWs5FZ5djO8cag
VLSI Chaps - Courses on VLSI production process, EE, and HDL
https://www.bilibili.com/video/BV1kY41147QN?spm_id_from=333.999.0.0
A very good introduction to SystemVerilog, going fast yet taking its time and explaining things calmly.
https://chipsalliance.github.io/sv-tests-results/
The definitive data table for open source software support for SystemVerilog features.
https://verilogguide.readthedocs.io/en/latest/verilog/testbench.html
Explanation of Verilog and SystemVerilog using Quartus and ModelSim.
https://systemverilog.dev/
Work in progress book available online about SystemVerilog and verification.
https://sv-lang.com/explore/
A Godbolt-like online linter showing extensive linting for a Verilog source pasted-in.
https://sv-lang.com/
A systemverilog, akin to a compiler frontend, but not any known backend for it yet.
https://github.com/lowRISC/style-guides/blob/master/VerilogCodingStyle.md
Coding style for Verilog/SystemVerilog with a clever way to name signals with _d for latch input, and _q, _q2, _q3 for latched output.

VHDL

https://en.wikipedia.org/wiki/VHDL
If it is not Verilog, it is likely going to be VHDL.
http://www.ece.tufts.edu/es/4/about.html
HDL course oriented on VHDL.

Clash

https://clash-lang.org/
Haskell-based HDL.

Chisel

https://www.chisel-lang.org/
Scala-based HDL.

Silice

https://github.com/sylefeb/Silice
A language built around Verilog, as some kind of preprocessor.

Simulation

Simulating hardware at gate or circuit level.

https://www.isotel.eu/mixedsim/
Tool building on top of ngspice
https://en.wikipedia.org/wiki/List_of_HDL_simulators
Wikipedia list of HDL simulators
https://ghdl.github.io/ghdl/
The great one tool for VHDL.
https://www.veripool.org/verilator/
A simulator turning Verilog into C++, providing a thin C++ api to interact with simulated hardware.
http://iverilog.icarus.com/
Some other simulator that I should try some day!

ASIC

Introduction to VLSI manufacturing processes

https://hackaday.com/2022/03/18/the-open-source-asics-hack-chat-redefines-possible/
Welcome to the ASIC world
https://libresilicon.com/index_en.html
We develop a free and open source semiconductor manufacturing process standard [...]
https://www.asicsforthemasses.com/
An open source PnR tool for hardware ASICS.
https://www.system-to-asic.com/blog/
System-to-Asic blog with description of the ASIC world.
https://en.wikipedia.org/wiki/GDSII
The end-format that describes an ASIC that a foundry can use.
https://theopenroadproject.org/
ASIC design from RTL all the way down to GDSII.
http://opencircuitdesign.com/
ASIC cell edition tool suite.
https://openlane.readthedocs.io/en/latest/
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.
https://yewtu.be/embed/9SnR3M3CIm4
Best lecture ever!
https://anysilicon.com/the-ultimate-guide-to-clock-gating/
Index of corporations doing ASIC design.
http://opencircuitdesign.com/magic/
The one tool in use for ASIC design. I like its TCL/Tk interface! :)
http://www-scf.usc.edu/~ee577/
A collection of various VLSI tools documentation and help: Magic, IRSIM, HSPICE, PowerView, Verilog-XL, PLA Tools, Cadence.
https://www.up-microlab.org/
Laboratory of the University of the Philippines Diliman building ICs.
https://www.icsense.com/inductive-powering-asics/
Making a variation of the load to communicate to something that drives it to sense this: passive transmission!
https://www.intel.com/content/www/us/en/support/programmable/support-resources/devices/dev-hardcopyii.html
HardCopy® II ASIC Family Technical Information

Journals

https://lidarmag.com/
LIDAR Magazine
https://spie.org/
The international society for optics and photonics.
https://chipsandcheese.com/
Chips and Cheese. The Devil is in the Details.

FPGA

https://f4pga.org/
fpga toolchain for Xilinx 7-Series, Lattice iCE40, Lattice ECP5 FPGAs, QuickLogic EOS S3
https://www.sparkfun.com/news/1203
Introduction to FPGAs by SparkFun
https://www.fpga4fun.com/
Lessons for practical approach to FPGAs.
https://hackaday.io/project/27550-the-hobbyists-guide-to-fpgas
Introduction to FPGAs published on HACKADAY.
https://github.com/azonenberg/openfpga
Open toolchain
https://openfpga.readthedocs.io/
An open-source framework that enables rapid prototyping of customizable FPGA architectures.
https://vhdlwhiz.com
Definitions and learning material
https://verilogtorouting.org/
Open source toolchain components, alternative stack to Yosys/NextPNR
https://fasm.readthedocs.io/
FPGA Assembly (FASM) tooling
https://github.com/f4pga/ideas/issues/52
Project to gather resources a bit like what I am doing now.
https://bit.ly/LearnFPGA
Some links are being gathered here too.
https://joelw.id.au/FPGA/CheapFPGADevelopmentBoards
Overview and advises of FPGA boards for getting started
https://www.cnx-software.com/2021/11/22/renesas-50-cents-fpga-forgefpga-yosys-development-tools/
A tiny tiny FPGA chip using open-source toolchain components.
https://www.nandland.com/articles/fpga-101-fpgas-for-beginners.html
Introduction to FPGAs underlying principles.
https://workshop.fomu.im/en/latest/
Discovery of the fomu board, a nimble ICE40 dev board.
http://www.ee.ic.ac.uk/pcheung/teaching/ee3_DSD/
Open the lid of the FPGA chip.
https://www.fpgakey.com/
Website dedicated to FPGAs along with a Wiki.
https://www.eetimes.com/how-to-interface-fpgas-to-microcontrollers/
Interfacing an FPGA with a MCU
https://forum.digilent.com/
Digilent (National Instrument)'s forum.
http://fpgacpu.ca/
A resource about FPGAs, computer history, and computer architecture.
https://atadiat.com/
Introduction about FPGA in both English and Arabic languages.
https://fpgacademy.org/
Educational resources that supports the use of FPGAs for teaching and research in University and College courses.
https://rhye.org/
Blog on various things including security and FPGA, like composing a system with VexRISC-V and olof/wb-intercon.
https://www.reddit.com/r/FPGAMemes/
All work and no fun makes Jack a dull boy...

Verification

You gotta know if you can press the big START BATCH PRODUCTION 100000000 ITEMS button without risk.

https://github.com/ben-marshall/awesome-open-hardware-verification
List of verification tools, conferences, projects, tools, examples...
https://cocotb.org
A testbench toolsuite in python, that supprots most simulators and HDLs around.
https://thedatabus.io/cocotb-introductionr
Introduction to Cocotb as well as python async, used by cocotb.
http://zipcpu.com/tutorial/formal.html
ZipCPU has good introduction about verification.
https://verificationacademy.com/
Siemens needs more verification engineers, and has a practical approach to the problem.

Reverse Engineering

https://yewtu.be/playlist?list=PLoFdAHrZtKkhcd9k8ZcR4th8Q8PNOx7iU
A series of videos teaching hardware hacking step by step.
https://rada.re/n/radare2.html
A command-line yet intuitive and heavily scriptable reverse engineering tool suite.
https://github.com/rizinorg/rizin
A fork of radare2, some continuation of it.

Firmware

MicroPython

https://docs.micropython.org/en/latest/develop/index.html
Documentation of the internals of MicroPython
https://micropython-usermod.readthedocs.io/en/latest/usermods_01.html
Documentation on how to build MicroPython modules from C.

Electronics

Hardware needs components made of something right?

https://www.atsdr.cdc.gov/toxprofiles/tp13.pdf#page=427
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)."
https://www.eevblog.com/forum/
Dave Jone's forum, topic around Electrical Engineering and Hardware design.
https://superlab.stanford.edu/publication/hybrid_cockroft-walton-dickson-hv_park/
Interesting approach to a charge pump with good compromise between voltage rating and power.

Equipment

https://www.dreamsourcelab.com/
USB-based oscilloscopes that give a good value for price.

Parts and Components

https://smd.yooneed.one/
SMD part marking identification database.
https://en.wikipedia.org/wiki/List_of_LM-series_integrated_circuits
A reference of LMxxx parts names.
https://www.microchip.com/en-us/product/ATECC608A
Network and Accessories secure authentication: offloading crypto to hardware.
https://www.microchip.com/en-us/product/ATECC608B
Network and accessories secure authentication: offloading crypto to hardware.
https://www.digikey.fr/en/products/detail/nexperia-usa-inc/PTVS20VS1UR-115/2228712
Transient Voltage Suppressor diode that I saw work very well by my own eyes (ok photo).
https://www.st.com/resource/en/datasheet/l6235.pdf
Brushless DC driver with PWM input.

Prototyping

https://tge.readthedocs.io/en/latest/content/electronics/prototyping_techniques.html
Summary of various prototyping methods.
https://yewtu.be/watch?v=drwGvATLNaw
RF Filters out of PCB... prototyped with tape!
https://yewtu.be/watch?v=PPGN3CM5Ims
Audio Power Amplifier done using Manhattan Construction method.
https://yewtu.be/watch?v=YHa2qEMDqms
HamCom talk about Prototyping using Manhattan Construction method.
http://elm-chan.org/
Hand-made complex digital electronics as a piece of art for point-to-point prototyping.
https://yewtu.be/watch?v=vq968AFgPhg
Practical and straightforward guide toward copper-island prototyping.
http://www.unixnut.net/files/manart.pdf
An entire paper about Manhattan Prototyping.
https://aa7ee.wordpress.com/
A beautiful and structured approach to Manhattan construction.
https://spectrum.ieee.org/with-the-dead-bug-method-hobbyists-can-break-through-the-highfrequency-barrier
IEEE Spectrum on prototyping high-frequency electronics.
https://www.analog.com/media/en/training-seminars/tutorials/MT-100.pdf
Paper on prototyping by Jim Williams himself.
https://yewtu.be/watch?v=kH110yjYZ2g
Overview of several prototyping methods.
http://www.zianet.com/dhassall/advmanart.pdf
Tutorial on prototyping with focus on Manhattan Construction.
https://www.reddit.com/r/electronics/comments/io8dv4/economical_tip_use_spent_pieces_of_solder_wick_as/
Solder wick as high-current conductor.
https://www.reddit.com/r/electronics/comments/52drsj/made_myself_some_smd_prototyping_boards/
Prototyping boards for SMD parts
https://www.instructables.com/How-to-Prototype-Without-Using-Printed-Circuit-Boa/
Kynar wire-based prototyping.
https://twitter.com/IKOPON1/status/1713534542215307323/photo/4
A marvelous take at copper-island prototyping!
https://yewtu.be/watch?v=jQxTQjB64L0
Description of the feel of various copper clad cutting tools.
https://www.analog.com/en/technical-articles/prototyping-with-surfacemount-devices.html
A description of copper clad prototyping by Roger Griswold. 2002 but still rather up to date, and has interesting insights about efficiency..
https://avdweb.nl/tech-tips/pcb/solar-bike-computer
SMD prototyping board

Analog

Computers are digital, and the world is analog. Now what?

https://www.ee.columbia.edu/~kinget/WhyAnalog/circuitcellar_The_World_Is_Analog_201410.pdf
What is the point of Analog in a digital-centric industry anyway?
https://www.ibiblio.org/kuphaldt/electricCircuits/
A free series of textbooks on the subjects of electricity and electronics.
https://www.eevblog.com/
A classic, bookmarked on every electronics engineer's computer.
https://yewtu.be/embed/_5PlX4veIA0
Discussion about Mixers and other thingS.
https://en.wikipedia.org/wiki/Eye_pattern
Talks about many challenges of analog aspects of (i.e. digital) signals.
https://yewtu.be/channel/UCiqd3GLTluk2s_IBt7p_LjA
w2aew - Mostly videos on hobby electronics, test & measurement, ham radio, and other stuff.
http://www.falstad.com/
Online Circuit simulator.
https://xschem.sourceforge.io/
Offline Circuit simulator, able to produce a netlist in various format, including spice for simulation.
https://archive.org/details/APaulBro1989
Explanation of how a reference voltage circuit using bandgap phenomenon of BJT works, by its author.
https://www.analog.com/en/analog-dialogue/articles/common-problems-when-designing-amplifier-circuits.html
Avoid Common problems often encountered when designing amplifier circuits, by Analog Devices.
https://www.newark.com/pdfs/techarticles/microchip/3_3vto5vAnalogTipsnTricksBrchr.pdf
Microchip Tips And Tricks for level shifting.
https://www.ti.com/lit/an/slyt512/slyt512.pdf
How to do a separate analog ground on mixed-signal designs.

Power electronics

https://www.powerelectronicsnews.com/designing-an-esc-module-to-control-drone-motors/
A soft introduction to ESCs.
https://www.nuffzedd.com/
General blog with good notes on Inductor in SMPS among other things.
https://yewtu.be/watch?v=dJjxcjJOlN0
ESC PCB design.
https://naylampmechatronics.com/
Manufacturer of a lot of modules related to power electronics.
https://electronics.stackexchange.com/questions/97827/best-transistor-to-use-for-audio-amplifier
Simple audio power amplifier done right.
https://www.current-drive.info/
Praise of driving speakers by current, which drives it in the end, instead of voltage.
https://yewtu.be/watch?v=zPOik2XzQlc
Best explanation of a push-pull amplifier I could find insoar (see subtitles).

:https://www.windsystemsmag.com/wp-content/uploads/2021/03/0321-IF-3.pdf The basics of wind turbines control.

https://electronics.stackexchange.com/questions/17116/how-to-drive-a-mosfet-with-an-optocoupler
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.
https://josuah.net/links/mosfet_bootstrap.jpg
High-side N-MOS bootstrapping in one picture.

Interfaces

ADCs, DACs, and how to exchange information with them, and interface them with a digital design.

https://www.analog.com/en/technical-articles/interfacing-fpgas-to-an-adcs-digital-data-output.html
Developos the situation, challenges, practices, and covers solutions and approaches.

Signal Processing

https://ocw.mit.edu/courses/res-6-007-signals-and-systems-spring-2011/pages/readings/
MIT's OpenCourseware on signal processing.
https://ocw.mit.edu/courses/res-6-008-digital-signal-processing-spring-2011/
MIT's OpenCourseware on DSP.
https://en.wikibooks.org/wiki/Digital_Signal_Processing
WikiBook on DSP.
https://blog.frost.kiwi/WebGL-LUTS-made-simple/
Longform article about use of lookup table (LUT) in the context of software.
https://eems.mit.edu/publications/tutorials/
Energy-Efficient Multimedia Systems Group

PCB design

https://hackaday.com/2020/11/13/robotics-club-teaches-soldering/#more-446219
PCB soldering 101 published on HACKADAY.
https://www.circuits-central.com/blog/everything-you-need-to-know-about-bga-soldering/
Getting started with soldering BGA chips.
https://www.circuits-central.com/blog/8-reasons-its-important-to-prototype-your-circuit-board-first/
Comments on importance of prototyping before making a board.
https://github.com/atomic14/supersise-seven-segment
Filament LEDs looks like being fun!
https://github.com/MalphasWats/hawk
Tutorial on how to build a PCB
https://hackaday.com/2016/09/21/creating-a-pcb-in-everything-introduction/#series-of-posts-box
Serie of post to cover basics of many different software tools for PCB.
https://hackaday.com/2017/07/02/pcb-solder-pad-repair-cleanup/
Repairing a broken pad can be tedious
https://yewtu.be/channel/UCNb5R0BXy-6Umqy6nQhtOJw
Eric Bogatin has a lot of wisdom to share about PCB design in practice.
https://jimlaurwilliams.org/projects/seychellePaper/
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.
https://github.com/azonenberg/pcb-checklist
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.

https://www.essexham.co.uk/how-to-get-started-with-data-modes
Introduction to sending data over an amateur radio.
http://www.w1hkj.com/
Swiss army knife desktop software for radio hardware.
https://hackaday.com/series_of_posts/the-50-ham/
Series of articles to affordable gears for Ham Radio.
https://www.qrz.com/
A lot of different resources about HamRadio!
https://github.com/lab11/uSDR
Open Hardware/Firmware radio project.
https://github.com/threeme3/usdx
Very frequently encountered radio project.
https://github.com/ArjanteMarvelde/uSDR-pico
uSDX clone based off the RP2040.
https://github.com/df8oe/UHSDR
Open Hardware/Firmware radio project.
https://dl2man.de/
Open Hardware/Firmware radio project.
https://www.hfsignals.com/
Open Hardware/Firmware radio project.
https://qrp-labs.com/qdx.html
Open Hardware/Firmware radio project with only an USB interface.
https://en.wikipedia.org/wiki/List_of_amateur_radio_transceivers#QRPTransceivers
Wikipedia list of radio transceivers.
https://qrper.com/
A QRP (low-power radio operation) passionate.
https://qrpkits.com/
Has a list of analog radio kits.
https://files.ettus.com/manual/
Protocol for computer-SDR communication off USB 2.0/3.0.
https://github.com/search?l=Verilog&q=sdr&type=Repositories
Many SDR projects end-up here.
https://www.allaboutcircuits.com/textbook/radio-frequency-analysis-design/
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.
https://yewtu.be/embed/h_7d-m1ehoY
Explanation of IQ signals basics.
http://rfexplorer.com/models/
Radio Frequency spectrum analyser for a large rane of frequencies.
https://www.omiss.net/
Old Man International Sideband Society, on 7.185 MHz.
http://kiwisdr.com/public/
Map of online SDR.
https://yewtu.be/c/TamithaSkov
Space and Sun weather forecast.
https://www.spaceweatherwoman.com/forecasts/
Space and Sun weather forecast by Tamitha Skov.
https://www.w8ji.com/
In-depths articles about multiple topics around radio frequencies.
https://rsgb.services/public/bandplans/html/rsgb_band_plan_2022.htm
A frequency map of each band, describing the best practices.
https://www.crowdsupply.com/wavelet-lab/usdr
An SDR on a tiny M.2 module.
https://yewtu.be/watch?v=KuEAYkp-mlk
Radio antenna build kit explained, featuring practical antenna crafting.
https://yewtu.be/watch?v=JLR4nhosZ-M
Endfed antenna balun building and installation.
https://sparc.asn.au/2022/04/22/random-wire-eflw-antenna-designs/
End-fed long wire (EFLW) or "random wire" antenna design.

Demodulation

https://panoradio-sdr.de/ssb-demodulation/
Summary of 4 major demodulation techniques.
https://yewtu.be/watch?v=KuXjwB4LzSA&t=2s&ab_channel=3Blue1Brown
Explanation of the Convolution demodulation technique, yet another one.
https://www.worldcat.org/title/762045035
Pace's Advanced Techniques for Digital Receivers.

Antennas

https://yewtu.be/embed/axUcybeamIk
An introduction to antenna design.
https://www.electronics-notes.com/articles/ham_radio/amateur-equipment/buying-choosing-best-antenna-type.php
Practical guide to antenna
https://vu2nsb.com/antenna-polarization-radio-communication/
VU2NSB about wave polarisation practices, and what-for, and why vertical or horizontal is used.
http://www.iw5edi.com/ham-radio/
Many antenna designs tried by this guy.
https://www.fcc.gov/engineering-technology/electromagnetic-compatibility-division/radio-frequency-safety/faq/rf-safety#Q5
In case you are wondering what kind of risk you are exposed to with radio waves.
https://yewtu.be/watch?v=NiDCgM2f5ww
Principle of operation of Yagi-Uda antennas explained clearly.
https://yewtu.be/watch?v=8_GbiRk_gLI
Some more practical take on Yagi Antennas, but ignore the formulas (feets instead of meters).
https://www.antenna-theory.com/
A very good collection of guides to antennas from the beginning to the end.
https://www.markimicrowave.com/assets/appnotes/balun_basics_primer.pdf
A primer on baluns.
https://www.link-labs.com/blog/what-is-lora
Decoding the LoRa PHY, 33C3.

Soldering

https://www.buydisplay.com/blog/how-to-hand-solder-an-lcd-fpc-ffc-connector.html
Solder a screen flexible connector directly onto a PCB.
https://nepp.nasa.gov/whisker/
Why soldering is not always the best option.
https://yewtu.be/channel/UCl2mFZoRqjw_ELax4Yisf6w
Random musings and sometimes detailled rework footage.

Yaesu

https://github.com/tomelec/ft-857_front_panel_protocol/blob/master/doc/protocol.md
Description of the front-panel protocol.
http://www.ka7oei.com/ft817_diags.html
Detailed schematic diagram of the whole radio circuits, leaked from the FCC website, later removed.

Engineering Sciences

https://www.feynmanlectures.caltech.edu/
I was told, the "Engineering entrance door. Come in through (welcome!) or stay out."

Robotics

https://howtomechatronics.com/
Cover some basic circuits frequently encountered.
https://batteryuniversity.com/
The reference for understanding batteries working.
https://www.tesla.com/blog/induction-versus-dc-brushless-motors
Very good explanation of the challenge of various kind of motors by Tesla.com.
https://docs.wpilib.org/en/stable/docs/software/vision-processing/apriltag/apriltag-intro.html
Visual tags system and library to decode them, with explanation, used for positioning.

Mechanical

https://tinylabs.io/openfixture/
OpenFixture - Generate test fixture from OpenSCAD.

Art and Culture

https://pc.textmod.es/
Where ascii art packs from various artists groups get released
https://0w.nz/
xer0's place
https://www.jwz.org/
Netscape, Mozilla, XScreensaver, the DNA Lounge night club.
http://www.aaronsw.com/2002/rss30
A 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.
https://cca.org
A computer macro photographist among other nice things.
https://siliconpr0n.org/
Navigable maps of microscopic photos of chip dies. Possible to share link of a particular region.
https://zeptobars.com/
Photographing microscopies of chips' dies.

Cross-topic

Some people are talking about everything!

https://cirosantilli.com/
Personal wiki of Ciro Santilli.