Skip to the content
4 layers85 × 56 mmAvrbrain, the printed circuit board in 3D

An AVR128DB64 development board

Size
85 × 56 mm
Copper layers
4
Thickness
1.6 mm
Parts
64
Nets
94
Pads
338
Tracks, vias
699, 91
Pours
8
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
10 Jan 2024
Updated
20 Jan 2025

Overview

Avrbrain is an open-source printed circuit board by jblang, from the jblang/avrbrain repository on GitHub, published under the MIT licence. It is a 4-layer board of 85 × 56 mm with 64 parts on 94 nets, routed with 699 tracks and 91 vias.

It is built around the CH340C, XKTF-0803-0 and AMS1117-3.3, with the PCF8563T/5, 1N5819WS and BSS138 among its other parts. Its parts include 19 capacitors, 12 connectors, 10 resistors, 4 ICs and 4 diodes. It belongs with the microcontroller boards boards of this library.

Main components

8

README

README.md

AVRBrain

AVRbrain is an AVR128DB64 dev board. The AVR Dx series are modern AVRs with many desireable features over the classic ATmega AVRs, such as multi-voltage I/O, configurable logic, advanced analog features, and a single-wire programming and debug interface.

3D Render

Arduino Compatibility

AVRbrain is compatible with the DxCore Arduino Core. I have tested the AVR128DB28 on a breadboard with the same programming circuit I intend to use on the finished board, and confirmed that it works.

Once flashed in UPDI programming mode, the Optiboot_Dx bootloader can be used to reprogram the board in serial comms mode, and there is an auto-reset circuit connected to the DTR line (possible to disable with a jumper).

PlatformIO Compatibility

AVRbrain is compatible with PlatformIO using the Atmel megaAVR platform. PlatformIO supports Arduino development using DxCore, or native development using avr-libc.

Here's the platformio.ini that I used to build a simple non-Arduino led blinking example for the AVR128DB64:

text
[env:AVR128DB28]
platform = atmelmegaavr
platform_packages = platformio/toolchain-atmelavr@^3.70300.220127
board = AVR128DB28
upload_speed = 115200
upload_flags = 
    --tool
    uart
    --device
    avr128db28
    --uart
    $UPLOAD_PORT
    --clk
    $UPLOAD_SPEED
upload_command = pymcuprog write --erase $UPLOAD_FLAGS --filename $SOURCE

The above example can be made to work with DxCore just by adding the line framework = arduino to this file.

Hardware Features

  • Onboard CH340C USB-to-serial converter with a micro-USB connector, and a switch to select between USB communication or programming via SerialUPDI.
  • Onboard 3.3V regulator for MVIO. The board is configured to have 3.3V on PORTC and 5V on the other ports.
  • SD card holder connected to 3.3V SPI Bus, and an I2C RTC (PCF8563T) with battery backup via CR 1612 coin cell.
  • UEXT port that exports 3.3V UART, I2C, and SPI buses. Many peripheral modules are available from Olimex.
  • Qwiic I2C port to work with the Qwiic and Stemma QT ecosystems. Many peripheral modules are available from Sparkfun and Adafruit.
  • Headers breaking out all pins of the 8-bit ports A-G, except pin 7 of port F which is UPDI. Pin sockets can be used for stackable shield-style add-on boards, or pin headers can be used to connect to breadboards or elsewhere using IDC cables.
  • Port F is used for UPDI, Reset, the USB UART, SD card chip select (level shifted), and optionally the RTC's interrupt and 32 kHz clock signals.
  • The RTC's interrupt and 32 kHz clock signals can be connected to port F by adding a solder bridge on the surface mount jumper. The RTC can be disconnected from the I2C bus by cutting the traces in the SDA and SCL jumper pads in case of a conflict with other RTC devices.
  • UPDI header for use with a PicKit and MPLAB X for debugging.
  • Same size as a Raspberry Pi Model B, though it is not mechanically or electrically compatible. The right-side mounting holes are on the corners instead of toward the middle of the board, and no attempt has been made to reproduce the GPIO header pinout used on the Pi.

Relationship to z80ctrl NG

z80ctrl NG is the next-generation z80ctrl board I am designing concurrently with AVRbrain. It uses all the same hardware components, including the AVR128DB64, the USB chip, RTC, voltage regulator, sd card slot, etc. The primary difference is the pinout. The z80ctrl NG is intended to interface with the RCBus parallel bus used primarily by Z80-based retrocomputers, whereas AVRbrain is intended as a general-purpose dev board with stacking shield-style modules or IDC cables. z80ctrl also includes a 512K SRAM chip with optional banking that can be initialized by the AVR and then used by the 8-bit processor that z80ctrl shares a bus with.

Parts

