Skip to the content
PCBKitNew board
2 layers99.1 × 49.9 mmRc fabgl, the printed circuit board in 3D

FabGL terminal board for RC2014

Size
99.1 × 49.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
47
Nets
113
Pads
245
Tracks, vias
319, 41
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
25 Nov 2020
Updated
18 Jan 2021

Overview

Rc fabgl is an open-source printed circuit board by PickledDog, from the PickledDog/rc-fabgl repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 99.1 × 49.9 mm with 47 parts on 113 nets, routed with 319 tracks and 41 vias.

It is built around the ESP32-WROVER-E(4MB). Its parts include 20 resistors, 7 capacitors, 5 connectors, 3 ICs and 2 transistors. It belongs with the radio and wireless boards and the ESP32 boards of this library.

Main components

1

README

README.md

rc-fabgl

FabGL terminal board for RC2014 Assembled PD104

Overview

This is my take on the FabGL dev kit, designed into the form factor of a RC2014 card with the intention of implementing a serial terminal.

FabGL

FabGL is an excellent graphics/UI/Human Interface library for the Espressif ESP32. It provides VGA display generation, PS2 keyboard/mouse support, audio, and terminal emulation abilities. This gives us everything we need to build a serial terminal (and even provides examples to do just this). In addition, the ESP32 is first and foremost a WiFi module, opening up the possibility of "dial" in/out cabibilities.

The ESP32

The common ESP32-WROOM module starts to run a bit short on memory when implementing a terminal, so the ESP32-WROVER is used instead - this adds an extra 8MB of RAM for us to use. The module is hooked up as described in Espressif's datasheet, with RC reset circuit and appropriate bypass caps.

Functions provided

The standard dev kit schematic provides VGA, PS/2 keyboard, PS/2 mouse and line-level audio. The mouse port is removed, audio is sent directly into a piezo buzzer, and level-shifted serial ports are added to connect to the 5V serial ports of RC2014 systems. In addition, improvements have been made to the other peripheral connections.

VGA

