purposes location parallelism modularity interference serial bus asynchronous RS-232, RS-422, RS-485 components video hello.bus.45.bridge.cad board traces interior hello.bus.45.node.cad board traces interior hello.bus.45.c makefile I2C TWI master slave USI master slave software master library bit-bang video hello.I2C.45.bridge.cad board traces interior hello.I2C.45.node.cad board traces interior components programming SPI library SD memory cards specification FAT hello.uSD.44.py board components traces interior hello.uSD.44.read.c make output CAN USB hardware AVR LUFA software V-USB 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 TIA RS232, 422, 485 802.3 ethernet chip module SONET optical fiber wireless RF FCC Part 15 ISM 802.11 Wi-Fi 802.15 ZigBee 6LoWPAN Bluetooth BLE GATT GAP UUID Services app stack optical transmitter receiver LiFi 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-Slave 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 IPv4, IPv6 DNS DHCP NAT private UDP, TCP HTTP BGP AODV ROLL sockets udpsnd.js udprcv.js video udpsnd.py udprcv.py udpsnd.c udprcv.c Wireshark SLIP slattach route hello.bus.45.SLIP.c makefile udp_slip.py video Internet 0 APA RF radios oscillator, mixer, PA, LNA, IF, I/Q, demod, baseband, filters antennas Q, antenna gain, impedance matching FabFi single-chip RN4871 (2.4 GHz Bluetooth) chip module commands hello.RN4871.ftdi.cad board components traces interior video CC2541 (2.4 GHz Bluetooth) chip HC-08 HM-10 HM-11 commands hello.HM-11.ftdi.cad board components traces interior video nRF52 (2.4 GHz Bluetooth, ISM) chip module project project nRF24L01+ (2.4 GHz ISM) chip module library antennas hello.nRF24L01P.44.cad board components traces interior nRF905 (433/868/915 MHz ISM) chip module library ESP8266 (2.4 GHz Wi-Fi) chip module power hello.ESP8266-12E.ftdi.cad board components traces interior commands UDP TCP client server ESP32 (2.4 GHz Wi-Fi, Bluetooth) chip module board toolchain MicroPython JavaScript NodeMCU Lua RTOS FreeRTOS RN2903 (LoRA) software radio assignment individual assignment: design, build, and connect wired or wireless node(s) with network or bus addresses group assignment: send a message between two projects