---
# System prepended metadata

title: Brainstorming
tags: [Research]

---

# Brainstorming

###### tags: `Research`

Ways to generate ideas: Pull up sparkfun/adafruit/digikey and browse through sensors/actuaors.

## Hardware Acceleration

Requirements say that projects must do something interesting with hardware acceleration to get a good mark.  Can't implement things that can be done in software using Verilog, or things that have IP cores available like SPI/I2C.

Good places to look for interesting uses of FPGAs:
- [MIT 6.111](http://web.mit.edu/6.111/volume2/www/f2019/index.html)
- [Cornell 5760](https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/)

Applications:
- Image/video processing
- Machine learning
- Signal processing
- Cryptography
  - Hashing (cryptocurrencies)
    
## Digital Signal Processing
## Image Processing

- Need camera.  Is it better to interface with the FPGA over GPIO or to use a USB camera from the HPS side?
    - Looks like it's better to use an off the shelf NTSC camera, since the DE1 has a decoder for that and IP to interface with it already.
- [NTSC Camera Module](https://www.sparkfun.com/products/15906)

### "Smart" Doorbell

A camera-enabled doorbell.  Somehow recognizes what/who's at the door and can give the mobile app a notification.  Can unlock door/welcome them in 

Could recognize that you're home by detecting that your phone is within bluetooth range.

External hardware: camera, door bolt.  Can be simulated for testing by loading images and using an LED on the DE1 board to represent the door bolt.

FPGA acceleration: Implement Viola-Jones in hardware.

Software on the ARM core: use the acceleration to detect when a face enters the frame, send a push notification to the phone app.

Phone app: Receive notification that someone is at the door, view a snapshot of what's there right now.

Stretch goal: Recognize faces and open the door automatically for certain people.

- [Electronic Doorbolt](https://www.sparkfun.com/products/15324)

## Cryptography
### WiFi Key Cracker

WEP is pretty well-studied and can be broken by collecting enough traffic.  We would have to make sure the RFS board's wireless adapter supports snooping on network, but otherwise we require no other hardware.  I'm not sure exactly how necessary hardware acceleration is here.

Turns out it does permit capturing packets without connecting to a network: https://github.com/spacehuhn/PacketMonitor

WPA is considered a lot more secure, but is still vulnerable to dictionary attacks, which can be [sped up a lot with an FPGA](https://lib.dr.iastate.edu/cgi/viewcontent.cgi?article=4665&context=etd).

In this case, the WiFi component would be a little nontraditional, and the device would be controlled entirely using the mobile app talking over the bluetooth adapter.

Might be tough to explain that this has a market.  Intelligence agencies maybe? lol

Brendon： This is the most insteresting idea i have ever seen... well it definitely has its market, but i do not know if this will be the right thing to do.....

## Hardware 2FA / Security key

* Implement [FIDO](https://fidoalliance.org/how-fido-works/) protocol.
* Store keys encypted on remote server account. Decrypt via USB key with password.
* Presence detection via bluetooth or password.
