Skip to the content
PCBKitNew board
4 layers120 × 75 mmCuttlefish, the printed circuit board in 3D

0414: an octal, TTL input/output device with programmable square wave output.

Size
120 × 75 mm
Copper layers
4
Thickness
1.57 mm
Parts
195
Nets
159
Pads
714
Tracks, vias
1,288, 273
Pours
8
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
4 Oct 2023
Updated
31 Oct 2026

Overview

Cuttlefish is an open-source printed circuit board by AllenNeuralDynamics, from the AllenNeuralDynamics/harp.device.cuttlefish repository on GitHub. It is a 4-layer board of 120 × 75 mm with 195 parts on 159 nets, routed with 1,288 tracks and 273 vias.

It is built around the RP2040, W25Q16JVUXIQ and RT6150B-33GQW, with the 74LVCH2T45DC, 74CBTLV3245PW and SN74LVC1G14DRL among its other parts. Its parts include 77 capacitors, 52 resistors, 22 ICs, 14 connectors and 8 diodes. It belongs with the RP2040 boards of this library.

Main components

12

README

README.md

An 8-channel TTL input-or-output device with programmable square wave output

Features

  • 8x TTL input or output, configurable.
  • Direct PC control of IO Pins:
    • set pins configured as output to either HIGH (5V) or LOW (0V)
    • read the state of pins configured as inputs as either HIGH (~5V) or LOW (~0V) at TTL logic levels.
  • Programmable square wave generation with many configurable settings:
    • PWM Frequency range: from 0.01Hz to 2KHz
    • Duty Cycle
    • Offset
    • number of pulses (or infinite)
  • Input Capture. Configure pins as inputs to detect
    • rising edges (up to 500Hz)
    • falling edges (up to 500Hz)
    • both! (up to 500hz)
  • Harp-protocol compliant (serial num: 0x057B).
  • Bonus: "passthrough buffer mode." External 3.3V and 5V CMOS devices can use this device as an octal buffer with external pins.

[!NOTE] This board produces digital outputs and measures digital inputs only! For producing high fidelity analog outputs, refer to the harp.device.quac device.

Extra Features

  • 6-24VDC input (2.1 x 5.5mm barrel jack, positive center)
  • reverse polarity protection
  • soft start
  • isolated USB to avoid forming ground loops with the PC.

PWM Waveform Setup

Each IO pin is capable of producing a PWM output. Here are the settings available:

  • offset_us: how long (in microseconds) the output should remain LOW before switching the output HIGH in one period.
  • on_duration_us: how long (in microseconds) the output should remain HIGH in one period.
  • off_duration_us: how long (in microseconds) the output should remain LOW in one period.
  • cycles: how many pulses to produce or zero for infinite pulses until disabled.
  • invert: whether the output should be inverted (on-time refers to the output being LOW instead).

pwm_specs.png

[!NOTE] Although multiple PWM channels can be set to different settings and produce outputs concurrently, all PWM outputs must be started at the same time.

Parts