64
QtyValueFootprintReferences
100.1ufCapacitor_SMD:C_0402_1005MetricC1, C2, C3, C4, C5, C8, C9, C10, C11, C14
4100KResistor_SMD:R_0402_1005MetricR3, R4, R5, R6
41ufCapacitor_SMD:C_0402_1005MetricC16, C17, C18, C19
42.2KResistor_SMD:R_0402_1005MetricR7, R8, R9, R10
4MountingHole_PadMountingHole:MountingHole_2.2mm_M2_Pad_ViaH1, H2, H3, H4
31N5819WSDiode_SMD:D_SOD-323D1, D3, D4
21KResistor_SMD:R_0402_1005MetricR1, R2
21ufCapacitor_SMD:C_1206_3216MetricC7, C12
222ufCapacitor_SMD:C_1206_3216MetricC6, C15
127pfCapacitor_SMD:C_0603_1608MetricC13
132kHzCrystal:Crystal_SMD_3215-2Pin_3.2x1.5mmY1
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1AUTORESETJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP1
1AVR128DB64x-xPTPackage_QFP:TQFP-64_10x10mm_P0.5mmU1
1BSS138Package_TO_SOT_SMD:SOT-23Q1
1CH340CPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU3
1CR1216Battery:BatteryHolder_Keystone_3001_1x12mmBT1
1LEDLED_SMD:LED_0603_1608MetricD2
1NetTie_2NetTie:NetTie-2_SMD_Pad0.5mmNT1
1PCF8563TPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU4
1PORTAConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ2
1PORTBConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ3
1PORTCConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ4
1PORTDConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ5
1PORTEConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ6
1PORTFConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ7
1PORTGConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ10
1PROG_ENSamacSys_Parts:JS202011CQNSW3
1RESETButton_Switch_THT:SW_PUSH_6mmSW1
1RTC_CLKJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP6
1RTC_INTJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP7
1RTC_SCLJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP2
1RTC_SDAJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP3
1SM04B-SRSS-TBSamacSys_Parts:SM04B-SRSS-TB_LFSN_J12
1U254-051T-4BH81-S2SSamacSys_Parts:U254051T4BH81S2SJ9
1UEXTConnector_IDC:IDC-Header_2x05_P2.54mm_HorizontalJ11
1UPDIConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1XKTF-0803-0SamacSys_Parts:XKTF08030J8

More from jblang/avrbrain

3
  • 4 layers85 × 56 mmZ80ram, the printed circuit board in 3D

    Z80ram

    jblang/avrbrain

    An AVR128DB64 development board

    21 parts1MIT
  • 2 layers85 × 56 mmGenlink, the printed circuit board in 3D

    Genlink

    jblang/avrbrain

    An AVR128DB64 development board

    13 parts1MIT
  • 4 layers85 × 56 mmBlank5v, the printed circuit board in 3D

    Blank5v

    jblang/avrbrain

    An AVR128DB64 development board

    10 parts1MIT

Similar boards

  • 4 layers101.6 × 53.3 mmZ80ctrlng, the printed circuit board in 3D

    Z80ctrlng

    jblang/z80ctrl

    AVR-based bootloader, I/O, and debugging for Z80-based computers

    65 parts73
  • 4 layers38 × 64 mmAk display 38x64 SPLIT POWER CANDIDATE, the printed circuit board in 3D

    Ak display 38x64 SPLIT POWER CANDIDATE

    LeeSpo/portable-display-epass-EVT1-minboot-r1

    当前自研硬件为 38 × 64 mm、四层 split-power 工程候选,尚未放行生产。

    147 parts
  • 4 layers99.5 × 65 mmEcho, the printed circuit board in 3D

    Echo

    rh1tech/echo

    Echo: ESP32-Based VGA Board

    181 parts4
  • 2 layers290 × 100 mmESP32-Wall Clock, the printed circuit board in 3D

    ESP32-Wall Clock

    SkullKill/ESP32-Wall-Clock-PCB

    ESP32 based 30cm Wall Mounted Clock. WiFi, NTP, SNMP, web interface, MicroUsb, Type-C, HG3613 Retrofit

    207 parts3GPL-3.0
  • 2 layers94 × 94 mm3axis magnetometer, the printed circuit board in 3D

    3axis magnetometer

    NarodniySputnik/Gladiolus-1

    Gladiolus-1 - автономный модуль для приема и передачи изображений в формате SSTV (Slow Scan TeleVision) на малом космическом аппарате (МКА) формата CubeSat

    85 parts9GPL-3.0
  • 2 layers85 × 65 mmBLDC Project, the printed circuit board in 3D

    BLDC Project

    yussufadel8/BLDC-Motor-Controller-STM32

    Two-layer 3-phase BLDC controller in KiCad — STM32G431 FOC MCU with on-board STM32F103 SWD debugger, IR2104 half-bridges, and 3-shunt current sensing via the G431's internal op-amps.

    128 parts1MIT
  • 4 layers85.6 × 54 mmFrank air, the printed circuit board in 3D

    Frank air

    rh1tech/frank-lab

    FRANK Board Laboratory (work-in-progress board prototopyes)

    184 parts4GPL-3.0

Questions

How big is the Avrbrain PCB?

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

What parts does the Avrbrain use?

64 parts, built around the CH340C, XKTF-0803-0, AMS1117-3.3 and PCF8563T/5. 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 Avrbrain KiCad files?

From the jblang/avrbrain repository on GitHub, at the commit this page was made from: the board is avrbrain.kicad_pcb and its schematic avrbrain.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Avrbrain design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).