## Lab 1: BLE Microcontroller programming

### Part 0: Setup

To prepare for this lab, I am working with the following setup

![1.jpg](./1.jpg)

* Blue - Bluetooth capable Android phone runing the Ada Bluefruit Connect App (mirrored via scrcpy)
* Red - My assembled featherboard connected to my machine via USB
* Yellow - The python code downloaded from the provided link for this lab, in my downloads folder
* Purple - The filesystem of my RP2040 board, with Circuit Pi files present from the last lab.

### Part 1: Copy code

I now copy the new supplied code to the CircuitPy device

![2.jpg](./2.jpg)

### Part 2: Solder

After reviewing the [technical documentation](https://learn.adafruit.com/adafruit-airlift-featherwing-esp32-wifi-co-processor-featherwing/pinouts) for the pinouts of the EPS32 featherboard, it has become apparent that I will need to solder some pads for this device to work with bluetooth. Specifically, I have soldered the ESPGPIO0, ESPRX and ESPTX pads.

![3.jpg](./3.jpg)

### Part 3: Profit

The device now appears available as `CIRCUITPYf1ea` on the Bluefruit Connect App
![4.png](./4.png)

I can connect to the device with a strong signal
![5.png](./5.png)

Finally, I can control the LED colors as required. Below I demonstrate setting simple Red, Blue and Green colors

![6.png](./6.png)
![7.png](./7.png)
![8.png](./8.png)

### Reflections

The biggest challenge of this lab was figuring out what it took to enable bluetooth on the ESP32 board. My initial thought was that I would need to solder the various connections betwen the RP2040 board and the ESP32. At first, I did not realize that the featherboard already bridges those connections. With some advice, I took a closer look at the documentation to notice all that was needed was to solder the pads mentioned. Overall, it was fun to bring some new practical functionality to my hardware kit