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

Raspberry Pi and other Small Computers

      Presented at TBTC 9/26/2026 by Chris Clement

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.

desktop and command line used (similar to DOS)

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 richie 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

    
 
                                                          ^
serial parallel game ports   0,0,1,0,1,1,0,1 _>        00101101   
big endian little endian

pinout
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

     

Difference between GPIO_GEN and GPIO   _ arcane naming conventions


     
SDR
web SDR
ADC


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. also PWM (pulse width modulation) // mM3 port for ESP32 – CJC – 8/11/2026 // 16 groups × 41‑byte rows #include #include #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 wordwand magic lantern raspberry-pi-projects-you-can-do-in-1-hour 10-of-the-best-arduino-projects