Networking and Communications


purposes
   location
   parallelism
   modularity
   interference

wired
   asynchronous
      RS-232, RS-422, RS-485 MPCM
      ATtiny45
         components video
         hello.bus.45.bridge board traces interior
         hello.bus.45.node board traces interior
         hello.bus.45.c makefile
      ATtiny412
   SPI
      MISO/MOSI, CIPO/COPI
         master/secondary, controller/peripheral
      library bit-bang
      (*)RAM
         ESP-PSRAM64H
      SD memory cards
         specification FAT library
         hello.uSD.D11C board components traces interior
            hello.uSD.D11C.ino video
         hello.uSD.44 board components traces interior
            hello.uSD.44.read.c make output
   I2C
      TWI master secondary
      USI master secondary
      Qwiic STEMMA
      Wire SoftWire bit-bang
      hello.I2C.t1614 board components traces interior 
         hello.I2C.ino video
   USB
      ASF HID MIDI Host
   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
         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-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
      IPv4, IPv6
         unrouted, routed, unicast, multicast, broadcast addresses
      DNS DHCP NAT PAT 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

wireless
   radios
      oscillator, mixer, PA, LNA, IF, I/Q, demod, baseband, filters
   antennas
      Q, antenna gain, impedance matching, short antennas
      FabFi
   single-chip
      MFRC522 (13.56 MHz RFID)
         chip module library security
            hello.MFRC522.t1614 board components traces interior video
      nRF905 (433/868/915 MHz ISM)
         chip module library
      nRF24L01+ (2.4 GHz ISM)
         chip module library project antennas
         hello.nRF24L01P.44 board components traces interior
      RN4871 (2.4 GHz Bluetooth)
         chip module commands
         hello.RN4871.ftdi board components traces interior video
      CC2541 (2.4 GHz Bluetooth)
         chip HC-08 HM-10 HM-11 commands
         hello.HM-11.ftdi board components traces interior video
      nRF52 (2.4 GHz Bluetooth, ISM)
         chip module project project
      CYW43438 (2.4 GHz, Wi-Fi, Bluetooth, FM)
         chip module board
      RFM95/6/7/8 (433/470/868/915 MHz LoRa)
         chip module LoRaWAN
      SX1276 (137-1050 MHz LoRa)
         chip board ExpressLRS
      SIM800L (GSM)
         module
      ESP8266 (2.4 GHz Wi-Fi)
         chip module board power
            hello.ESP-01 board components traces holes interior
               Web server video
            hello.ESP-WROOM-02D board components traces holes interior
               Access point video
      ESP32 (2.4 GHz Wi-Fi, Bluetooth)
         chip module board pins power
            hello.ESP32-WROOM board components traces holes interior
               Web client video
               Web server video
               UDP video
               Bluetooth serial video
               802.11 LR
            hello.ESP32-CAM board components traces holes interior
               camera video
   software radio
   OpenWrt

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