Skip to the content
2 layers113 × 182.9 mmTeensyRPN42, the printed circuit board in 3D

It's a PlatformIO project, copied some code from free42 into lib and trying to compile it...

Size
113 × 182.9 mm
Copper layers
2
Thickness
1.67 mm
Parts
105
Nets
131
Pads
451
Tracks, vias
393, 33
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
8 Mar 2024
Updated
12 Feb 2026

Overview

TeensyRPN42 is an open-source printed circuit board by mariosgit, from the mariosgit/TeensyRPN42 repository on GitHub. It is a 2-layer board of 113 × 182.9 mm with 105 parts on 131 nets, routed with 393 tracks and 33 vias.

It is built around the 74AHCT125D and SK6805E-J. Its parts include 39 switches, 26 capacitors, 18 diodes, 5 resistors and 5 connectors. It belongs with the STM32 boards of this library.

Main components

2

README

README.md

What ???

Trying to compile Free42 on a Teensy4.

It's a PlatformIO project, copied some code from free42 into lib and trying to compile it...

Allmost, just some link references to open/unlink/link file operations triggered from somethere ???

Status

Ultraexperimental.

Works with double precision over terminal.

text
╒══════════════════════════════════════════════════════════════════════════════════════════════════════════════════╕
│                                                                                                                  │
│                                                                                                                  │
│             ▄▀▀▀▄       ▄▀▀▀▄ ▄▀▀▀▄ ▄▀▀▀▄ ▀▀▀▀█  ▄█   ▀▀▀▀█ ▄▀▀▀▄   ▄█  ▀▀▀▀█ ▄▀▀▀▄ ▄▀▀▀▄ ▄▄▄▄         ▄█        │
│ ▀▄ ▄▀ ▄       ▄▄▀       ▀▄▄▄█   ▄▄▀  ▄▄▄▀   ▄▀    █     ▄▀  █ ▄▀█ ▄▀ █    ▄▀    ▄▄▀  ▄▄▄▀ █▄▄   ▄▄▄▄    █        │
│   █   ▄     ▄▀     ▄▄      ▄▀ ▄▀    ▄   █  █      █    █    █▀  █ ▀▀▀█▀  █    ▄▀    ▄   █ █▄▄▄          █        │
│   ▀         ▀▀▀▀▀  ▀▀    ▀▀   ▀▀▀▀▀  ▀▀▀   ▀     ▀▀▀   ▀     ▀▀▀     ▀   ▀    ▀▀▀▀▀  ▀▀▀               ▀▀▀       │
│                    ▄█         ▀▀▀▀█ █▀▀▀▀  ▄▀▀  ▄▀▀▀▄ ▀▀▀▀█ ▄▀▀▀▄ █▀▀▀▀ █▀▀▀▀ ▄▀▀▀▄  ▄█   ▀▀▀▀█ ▄▄▄▄         ▄█  │
│ ▀▄ ▄▀ ▄     ▄▄▄▄    █           ▄▀  ▀▀▀▀▄ █▄▄▄   ▄▄▄▀   ▄▀   ▄▄▄▀ ▀▀▀▀▄ ▀▀▀▀▄ ▀▄▄▄▀   █     ▄▀  █▄▄   ▄▄▄▄    █  │
│  ▄▀▄  ▄             █    ▄▄    █    ▄   █ █   █ ▄   █  █    ▄   █ ▄   █ ▄   █ █   █   █    █    █▄▄▄          █  │
│ ▀   ▀              ▀▀▀   ▀▀    ▀     ▀▀▀   ▀▀▀   ▀▀▀   ▀     ▀▀▀   ▀▀▀   ▀▀▀   ▀▀▀   ▀▀▀   ▀                 ▀▀▀ │
╘══════════════════════════════════════════════════════════════════════════════════════════════════════════════════╛
T=0 
Z=0 
Y=2.92371704723␘-1 
X=-1.75637355817␘-1

Software

  • replaced scanf %e %g with own parser.

  • quad precission ?

    • checking free42(swissmicro build process..)

      • gcc111libbid-arm64.a - lib src is packaged with it. And available on github
      • there is scanf stuff in common/core_phloat.cc only when not ARM build ?
      • cmd line:
      text
      arm-none-eabi-g++ -Os -DDM42_OLDHW -I../common -DRELEASE -MMD -Wall -Wno-misleading-indentation -Wno-parentheses -Wno-write-strings -Wno-maybe-uninitialized -Wno-unknown-pragmas -Wno-class-memaccess -Wno-sign-compare -fno-exceptions -fno-rtti -DVERSION="\"3.3.8\"" -DDECIMAL_CALL_BY_REFERENCE=1 -DDECIMAL_GLOBAL_ROUNDING=1 -DDECIMAL_GLOBAL_ROUNDING_ACCESS_FUNCTIONS=1 -DDECIMAL_GLOBAL_EXCEPTION_FLAGS=1 -DDECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS=1 -D_WCHAR_T_DEFINED  -fdata-sections -ffunction-sections -Wl,--gc-sections -ggdb -mthumb -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -DARM -DBCD_MATH -c -o core_phloat.o ../common/core_phloat.cc
    • It builds with the intel lib but it's a bit (way too) large

      text
      ld: region `RAM' overflowed by 798408 bytes
      ld: region `FLASH' overflowed by 2006716 bytes

Hardware

