

TeensyRPN42
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
274AHCT125D
SOP-14-40℃~+125℃ 1 4 4.3ns@5V,50pF 4.5V~5.5V 40uA 74AHCT 8mA 8mA Schmitt trigger Tri-State Unidirectional SOP-14 Buffers, Drivers, Receivers, Transceivers ROHSNexperiaBuffer/Driver/TransceiverSK6805E-J
SMD,5.4x5mm-40℃~+85℃ 0.5mA 1.6mm 100mcd~200mcd 100ns 120° 1kHz 2000V 3.7V~5.5V 385mcd~697.5mcd 460nm~470nm 5.4mm 50ns 520nm~535nm 5mm 620nm~625nm 800Kbit/s 80mcd~160mcd 80ns Built-in power-on reset circuit Semi-transparent lens SMD,5.4x5mm RGB LEDs(Built-in IC) ROHSOPSCO OptoelectronicsRGB LEDs(Built-In IC)
README
README.mdWhat ???
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.
╒══════════════════════════════════════════════════════════════════════════════════════════════════════════════════╕
│ │
│ │
│ ▄▀▀▀▄ ▄▀▀▀▄ ▄▀▀▀▄ ▄▀▀▀▄ ▀▀▀▀█ ▄█ ▀▀▀▀█ ▄▀▀▀▄ ▄█ ▀▀▀▀█ ▄▀▀▀▄ ▄▀▀▀▄ ▄▄▄▄ ▄█ │
│ ▀▄ ▄▀ ▄ ▄▄▀ ▀▄▄▄█ ▄▄▀ ▄▄▄▀ ▄▀ █ ▄▀ █ ▄▀█ ▄▀ █ ▄▀ ▄▄▀ ▄▄▄▀ █▄▄ ▄▄▄▄ █ │
│ █ ▄ ▄▀ ▄▄ ▄▀ ▄▀ ▄ █ █ █ █ █▀ █ ▀▀▀█▀ █ ▄▀ ▄ █ █▄▄▄ █ │
│ ▀ ▀▀▀▀▀ ▀▀ ▀▀ ▀▀▀▀▀ ▀▀▀ ▀ ▀▀▀ ▀ ▀▀▀ ▀ ▀ ▀▀▀▀▀ ▀▀▀ ▀▀▀ │
│ ▄█ ▀▀▀▀█ █▀▀▀▀ ▄▀▀ ▄▀▀▀▄ ▀▀▀▀█ ▄▀▀▀▄ █▀▀▀▀ █▀▀▀▀ ▄▀▀▀▄ ▄█ ▀▀▀▀█ ▄▄▄▄ ▄█ │
│ ▀▄ ▄▀ ▄ ▄▄▄▄ █ ▄▀ ▀▀▀▀▄ █▄▄▄ ▄▄▄▀ ▄▀ ▄▄▄▀ ▀▀▀▀▄ ▀▀▀▀▄ ▀▄▄▄▀ █ ▄▀ █▄▄ ▄▄▄▄ █ │
│ ▄▀▄ ▄ █ ▄▄ █ ▄ █ █ █ ▄ █ █ ▄ █ ▄ █ ▄ █ █ █ █ █ █▄▄▄ █ │
│ ▀ ▀ ▀▀▀ ▀▀ ▀ ▀▀▀ ▀▀▀ ▀▀▀ ▀ ▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀ ▀ ▀▀▀ │
╘══════════════════════════════════════════════════════════════════════════════════════════════════════════════════╛
T=0
Z=0
Y=2.92371704723␘-1
X=-1.75637355817␘-1Software
-
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.cconly 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 ?
| + | * | ^ | 7 | 8 | 9 |
| - | / | . | 4 | 5 | 6 |
| ENTER | 0 | 1 | 2 | 3 |
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| Qty | Value | Footprint | References |
|---|---|---|---|
| 21 | 100nF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23, C24, C25 +5 |
| 20 | SW_DPST_x2 | PCM_Switch_Keyboard_Kailh:SW_Kailh_Choc_V1_1.25u | SW53, SW54, SW55, SW56, SW57, SW60, SW61, SW62, SW63, SW64, SW67, SW69, SW70, SW71, SW72, SW74 +4 |
| 18 | SK6805 | LED_SMD:LED_SK6805_PLCC4_2.4x2.7mm_P1.3mm | D1, D2, D3, D4, D5, D6, D7, D10, D11, D12, D13, D14, D15, D16, D17, D18 +2 |
| 16 | SW_DPST_x2 | PCM_Switch_Keyboard_Kailh:SW_Kailh_Choc_V1_1.00u | SW38, SW39, SW40, SW41, SW42, SW43, SW44, SW45, SW48, SW49, SW50, SW51, SW52, SW58, SW65, SW68 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3_ISO7380 | H1, H2, H3, H4 |
| 3 | L_Ferrite_Small | Inductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolder | L1, L2, L3 |
| 2 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R5 |
| 2 | 10u | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C4, C5 |
| 2 | 2.2k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R3, R4 |
| 2 | 20pF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C1, C2 |
| 2 | SW_Push_Dual | Button_Switch_SMD:SW_SPST_EVQQ2 | SW1, SW2 |
| 1 | 1nF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C26 |
| 1 | 330 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R2 |
| 1 | 74!AHCT!125 | Package_TO_SOT_SMD:SOT-353_SC-70-5 | U3 |
| 1 | Bat JST | Connector_JST:JST_EH_S2B-EH_1x02_P2.50mm_Horizontal | J5 |
| 1 | Conn_01x04 | Connector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_Vertical | J2 |
| 1 | Conn_02x08_Odd_Even | RPN42Library:OLED-2.8inch16pin | J3 |
| 1 | Crystal 8MHz | Crystal:Crystal_SMD_HC49-SD_HandSoldering | Y1 |
| 1 | Crystal_GND24 | Crystal:Crystal_SMD_0603-4Pin_6.0x3.5mm_HandSoldering | Y3 |
| 1 | MCP1727-3302xSN | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U4 |
| 1 | STM32F405RGTx | Package_QFP:LQFP-64_10x10mm_P0.5mm | U2 |
| 1 | SWD | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J1 |
| 1 | SW_DPST_x2 | PCM_Switch_Keyboard_Kailh:SW_Kailh_Choc_V1_2.00u | SW46 |
| 1 | Serial | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J4 |
Similar boards
- 2 layers80 × 80 mm

- 2 layers

- 4 layers81.2 × 81.2 mm

- 2 layers155.9 × 107.2 mm

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 mm

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 mm

- 2 layers32 × 32 mm

- 2 layers121.5 × 83 mm

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.