Skip to the content
PCBKitNew board
2 layers100.6 × 159 mmDelta radix rev1, the printed circuit board in 3D

Delta radix rev1

AaronC81/delta-radix4

Programmer's calculator with customisable data types

Size
100.6 × 159 mm
Copper layers
2
Thickness
1.6 mm
Parts
79
Nets
91
Pads
325
Tracks, vias
425, 28
Pours
1
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
14 Feb 2023
Updated
29 Dec 2023

Overview

Delta radix rev1 is an open-source printed circuit board by AaronC81, from the AaronC81/delta-radix repository on GitHub. It is a 2-layer board of 100.6 × 159 mm with 79 parts on 91 nets, routed with 425 tracks and 28 vias.

It is built around the TXB0108PW and 2N7002K. Its parts include 30 diodes, 30 switches, 2 resistors, 2 ICs and 1 transistor. It belongs with the RP2040 boards of this library.

Main components

2

README

README.md

Delta Radix

Try it online!

The Delta Radix is a desktop calculator designed specifically to be useful for binary and hexadecimal calculations.

Notable features:

  • Mixed binary, hexadecimal, and decimal calculations
  • Customisable bit width of arithmetic type (not limited to powers of 2!)
  • Support for signed and unsigned data types
  • Accurate simulation of overflow
  • Mechanical keyswitches for input

The Delta Radix calculator, assembled into a black 3D-printed case, with a mixture of black, white, and orange buttons. The black-on-green LCD display is showing the calculation "xCAFE", which evaluates to "51966" in decimal.

Software

This repository is a Cargo workspace comprising a handful of crates. These are:

  • delta-radix-os - The user-facing calculator software, 100% hardware-agnostic
  • delta-radix-hal - Traits which the OS uses to interact with hardware (keypad, display, etc)
  • delta-radix-hal-pico - Implementation of HAL traits for the Raspberry Pi Pico
  • delta-radix-hal-sim - Implementation of HAL traits for a simulator which runs in the terminal
  • delta-radix-hal-web - Implementation of HAL traits for a browser-based simulator with WebAssembly (build with wasm-pack build --target web, then visit index.html)
  • flex-int - Arbitrary-precision arithmetic library used by the OS

The HAL implementations are the executable targets which should be flashed/run.

Elsewhere, you'll also find:

  • delta-radix-numworks - Implementation of HAL traits for an app on the NumWorks graphing calculator.
    • This is a separate repository because it's not a pure-Cargo project, rather a Rust static library linked against a supporting C binary.

Hardware

hardware/ contains a KiCad schematic and PCB design.

cad/ contains a 3D-printable case which the PCB can be mounted into, and keycaps for the switches.

Usage

Note: Arithmetic parsing is incomplete! While they are implemented in the arithmetic library, there's no way to input operations other than addition yet.

Base specifiers can appear on either site of a number (xCAFE or CAFEx), whichever you prefer. A number without a base specifier is always interpreted as a decimal.

To change the result base, press the Format Select (->) key and then the base you'd like. Press the Format Select key twice to return to decimal.

To change the arithmetic data type, use the Menu key. Enter a number of bits, and use the +/- keys to choose signed or unsigned respectively.

Shift > Menu shows a menu of meta options, such as entering the bootloader.

Things left to do

  • Faster parsing mode for constant overflow warnings
    • Parsing is slow, largely because of FlexInt::from_unsigned_decimal_string
    • Wouldn't be a problem for evaluation, but is annoying during editing (key-press lag)
    • Either add a faster overall parsing mode just for constant overflow warnings, or versions of number parsing which aren't suitable for evaluation but are fine for warnings (e.g. just use built-in Rust parsing, don't calculate overflow)
  • "Clear" key (shift + del?)
  • Variables
  • Parentheses
  • Scrolling expression input
  • Show result as if unsigned
  • Sleep after inactivity

Parts

79
QtyValueFootprintReferences
30DDiode_SMD:D_SOD-123D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +14
30SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +14
7SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP2, JP3, JP4, JP5, JP6, JP7, JP8
110kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1
12N7002KPackage_TO_SOT_SMD:SOT-23_HandsolderingQ1
1330Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR2
1Conn_01x16Connector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_VerticalJ1
1PicoMCU_RaspberryPi_and_Boards:RPi_Pico_SMD_THU1
1R_PotentiometerPotentiometer_THT:Potentiometer_Alpha_RD901F-40-00D_Single_Vertical_CircularHolesRV1
1SolderJumper_2_BridgedJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP1
1TXB0108PWPackage_SO:TSSOP-20_4.4x6.5mm_P0.65mmU2

The 75 most common of 79 parts.

Questions

How big is the Delta radix rev1 PCB?

It measures 100.6 × 159 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Delta radix rev1 use?

79 parts, built around the TXB0108PW and 2N7002K. 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 Delta radix rev1 KiCad files?

From the AaronC81/delta-radix repository on GitHub, at the commit this page was made from: the board is hardware/rev1/delta_radix_rev1/delta_radix_rev1.kicad_pcb and its schematic hardware/rev1/delta_radix_rev1/delta_radix_rev1.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Delta radix rev1 design in my own project?

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

Similar boards

  • 2 layers171.2 × 72.9 mmAmiga gfxcard old, the printed circuit board in 3D

    Amiga gfxcard old

    mntmn/amiga2000-gfxcard

    MNT VA2000, an Open Source Amiga 2/3/4000 Graphics Card (Zorro II/III), written in Verilog

    34 parts1k
  • 4 layers68.6 × 53.3 mmIcezum, the printed circuit board in 3D

    Icezum

    FPGAwars/icezum

    :star2: IceZUM Alhambra: an Arduino-like Open FPGA electronic board

    218 parts357GPL-3.0
  • 4 layers52.8 × 61.2 mmGameboyCartridgeV2.1, the printed circuit board in 3D

    GameboyCartridgeV2.1

    shilga/rp-gameboy-cartridge-hw

    You should order with ENIG (electroless nickel immersion gold) plating. While the cartridge will work with HASL you will getter contact with ENIG and it is less prone to wearing down.

    81 parts72CERN-OHL-P-2.0
  • 4 layers82.9 × 64.6 mmPico2-MSX, the printed circuit board in 3D

    Pico2-MSX

    Guimli/Pico2-MSX

    MultiROM for MSX based on Pico2

    67 parts9MIT
  • 4 layers162.2 × 100 mmDigital, the printed circuit board in 3D

    Digital

    Dawson-HEP/opentrig

    Open-source acquisition trigger

    438 parts6EPL-2.0
  • 2 layers100 × 165 mmPcb tentacle, the printed circuit board in 3D

    Pcb tentacle

    octoprobe/tentacle

    Open source hardware as part of octoprobe

    979 parts5MIT
  • 2 layers21.6 × 45.7 mmGrove level shifter, the printed circuit board in 3D

    Grove level shifter

    jimmo/microbit-boards

    Adaptors and breakouts for the micro:bit

    14 parts3MIT
  • 2 layers55.3 × 28.1 mmUINIO Signal Translator, the printed circuit board in 3D

    UINIO Signal Translator

    uinika/UINIO-Signal-Translator

    A level signal converter based on TXB0108 and TXS0108.

    20 parts3