chrisclement.com/tbtc    THIS PAGE

https://tampa-bay.org/calendar/

Raspberry Pi and other Small Computers

      Presented at TBTC   9/26/2026   by Chris Clement

  • 10/24/2026 presentation

    history

    The Raspberry Pi is a series of low cost, compact single board computers developed 
    in the UK by the Raspberry Pi Foundation in collaboration with Broadcom. Conceived 
    in 2008 by Eben Upton to address declining programming skills among students, it was 
    inspired by the BBC Micro of the 1980s and aimed to rekindle interest in computing 
    education at an affordable price.
    
    Early Development (2006_2012) Initial prototypes appeared between 2006_2011, 
    evolving from large test boards to USB stick_sized designs. By August 2011, 
    50 alpha boards were functional, running Debian and 1080p video. The first 
    commercial model, Raspberry Pi Model B, launched on 29 February 2012 at $35, 
    selling out instantly and causing distributor websites to crash. A cheaper 
    Model A followed in 2013.
    
    Growth and Diversification (2014_2019) In 2014, the Compute Module targeted 
    industrial use, while the Model B+ refined the flagship design. The $5 Raspberry 
    Pi Zero debuted in 2015, and the Pi 3 series (2016_2018) added 64_bit CPUs, 
    Wi_Fi, and Bluetooth. The Raspberry Pi 4 (2019) brought USB 3.0, dual 4K display 
    support, and up to 8 GB RAM.
    
     command line used (similar to DOS) then later desktop GUI ⭐
    
    os Debian Linux basic commands: ls mkdir cd cp mv rm nano sudo chmod 777 (anything goes)   
    grep da* myfile.txt  Global Regular Expression Print
    
    Version	Codename	Debian Release Date	RPI OS Release Date
    9	Stretch		June 2017		August 2017
    10	Buster		July 2019		July 2019
    11	Bullseye	August 2021		November 2021
    12	Bookworm	June 2023		October 2023
    13	Trixie		August 2025		October 2025
    14	Forky		???			???
    
    adding packages apt get update    use google to get examples
    
    kernigan and ritchie at Bell Labs 70s developed c language
    linux linus torvalds 90s
    unix
    Unix was developed in the 1970s at AT&T Bell Labs by Ken Thompson and Dennis Ritchie 
    as a proprietary OS for large systems and servers. Linux, on the other hand, was 
    created in 1991 by Linus Torvalds as a free, open_source Unix_like kernel, later 
    combined with GNU (richard stallman) tools to form complete Linux distributions.
    
    general c compiler (gcc)
    
    gcc hello_pgm    
       
    #include 
    int main() {
       // printf() displays the string inside quotation
       printf("Hello, World!");
       return 0;
    }
                                                     
    binary numbers base 2   10 types of people joke
    
        
    
    https://www.ascii-code.com/ 8 bit
    
    https://symbl.cc/en/unicode-table/ 16 bit
     
                                                                                              ^
    serial parallel game ports   subway arriving  0,0,1,0,1,1,0,1 _>    subway platform   00101101   
    big endian little endian
    
    pinouts
    
    As data is received (RX) on the input and data is sent (transmitted, TX) on the output, 
    from the master's point of view, MISO is its RX pin and MOSI is its TX pin, so:
    MISO = SPI_RXD
    MOSI = SPI_TXD
    
    (For a slave, this would be reversed)
    
    MOSI	Master Out Slave In
    MISO	Master In Slave Out
    SCLK	Serial Clock (marching rhythm)
    SS	Slave Select (one or more)
    
    SPI Serial Peripheral Interface     Controller/Peripheral    least we could do
    
    GPIO General Purpose Input Output _ like a light switch most of the time
    robotics IoT smart house
    
    ADC Analog to Digital Conversion .. Binary search .. Higher or Lower .. Phonebook example
    
    PWM Pulse Width Modulation .. on longer = brighter .. off longer = dimmer
    
         
    
         
    
    Difference between GPIO_GEN and GPIO   arcane naming conventions
    
    
         
    SPI Serial Peripheral Interface
    
    SDR
    web SDR
    ADC
    BBBvsRPi Copilot
    
    
    

    Microprocessors

    Microprocessors have no OS. They run a single task, however complex like driving a car.

    Evolution of Arduino The Arduino project began in 2005 at the Interactive Design Institute Ivrea (IDII) in Italy, aiming to create an affordable, open-source microcontroller platform for designers, students, and hobbyists. The idea was sparked by Hernando Barragán's thesis project Wiring, which combined a user-friendly IDE with a ready-to-use circuit board. This inspired Massimo Banzi and a small team - David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis - to develop a cheaper, simpler, and more accessible platform. The name Arduino came from Bar di Re Arduino in Ivrea, itself named after King Arduin of Italy. Banzi, a regular at the bar, chose it to honor the place where the idea took shape. From the start, Arduino embraced an open-source hardware model, using Creative Commons licensing to encourage sharing and innovation. The first boards were priced around $30, designed to be plug-and-play, and featured distinctive blue PCBs with a map of Italy. By 2009, the team was refining usability, leading to the Arduino UNO - launched in 2010 at Maker Faire New York. The UNO marked Arduino's transition from a niche educational tool to a global maker movement icon. Key innovations included: Automatic reset via a capacitor link, removing the need for manual resets before uploads. Automatic power source selection between USB and external supply. Robust USB connectors for durability. A non-rectangular board shape for easier orientation in classrooms. A refined brand identity with a new logo and packaging. The UNO's design choices - from usability tweaks to aesthetic branding - helped it surpass 10 million units sold, empowering countless beginners to enter electronics. Today, Arduino boards power projects from LED cubes to DNA analysis kits, and remain central to the open hardware movement. Example: Basic Arduino Blink Sketch // Blink an LED on pin 13 void setup() { pinMode(13, OUTPUT); // Set pin 13 as output } void loop() { digitalWrite(13, HIGH); // LED on delay(1000); // Wait 1 second digitalWrite(13, LOW); // LED off delay(1000); // Wait 1 second } This simple program reflects Arduino's philosophy - accessible from day one, enabling anyone to bring ideas to life. Snippet of organ pedals for MIDI keyboard Arduino sketch ... pinMode(pedA1, INPUT);digitalWrite(pedA1, HIGH);//20k pullup pinMode(pedAs1, INPUT);digitalWrite(pedAs1, HIGH);//20k pullup Bb pinMode(pedB1, INPUT);digitalWrite(pedB1, HIGH);//20k pullup pinMode(pedC2, INPUT);digitalWrite(pedC2, HIGH);//20k pullup } void loop() { //send patch for organ Serial.write(0xC0); Serial.write(patch); //Serial.write(velocity); delay(10);//debounce contact if(digitalRead(pedC1) == LOW && swC1 == 0){ noteOn(cmd, 24, velocity);//note on digitalWrite(led, LOW);swC1=1;//stop repeat } if(digitalRead(pedC1) == HIGH && swC1 == 1){ noteOn(cmd, 24, 0x00);//note off digitalWrite(led, HIGH);swC1=0;//stop repeat } ... also PWM (pulse width modulation) wordwand magic lantern with arduino UNO MIDI piano playing Blue Eyes by Elton John with F2 glitch // mM3 port for ESP32 - CJC - 8/11/2026 using Copilot and mimicking 16-bit 80s processor for compatibility // 16 groups * 41-byte rows #include "Arduino.h" #include "WiFi.h" #define MUX0 12 #define MUX1 13 #define MUX2 14 #define MUX3 15 #define AD1_PIN 32 #define AD2_PIN 33 // 128 entries uint32_t NV[128]; uint32_t II[128]; char TF[128][8]; // enough for 6-byte text + comma char ROW1[16][48]; // 41 bytes + margin int i = 0; int j = 0; const uint32_t CC = 65535; const uint32_t SN = 11000; const char comma1[] = ","; // ---------------------------- // Format helper // ---------------------------- void fmt(char *out, uint32_t val, int width) { char tmp[16]; sprintf(tmp, "%0*u", width, val); sprintf(out, "%s%s", tmp, comma1); } // ---------------------------- // Set 4-bit MUX output // ---------------------------- void setMux(int v) { digitalWrite(MUX0, (v & 1) ? HIGH : LOW); digitalWrite(MUX1, (v & 2) ? HIGH : LOW); digitalWrite(MUX2, (v & 4) ? HIGH : LOW); digitalWrite(MUX3, (v & 8) ? HIGH : LOW); } void setup() { Serial.begin(115200); pinMode(MUX0, OUTPUT); pinMode(MUX1, OUTPUT); pinMode(MUX2, OUTPUT); pinMode(MUX3, OUTPUT); analogReadResolution(8); // 0-255, but we use 0-127 range analogSetAttenuation(ADC_11db); // NV initialized to zero automatically // II initialized to zero automatically // WiFi connect here if needed } void loop() { if (i > 15) i = 0; setMux(i); j = 8 * i; delay(950); // Read ADCs (limit to 0-127) uint32_t AD1 = analogRead(AD1_PIN) & 0x7F; uint32_t AD2 = analogRead(AD2_PIN) & 0x7F; II[j+0] = i; // ---------------- TP block ---------------- II[j+1] = AD1; NV[j+2] += AD1; if (NV[j+2] > CC) { NV[j+2] = AD1; NV[j+3]++; } II[j+2] = NV[j+2]; II[j+3] = NV[j+3]; // ---------------- AP block ---------------- II[j+4] = AD2; NV[j+4] += AD2; if (NV[j+5] > CC) { NV[j+5] = AD2; NV[j+6]++; } II[j+5] = NV[j+5]; II[j+6] = NV[j+6]; II[j+7] = SN; // ---------------- Build text fields ---------------- fmt(TF[j+0], II[j+0], 2); fmt(TF[j+1], II[j+1], 3); fmt(TF[j+2], II[j+2], 5); fmt(TF[j+3], II[j+3], 5); fmt(TF[j+4], II[j+4], 3); fmt(TF[j+5], II[j+5], 5); fmt(TF[j+6], II[j+6], 5); char tmpSN[16]; sprintf(tmpSN, "%u%s", SN, comma1); strcpy(TF[j+7], tmpSN); // ---------------- Build ROW1 ---------------- sprintf(ROW1[i], "%s%s%s%s%s%s%s%s", TF[j+0], TF[j+1], TF[j+2], TF[j+3], TF[j+4], TF[j+5], TF[j+6], TF[j+7]); // ---------------- Display ---------------- Serial.println(ROW1[i]); Serial.print("i="); Serial.print(i); Serial.print(" j="); Serial.println(j); i++; } Microcontroller: Most Basic Stamp 2 (BS2) modules use a PIC or Parallax SX processor Basic Stamp raspberry-pi-projects-you-can-do-in-1-hour 10-of-the-best-arduino-projects dr duino adafruit jameco sparkfun The best wires for breadboards are 22 to 28 AWG solid core or Dupont

    Field Programmable Gate Array (FPGA) - Not quite a microprocessor. No running program. Just logic combinations with or without a clock. Ladder logic. Start-up sequencer, etc. Data flipflop DFF FPGA IBM FPGA Sparkfun



    10/24/2026 presentation 2