120Ω resistors are added to terminate the VGA connection (and limit the HSync and VSync pins). The design is similar to the Parallax Propeller VGA breakout. The resistor values were picked to stay within the drive capabilities of the ESP32 (which is why the correct 75Ω resistors weren't an option).

PS/2 keyboard

The resistor PS/2 level-shifters are replaced with MOSFET shifters.

Audio

Audio won't be used for much more than a terminal bell - as such, it's just connected to a buzzer. Make sure a piezo buzzer is used - the ESP32 can't drive a dynamic one without help.

Serial ports

Serial ports are connected to the remaining pins on the ESP32. There are enough pins to implement two serial ports, with RTS/CTS flow control on the second port. Incoming 5V signals are shifted down to 3.3V with a 74LV125.

Programming port

The standard RX/TX pins of the ESP32 are broken out to a standard "FTDI-style" header for programming. RESET and BOOT are connected to buttons on the top of the card.

Bus connection

The terminal board uses the RC2014 bus for little more than power and to connect to the bus serial ports. Jumpers are provided to disconnect the ports from the bus as needed. The Ser1 interface is provided to the bus only, while Ser2 is available on both the (Enhanced) bus and an FTDI-style header. Only the header provides the RTS & CTS pins. Since Ser2 is the only thing on the Enhanced bus, consider the wider connector optional - a cheaper 1x40 header can be used in place of the 2x40 one (you'll need a 6-pin Dupont cable to hook up Ser2).

Initial setup

The ESP32 module will need to be programmed before use - this is done using an FTDI adapter on the assembled board, via the Prog port. If you don't have an FTDI adapter, they can be found on eBay. I don't have a firmware bundle made up for this yet, so for now consider this a dev kit for hacking (as opposed to a plug-and-play terminal board). To get started with FabGL, check out Fabrizio Di Vittorio's YouTube channel and the FabGL reference. Compiling FabGL and its examples requires the Arduino IDE. Once Arduino is up and running, follow the instructions in Fabrizio's video to add the ESP32 board package and FabGL library. Be sure to select ESP32 Wrover Module from Tools → Board → ESP32 Arduino. Examples are found in File → Examples → FabGL → VGA.

Part selection

Bill Of Materials and part references are below. If you want the 60-pin RC2014 Enhanced bus connector, you'll need to make it from a 2x40-pin right-angle header and pull out half of the pins from the top row (needle-nose pliers work well). I recommend using gold-plated header for this - I use these ones from Pololu or Sparkfun. The jumper headers can be snapped from regular (or double-row) breakaway header, for which eBay is substantially cheaper; the Mouser listings are provided for convenience.

The specified parts are just the ones I used, and can be substituted as needed - Mouser links provided for convenience and reference.

ReferenceValueQtyMouser link
BZ1Piezo buzzer1TDK PS1240P02BT
C14.7μF ceramic1TDK FG18X5R1E475KRT06
C21μF ceramic1TDK FG18X5R1H105KRT06
C322μF electrolytic1KEMET ESS226M016AC2AA
C410μF ceramic1TDK FG18X5R1E106MRT06
C5-C7100nF ceramic3KEMET C315C104M5U5TA
J1/22x40 right-angle header13M 2380-5121TG
J32x6 right-angle header1Amphenol 10129382-912002BLF
J46-pin Mini-DIN socket1Kycon KMDGX-6S-BS
J5D-Sub HD-15 Female1TE 2311763-1
JP1/22x2 header1Amphenol 10129381-904002BLF
JP3/4/5/62x4 header1Amphenol 10129381-908002BLF
Q1, Q22N7000 enh N-MOSFET2ON Semi 2N7000
R110kΩ resistor1Yageo CFR-25JT-52-10K
R2-R5100kΩ resistor4Yageo CFR-25JT-52-100K
R6-R94k7Ω resistor4Yageo CFR-25JT-52-4K7
R10-R14120Ω resistor5Yageo MFR-25FTF52-120R
R15-R17261Ω resistor3Yageo MFR-25FRF52-261R
R18-R20510Ω resistor3Yageo MFR-25FTE52-510R
SW1, SW2Right-angle tact sw 3.9mm2C&K PTS645VL392LFS
U1MCP1825S-3301Microchip MCP1825ST-3302E/DB
U2ESP32-WROVER-E1Espressif ESP32-WROVER-E(M213EH3264PH3Q0)
U374LV1251TI SN74LV125AN

Parts

47
QtyValueFootprintReferences
5120RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR10, R11, R12, R13, R14
4100kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R3, R4, R5
44k7Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR6, R7, R8, R9
30.1uFCapacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mmC5, C6, C7
3261RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR15, R16, R17
3510RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR18, R19, R20
22N7000Package_TO_SOT_THT:TO-92Q1, Q2
1Mounting_Holes:MountingHole_3.2mm_M3
110kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
110uFCapacitor_THT:C_Disc_D3.4mm_W2.1mm_P2.50mmC4
11uFCapacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mmC2
122uFCapacitor_THT:CP_Radial_D5.0mm_P2.00mmC3
14.7uFCapacitor_THT:C_Disc_D3.4mm_W2.1mm_P2.50mmC1
174LV125Package_DIP:DIP-14_W7.62mm_LongPadsU3
1BootButton_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx39-2LFSSW2
1Bus RXConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP4
1Bus RX2Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP6
1Bus TXConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP3
1Bus TX2Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP5
1BuzzerBuzzer_Beeper:Buzzer_TDK_PS1240P02BT_D12.2mm_H6.5mmBZ1
1ESP32-WROVER-Erc-fabgl:ESP32WROVEREU2
1Keyboardrc-fabgl:Mini-DIN-6-SocketJ4
1MCP1825SPackage_TO_SOT_SMD:SOT-223-3_TabPin2U1
1ProgConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP1
1RC2014Connector_PinHeader_2.54mm:PinHeader_1x39_P2.54mm_VerticalJ1
1RC2014_EnhConnector_PinHeader_2.54mm:PinHeader_1x20_P2.54mm_VerticalJ2
1ResetButton_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx39-2LFSSW1
1Ser2Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJP2
1SerialConnector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_HorizontalJ3
1VGArc-fabgl:DSUB-15-HD_Female_Horizontal_P2.29x2.54mm_HousedJ5

Questions

How big is the Rc fabgl PCB?

It measures 99.1 × 49.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Rc fabgl use?

47 parts, built around the ESP32-WROVER-E(4MB). 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 Rc fabgl KiCad files?

From the PickledDog/rc-fabgl repository on GitHub, at the commit this page was made from: the board is rc-fabgl.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Rc fabgl design in my own project?

Its repository publishes it under the Apache-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers28 × 80 mmESP32-PoE Rev M, the printed circuit board in 3D

    ESP32-PoE Rev M

    OLIMEX/ESP32-POE

    ESP32 IoT development board with 100Mb Ethernet and 802.3 Power Over Ethernet (POE)

    142 parts415Apache-2.0
  • 6 layers83.5 × 56 mmEspiff v3 1, the printed circuit board in 3D

    Espiff v3 1

    MDCservice/EsPiFF

    An ESP32 in the Raspberry Pi form factor

    172 parts223GPL-3.0
  • 2 layers84.2 × 52 mmPicoPico, the printed circuit board in 3D

    PicoPico

    DavidVentura/PicoPico

    Pico-8 Player

    57 parts141
  • 2 layers80 × 50 mmThermal Camera, the printed circuit board in 3D

    Thermal Camera

    Circuit-Digest/MLX90640-Thermal-Camera

    An Open Source Thermal Imaging IR camera that you can build yourserlf

    66 parts94
  • 4 layers239.5 × 239.5 mmBroadcast clock, the printed circuit board in 3D

    Broadcast clock

    espena/broadcast-clock

    Digital precision studio/broadcast masterclock with WiFi configuration, acts as local NTP server with accurate GPS time sync.

    440 parts28GPL-3.0
  • 2 layers58.8 × 55.7 mmAiO i2s DAC, the printed circuit board in 3D

    AiO i2s DAC

    martinroger/ipodesp32

    An iPod emulator for 2006-2013 BMW Mini Coopers that need Bluetooth

    102 parts24MIT
  • 2 layers82 × 82 mmFtduino32, the printed circuit board in 3D

    Ftduino32

    harbaum/ftduino32

    ESP32 based variant of the ftDuino

    157 parts5
  • 4 layers99.5 × 65 mmEcho, the printed circuit board in 3D

    Echo

    rh1tech/echo

    Echo: ESP32-Based VGA Board

    181 parts4