Skip to the content
PCBKitNew board
2 layers57.3 × 41.2 mmDatakeyboard, the printed circuit board in 3D

Datakey

Size
57.3 × 41.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
49
Nets
50
Pads
190
Tracks, vias
685, 109
Pours
1
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
15 Dec 2022
Updated
1 Jan 2024

Overview

Datakeyboard is an open-source printed circuit board by greengravity, from the greengravity/Datakey repository on GitHub. It is a 2-layer board of 57.3 × 41.2 mm with 49 parts on 50 nets, routed with 685 tracks and 109 vias.

It is built around the PIC24FJ128GB204-I/PT, STLQ015M30R and NX2301P, with the BAS40-06 among its other parts. Its parts include 14 resistors, 10 capacitors, 6 switches, 5 transistors and 3 ICs. It belongs with the PIC boards of this library.

Main components

4

README

README.md

Datastorage

What is it?

In short, it is a physical offline-device to store secret information like account data or banking informations.
While mobile apps can do things like this, its always possible to have some spyware installed with the last gaming app or whatever.
Because of that i dont trust mobiles too much and so i decided to make this little project.

How it Works?

It is pretty simple, the device have 6 Buttons for input and a 1.7" Display for output.
Just enter your pincode and you will be able to browse through your entries.

Every entry have a name and up to 5 additional tokens to store informations like username/password or other things.
You can add/delete or modify entries directly on the device, without the need of a mobile-device or computer.

The tokens itself are entered with a virtual keyboard on the device.
Its like entering the name with a gamecontroller on a gamingconsole.

Everything entered will be encrypted with a masterkey and stored on a micro-sd card.
The masterkey is a secret that only the user know, if it get lost, you may not be able to restore your data anymore.

Usually the masterkey is stored in the device, so you dont need to rember it all the time.
But if you or someone else mess up the pincode verification, the masterkey get deleted from the device (for security reasons).
Thats why it is important to have the masterkey stored or memorized safely.

The Device can also act as an keyboard.
After you connected the device to your pc via usb, you can select an entry/token and push it to the pc.
like entering the data with a keyboard.
This type of communication is pretty much one-way, so the connected system cannot control the output of the device.
It should be safe to use it like that.

Features

  • 128-Bit AES-CBC encryption over all entries
  • Offline input/output
  • USB-Keyboard function to push data to connected systems
  • USB-Charging
  • Long standby because of low power consumption ( about 2 years - 8.5müAmp usage with 150mAh Battery )
  • Usage of Fat32 filesystem, so you can backup your data on your PC, this is safe because the data is completely encrypted, but make sure the masterkey stay separated from the data (dont store the masterkey on the pc too)
  • TETRIS :)

What do you need to start?

  • The Device
  • An micro sd-card, formated with a Fat32 filesystem.
  • A micro-usb cable to charge the device

Enter the sd-card to the slot on the side of the device and open it.
You will be questioned about the masterkey.
Enter one, the longer the better.
Then you will be questioned about your pincode.
This looks like a game, but it is actually just a disguise as an additional security layer.
Enter one and Reenter it, you can use all 6 buttons for it.
You should end up on an empty screen showing the entrylist.
Gratulations, you can now add/modify entries in your list, using the context menus.

Build the Device

To build the device you need a bunch of things

The electrical components (see components.csv in the Docs)
The Printboard (see datakeyboard/ for the kicad project or datakeyboard/gerber for the gerberfiles to send to your pcb-maker)
The MPLAB X IDE from microchip as well as an programmer device like the PICKit to build and programm the pic24fj128gb204 microcontroller
A 3D Printer to print the housing.
A tiny piece of thin copper or iron and something to cut it, it become the inlay for the housing to trigger the pogopins when open or close the cap.
A possibility to solder SMD-Parts

Checkout c0pperdragon and his amazing HotPlate project on github for this (also available on tindie)

Parts

49
QtyValueFootprintReferences
7100nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC5, C6, C7, C8, C9, C10, C11
710kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR6, R7, R9, R10, R11, R12, R13
6SW_PushButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmSW1, SW2, SW3, SW4, SW5, SW6
5NX2301PPackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4, Q5
4Conn_01x01TestPoint:TestPoint_Pad_2.0x2.0mmJBAT1, JBAT2, JCASE1, JCASE2
310uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C3
31kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R3, R4
2100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR8, R14
2LEDDiode_SMD:D_1206_3216Metric_Pad1.42x1.75mm_HandSolderD1, D2
1100Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
12.2kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR5
1BAS40-06Package_TO_SOT_SMD:SOT-23D3
1Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJPICKKIT1
1Conn_01x08Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJDISP1
1MCP73831-2-OTPackage_TO_SOT_SMD:SOT-23-5U2
1Micro_SD_Card_DetLibrary:microSD_UnknownJCARD1
1PIC24FJ128GB204Package_QFP:TQFP-44_10x10mm_P0.8mmU1
1STLQ015M30RPackage_TO_SOT_SMD:SOT-23-5U3
1USB_OTGLibrary:USB_Micro-B_UnknownJUSB1

Questions

How big is the Datakeyboard PCB?

It measures 57.3 × 41.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Datakeyboard use?

49 parts, built around the PIC24FJ128GB204-I/PT, STLQ015M30R, NX2301P and BAS40-06. 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 Datakeyboard KiCad files?

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

Can I use the Datakeyboard design in my own project?

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

Similar boards

  • 2 layers30 × 41.1 mmRepetidor, the printed circuit board in 3D

    Repetidor

    apemangr/Diseno-Repetidor

    59 parts
  • 2 layers100 × 35 mmFan controller, the printed circuit board in 3D

    Fan controller

    mschaf/hp_dl380_fan_controller

    A fan controller for my DL380e gen8, should work with similar servers as well. It takes the fan signal from the mainboard and divides it by 2, expect it is over 70% then it just passed it as it is.

    64 parts
  • 4 layers124.5 × 69.2 mmDB1MB, the printed circuit board in 3D

    DB1MB

    stonedDiscord/Automatenplatinen

    Reverse engineerte Hardware aus deutschen Spielautomaten.

    160 parts5BSD-2-Clause
  • 2 layers100 × 100 mmWifi PB panel, the printed circuit board in 3D

    Wifi PB panel

    AntonioMR/Wifi-Play-Board

    Placa de experimentacion para el ESP12F (ESP8266)

    416 parts29
  • 4 layers34 × 79.2 mmSensor epaper, the printed circuit board in 3D

    Sensor epaper

    Miceuz/paper-wifi

    Low power E-paper display devboard with WiFi and BLE connectivity. Open source hardware.

    92 parts28
  • 2 layersHeadlamp, the printed circuit board in 3D

    Headlamp

    kajusK/Darkstar-Mk.II

    High-power bomb-proof headlamp for caving

    60 parts7
  • 2 layers91.5 × 53.2 mmNodeMCU Metriful, the printed circuit board in 3D

    NodeMCU Metriful

    axello/kicad

    Hodge podge of small electronic designs

    23 parts1
  • 2 layers70 × 38 mmEsp8266-probe, the printed circuit board in 3D

    Esp8266-probe

    mgottschlag/esp8266-probe

    JTAG probe using the ESP8266

    63 parts