V. Hunter Adams

Lecturer of Electrical Engineering, Cornell University (vha3@cornell.edu), 208 Phillips Hall


The materials below summarize my philosophies toward engineering in general, embedded systems engineering in particular, and teaching.

On engineering . . .

On teaching . . .

Research interests

Natural Computing

Humanity has a long history of utilizing natural processes for the production of power, but it has underutilized these processes for computation. Can we unlock the latent computational potential that exists in nature? If we can, we might improve the relationship between nature and machines, and radically increase total global compute.

Chipsats (very tiny spacecraft)

A chipsat is a spacecraft which is small enough to fit in your wallet. Each is a printed circuit board equipped with a collection of sensors, a processor for gathering measurements from those sensors, and a radio for communicating those measurements to one another and to data-aggregating receiver stations. Because they are so tiny and cheap, chipsats can be launched and deployed in massive number. This makes them fabulous tools for conducting certain kinds of science in space. They're particularly well suited for distributed sensing experiments which involve deploying a bunch over a broad area of space or on the surface of a planet/comet/etc., and gathering measurements from that whole area.

Engineering projects

This list includes both personal projects and projects generated for assignment to students. I have provided all source code for personal projects. The code for projects which may be assigned to students is not posted publicly, but I'd be happy to send it to you if you email me.

RP2040 (Raspberry Pi Pico) projects

  1. GATT server on Pi Pico W
  2. GATT client on Pi Pico W
  3. Custom serial bootloader for the RP2040
  4. Worm-like serial bootloader
  5. CAN driver implemented with PIO on RP2040
  6. Non-blocking UDP transmitter using PIO on RP2040
  7. AM radio voice transmission with PWM on RP2040
  8. Birdsong synthesizer implemented on RP2040 (written up as lab assignment)
  9. Stepper motor driver written in PIO assembly for RP2040
    - Lorenz System on an Etch-a-Sketch
    - Direct digital synthesis of circle on an Etch-a-Sketch
    - Delta Robot
  10. VGA driver written in PIO assembly for RP2040
    - Mandelbrot Set
    - Barnsley Fern
    - Game of Life
    - Graphics primitives
  11. Decision making in animal groups on the move (written up as lab assignment)
  12. PID control of an inverted pendulum with a reaction wheel (written up as a lab assignment)
  13. Cricket chirp synthesis and synchronization with RP2040 (written up as lab assignment)
  14. Animating Boids and a predator with RP2040 (written up as a lab assignment)
  15. Realtime Audio FFT to VGA Display with RP2040
  16. Resistive touchscreen to VGA display with RP2040
  17. PID control of 1D helicopter with RP2040 (written up as lab assignment)

PIC32 microcontroller projects

  1. Enigma machine emulated on PIC32
  2. Boids algorithm on PIC32 (written up as a lab assignment)
  3. Realtime audio spectrogram on PIC32 (written up as a lab assignment)
  4. Zoom-interactive robot on PIC32 (written up as a lab assignment)
  5. Particle systems on PIC32

DE1-SoC FPGA projects

  1. Lattice-Boltzmann accelerator and visualizer
  2. Multiprocessor drum synthesizer on the DE1-SoC
  3. Verilog VGA driver for the DE1-SoC
  4. GFSK demodulation in Verilog on the DE1-SoC
  5. Mandelbrot visualizer on the DE1-SoC
  6. Lorenz system solver/visualizer on DE1-SoC (written up as a lab assignment)

CC1310 microcontroller projects

  1. Monarch chip-satellite

Raspberry Pi projects

  1. GFSK demodulator on Raspberry Pi for use with CC1310 microcontroller

Machine learning projects

  1. Data prognostics using symbolic regression

Mathematical projects

  1. Picasso, by way of Fourier
  2. Attempting to understand something beautiful
  3. Communicating with interstellar ships
  4. Bayesian approach to analyzing differences in proportions

Outside collaborations

The projects listed below were conducted in collaboration with an outside organization.

  1. SpinLaunch chipsat experiment on Flight Test 10
  2. Johnson Museum of Art
  3. Cornell Archeology
  4. Cornell Plant Sciences and Veterinary School

Expository webpages