195
QtyValueFootprintReferences
44100nFCapacitor_SMD:C_0402_1005MetricC1, C3, C14, C15, C16, C17, C18, C19, C20, C21, C22, C25, C26, C29, C30, C31 +28
181uFCapacitor_SMD:C_0402_1005MetricC2, C10, C11, C12, C23, C27, C39, C43, C47, C51, C55, C59, C63, C65, C67, C69 +2
16100Resistor_SMD:R_0402_1005MetricR13, R14, R15, R16, R17, R18, R19, R20, R27, R28, R29, R30, R31, R32, R33, R34
1310KResistor_SMD:R_0402_1005MetricR8, R35, R36, R37, R38, R39, R40, R41, R42, R44, R45, R46, R56
1110uFCapacitor_SMD:C_0805_2012MetricC13, C24, C28, C32, C33, C40, C44, C48, C52, C56, C60
874LVCH2T45DCkicad-lib:VSSOP-8_2.3x2mm_P0.5mm_TexasInstrumentsU5, U6, U7, U9, U10, U11, U12, U13
8Conn_Coaxialkicad-lib:BNC_AmphenolRF_031-5329-52RFX_VerticalJ5, J6, J7, J8, J9, J10, J11, J12
6100KResistor_SMD:R_0402_1005MetricR21, R22, R23, R24, R25, R53
422uFCapacitor_SMD:C_0805_2012MetricC35, C36, C37, C38
424Resistor_SMD:R_0402_1005MetricR4, R5, R6, R7
4Si2369DSPackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
31KResistor_SMD:R_0402_1005MetricR1, R50, R51
31K6Resistor_SMD:R_0402_1005MetricR11, R12, R43
374CBTLV3245Package_SO:TSSOP-20_4.4x6.5mm_P0.65mmU14, U16, U17
3FiducialFiducial:Fiducial_0.5mm_Mask1mmFID1, FID2, FID3
3LEDLED_SMD:LED_0603_1608MetricD3, D4, D9
3LOGOLOGOG***, G***, G3
3SN74LVC1G14DRLkicad-lib:SOT-553U15, U18, U19
227Resistor_SMD:R_0402_1005MetricR9, R10
25K1Resistor_SMD:R_0402_1005MetricR2, R3
2Conn_02x08_Counter_Clockwisekicad-lib:PinHeader_2x08_P2.54mm_Horizontal_SMDJ13, J14
2D_TVSDiode_SMD:D_0402_1005MetricD1, D2
2NSR05F40NXT5GDiode_SMD:D_0402_1005MetricD10, D12
113K7Resistor_SMD:R_0402_1005MetricR54
12.2uHInductor_SMD:L_0603_1608MetricL1
139K2Resistor_SMD:R_0402_1005MetricR26
147KResistor_SMD:R_0402_1005MetricR48
16.8uHkicad-lib:L_Bourns-SRP4030FAL2
1ADUM4160Package_SO:SOIC-16W_7.5x10.3mm_P1.27mmU2
1AudioJack3Connector_Audio:Jack_3.5mm_CUI_SJ-3523-SMT_HorizontalJ2
1BZV55B15Diode_SMD:D_MiniMELFD5
1Barrel_Jack_Switchkicad-lib:BarrelJack_Same_Sky_PJ-102AH_HorizontalJ4
1Conn_01x03_MaleConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ1
1DMN2040UPackage_TO_SOT_SMD:SOT-23Q5
1ECS-TXO-2016Crystal:Crystal_SMD_2016-4Pin_2.0x1.6mmX1
1LMR51430Package_TO_SOT_SMD:SOT-23-6U20
1MAX5902AAEUT+TPackage_TO_SOT_SMD:SOT-23-6U8
1MountingHole_Padkicad-lib:Terminal_Keystone_779x_EdgeMount_HorizontalH1
1RP2040kicad-lib:RP2040-QFN-56U3
1SN74CBTLV3245APWRPackage_SO:TSSOP-20_4.4x6.5mm_P0.65mmU22
1SW_SPDTButton_Switch_SMD:SW_SPDT_CK-JS102011SAQNSW2
1SW_SPDTkicad-lib:SW_SPDT_CK-JS102011SAQNSW3
1TPD2EUSB30Package_TO_SOT_SMD:Texas_DRT-3U1
1USB_C_Receptacle_USB2.0Connector_USB:USB_C_Receptacle_JAE_DX07S016JA1R1500J3
1W25Q16JVUXIQkicad-lib:Winbond-8USON-2x3mmU4
1rt6150b-33gqwkicad-lib:WDFN-10-1EP_2.5x2.5mm_P0.5_EP1.25x2.1mmU21
1~kicad-lib:SW_Push_1P1T-SH_NO_Vertical_Wuerth_WS-TASVSW1

The 191 most common of 195 parts.

Questions

How big is the Cuttlefish PCB?

It measures 120 × 75 mm and has 4 copper layers, 1.57 mm thick.

What parts does the Cuttlefish use?

195 parts, built around the RP2040, W25Q16JVUXIQ, RT6150B-33GQW and 74LVCH2T45DC. 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 Cuttlefish KiCad files?

From the AllenNeuralDynamics/harp.device.cuttlefish repository on GitHub, at the commit this page was made from: the board is hardware/cuttlefish/cuttlefish.kicad_pcb and its schematic hardware/cuttlefish/bus_selection.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Cuttlefish design in my own project?

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

Similar boards

  • 4 layers90 × 100 mmHarp.device.quad.dac, the printed circuit board in 3D

    Harp.device.quad.dac

    AllenNeuralDynamics/harp.device.quac

    0364: This repository contains the hardware, firmware, and software related to the Harp quad DAC

    291 partsMIT
  • 4 layers80 × 50 mmHarp.device.lickety split, the printed circuit board in 3D

    Harp.device.lickety split

    AllenNeuralDynamics/harp.device.lickety-split

    0360: an ephys-compliant capacitive lick detector

    193 parts5MIT
  • 4 layers70 × 168 mmValve controller, the printed circuit board in 3D

    Valve controller

    AllenNeuralDynamics/harp.device.valve-controller

    0368: a 16-channel valve controller

    224 parts
  • 4 layers80 × 100 mmHarp treadmill, the printed circuit board in 3D

    Harp treadmill

    AllenNeuralDynamics/harp.device.treadmill-driver

    0326: a Harp-compatible device for controlling an instrumented mouse treadmill

    173 parts4
  • 4 layers80 × 50 mmSniff detector, the printed circuit board in 3D

    Sniff detector

    AllenNeuralDynamics/harp.device.sniff-detector

    0382: Signal conditioning board for an implanted thermistor

    114 parts3MIT
  • 4 layers80 × 50 mmUsb isolated, the printed circuit board in 3D

    Usb isolated

    AllenNeuralDynamics/harp.device.pico-template

    an RP2040-based Harp hardware/firmware project template

    76 parts
  • 4 layers39.9 × 28 mmEnvironment sensor, the printed circuit board in 3D

    Environment sensor

    AllenNeuralDynamics/harp.device.environment-sensor

    0357: harp-compliant humidity, pressure, and temperature sensor

    56 partsMIT
  • 4 layers100 × 100 mmFlexible audio hub, the printed circuit board in 3D

    Flexible audio hub

    andrew-bolin/flexible_audio_hub

    My ears and speakers will last a lifetime (I hope), but home theatre audio standards do not. My old stereo amplifier works fine, why can't I get an HDMI upgrade module that gives it CEC (control via TV remote).

    91 parts8