Skip to the content
4 layers119 × 119.3 mmControlUnit, the printed circuit board in 3D

This project implements a 16-bit Arithmetic Logic Unit (ALU) using TTL (74 series) digital integrated circuits. The control unit is built using an ESP32 microcontroller, enhancing functionality with a user-friendly…

Size
119 × 119.3 mm
Copper layers
4
Thickness
1.6 mm
Parts
51
Nets
103
Pads
305
Tracks, vias
824, 27
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
27 Nov 2023
Updated
10 Nov 2024

Overview

ControlUnit is an open-source printed circuit board by Dharanitrainee, from the Dharanitrainee/16bit-ALU repository on GitHub, published under the MIT licence. It is a 4-layer board of 119 × 119.3 mm with 51 parts on 103 nets, routed with 824 tracks and 27 vias.

It is built around the 74LVC1G17Z, ESP32-DEVKITC-VE and 74HC595, with the BAS16TW among its other parts. Its parts include 14 resistors, 14 ICs, 7 capacitors, 7 connectors and 4 diodes. It belongs with the ESP32 boards of this library.

Main components

4

README

README.md

16-bit ALU with ESP32 Control Unit

This project implements a 16-bit Arithmetic Logic Unit (ALU) using TTL (74 series) digital integrated circuits. The control unit is built using an ESP32 microcontroller, enhancing functionality with a user-friendly interface via an OLED display and a rotary encoder for selecting operations.

Disclaimer: This is my first PCB design, and there may be flaws.This may be the worls worst ALU!. Any feedback or suggestions for improvement are welcome.

Features

  • Arithmetic Operations: Addition, Subtraction, Increment, Decrement.
  • Logical Operations: AND, OR, XOR, NOT.
  • User Interface: An OLED display shows the current operation, and a rotary encoder allows for easy selection of operations.
  • Control Mechanism: ESP32 provides control signals and manages data flow within the ALU using shift registers.

Components Used

  • TTL ICs (74 series) for logic implementation
  • ESP32 microcontroller for control signals
  • OLED Display (SH1106) for displaying selected operation and result
  • Rotary Encoder (KY-040) for operation selection
  • Shift Registers (74HC595) for handling input/output

Project Structure

  • main_code.ino: The primary Arduino code for the ESP32, managing the control signals, encoder input, OLED output, and ALU operations.
  • images/: Contains bitmaps for icons representing each operation.
  • README.md: Project documentation.

How It Works

  1. Control Unit: The ESP32 microcontroller generates control signals based on user input from the rotary encoder. The OLED screen displays the current operation, input values, and results.
  2. ALU Operations: The ALU performs selected operations on 16-bit data, interfaced via shift registers.
  3. Result Display: The result of the operation is shown on the OLED display.

Setup and Usage

  1. Connect the ESP32 to the OLED display and rotary encoder.
  2. Interface the shift registers with TTL ICs to implement the 16-bit ALU logic.
  3. Load the Arduino code onto the ESP32.
  4. Use the rotary encoder to select the desired operation and input values, then view the result on the OLED display.

Future Improvements

  • Expand operations to include multiplication and division.
  • Optimize the control signal generation for improved speed and accuracy.
  • Add support for additional user inputs or controls to expand functionality.

Parts

51
QtyValueFootprintReferences
620KResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR8, R10, R12, R13, R15, R17
6300Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR9, R14, R16, R18, R19, R20
64.7ufCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC15, C16, C17, C18, C19, C20
674LVC1G17SN74LVC1G17:SOT23-5U4, U11, U12, U13, U14, U15
574HC595Package_DIP:DIP-16_W10.16mm_LongPadsU6, U7, U8, U9, U10
4Conn_01x08_PinConnector_PinHeader_1.00mm:PinHeader_1x08_P1.00mm_VerticalJ7, J8, J9, J10
4Hole_PadMountingHole:MountingHole_3.2mm_M3_Pad_ViaH1, H2, H3, H4
21KResistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR1, R6
2BAS16TWPackage_TO_SOT_SMD:SOT-363_SC-70-6D2, D3
2KY-040KY-040:KY-040-PORTU5, U17
2LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD1, D4
1100nfCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC11
1Conn_01x05_PinConnector_PinHeader_1.00mm:PinHeader_1x05_P1.00mm_VerticalJ3
1Conn_02x05_Odd_EvenConnector_PinHeader_1.00mm:PinHeader_2x05_P1.00mm_VerticalJ4
1ESP32-DEVKITCESP32-DEVKITC:MODULE_ESP32-DEVKITCU1
1SH1106SSD1306:128x64OLEDBrd1
1Screw_Terminal_01x02TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ2

Similar boards

  • 4 layers29.9 × 32 mmModels heart rev1.1, the printed circuit board in 3D

    Models heart rev1.1

    KushlaVR/models-heart

    Можливості: Керування через WIFI з телефона або ПК 5 незалежних каналів (світлодіоди/сервомотори) 1 Н-міст для підключення мотора (піковий струм до 3А) Вмонтована BMS 1S та контроллер заряду Li-Ion акумулятора з…

    106 parts7GPL-3.0
  • 2 layers100 × 100 mmVga, the printed circuit board in 3D

    Vga

    imihajlow/ccpu

    A 8-bit computer made of 74xx series logic gates and memory ICs.

    84 parts145
  • 2 layers98.6 × 49.8 mmSch, the printed circuit board in 3D

    Sch

    SL-RU/svelotracker

    Device for bicycle. It will show current position, track, speed, compass, direction to the destination or to start. It can save the track and etc

    106 parts1
  • 4 layers75 × 65 mmCRImier MyKiCad vaio re, the printed circuit board in 3D

    CRImier MyKiCad vaio re

    punkfab/pcb-corpus

    235 real KiCad boards from open-source hardware repositories, prepared as a placement and routing benchmark

    289 parts1
  • 2 layers100 × 88.9 mmGen2, the printed circuit board in 3D

    Gen2

    Alignof/Juggernaut

    疑似時限爆弾解除競技

    41 parts10MIT
  • 2 layers99.9 × 99.9 mmCastle PCB, the printed circuit board in 3D

    Castle PCB

    IvarNilsson/Castle_Automation

    106 parts2MIT
  • 2 layers100 × 76 mmBt controller, the printed circuit board in 3D

    Bt controller

    Chill-Sam/SpeakerSystem

    Home speaker system

    44 parts1
  • 2 layers131 × 90 mmStage chrono, the printed circuit board in 3D

    Stage chrono

    becem0/esp32-giant-chronometer

    ?? Giant 6-digit 7-segment race chronometer powered by ESP32, 24V COB LED strips, custom KiCad 10 PCB, and SIM800L GSM telemetry.

    38 partsMIT

Questions

How big is the ControlUnit PCB?

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

What parts does the ControlUnit use?

51 parts, built around the 74LVC1G17Z, ESP32-DEVKITC-VE, 74HC595 and BAS16TW. 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 ControlUnit KiCad files?

From the Dharanitrainee/16bit-ALU repository on GitHub, at the commit this page was made from: the board is PCB/ControlUnit.kicad_pcb and its schematic PCB/ControlUnit.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ControlUnit 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).