Skip to the content
PCBKitNew board
2 layers49 × 31 mmTimelapse, the printed circuit board in 3D

Photography Timer based on Atmega8 controller, OLED display and button controls.

Size
49 × 31 mm
Copper layers
2
Thickness
1.4 mm
Parts
31
Nets
26
Pads
152
Tracks, vias
228, 10
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
28 Oct 2021
Updated
15 Dec 2021

Overview

Timelapse is an open-source printed circuit board by velechit, from the velechit/timelapse repository on GitHub. It is a 2-layer board of 49 × 31 mm with 31 parts on 26 nets, routed with 228 tracks and 10 vias.

It is built around the ATMEGA8-16AU, 1N4148WS and NDS356P. Its parts include 9 resistors, 4 switches, 3 connectors, 2 capacitors and 2 ICs. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

3

README

README.md

Timelapse Timer

Photography Timer based on Atmega8 controller, OLED display and button controls.

Specialities:

  • USB Based boot loader (based on baerwolf's code)
  • Minimalsitic SSD1306 driver
  • SoftSwitch power on

This project contains Circuit Schematic, PCB Layout, bootloader (Customized), Main Application

This project demonstrates using linker scripts to place code bases at specific location and re-using them across different codes

  • Bootloader also implements a minimalistic SSD1306 driver. As the bootloader space in ATMEGA8 is limited to 2k (start address 0x1800), the driver is placed at 0x1600 which can be accessed through absolute addressing
  • The application program (the actual timelapse code) makes use of this SSD1306 driver through absolute addressing

Progress so far

  • Bootloader
  • SSD1306 Driver
  • Integrate SSD1306 Driver with bootloader, and display a USB icon when in boot load mode
  • Update Makefile for bootloader to generate liner script for display driver entry points to be accessed by application program
  • Design the PCB
  • Get PCB Fabricated
  • Framework for the application
  • Main application program

UPDATE 1: Added power off code in bootloader

UPDATE 2: Initial dummy firmware implemented which is simple counter

UPDATE 3: got the fabricated PCB, assembled, and uploaded the bootloader & the dummy firmware... till now all working

UPDATE 4: Framework for main application ready


I thought of fabricating the board myself. Due to insufficient time, I have ordered from online fab. I had two options for shipment either too expencive and fast delivery or too slow with easy on pockets. I have chosen the latter, waiting for the board to arrive

IMPORTANT Update : I found a issue with the power on circuitory that the internal IO driver transistor is too leakey and is permanently turning on the PMOS power gate. Hence I have added additional NMOS (2n7002) to ground externally

Toolchain needed

The bootloader and firmware are developed using barebone avr-gcc and avr-libc

Install avr-gcc and avr-libc. Under Windows you may chose to use WinAVR.

Under linux (Ubuntu epsecially)

sudo apt install gcc-avr avr-libc

You will also need gmake (generally part of the installation). If not, install using

sudo apt install make

Compile using make

Fuse Settings

The board is designed with external oscillator module. Hence the below fuse settings are used for Atmega8

text
lfuse: 1 1 0 0 0 0 0 0 = 0xC0
       | | | | | | | |
       | | | | | | | +- CKSEL0   - External Clock
       | | | | | | +--- CKSEL1
       | | | | | +----- CKSEL2
       | | | | +------- CKSEL3
       | | | +--------- SUT0     - Startup Time 0ms
       | | +----------- SUT1
       | +------------- BODEN    - Brown-out detection disabled
       +--------------- BODLEVEL - Brown-out detection level (N/A)


hfuse: 1 1 0 0 1 0 0 0 = 0xC8
       | | | | | | | |
       | | | | | | | +- BOOTRST  - Reset boots to boot loader
       | | | | | | +--- BOOTSZ0  - Boot section size 2k
       | | | | | +----- BOOTSZ1
       | | | | +------- EESAVE   - No EEPROM save on program
       | | | +--------- CKOPT    - Full Swing Clock
       | | +----------- SPIEN    - Serial programming enabled
       | +------------- WTDON    - Watchdog Timer disabled
       +--------------- RSTDISBL - Reset not disabled

Program the above fuses using:

avrdude -p atmega8 -P usb -c usbasp -U lfuse:w:0xC0:m -U hfuse:w:0xC8:m

Uploading the bootloader

The bootloader and the fuse settings have to be uploaded using any other method of loading (Using Arduino as ISP or USBAsp programmer). Once programmed, the controller can be soldered to the application board and the programmed bootloader be used to upload the main firmware.

3D models

Board Side
3D Model of display side of the board

Component Side
3D Model of component side of the board

Post Fabrication

Board Side
Display side of the board

Component Side
Component side of the board

Full documentation can be found here

PCB is designed using

Download KiCad project files here

Schematic can be found here

email: elechi@gmail.com

Parts

31
QtyValueFootprintReferences
4MountingHole_PadMountingHole:MountingHole_2.5mm_Pad_ViaH1, H2, H3, H4
310kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR2, R3, R4
21uFCapacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolderC1, C2
2470Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR5, R6
268Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR8, R9
2PC817SMDtimelapse:SMD4OK1, OK2
11.5kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR10
112MHztimelapse:SMDXTALM1
11N4148WSDiode_SMD:D_SOD-323D1
11kResistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolderR1
12N7002Package_TO_SOT_SMD:SOT-23Q1
1ATmega8-16AUPackage_QFP:TQFP-32_7x7mm_P0.8mmU1
1BatteryConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1CAMERAtimelapse:CAM-CONN-NOKIAM2
1DWNtimelapse:4PIN-SSW4
1MCP73811TPackage_TO_SOT_SMD:SOT-23-5U2
1NDS356Package_TO_SOT_SMD:SOT-23Q2
1OLED-CONNtimelapse:OLED-Display-0.96J2
1PROGtimelapse:4PIN-SSW2
1PWRtimelapse:4PIN-SSW1
1UPtimelapse:4PIN-SSW3
1USBtimelapse:MICROUSB-V8J3

Questions

How big is the Timelapse PCB?

It measures 49 × 31 mm and has 2 copper layers, 1.4 mm thick.

What parts does the Timelapse use?

31 parts, built around the ATMEGA8-16AU, 1N4148WS and NDS356P. 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 Timelapse KiCad files?

From the velechit/timelapse repository on GitHub, at the commit this page was made from: the board is board/documentation/boards/timelapse.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Timelapse design in my own project?

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

Similar boards

  • 2 layers84.3 × 58.4 mmEnocderDriver, the printed circuit board in 3D

    EnocderDriver

    NikodemBartnik/Small-Projects

    All of smaller projects (Arduino, PCBs, electronics, code)

    35 parts55
  • 2 layers60 × 47 mmConveyor, the printed circuit board in 3D

    Conveyor

    AlexTransit/vender

    Open source vending machine controller

    65 parts13CC0-1.0
  • 2 layers42.9 × 16.9 mmC64-Mouse Adapter, the printed circuit board in 3D

    C64-Mouse Adapter

    baldengineer/C64_1351_to_PS2_Mouse_PCB

    PCB Design based on the [M]ouse project

    12 parts6MIT
  • 4 layers149.5 × 113 mm1. PDU, the printed circuit board in 3D

    1. PDU

    SshgurkiratSingh/CCMS_PORTAL

    A full-stack smart streetlight fleet management system with real-time monitoring, remote control, and analytics.

    111 parts2
  • 2 layers62 × 88 mmTenKeyUnit, the printed circuit board in 3D

    TenKeyUnit

    akita11/TenKeyUnit

    29 parts1MIT
  • 2 layers100 × 95 mmLCSDR, the printed circuit board in 3D

    LCSDR

    arsenal007/PCM2900C_SI570_PCB

    Processor PCB based on PCM2900C and Si570. SDR

    92 parts1