Ideas...

  • STM32 ? F411RE - is dev board (Or F429? 82-168 IOs)

    text
    RAM:   [=         ]   9.7% (used 12704 bytes from 131072 bytes)
    Flash: [======    ]  62.7% (used 328636 bytes from 524288 bytes)

    Connect to Nucleo STLink programmer part:

    • Remove SB13/SB14 for TX/RX connection to Nucleo MCU
    • Connect SWD (SWO not needed) (Open Jumpers to Nucleo MCU)
    • Connect TX->RX Rx->TX
  • Display ???

    • OLED ? 256x64
    • VFD ?? cool but power usage ???
  • Keys

    • K.Choc low profile mechaniks
    • cheap 12mm clickers ?
    • RGB LEDs under keys ? SK6812-E | SK6805
  • Power ?

    • Single Lipo ? Cheap Charger...

Start with a mini board ? Only the top three rows ? Uhm mhm might be tedious to map that, especially the func key top row ?

+*^789
-/.456
ENTER0123

Refs

thomasokken's ingenious https://thomasokken.com/free42 https://github.com/aswild/free42

And code on github: https://github.com/swissmicros/free42

OpenRPNCalc ? on github, uses CubeIDE 🤯 and own code..

Parts

105
QtyValueFootprintReferences
21100nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24, C25 +5
20SW_DPST_x2PCM_Switch_Keyboard_Kailh:SW_Kailh_Choc_V1_1.25uSW53, SW54, SW55, SW56, SW57, SW60, SW61, SW62, SW63, SW64, SW67, SW69, SW70, SW71, SW72, SW74 +4
18SK6805LED_SMD:LED_SK6805_PLCC4_2.4x2.7mm_P1.3mmD1, D2, D3, D4, D5, D6, D7, D10, D11, D12, D13, D14, D15, D16, D17, D18 +2
16SW_DPST_x2PCM_Switch_Keyboard_Kailh:SW_Kailh_Choc_V1_1.00uSW38, SW39, SW40, SW41, SW42, SW43, SW44, SW45, SW48, SW49, SW50, SW51, SW52, SW58, SW65, SW68
4MountingHoleMountingHole:MountingHole_3.2mm_M3_ISO7380H1, H2, H3, H4
3L_Ferrite_SmallInductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolderL1, L2, L3
210kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R5
210uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC4, C5
22.2kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3, R4
220pFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C2
2SW_Push_DualButton_Switch_SMD:SW_SPST_EVQQ2SW1, SW2
11nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC26
1330Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR2
174!AHCT!125Package_TO_SOT_SMD:SOT-353_SC-70-5U3
1Bat JSTConnector_JST:JST_EH_S2B-EH_1x02_P2.50mm_HorizontalJ5
1Conn_01x04Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ2
1Conn_02x08_Odd_EvenRPN42Library:OLED-2.8inch16pinJ3
1Crystal 8MHzCrystal:Crystal_SMD_HC49-SD_HandSolderingY1
1Crystal_GND24Crystal:Crystal_SMD_0603-4Pin_6.0x3.5mm_HandSolderingY3
1MCP1727-3302xSNPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU4
1STM32F405RGTxPackage_QFP:LQFP-64_10x10mm_P0.5mmU2
1SWDConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ1
1SW_DPST_x2PCM_Switch_Keyboard_Kailh:SW_Kailh_Choc_V1_2.00uSW46
1SerialConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ4

Similar boards

  • 2 layers80 × 80 mmWs2812-matrix, the printed circuit board in 3D

    Ws2812-matrix

    aykevl/things

    Collection of microcontroller projects

    1,110 parts81
  • 2 layersEncoder Board, the printed circuit board in 3D

    Encoder Board

    isotope-engineering/RGB-Encoder-Board

    24 parts53
  • 4 layers81.2 × 81.2 mmView base, the printed circuit board in 3D

    View base

    SeedLabs-it/smartknob-hardware

    PCB and CAD files for smartknob devkit

    259 parts47
  • 2 layers155.9 × 107.2 mmFile, the printed circuit board in 3D

    File

    DreaM117er/Paicorea

    Paicorea is a 42 keys split keyboard, with optional way to drive Azoteq TPS43 trackpad.

    74 parts29MIT
  • 2 layers54.2 × 46.5 mmNeoheart v2, the printed circuit board in 3D

    Neoheart v2

    fellettigiacomo/NeoHeart

    Open Source ATtiny816-based heart shaped PCB with Addressable LEDs!

    46 parts21CERN-OHL-S-2.0
  • 2 layers10.2 × 7.6 mmESPesh, the printed circuit board in 3D

    ESPesh

    Charlio99/ESPesh

    One inch ESP32 PCB designed for low power IoT applications.

    42 parts20
  • 2 layers32 × 32 mmTuxmini v03, the printed circuit board in 3D

    Tuxmini v03

    tux-friend/tux-cube

    Physics Sensor Cube Tux³

    83 parts18GPL-3.0
  • 2 layers121.5 × 83 mmNeopixel nano - 384 well, the printed circuit board in 3D

    Neopixel nano - 384 well

    pierrebaillargeon/Microplate-Assistive-Pipetting-Light-Emitter

    Microplate Assistive Pipetting Light Emitter (M.A.P.L.E.)

    780 parts17GPL-3.0

Questions

How big is the TeensyRPN42 PCB?

It measures 113 × 182.9 mm and has 2 copper layers, 1.67 mm thick.

What parts does the TeensyRPN42 use?

105 parts, built around the 74AHCT125D and SK6805E-J. 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 TeensyRPN42 KiCad files?

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

Can I use the TeensyRPN42 design in my own project?

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