For my own future reference. Intended audience is myself.

  1. Direct digital synthesis (webpage takes a few moments to open)
  2. The Cooley-Tukey FFT
  3. PID controllers (phenomenological introduction)
  4. PID controllers (analytical introduction)
  5. RP2040 boot sequence
  6. Wireless UART via infrared
  7. Fixed point arithmetic
  8. Synthesizing birdsong via Direct Digital Synthesis
  9. Boids, with distributed consensus
  10. Boids, with predator
  11. Complementary filters
  12. Synthesizing snowy tree crickets via Direct Digital Synthesis
  13. Synchronization of integrate-and-fire oscillators
  14. SPI communication
  15. I2C communication
  16. UART communication
  17. Interfacing keypad with RP2040
  18. Digital lowpass filters
  19. Electrically isolating DC motors
  20. Verilog basics
  21. Generate blocks in Verilog
  22. Discretizing the 2D wave equation
  23. Mandelbrot implementation background
  24. Introduction to estimation (particle filters, sigma-point filters, EKF's, UKF's, KF's)
  25. Worked estimation examples
  26. Gyro-based multiplicative UKF for quaternion estimation
  27. Coding gain from matched filtering
  28. Mechanical construction of reaction wheel inverted pendulum
  29. Tuning reaction wheel inverted pendulum PID controller
  30. Rigid body dynamics and determination
  31. Link budget analysis
  32. BTstack and RP2040: HCI layer

Prepared as supplemental course material for MAE 5160 (Spacecraft technology and systems architecture). Intended audience is senior/masters level mechanical engineers.

  1. Cassini spacecraft overview, and thoughts on exploration
  2. NASA mission design process
  3. Requirements, trades, & risks
  4. Orbital mechanics and orbit design
  5. Spacecraft propulsion/GNC
  6. Spacecraft avionics
  7. Space environment

Prepared as supplemental course material for Astro 1101 (From new worlds to black holes). Intended audience is non-technical students.

  1. Basic math of astronomy, Kepler's Laws
  2. Seasons, sidereal/solar days, Moon phases/geometry, tides, Kepler's 3rd Law
  3. Gravitational/Electromagnetic forces, Wien's law, Stephan-Boltzmann, absorption/emission spectra, telescopes, Doppler
  4. Parallax and parsecs; luminosity, Stephan-Boltzmann, and brightness; exoplanet transits; detecting exoplanets with Doppler
  5. Half lives, dating curves, and mass spectroscopy
  6. Equilibrium temperature of the Earth
  7. Proton-proton chain, life cycle of a star
  8. Venus atmosphere and geology
  9. Martian surface processes, gas escape, RADAR imaging
  10. Rings and the Roche Limit, RADAR depth sounding, the gas giants
  11. Comets and Trans-Neptunian objects

I am experimenting with the new Raspberry Pi Pico microcontroller. Keeping track of my notes in the pages below. Intended audience is myself.

  1. Setting up C/C++ build environment for Raspberry Pi Pico on Windows
  2. Setting up C/C++ build environment for Raspberry Pi Pico on Mac
  3. Creating/building a new C/C++ Raspberry Pi Pico project on Windows
  4. Building Raspberry Pi Pico demo code in the lab
  5. Understanding Raspberry Pi Pico C/C++ SDK architecture
  6. Using Raspberry Pi Pico C/C++ SDK (Dissecting a Blink example)
  7. Direct Digital Synthesis (DDS) via Timer Interrupt on RP2040
  8. Dual-core Direct Digital Synthesis (DDS) via Timer Interrupts on RP2040
  9. Chained-DMA signal generator thru SPI DAC on RP2040

Courses, lectures, and talks

Instructed courses

  1. ECE 4760 (Digital Systems Design Using Microntrollers): This is a microcontroller laboratory and design course that uses the Raspberry Pi Pico (RP2040). Started in Spring, 2021.

  2. ECE 5760 (Advanced Microcontroller Design and System on Chip): This is an FPGA laboratory design course using the DE1-SoC. Started in Fall, 2020.

  3. MAE 5160 (Spacecraft Technology and Systems Architecture): A survey in contemporary space technology from satellite subsystem design through launch and mission operations, focusing on the classical subsystems of robotic and human-rated spacecraft, rockets, planetary rovers, and habitats, and with an emphasis on issue of spacecraft-system architecture and design. Taught for one semester in Spring, 2020.

Project and writing courses

  1. ECE 6930 (Masters of Engineering Independent Design Projects): The centerpiece of the M.Eng. program is the professional project, in which students apply theory to a real problem, with the guidance from faculty, and often in collaboration with other students. The page below describes projects of my graduated advisees.

  2. ECE 4920 (Technical Writing Seminar): This course fulfills the College of Engineering Technical Communication requirement, and may also be used as an advisor-approved elective. In this class, you will rewrite your final project for ECE 4760 or ECE 5760 for publication in a magazine or journal of your choice.

TA'd courses

  1. Astro 1101 (From new worlds to black holes): Instructors for this course were Steve Squyres and Alex Hayes. Linked below are the supplemental webpages that I prepared for my recitation students each week.

Other talks/posters

  1. Chipsats. An extended discussion of the theory and applications of chip-satellites. (Slides)
  2. The Mandelbrot Set. From an ECE 5760 lecture (above). Linked separately because it is a favorite topic.
  3. Monarch venture pitch
  4. Customer discovery guest lecture
  5. Final presentation for iCorps
  6. 2018 femtosat workshop talk
  7. Viticulture poster
  8. Power management in IoT devices
  9. On building things
  10. Natural computing

Academic papers

Professional documents


External links

$\hspace{2mm}$ $\hspace{2mm}$ $\hspace{2mm}$
Follow @vha3