purposes
location
parallelism
modularity
interference
wired
UART, USART, SERCOM, PIO, bit-bang
asynchronous serial
RS-232, RS-422, RS-485
serial broadcast
ATtiny412
ATtiny45
components video
hello.bus.45.bridge board traces traces+exterior interior
hello.bus.45.node board traces traces+exterior interior
hello.bus.45.c makefile
hop-count
chip LED strip
hello.hop-LED.t1624 board components top interior
hello.hop-LED.t1624.ino hello.hop-LED.py video
broad-hop
hello.broadhop-LED.t1624 board components top interior
hello.broadhop-LED.t1624.ino hello.broadhop-LED.py video
hello.broadhop-serial.D11C board components top bottom holes interior
synchronous serial
SPI
MISO/MOSI (master/slave → main/secondary)
SDI/SDO/CS/SCK (serial data in/serial data out/chip select/serial clock)
PICO/POCI (peripherial in controller out, peripheral out controller in)
library library
SD memory cards
specification FAT
hello.uSD.RP2040 board components top bottom holes interior
hello.uSD.RP2040.py video
hello.uSD.D11C board components traces traces+exterior interior
hello.uSD.D11C.ino video
hello.uSD.44 board components traces traces+exterior interior
hello.uSD.44.read.c make output
I2C, TWI
SCL/SDA, pull-ups
Qwiic STEMMA
library library hardware software
hello.I2C.t1614 board components traces traces+exterior interior
hello.I2C.ino video
ATtiny412
I3C
asynchronous unclocked
ATP
hello.ATP.RP2040 board components traces interior
send receive timing video
USB
TinyUSB
CircuitPython HID MIDI
Arduino HID MIDI
Ethernet
chip module
CAN, LIN
MODBUS
DMX
OSI layers
7: application (HTTP)
6: presentation (SSL)
5: session (RPC)
4: transport (TCP, UDP)
3: network (IP)
2: data link (MAC)
1: physical (PHY)
physical media
capacity
bandwidth * log_2 (signal/noise)
wired
single-ended, differential, powerline
open collector, open drain
transmission (pass) gate, tri-state
transmission line
waveguide
SONET optical fiber
wireless
RF
FCC Part 15 ISM
13.56, 40, 433, 868, 915 MHz, 2.4, 5.8, 24 GHz
note note note
802.11 Wi-Fi sensing
802.15 ZigBee 6LoWPAN
Bluetooth, BLE
GATT GAP UUID Services mesh app stack
Arduino MicroPython
LoRa
kbps, km
Arduino MicroPython
LoRaWAN
The Things Network
optical
transmitter receiver LiFi RGB
acoustic
modulation
PCM: Pulse-Code Modulation
PPM: Pulse-Position Modulation
OOK: On-Off Keying
FSK: Frequency-Shift Keying
BPSK: Binary Phase-Shift Keying
QAM: Quadrature Amplitude Modulation
OFDM: Orthogonal Frequency-Division Multiplexing
FHSS: Frequency-Hopping Spread Spectrum
DSSS: Direct-Sequence Spread Spectrum
UWB: Ultra-WideBand
channel sharing
ALOHA
Master-Secondary
Token Ring
TDMA: Time-Division Multiple Access
FDMA: Frequency-Divsion Multiple Access
CSMA: Carrier-Sense Multiple Access
CD: Collision Detection
CA: Collision Avoidance
1-persistent: transmit when clear
nonpersistent: random backoff
p-persistent: probability to transmit
CDMA: Code-Division Multiple Access
MIMO: Multiple-Input Multiple-Output
"PDMA": Physical-Division Multiple Access
errors
detection, correction
block, convolution codes
parity, checksum, Hamming, Reed-Solomon, Turbo
networking
Internet protocols
RFCs example example
IPv4, IPv6
unrouted, routed, unicast, multicast, broadcast addresses
DNS DHCP NAT PAT private
routing BGP
UDP, TCP
HTTP
BGP AODV ROLL
sockets
udpsnd.js udprcv.js video
udpsnd.py udprcv.py
udpsnd.c udprcv.c
WebSockets
Wireshark
SLIP
slattach route
hello.bus.45.SLIP.c makefile udp_slip.py video
IoT, event
APA
wireless
radios
oscillator, mixer, PA, LNA, IF, I/Q, demod, baseband, filters
antennas
Q, antenna gain, impedance matching, short antennas
FabFi
single-chip
ESP32 (2.4 GHz Wi-Fi, Bluetooth, 32-bit) versions
ESP32-C3 module
hello.button-blink.C3 board components traces interior
hello.Web-blink.C3.py microdot.py microdot_asyncio.py video
hello.BLE-blink.C3.py blueart.py hello.BLE-blink.C3.html video
NUS Web Bluetooth
ESP32-WROOM pins
hello.ESP32-WROOM board components traces traces+exterior holes interior
Web client video Web server video UDP video Bluetooth serial video
802.11 LR
ESP32-CAM
hello.ESP32-CAM board components traces traces+exterior holes interior
camera video
ESP8266 (2.4 GHz Wi-Fi, 8-bit)
chip module board power
hello.ESP-01 board components traces traces+exterior holes interior
Web server video
hello.ESP-WROOM-02D board components traces traces+exterior holes interior
Access point video
MFRC522 (13.56 MHz RFID)
chip module library security
hello.MFRC522.t1614 board components traces traces+exterior interior video
nRF24L01+ (2.4 GHz ISM)
chip module library project antennas
hello.nRF24L01P.44 board components traces traces+exterior interior
nRF905 (433/868/915 MHz ISM)
chip module library
RN4871 (2.4 GHz Bluetooth)
chip module commands
hello.RN4871.ftdi board components traces traces+exterior interior video
CC2541 (2.4 GHz Bluetooth)
chip HC-08 HM-10 HM-11 commands
hello.HM-11.ftdi board components traces traces+exterior interior video
nRF52 (2.4 GHz Bluetooth, ISM)
chip module project project
CYW43438 (2.4 GHz, Wi-Fi, Bluetooth, FM)
chip module board
RA-01 RA-01S RA-02 RA-08 (410-525 MHz LoRa)
RA-01-KIT RA-01S-KIT RA-08-KIT
RA-01H RA-01SH RA-08H RA-08H-915 RA-09H (803-930 MHz LoRa)
RA-01SH-KIT RA-08H-KIT
software radio
OpenWrt
assignment
individual assignment:
design, build, and connect wired or wireless node(s)
with network or bus addresses and local input &/or
output device(s)
group assignment:
send a message between two projects