Demo Assembly
This Vision Demo lets you build an all-in-one image capture and display assembly run completely on the RP2350. We created this project to showcase the raw processing power and data transmission speeds of the RP2350 in a local environment. This project connects the waveshare OV5640 Camera Board along with a 2" LCD (coming soon to SparkFun!) to the RP2350 over SPI and the RP2350's HSTX-capable pins. The example takes a live video feed from the OV5460 and displays it with nearly no image lag at about 40fps. While this demo is only a local image, with some code modifications you could theoretically take the images and stream them over WiFi or Bluetooth to create a true IoT camera.
Hardware Assembly
Soldering
Before wiring anything up, make sure to solder headers (or wires if you prefer) to both the Thing Plus and the LCD board.
Display Wiring
The display used in this example connects over SPI along with a few other connections for power (VCC & GND), reset . The table below outlines the connections between the display and Thing Plus when read from Left to Right on the display.
Display Pin | Thing Plus Pin | Notes |
---|---|---|
GND | GND | Any ground pin |
VCC | 3V3 | Power with 3.3V only |
SCL* | 19 | Clock signal |
SDA* | 18 | Data In. Called "Din" in example code. |
RES | 3V3 | Reset pin. Pulled HIGH to 3.3V |
DC* | 17 | SPI display data/command select pin. |
CS* | 16 | SPI Chip select. |
BLK | NC | Backlight pin. |
The photos below show the wiring before and after seating the LCD on the breadboard:
If you're following this wiring to the letter, take note of the orange jumper wire netting the display's Reset pin to VCC/3.3V. Also note to align the Backlight pin with pin 30 on the breadboard and everything else will match up.
Camera Wiring
The camera wiring gets a bit more compliated than the display is it requires power and data signals as well as image processing signals that must be connected to sequential pins. Due to the design of the Thing Plus, this wiring may seem a bit confusing when looking at the board but if you refer to the schematic you can match up GPIO pins 0 through 7 to their respective labels on the board. The table below outlines these pin connections along with the rest required to wire the camera breakout to the Thing Plus:
Camera Pin | Thing Plus Pin Label | Notes |
---|---|---|
3.3V | 3V3 | 3.3V only |
GND | GND | Any Ground pin |
SIOC | 21 | Clock signal. Paired with data to any I2C pin pair |
SIOD | 20 | Data signal. Paired with data to any I2C pin pair |
VSYNC | A1/27 | Can be any GPIO pin |
HREF | A2/28 | Can be any GPIO pin |
PCLK | A0/26 | Can be any GPIO pin |
XCLK | 11 | Can be any GPIO pin |
D9 | SCL/7 | Must be sequential GPIO pins |
D8 | SDA/6 | Must be sequential GPIO pins |
D7 | 5 | Must be sequential GPIO pins |
D6 | POCI/4 | Must be sequential GPIO pins |
D5 | PICO/3 | Must be sequential GPIO pins |
D4 | SCK/4 | Must be sequential GPIO pins |
D3 | RX/3 | Must be sequential GPIO pins |
D2 | TX/2 | Must be sequential GPIO pins |
RST | - | Not connected |
PWDN | - | Not connected |
We made an ad-hoc wiring "harness" for the camera board by soldering wires to a couple of trimmed female headers so please excuse the wiring mess in the photos below show. The photos below show the wiring for the camera with and without the camera board connected to our harness. Users can try and recreate this or if you're making a more permanent installation you can solder wires directly between all three boards. Alternatively, you could use some jumper wires (perhaps either male/female or female/female).
Threshold Pin
The code also includes a thresholding pin set to GPIO22 on the Thing Plus. Connect this pin to ground using a jumper wire. The threshold pin is configured as an input with pull-up so it starts as disabled (22 connected to GND) and can be enabled by disconnecting the wire from ground. The images above and below show this connection using an Orange jumper wire.
Completed Assembly
Make sure everything is wired correctly and your completed assembly might look something like the photo below: