Skip to the content
4 layers36 × 36 mmStm32-camera, the printed circuit board in 3D

Custom CMOS camera board with STM32.

Size
36 × 36 mm
Copper layers
4
Thickness
1.6 mm
Parts
62
Nets
60
Pads
296
Tracks, vias
779, 122
Pours
9
Routed
Yes
KiCad
KiCad 5 (file 20170123)
Created
11 May 2017
Updated
25 Aug 2018

Overview

Stm32-camera is an open-source printed circuit board by Scottapotamas, from the Scottapotamas/stm32-camera repository on GitHub. It is a 4-layer board of 36 × 36 mm with 62 parts on 60 nets, routed with 779 tracks and 122 vias.

It is built around the STM32F429VET6 and TEMT7000X01. Its parts include 29 capacitors, 14 resistors, 5 ICs, 3 connectors and 2 diodes. It belongs with the STM32 boards of this library.

Main components

2

README

Electronics/README.md

Electronics Notes

General implementation notes during assignment and schematic capture. These are notes which don't make it onto the schematic due to length or relevance. Hopefully they might be useful during software dev.

Microcontroller Pin Assignment

  • I2C2 peripheral is used for SSCB interface (configuration registers).
  • MCO (PA8) is used for the camera XCLK clock. Should clock at 24Mhz typical, 6Mhz minimum. This can be the HSI, HSE, a timer, etc.
  • DCMI interface is used for main camera connection (includes HSYNC/VSYNC/PIXCK pins etc)
  • PCLK is the camera strobe for 8-bit data on rising edge.
  • PWDN is the camera power down signal (active high). Connected to PE3.
  • RES is camera reset signal (active low). Connected to PE2
  • SDIO interface is used in 4-bit mode for SD card. In theory, we should be able to write images to the SD card at highish speed, then allow the host to pull them off later if needed.
  • SWD with SWO is enabled explicitly. Plan on using CORTEX 10-pin header.
  • HSE clock included. Probably use a 16MHz CERALOCK instead of usual 8MHz?
  • DAC2 is proposed for use with a flash driver. Ideally don't use PWM as switching noise is potentially visible, but that same pin can also be an analog input, PWM output or general GPIO.

Sensor Specifics

Power Down Options

Hardware ControlSoftware Control
PWDN is pulled high to stop the clocki2c commands available but doesn't stop everything (clocks)
Power draw is apparently 15uA.Registers are retained but draws 1mA.

Later on in the datasheet, this is conflicted by:

For OV2640, there have big power down current, so power down mode is not supported by OV2640 for power saving.

The lower voltage LDO's have their EN line connected to the micro for more granular/forceful control. I'll likely just use hardware control as long as it configures fast enough.

Reset

A full hardware reset is performed when RESETB goes low.

There is also reset via the i2c interface.

Other lines

  • The datasheet states that strobe mode allows it to operate with an external flash and(/or?) LED.
  • The pinmap guide states this defaults as an input, but is the flash control output.
  • A STM32 GPIO is connected instead of flash driver (at least to know if the camera wants a flash, probably redundant info by the time we see it)

SD Card

IR Cut Filter Switcher

As far as I can tell, its a bistable solenoid which moves the IR cut filter infront or away from the sensor.

Theory

The aliexpress page I got my samples from has no real information other than images (but hey, $2.50AUD).

This ebay page seems to have more info (copied below)

  • Working Voltage: 5V-18V
  • Rated Current: 0.2A
  • Screw thread interface: M12 Mount (MTV / C)
  • Switcher Type: Pendulum Switcher
  • Filter: Phosphate Filter
  • Glass Size: 11*9.3mm
  • Hole Spacing: 20mm
  • Total length: 30mm. Inner Diameter: 15mm

I found another page with similar looking units which states the following:

  • Start voltage: 1.8V±10%
  • Applied voltage: 3.0V±10%
  • Driver pulse width: 50ms
  • Trigger current: 100mA or less
  • Working current: 200mA or less

If the filter needs to be held in place during aquisition then some interesting software might need to manage the power consumption cleverly. Pendulum switching means a short pulse high or low to set and forget. Drive with inverted polarity to change back. This seems to vary between modules. Some of the other samples I received later are spring loaded.

It appears the units I recieved use a 1.25mm pitch molex(?) 2-pin connector. I'm pretty sure its molex because locking tab instead of slot. Seems like a Picoblade connector.

Testing

Tests with bench supply show switching latches setting after power is removed.

With the supply set to 3.000V, the minimum current which triggers a full switch is 60mA. At 40mA and above, it appears to half-hold and reset on removal of power. Below 40mA nothing happens.

Switching would not occur at 2.0V. At 2.5V 50mA was able to activate the shutter, but 60-70mA was more reliable.

At 3.250V (rough design target for regulator and hence micro VDD) 45mA was enough to trigger a switch but sounded 'slower'. It seems the solenoid will draw 54mA, or 0.175W.

As some of these cameras will be in potentially extreme outdoor environments, a switching unit was cooled to -10°C and tested. At the same 3.250V, it requires 60mA to switch (0.195W).

Decision

It is unclear how the power requirements might change with manufacturing tolerances, temp cycling etc. Effects such as stiction etc haven't been tested for.

A 100mA spec'ed H-Bridge driver or equiv is probably the route to go.

As this eats a lot of room on the board using even small H-bridge drivers, and cost is a luxury, I'm strongly considering using multiple parallel GPIO pins (shared port for bitwise simultaneous control) to allow for push pull drive. As we only need short impulses this seems reasonable.

Unclear if the body diodes in the micro will be happy with this arrangement.

Parts

62
QtyValueFootprintReferences
14100NF_X7R_1005MApplidyne_Capacitor:CAPC1005X60NC2, C5, C6, C7, C8, C9, C10, C11, C13, C21, C22, C25, C26, C27
72.2UF_X7R_1608MApplidyne_Capacitor:CAPC1608X90LC14, C15, C16, C17, C18, C19, C20
61UF_X5R_1005MApplidyne_Capacitor:CAPC1005X60NC1, C3, C4, C12, C24, C28
4MNT_M3_PLATEDApplidyne_Mount:MTGP650H330MNT1, MNT2, MNT3, MNT4
3AP2210K-ADJApplidyne_SOT:SOT95P280X145-5L30NU2, U3, U4
21K_1005MApplidyne_Resistor:RESC1005X40NR1, R2
24K7_1005MApplidyne_Resistor:RESC1005X40NR11, R12
1100K_1005MApplidyne_Resistor:RESC1005X40NR7
1100NF_X7R_1608MApplidyne_Capacitor:CAPC1608X90LC29
1100R_1608MApplidyne_Resistor:RESC1608X50LR14
110K_1005MApplidyne_Resistor:RESC1005X40NR10
13K6_1005MApplidyne_Resistor:RESC1005X40NR8
14.7UF_X5R_1005MApplidyne_Capacitor:CAPC1005X60NC23
147K_1005MApplidyne_Resistor:RESC1005X40NR5
147K_QUAD_ARRAY_1608MApplidyne_Resistor:R_Array_Concave_4x1608MR9
1510K_1005MApplidyne_Resistor:RESC1005X40NR13
151K_1005MApplidyne_Resistor:RESC1005X40NR3
156K2_1005MApplidyne_Resistor:RESC1005X40NR6
182K_1005MApplidyne_Resistor:RESC1005X40NR4
1B3U-1000P_SPST-NO_SMDApplidyne_Switch:B3U-1000PSW1
1CONN_01X08Applidyne_Header:Socket_Strip_Straight_1x08P1
1CSTCE16M0V53AApplidyne_Crystal:OSCSC-CSCTE-CERALOCKX1
1LED_GREEN_1608MApplidyne_LED:LEDC1608X80L40LD1
1LED_RED_1608MApplidyne_LED:LEDC1608X80L40LD2
1M12_LENS_MOUNT_IR_SWITCHNGApplidyne_Special:M12x0.5_LENS_MOUNT_IR_SWITCHNGMP1
1MOLEX_47309-2651Applidyne_Connector_Molex:MOLEX_47309-2651CON1
1MOLEX_PICO_PTH_VERT_2_WAYApplidyne_Connector_Molex:MOLEX_PICOBLADE_53047-0210P2
1OV02640-VL9AApplidyne_Special:OV2640_CSP_38U5
1STM32F429VET6Applidyne_QFP:QFP50P1600X1600X160-100L25LU1
1SWDApplidyne_Connector:HARWIN_M50-3600542X2
1TEMT7000X01Applidyne_Special:TEMT7000XQ1

Similar boards

  • 4 layers371.6 × 209 mmAdatv2, the printed circuit board in 3D

    Adatv2

    swiszczoo/adat_usb_interface

    16-in, 16-out 4x ADAT <=> USB interface supporting USB Audio Class 2.0

    253 parts2
  • 2 layers120 × 120 mmMagLev, the printed circuit board in 3D

    MagLev

    KDueck/MagLev

    A design for a reverse engineered magnetic levitation PCB.

    211 parts
  • 2 layers16 × 63 mmFirefly5, the printed circuit board in 3D

    Firefly5

    Kreyl/Fireflies

    Fireflies of different generations

    53 parts
  • 4 layers53.2 × 138.8 mmSndLocket, the printed circuit board in 3D

    SndLocket

    Kreyl/LocketSound

    226 parts
  • 4 layers25.4 × 25.4 mmTwonkie, the printed circuit board in 3D

    Twonkie

    dojoe/Twonkie

    A USB-PD sniffer/injector/sink based on Google's Twinkie, re-designed to be manufactured by mere mortals.

    62 parts415
  • 4 layers48 × 80 mmBoard latest, the printed circuit board in 3D

    Board latest

    dennisss/dacha

    Monorepo for awesome tools/projects/libraries

    62 parts397Apache-2.0
  • 4 layers138 × 50 mmBackpack, the printed circuit board in 3D

    Backpack

    osrf/ovc

    the Open Vision Computer

    62 parts207Apache-2.0
  • 4 layers57 × 85 mmHmcad characterization, the printed circuit board in 3D

    Hmcad characterization

    azonenberg/starshipraider

    Open hardware test equipment

    62 parts193BSD-3-Clause

Questions

How big is the Stm32-camera PCB?

It measures 36 × 36 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Stm32-camera use?

62 parts, built around the STM32F429VET6 and TEMT7000X01. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Stm32-camera KiCad files?

From the Scottapotamas/stm32-camera repository on GitHub, at the commit this page was made from: the board is Electronics/stm32-camera.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Stm32-camera design in my own project?

Its repository states no licence, so its author keeps all rights: ask Scottapotamas before reusing the design.