

VERA MODULE RBL
[WORK IN PROGRESS - NOT WORKING] VERA video/audio module for ATARI XL/XE (PBI / cartridge, ESP32-S3 + iCE40)
- Size
- 143 × 162.5 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 219
- Nets
- 245
- Pads
- 916
- Tracks, vias
- 2,709, 572
- Pours
- 1,350
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 28 Jul 2025
- Updated
- 4 Nov 2026
Overview
VERA MODULE RBL is an open-source printed circuit board by gianlucarenzi, from the gianlucarenzi/Vera-Module-RBL-XE repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 143 × 162.5 mm with 219 parts on 245 nets, routed with 2,709 tracks and 572 vias.
It is built around the ESP32-S3FN8, ICE40UP5K-SG48ITR50 and W25Q16JVSNIQ, with the WM8524CGEDT, MAX40200AUK and SN74LVC00AD among its other parts. Its parts include 77 resistors, 69 capacitors, 22 ICs, 7 connectors and 3 transistors. It belongs with the retro computing and games and audio and music boards and the ESP32 and FPGA and CPLD boards of this library.
Main components
12ESP32-S3FN8
QFN-56-EP(7x7)Watchdog reset、Software reset、Built-in general-purpose timer、Built-in temperature sensor、Touch function、True random number generator (TRNG)、Storage encryption、Infrared remote control QFN-56-EP(7x7) Microcontrollers (MCU/MPU/SOC) ROHSEspressif SystemsMicrocontrollers (MCU/MPU/SOC)ICE40UP5K-SG48ITR50
QFN-48QFN-48 Programmable Logic Device (CPLDs/FPGAs) ROHSLatticeProgrammable Logic Device (CPLDs/FPGAs)W25Q16JVSNIQ
SOIC-8-40℃~+85℃ 100,000 cycles 10uA 120ms@(32KB) 133MHz 16Mbit 2.7V~3.6V 20 Years 400us SPI SOIC-8 NOR FLASH ROHSWinbond ElecNOR FLASHWM8524CGEDT
TSSOP-16-40℃~+85℃ 1.9mA 192kHz 2 2.97V~3.63V 24 Audio Decoder Digital filtering、Power-down mode I2S TSSOP-16 Digital to Analog Converters (DAC) ROHSCirrus LogicADCs/DACs - Special PurposeMAX40200AUK
SOT23-5Ultra-Tiny Micropower, 1A Ideal Diode with Ultra-Low Voltage DropMaxim Integrated (Analog Devices)UncategorisedSN74LVC00AD
SOIC-14-40℃~+125℃ 1.65V~3.6V 1.7V~2V 1uA 2 24mA 24mA 2V 4 4.1ns@3.3V,50pF 74LVC Series 800mV 800mV NAND Gate SOIC-14 Logic Gates ROHSTexas InstrumentsLogic GatesAMS1117-1.2
SOT-223-40℃~+125℃@(Tj) 0.003%Vout 1 1.2V 1.3V@(1A) 10mA 18V 1A 60dB@(120Hz) Fixed Over Current Protection Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSUMWVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsAMS1117-3.3
SOT-223-40℃~+125℃ 0.003%Vout 1 1.1V@(800mA) 15V 1A 3.3V 5mA 72dB@(120Hz) Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSAdvanced Monolithic SystemsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsCD4011BE
DIP-14-55℃~+125℃ 1.5V~4V 1uA 2 3.4mA 3.4mA 3.5V~11V 3V~18V 4 4.95V、9.95V、14.95V 4000B Series 50mV 90ns@15V,50pF NAND Gate DIP-14 Logic Gates ROHSTexas InstrumentsLogic GatesL7805
TO-220ST0℃~+125℃@(Tj) 1 1.2A 20V 2V@(1A) 42uV 500uA 5V 73dB@(120Hz) Fixed Positive Short Circuit Protection TO-220ST Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSOSENVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsSN74HCT04DR (LX)
SOP-14InverterslingxingicSN74LVC1G07DBVR
SOT-23-5-40℃~+125℃ 1 1 1.65V~5.5V 10uA 24mA 74LVC 800mV 8ns@3.3V,50pF SOT-23-5 Logic GatesTECH PUBLICLogic Gates
README
README.mdVERA Module RBL-XE
🌐 English | 🌐 Italiano
[!WARNING] WORK IN PROGRESS — NOT WORKING. This project is under development and does not work yet. The board has not been built or tested; firmware (ESP32, FPGA) and documentation have only been checked in simulation or on paper and may contain errors. Do not manufacture the PCB or rely on this design yet.
📋 Table of Contents
🔍 Overview
The VERA Module RBL-XE is a sophisticated FPGA-based audio and video expansion card designed specifically for ATARI XE computers. This module brings modern graphics and audio capabilities to classic ATARI systems through the PBI (Parallel Bus Interface) protocol connectors.
What is VERA?
VERA (Video Enhanced Retro Adapter) is originally designed for the Commander X16 computer but has been adapted for ATARI systems. It provides:
- Advanced Graphics: Multiple video layers, sprites, and high-resolution modes
- Enhanced Audio: Multi-channel digital audio with PCM and PSG capabilities
- Modern Connectivity: VGA output, SD card storage, and USB programming
- Retro Compatibility: Integration with ATARI software with simple drivers
✨ Features
🎨 Graphics Capabilities
Video Output
- VGA Output: 640x480 @ 60Hz with analog RGB signals
- Multiple Layers: Background, foreground, and sprite layers
- Color Depth: 256 colors from a palette of 4096
- Sprites: Hardware-accelerated sprite engine
- Scrolling: Smooth horizontal and vertical scrolling
Audio Features
- Digital Audio: High-quality PCM audio output
- Multi-channel: Stereo audio
- Audio Codec: WM8524 for professional audio quality
- 3.5mm Jack: Standard audio output connector
🔗 System Integration
ATARI Compatibility
- PBI Interface: Direct connection to ATARI XE systems
- Memory Mapping: $D1XX-$DFXX address space
- Bus Decoder: Full software address decoding in ESP32 — A0–A15 sampled every PHI2 cycle, no external hardware decoder required
- Power Management: Efficient 5V to 3.3V/1.2V conversion
Storage & Programming
- SD Card Slot: Micro SD for data storage and ROM loading
- SPI Flash: 16Mbit W25Q16 for FPGA configuration
- USB Programming: CH340 USB-to-serial for easy updates
- SPI: Direct FPGA programming interface
⚙️ Technical Specifications
Core Specifications
| Component | Specification |
|---|---|
| FPGA | Lattice ICE40UP5K-SG48ITR |
| Microcontroller | ESP32-S3FN8 |
| Flash Memory | W25Q16JVSNIQ (16Mbit) |
| Audio Codec | WM8524CGEDT |
| USB Interface | CH340T |
| Power Regulators | AMS1117-3.3V, AMS1117-1.2V, L7805 |
| Crystal (VERA board) | 25 MHz ECS-2033-250-BN (ICE40UP5K reference clock) |
| Crystal (ESP32-S3) | 40 MHz external — required; XTAL_P (QFN56 pin 54) / XTAL_N (pin 53) |
| PCB Layers | 4-layer (Signal/Power/GND/Signal) |
| Board Size | TBD mm x TBD mm |
Electrical Characteristics
| Parameter | Min | Typ | Max | Unit |
|---|---|---|---|---|
| Supply Voltage | 4.5 | 5.0 | 5.5 | V |
| Current Consumption | - | 800 | 1200 | mA |
| Operating Temperature | -10 | 25 | 70 | °C |
| VGA Output Impedance | - | 75 | - | Ω |
| Audio Output Level | - | 2.0 | - | Vrms |
🔧 Hardware Components
Main Processing Units
FPGA - ICE40UP5K
- Logic Elements: 5,280 LUTs
- Memory: 120 Kbit BRAM, 1 Mbit SPRAM
- I/O Pins: 39 user I/O
- Package: QFN-48 (7x7mm)
- Programming: SPI configuration
ESP32-S3FN8
- CPU: Dual-core Xtensa LX7 @ 240 MHz
- Memory: 8 MB in-package Quad SPI flash, 512 KB SRAM
- Connectivity: Wi-Fi 802.11 b/g/n, Bluetooth 5 LE
- GPIO: 45 total (38 usable), all bidirectional
- Package: QFN-56 (7×7 mm)
- Crystal: requires an external 40 MHz crystal on dedicated analog pins XTAL_P (QFN56 pin 54) and XTAL_N (pin 53) — mandatory for PLL startup; see PIN-MAPPING.md § 5
- Role: Full software 6502-bus controller — reads A0–A15, PHI2, R/W every cycle and drives EXTSEL_N, DEV_SEL_N, MPD in real time; handles PBI ($D1xx) and CCTL ($D5xx) in a single unified firmware
- Timing: hot loop on Core 0 at max FreeRTOS priority (Core 1 only prints the log on Serial), table-driven page decode; control signals asserted via Dedicated GPIO Xtensa TIE instructions (
ee.get_gpio_in/ee.wr_mask_gpio_out, 1 CPU cycle) within the 279 ns PHI2-high window of the 1.79 MHz 6502 clock
Interface Components
Audio System
- Codec: WM8524CGEDT (24-bit, 192kHz)
- Interface: From FPGA digital audio bus
- Output: 3.5mm stereo jack
- SNR: >100dB
Video System
- Output: 15-pin VGA connector
- Resolution: 640x480 @ 60Hz
- Colors: 8-bit RGB (256 colors)
- Sync: Separate H/V sync signals
🖼️ Board Preview
3D Renderings
Top View
Top side showing main components and connectors
Bottom View
Bottom side with additional components
Cartridge Adapter
Optional cartridge interface adapter
Board Dimensions
- Length: TBD mm
- Width: TBD mm
- Thickness: 1.6mm (4-layer PCB)
- Mounting: Compatible with ATARI XE CART + ECI slots
- Connectors: Flat for space efficiency. It needs a custom 3D printed case
📐 PCB Layers
Layer Stack-up
Layer 1 - Top Copper (F.Cu)
Component placement and signal routing
Layer 2 - Power Plane (POWER)
5V, 3.3V, and 1.2V power distribution
Layer 3 - Ground Plane (GND)
Solid ground plane for signal integrity
Layer 4 - Bottom Copper (B.Cu)
Additional signal routing and components
🔌 Connectors & Interfaces
External Connections
ATARI XE Interface
- Cartridge Connector: Classic Cartridge Edge Connector 30 pin
- ECI Slot: Enhanced Cartridge Interface 14 pin
- Address Range: $D1XX-$DFXX
- Signals: Data bus, address bus, control signals
Video Output (J2)
| Pin | Signal | Description |
|---|---|---|
| 1-3 | RGB | Red, Green, Blue analog signals |
| 13-14 | H/V Sync | Horizontal/Vertical sync |
| 6-10 | GND | Ground connections |
| 11-12 | Audio L/R | Stereo audio output |
Storage Interfaces
- SD Card Slot (J3): Micro SD card interface
- SPI Flash: On-board 16Mbit storage
- USB Port (J4): Programming and data transfer
⚠ Program the board only when it is unplugged from the Atari. The board 5 V rail is tied to the Atari +5 V (cartridge pin 13, ECI pin 7) without a diode: with the USB cable (J4) or the DC jack (J5) connected while the board is in the Atari, the board would power a switched-off Atari or run in parallel with its supply. The same applies to the serial monitor: inside the Atari use a USB adapter without VBUS. See
VERA-ATARI-HW-REQUIREMENTS.md§2.11.
Programming Interfaces
ICEPROG Connector (J6)
| Pin | Signal | Function |
|---|---|---|
| 1 | 5V | Power supply |
| 2 | FPGA_CDONE/PULL-UP | FPGA Programmed |
| 3 | FPGA_RESET | FPGA Reset |
| 4 | MISO | SPI data in |
| 5 | MOSI | SPI data out |
| 6 | SCK | SPI clock |
| 7 | SS | SPI select |
| 8 | GND | Ground |
Reset & Control
- Reset Button (SW1): ESP32 system reset
- DIP Switch (SW2): Configuration options
- Status LEDs: Power, programming, activity indicators
⚡ Power Requirements
Power Distribution
Power Rails
| Rail | Voltage | Current | Components |
|---|---|---|---|
| 5V | 5.0V ± 5% | 200mA | Input from ATARI, USB |
| 3.3V | 3.3V ± 3% | 400mA | ESP32, logic, interfaces |
| 1.2V | 1.2V ± 3% | 300mA | FPGA core voltage |
Power Sources
- ATARI PBI: Primary 5V supply from computer
- USB: Alternative 5V for programming/testing
- External: Optional external 5V supply (J5)
Power Protection
- Schottky Diodes: Reverse polarity protection
- Ferrite Beads: EMI filtering
- Decoupling: Extensive capacitor network
- Current Limiting: Overcurrent protection
🔨 Assembly Instructions
Component Assembly
Assembly Order
- SMD Components: Start with smallest components (0603, 0805)
- ICs: Place all integrated circuits
- Connectors: Install all external connectors
- Through-hole: Add any remaining THT components
- Testing: Verify power rails before first power-on
Special Considerations
- FPGA: Use proper ESD precautions
- BGA Components: Requires professional assembly
- Thermal Management: Ensure adequate cooling
- Impedance Control: Maintain 50Ω for high-speed signals
Testing & Validation
Power-On Tests
- Visual Inspection: Check for shorts, proper orientation
- Power Rails: Verify all voltages within tolerance
- Clock Signals: Confirm oscillator operation
- Communication: Test SPI, I2C, UART interfaces
Functional Tests
- FPGA Programming: Load test bitstream
- Video Output: Verify VGA signal generation
- Audio Output: Test audio codec functionality
- ATARI Interface: Confirm PBI communication protocol
📦 Bill of Materials
Component Categories
Major Components
- 1x ICE40UP5K-SG48ITR FPGA
- 1x ESP32-S3FN8 Microcontroller
- 1x W25Q16JVSNIQ SPI Flash
- 1x WM8524CGEDT Audio Codec
- 1x CH340T USB Interface
Passive Components
- 23x 1µF Capacitors (1206)
- 20x 100nF Capacitors (1206)
- 6x 10µF Capacitors (1206)
- Various Resistors (0805/1206)
- 1x 25 MHz Crystal Oscillator (VERA board — ICE40UP5K reference clock)
- 1x 40 MHz Crystal + 2×10 pF load capacitors (ESP32-S3 — mandatory)
Connectors
- 1x 15-pin VGA Connector
- 1x Micro SD Card Slot
- 1x USB Type-C Connector
- 1x 3.5mm Audio Jack
- 1x 8-pin Programming Header
Cost Analysis
| Category | Estimated Cost | Percentage |
|---|---|---|
| FPGA | $15-20 | 35% |
| ESP32 | $8-12 | 20% |
| Connectors | $5-8 | 15% |
| Passives | $3-5 | 10% |
| PCB | $8-12 | 20% |
| Total | $39-57 | 100% |
Costs are estimates for small quantity production
💻 Programming & Configuration
FPGA Programming
Programming Methods
- USB/Serial: Using FTDI 232H adapter interface with iceprog
- SPI Direct: Direct SPI flash programming
Programming Steps
# Install icestorm toolchain
sudo apt install fpga-icestorm
# Program FPGA via USB (The FPGA bitstream is not provided!)
iceprog vera_module.bin
# Verify programming
iceprog -cDevelopment Tools
- IceStorm: Open-source FPGA toolchain
- Yosys: Verilog synthesis
- NextPNR: Place and route
- KiCad: PCB design and layout
ESP32 Configuration
ESP32 Firmware
The ESP32-S3FN8 (Core 0 hot loop, Core 1 serial log) handles:
- Startup sync: ARESET and CRESET asserted LOW immediately in
setup()(beforeSerial.begin).MonitorTaskreleases CRESET, polls CDONE until the ICE40UP5K bitstream is loaded (< 100 ms typical, 5 s timeout), then releases ARESET — Atari starts with bus and FPGA already ready - Bus Decoding: Full software decode of A0–A15 sampled on every PHI2 rising edge — no page ambiguity
- Dedicated GPIO: Control signals (EXTSEL_N, DEV_SEL_N, MPD) asserted in a single Xtensa TIE instruction (
ee.wr_mask_gpio_out, 1 CPU cycle) within the 279 ns PHI2-high window - Data Bus Drive (PBI mode only): D0–D7 driven via
GPIO.outfor ROM ($D800–$DFFF) and RAM ($D600–$D7FF) reads; FPGA drives the bus in CCTL mode - Debugging: UART0 on GPIO43 (TX) / GPIO44 (RX), 115200 baud
The operating mode is selected at compile time via VERA_BOARD_IS_PBI in main.cpp:
VERA_BOARD_IS_PBI | Mode | Active ranges | Selection latch |
|---|---|---|---|
1 (default) | PBI | $D100–$D1FF, $D600–$D7FF, $D800–$DFFF | write 0x80 to $D1FF |
0 | CCTL | $D500–$D5FF | write 0x80 to $D5FF |
The RAMbo 256 KB emulator is always compiled in and enabled at runtime via GPIO 3
(PIN_RAMBO_EN, QFN56 pin 8) — no recompilation needed:
| GPIO 3 at boot | Effect |
|---|---|
| Pull-up 10 kΩ → VCC (HIGH) | RAMbo enabled — 256 KB bank-switched at $4000–$7FFF; PORTB ($D301) bit 4 selects active/inactive |
| Pull-down 10 kΩ → GND (LOW) | RAMbo disabled — $4000–$7FFF not intercepted |
Works in both PBI and CCTL mode. The hot loop snoops both PBCTL ($D303) and
PORTB ($D301): writes to $D301 update the bank-selection register only when
PBCTL bit 2 = 1 (output register selected). When bit 2 = 0, $D301 addresses the PIA
6520 DDR and the write is ignored for bank-switching purposes. PORTB initialises to
0xFF (RAME = 1, RAMbo inactive); PBCTL to 0x00 (bit 2 = 0, DDR exposed).
Passive snooping vs. active driving — no conflict with the physical 6520. The real
6520 PIA chip remains fully active on the Atari motherboard and responds to $D301/$D303
normally. The ESP32 does not replace the 6520 — it only snoops those bus cycles
(observes without driving). It only actively drives the data bus and asserts EXTSEL_N
for the $4000–$7FFF window, where the 6520 is not mapped. PBCTL tracking is necessary
precisely because the snooping is passive: from the bus, a DDR write and an Output Register
write to $D301 are indistinguishable — PBCTL state is the only way to tell them apart.
Programming ESP32
The firmware is built with PlatformIO (install via pip install platformio):
# Build firmware (edit VERA_BOARD_IS_PBI in main.cpp before building)
pio run -e esp32s3fn8
# Flash firmware — connect UART adapter to GPIO43/44
pio run -e esp32s3fn8 --target uploadNote: USB CDC is disabled because GPIO 19 (USB D−) and GPIO 20 (USB D+) are reused as address lines A7 and A8. Use an external UART adapter on GPIO 43/44.
📁 Project Structure
The design workflow, from the schematic to the JLCPCB order (stock check, library update, ERC, netlist, PCB and net classes, DRC, output_job.sh, files to send), is described in WORKFLOW.md (in Italian, also as PDF).
Repository Organization
Vera-Module-RBL-XE/
├── 📄 README.md # This documentation
├── 📄 WORKFLOW.md # Design workflow, schematic to JLCPCB order
├── 📄 PIN-MAPPING.md # ESP32-S3 / level-shifter pin mapping
├── 📄 VERA-ATARI-HW-REQUIREMENTS.md # Hardware requirements & bring-up plan (from driver/emulator work)
├── 📄 LICENSE # GPL v3 license
├── ⚙️ VERA-MODULE-RBL.pro # KiCad project file
├── 📄 VERA-MODULE-RBL.sch # Main schematic
├── 🔧 VERA-MODULE-RBL.kicad_pcb # PCB layout
├── 📄 VERA-MODULE-RBL.csv # Bill of materials
├── 🐍 jlcpcb-check-bom.py # BOM processing script
├── 📁 images/ # Board images and renders
│ ├── 🖼️ VERA-MODULE-RBL-TOP.png
│ ├── 🖼️ VERA-MODULE-RBL-BOTTOM.png
│ ├── 🖼️ F.Cu-L1.png # PCB layer images
│ ├── 🖼️ POWER-L2.png
│ ├── 🖼️ GND-L3.png
│ └── 🖼️ B.Cu-L4.png
├── 📁 production/ # Manufacturing files
│ ├── 📄 *.gbl, *.gtl # Gerber files
│ ├── 📄 *.drl # Drill files
│ └── 📄 *.gbrjob # Job files
├── 📁 ibom/ # Interactive BOM
│ └── 🌐 ibom.htmlHardware notes (read before bring-up)
VERA-ATARI-HW-REQUIREMENTS.md— what the VERA FPGA requires from the bus, open points on this board (U19 output enable, WR hold time, push-pull IRQ), the gating logic for the data-bus transceiver output enable, reset/configuration sequence and the bring-up test plan.
Design Files
KiCad Files
- Schematic: Multi-sheet hierarchical design
- PCB Layout: 4-layer board with controlled impedance
- 3D Models: Custom component models
- Footprints: Custom connector footprints
Manufacturing Files
- Gerber Files: Industry-standard PCB fabrication
- Drill Files: NC drill and via specifications
- Pick & Place: SMT assembly coordinates
- BOM: Component specifications with LCSC part numbers
🤝 Contributing
Development Guidelines
Contributing Process
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Contribution Areas
- Hardware Design: PCB layout improvements
- Firmware: ESP32 and FPGA code
- Documentation: User guides and tutorials
- Testing: Validation and verification
- Software: Host applications and tools
Design Goals
- Compatibility: Maintain ATARI XE compatibility
- Performance: Optimize for speed and efficiency
- Reliability: Ensure robust operation
- Manufacturability: Design for production
- Cost: Balance features with affordability
📄 License
This project is licensed under the GNU General Public License v3.0.
License Details
Permissions
- ✅ Commercial use
- ✅ Modification
- ✅ Distribution
- ✅ Patent use
- ✅ Private use
Limitations
- ❌ Liability
- ❌ Warranty
Conditions
- 📄 License and copyright notice
- 📄 State changes
- 📄 Disclose source
- 📄 Same license
For the complete license text, see the LICENSE file.
💙 Support the Project
If you find this project useful, please consider:
🌟 Starring the repository
🐛 Reporting issues
🔧 Contributing improvements
📢 Sharing with the community
Made with ❤️ by RetroBit Lab
Bringing modern capabilities to classic computers
VERA Module RBL-XE (Italiano)
🌐 English | 🌐 Italiano
[!WARNING] LAVORO IN CORSO — NON FUNZIONANTE. Il progetto è in fase di sviluppo e non funziona ancora. La scheda non è stata realizzata né provata; firmware (ESP32, FPGA) e documentazione sono stati verificati solo in simulazione o sulla carta e possono contenere errori. Non produrre il PCB e non fare affidamento su questo progetto.
📋 Indice
🔍 Panoramica
Il VERA Module RBL-XE è una sofisticata scheda di espansione audio e video basata su FPGA, progettata specificamente per i computer ATARI XE. Questo modulo porta capacità grafiche e audio moderne ai sistemi ATARI classici attraverso i connettori cartuccia ed ECI per il supporto del protocollo PBI (Parallel Bus Interface).
Cos'è VERA?
VERA (Video Enhanced Retro Adapter) è originariamente progettato per il computer Commander X16 ma è stato adattato per i sistemi ATARI. Fornisce:
- Grafica Avanzata: Livelli video multipli, sprite e modalità ad alta risoluzione
- Audio Migliorato: Audio digitale multicanale con capacità PCM e PSG
- Connettività Moderna: Uscita VGA, storage su scheda SD e programmazione USB
- Compatibilità Retro: Integrazione con il software ATARI classico tramite semplici drivers
✨ Caratteristiche
🎨 Capacità Grafiche
Uscita Video
- Uscita VGA: 640x480 @ 60Hz con segnali RGB analogici
- Livelli Multipli: Livelli di sfondo, primo piano e sprite
- Profondità Colore: 256 colori da una palette di 4096
- Sprite: Motore sprite accelerato hardware
- Scrolling: Scorrimento orizzontale e verticale fluido
Caratteristiche Audio
- Audio Digitale: Uscita audio PCM di alta qualità
- Multicanale: Audio stereo
- Codec Audio: WM8524 per qualità audio professionale
- Jack 3.5mm: Connettore uscita audio standard
🔗 Integrazione Sistema
Compatibilità ATARI
- Interfaccia PBI: Connessione diretta ai sistemi ATARI XE/XL
- Mappatura Memoria: Spazio indirizzi $D1XX-$DFXX
- Decodificatore Bus: Decodifica software completa degli indirizzi nell'ESP32 — A0–A15 campionati ad ogni ciclo PHI2, nessun hardware decoder esterno richiesto
- Gestione Alimentazione: Conversione efficiente da 5V a 3.3V/1.2V
Storage e Programmazione
- Slot Scheda SD: Micro SD per storage dati e caricamento ROM
- Flash SPI: 16Mbit W25Q16 per configurazione FPGA
- Programmazione USB: CH340 USB-to-serial per aggiornamenti facili
- SPI: Interfaccia programmazione FPGA diretta
⚙️ Specifiche Tecniche
Specifiche Principali
| Componente | Specifica |
|---|---|
| FPGA | Lattice ICE40UP5K-SG48ITR |
| Microcontrollore | ESP32-S3FN8 |
| Memoria Flash | W25Q16JVSNIQ (16Mbit) |
| Codec Audio | WM8524CGEDT |
| Interfaccia USB | CH340T |
| Regolatori Alimentazione | AMS1117-3.3V, AMS1117-1.2V, L7805 |
| Cristallo (scheda VERA) | 25 MHz ECS-2033-250-BN (clock di riferimento ICE40UP5K) |
| Cristallo (ESP32-S3) | 40 MHz esterno — obbligatorio; XTAL_P (QFN56 pin 54) / XTAL_N (pin 53) |
| Layer PCB | 4 layer (Segnale/Alimentazione/GND/Segnale) |
| Dimensioni Scheda | TBD mm x TBD mm |
Caratteristiche Elettriche
| Parametro | Min | Tip | Max | Unità |
|---|---|---|---|---|
| Tensione Alimentazione | 4.5 | 5.0 | 5.5 | V |
| Consumo Corrente | - | 800 | 1200 | mA |
| Temperatura Operativa | -10 | 25 | 70 | °C |
| Impedenza Uscita VGA | - | 75 | - | Ω |
| Livello Uscita Audio | - | 2.0 | - | Vrms |
🔧 Componenti Hardware
Unità di Elaborazione Principali
FPGA - ICE40UP5K
- Elementi Logici: 5,280 LUT
- Memoria: 120 Kbit BRAM, 1 Mbit SPRAM
- Pin I/O: 39 I/O utente
- Package: QFN-48 (7x7mm)
- Programmazione: Configurazione SPI
ESP32-S3FN8
- CPU: Dual-core Xtensa LX7 @ 240 MHz
- Memoria: 8 MB flash Quad SPI integrata, 512 KB SRAM
- Connettività: Wi-Fi 802.11 b/g/n, Bluetooth 5 LE
- GPIO: 45 totali (38 usabili), tutti bidirezionali
- Package: QFN-56 (7×7 mm)
- Quarzo: richiede un quarzo esterno 40 MHz sui pin analogici dedicati XTAL_P (QFN56 pin 54) e XTAL_N (pin 53) — obbligatorio per il PLL di avvio; vedere PIN-MAPPING.md § 5
- Ruolo: Controllore bus 6502 completamente software — campiona A0–A15, PHI2, R/W ad ogni ciclo e pilota EXTSEL_N, DEV_SEL_N, MPD tramite istruzioni Dedicated GPIO Xtensa TIE (1 ciclo CPU) nella finestra PHI2-high di 279 ns; gestisce PBI ($D1xx) e CCTL ($D5xx) con un unico firmware unificato
Componenti Interfaccia
Sistema Audio
- Codec: WM8524CGEDT (24-bit, 192kHz)
- Interfaccia: Audio digitale dalla FPGA con bus dedicato
- Uscita: Jack stereo 3.5mm
- SNR: >100dB
Sistema Video
- Uscita: Connettore VGA 15-pin
- Risoluzione: 640x480 @ 60Hz
- Colori: RGB 8-bit (256 colori)
- Sync: Segnali H/V sync separati
🖼️ Anteprima Scheda
Rendering 3D
Vista Superiore
Lato superiore mostrando componenti principali e connettori
Vista Inferiore
Lato inferiore con componenti aggiuntivi
Adattatore Cartuccia
Adattatore interfaccia cartuccia opzionale
Dimensioni Scheda
- Lunghezza: TBD mm
- Larghezza: TBD mm
- Spessore: 1.6mm (PCB 4-layer)
- Montaggio: Compatibile con slot ATARI XE CART + ECI
- Connettori: Piatti per efficienza spazio. Necessita di case stampato in 3D
📐 Layer PCB
Stack-up Layer
Layer 1 - Rame Superiore (F.Cu)
Posizionamento componenti e routing segnali
Layer 2 - Piano Alimentazione (POWER)
Distribuzione alimentazione 5V, 3.3V e 1.2V
Layer 3 - Piano Massa (GND)
Piano massa solido per integrità segnale
Layer 4 - Rame Inferiore (B.Cu)
Routing segnali aggiuntivo e componenti
🔌 Connettori e Interfacce
Connessioni Esterne
Interfaccia ATARI
- Connettore PBI: Connettore edge 50-pin
- Slot ECI: Enhanced Cartridge Interface
- Range Indirizzi: $D1XX-$DFXX
- Segnali: Bus dati, bus indirizzi, segnali controllo
Uscita Video (J2)
| Pin | Segnale | Descrizione |
|---|---|---|
| 1-3 | RGB | Segnali analogici Rosso, Verde, Blu |
| 13-14 | H/V Sync | Sync orizzontale/verticale |
| 6-10 | GND | Connessioni massa |
| 11-12 | Audio L/R | Uscita audio stereo |
Interfacce Storage
- Slot Scheda SD (J3): Interfaccia scheda Micro SD
- Flash SPI: Storage on-board 16Mbit
- Porta USB (J4): Programmazione e trasferimento dati
Interfacce Programmazione
Connettore ICEPROG (J6)
| Pin | Segnale | Funzione |
|---|---|---|
| 1 | 5V | Alimentazione |
| 2 | FPGA_CDONE/PULL-UP | FPGA Programmata |
| 3 | FPGA_RESET | FPGA Reset |
| 4 | MISO | Dati SPI in ingresso |
| 5 | MOSI | Dati SPI in uscita |
| 6 | SCK | Clock SPI |
| 7 | SS | Selezione SPI |
| 8 | GND | Ground |
Reset e Controllo
- Pulsante Reset (SW1): Reset sistema ESP32
- DIP Switch (SW2): Opzioni configurazione
- LED di Stato: Indicatori alimentazione, programmazione, attività
⚡ Requisiti di Alimentazione
Distribuzione Alimentazione
Rail Alimentazione
| Rail | Tensione | Corrente | Componenti |
|---|---|---|---|
| 5V | 5.0V ± 5% | 200mA | Ingresso da ATARI, USB |
| 3.3V | 3.3V ± 3% | 400mA | ESP32, logica, interfacce |
| 1.2V | 1.2V ± 3% | 300mA | Tensione core FPGA |
Sorgenti Alimentazione
- PBI ATARI: Alimentazione 5V primaria dal computer
- USB: 5V alternativo per programmazione/test
- Esterno: Alimentazione 5V esterna opzionale (J5)
Protezione Alimentazione
- Diodi Schottky: Protezione polarità inversa
- Perle di Ferrite: Filtraggio EMI
- Disaccoppiamento: Rete estesa di condensatori
- Limitazione Corrente: Protezione sovracorrente
🔨 Istruzioni di Assemblaggio
Assemblaggio Componenti
Ordine Assemblaggio
- Componenti SMD: Iniziare con componenti più piccoli (0603, 0805)
- IC: Posizionare tutti i circuiti integrati
- Connettori: Installare tutti i connettori esterni
- Through-hole: Aggiungere eventuali componenti THT rimanenti
- Test: Verificare rail alimentazione prima della prima accensione
Considerazioni Speciali
- FPGA: Usare precauzioni ESD appropriate
- Componenti BGA: Richiede assemblaggio professionale
- Gestione Termica: Assicurare raffreddamento adeguato
- Controllo Impedenza: Mantenere 50Ω per segnali alta velocità
Test e Validazione
Test Accensione
- Ispezione Visiva: Controllare cortocircuiti, orientamento corretto
- Rail Alimentazione: Verificare tutte le tensioni entro tolleranza
- Segnali Clock: Confermare funzionamento oscillatore
- Comunicazione: Testare interfacce SPI, I2C, UART
Test Funzionali
- Programmazione FPGA: Caricare bitstream di test
- Uscita Video: Verificare generazione segnale VGA
- Uscita Audio: Testare funzionalità codec audio
- Interfaccia ATARI: Confermare comunicazione con protocollo PBI
📦 Distinta Materiali
Categorie Componenti
Componenti Principali
- 1x ICE40UP5K-SG48ITR FPGA
- 1x ESP32-S3FN8 Microcontrollore
- 1x W25Q16JVSNIQ Flash SPI
- 1x WM8524CGEDT Codec Audio
- 1x CH340T Interfaccia USB
Componenti Passivi
- 23x Condensatori 1µF (1206)
- 20x Condensatori 100nF (1206)
- 6x Condensatori 10µF (1206)
- Vari Resistori (0805/1206)
- 1x Oscillatore Cristallo 25 MHz (scheda VERA — clock di riferimento ICE40UP5K)
- 1x Quarzo 40 MHz + 2×10 pF condensatori di carico (ESP32-S3 — obbligatorio)
Connettori
- 1x Connettore VGA 15-pin
- 1x Slot Scheda Micro SD
- 1x Connettore USB Type-C
- 1x Jack Audio 3.5mm
- 1x Header Programmazione 8-pin
Analisi Costi
| Categoria | Costo Stimato | Percentuale |
|---|---|---|
| FPGA | $15-20 | 35% |
| ESP32 | $8-12 | 20% |
| Connettori | $5-8 | 15% |
| Passivi | $3-5 | 10% |
| PCB | $8-12 | 20% |
| Totale | $39-57 | 100% |
I costi sono stime per produzione piccole quantità
💻 Programmazione e Configurazione
Programmazione FPGA
Metodi Programmazione
- USB/Seriale: Usando interfaccia FTDI 232H per SPI USB con iceprog
- SPI Diretto: Programmazione flash SPI diretta
Passi Programmazione
# Installare toolchain icestorm
sudo apt install fpga-icestorm
# Programmare FPGA via USB (Il bitstream FPGA non e' fornito!)
iceprog vera_module.bin
# Verificare programmazione
iceprog -cStrumenti Sviluppo
- IceStorm: Toolchain FPGA open-source
- Yosys: Sintesi Verilog
- NextPNR: Place and route
- KiCad: Design e layout PCB
Configurazione ESP32
Firmware ESP32
L'ESP32-S3FN8 (hot loop sul Core 0, log seriale sul Core 1) gestisce:
- Sincronizzazione startup: ARESET e CRESET abbassati subito in
setup()(prima diSerial.begin).MonitorTaskrilascia CRESET, attende CDONE = HIGH (bitstream ICE40UP5K caricato, tipicamente < 100 ms, timeout 5 s), poi rilascia ARESET — l'Atari parte con bus e FPGA già operativi - Decodifica Bus: Decodifica software completa di A0–A15 campionati ad ogni fronte di salita di PHI2 — nessuna ambiguità di pagina, nessun hardware decoder esterno
- Dedicated GPIO: I segnali di controllo (EXTSEL_N, DEV_SEL_N, MPD) vengono affermati in una singola istruzione Xtensa TIE (
ee.wr_mask_gpio_out, 1 ciclo CPU) nella finestra PHI2-high di 279 ns - Bus Dati (solo modalità PBI): D0–D7 pilotati via
GPIO.outper letture ROM ($D800–$DFFF) e RAM ($D600–$D7FF); in modalità CCTL è la FPGA a guidare il bus - Debug: UART0 su GPIO43 (TX) / GPIO44 (RX), 115200 baud
La modalità operativa è scelta a tempo di compilazione tramite VERA_BOARD_IS_PBI in main.cpp:
VERA_BOARD_IS_PBI | Modalità | Range attivi | Latch selezione |
|---|---|---|---|
1 (default) | PBI | $D100–$D1FF, $D600–$D7FF, $D800–$DFFF | write 0x80 su $D1FF |
0 | CCTL | $D500–$D5FF | write 0x80 su $D5FF |
L'emulatore RAMbo 256 KB è sempre compilato nel firmware e abilitato a runtime tramite
GPIO 3 (PIN_RAMBO_EN, QFN56 pin 8) — nessuna ricompilazione necessaria:
| GPIO 3 al boot | Effetto |
|---|---|
| Pull-up 10 kΩ → VCC (HIGH) | RAMbo abilitato — 256 KB bank-switched a $4000–$7FFF; bit 4 di PORTB ($D301) seleziona attivo/inattivo |
| Pull-down 10 kΩ → GND (LOW) | RAMbo disabilitato — $4000–$7FFF non intercettato |
Funziona in entrambe le modalità PBI e CCTL. Il hot loop snoopa sia PBCTL ($D303)
sia PORTB ($D301): le write a $D301 aggiornano il registro di selezione banco
solo se PBCTL bit 2 = 1 (Output Register selezionato). Quando bit 2 = 0, $D301
indirizza il DDR della PIA 6520 e la write viene ignorata. PORTB si inizializza a
0xFF (RAME = 1, RAMbo inattivo); PBCTL a 0x00 (bit 2 = 0, DDR esposto).
Snooping passivo vs. pilotaggio attivo — nessun conflitto col 6520 fisico. Il chip
6520 PIA rimane pienamente attivo sulla scheda madre dell'Atari e risponde a $D301/$D303
normalmente. L'ESP32 non sostituisce il 6520: osserva passivamente quei cicli bus senza
mai pilotare il bus dati per quegli indirizzi. Pilota attivamente D0–D7 e asserisce
EXTSEL_N solo per la finestra $4000–$7FFF, dove il 6520 non è mappato. Il tracciamento
di PBCTL è necessario proprio perché lo snooping è passivo: dal bus, una write al DDR e una
write all'Output Register su $D301 sono indistinguibili — lo stato di PBCTL è l'unico
modo per differenziarle.
Programmazione ESP32
Il firmware viene compilato con PlatformIO (installare con pip install platformio):
# Compila firmware (modificare VERA_BOARD_IS_PBI in main.cpp prima di compilare)
pio run -e esp32s3fn8
# Carica firmware — adattatore UART su GPIO43/44
pio run -e esp32s3fn8 --target uploadNota: USB CDC è disabilitato perché GPIO 19 (USB D−) e GPIO 20 (USB D+) sono riutilizzati come linee indirizzo A7 e A8. Usare un adattatore UART esterno su GPIO 43/44.
📁 Struttura Progetto
Il workflow di progetto, dallo schematico all'ordine JLCPCB (disponibilità dei componenti, aggiornamento della libreria, ERC, netlist, PCB e netclass, DRC, output_job.sh, file da consegnare), è descritto in WORKFLOW.md (anche in PDF).
Organizzazione Repository
Vera-Module-RBL-XE/
├── 📄 README.md # Questa documentazione
├── 📄 WORKFLOW.md # Workflow di progetto, dallo schema all'ordine JLCPCB
├── 📄 LICENSE # Licenza GPL v3
├── ⚙️ VERA-MODULE-RBL.pro # File progetto KiCad
├── 📄 VERA-MODULE-RBL.sch # Schema principale
├── 🔧 VERA-MODULE-RBL.kicad_pcb # Layout PCB
├── 📄 VERA-MODULE-RBL.csv # Distinta materiali
├── 🐍 jlcpcb-check-bom.py # Script elaborazione BOM
├── 📁 images/ # Immagini scheda e render
│ ├── 🖼️ VERA-MODULE-RBL-TOP.png
│ ├── 🖼️ VERA-MODULE-RBL-BOTTOM.png
│ ├── 🖼️ F.Cu-L1.png # Immagini layer PCB
│ ├── 🖼️ POWER-L2.png
│ ├── 🖼️ GND-L3.png
│ └── 🖼️ B.Cu-L4.png
├── 📁 production/ # File produzione
│ ├── 📄 *.gbl, *.gtl # File Gerber
│ ├── 📄 *.drl # File drill
│ └── 📄 *.gbrjob # File job
├── 📁 ibom/ # BOM interattiva
│ └── 🌐 ibom.html
└── 📁 schematics/ # Schemi individuali
├── 📄 vera-fpga.sch # Modulo FPGAFile Design
File KiCad
- Schema: Design gerarchico multi-foglio
- Layout PCB: Scheda 4-layer con impedenza controllata
- Modelli 3D: Modelli componenti personalizzati
- Footprint: Footprint connettori personalizzati
File Produzione
- File Gerber: Fabbricazione PCB standard industria
- File Drill: Specifiche drill NC e via
- Pick & Place: Coordinate assemblaggio SMT
- BOM: Specifiche componenti con codici LCSC
🤝 Contribuire
Linee Guida Sviluppo
Processo Contribuzione
- Fork del repository
- Creare un branch feature
- Apportare le modifiche
- Testare accuratamente
- Inviare una pull request
Aree Contribuzione
- Design Hardware: Miglioramenti layout PCB
- Firmware: Codice ESP32 e FPGA
- Documentazione: Guide utente e tutorial
- Test: Validazione e verifica
- Software: Applicazioni host e strumenti
Obiettivi Design
- Compatibilità: Mantenere compatibilità ATARI XE/XL
- Performance: Ottimizzare per velocità ed efficienza
- Affidabilità: Assicurare funzionamento robusto
- Producibilità: Design per produzione
- Costo: Bilanciare caratteristiche con convenienza
📄 Licenza
Questo progetto è licenziato sotto la GNU General Public License v3.0.
Dettagli Licenza
Permessi
- ✅ Uso commerciale
- ✅ Modifica
- ✅ Distribuzione
- ✅ Uso brevetti
- ✅ Uso privato
Limitazioni
- ❌ Responsabilità
- ❌ Garanzia
Condizioni
- 📄 Avviso licenza e copyright
- 📄 Dichiarare modifiche
- 📄 Rivelare sorgente
- 📄 Stessa licenza
Per il testo completo della licenza, vedere il file LICENSE.
💙 Supporta il Progetto
Se trovi utile questo progetto, considera di:
🌟 Mettere una stella al repository
🐛 Segnalare problemi
🔧 Contribuire miglioramenti
📢 Condividere con la community
Realizzato con ❤️ da RetroBit Lab
Portando capacità moderne ai computer classici
Parts
219| Qty | Value | Footprint | References |
|---|---|---|---|
| 35 | 100nF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C1, C2, C10, C11, C12, C14, C16, C18, C20, C22, C23, C27, C28, C29, C38, C40 +19 |
| 15 | 1uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C3, C4, C5, C6, C7, C8, C25, C30, C31, C32, C33, C43, C59, C60, C66 |
| 13 | 10K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R5, R7, R34, R36, R47, R48, R53, R62, R63, R65, R69, R70, R71 |
| 10 | CREZ08051% | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R35, R56, R64, R66, R72, R73, R74, R75, R76, R77 |
| 8 | 47K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R37, R38, R39, R40, R41, R42, R43, R44 |
| 7 | TestPoint | TestPoint:TestPoint_Pad_D2.0mm | ~HALT1, ~mREF1, ~mS4, ~mS5, mD1XX1, RD4, RD5 |
| 6 | 10uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C13, C15, C17, C19, C21, C24 |
| 5 | 74LVC4245APW_118 | RetroBitLab:IC_74LVC4245_SOP65P640X110-24N | U3, U4, U6, U16, U19 |
| 4 | 4K7 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R31, R33, R59, R60 |
| 4 | 510R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R23, R25, R27, R57 |
| 4 | 560R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R45, R46, R67, R68 |
| 4 | Fiducial | Fiducial:Fiducial_0.5mm_Mask1mm | FID1, FID2, FID3, FID4 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 3 | 10uF-20V | Capacitor_Tantalum_SMD:CP_EIA-3528-12_Kemet-T_Pad1.50x2.35mm_HandSolder | C45, C48, C51 |
| 3 | 150R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R12, R14, R16 |
| 3 | 160R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R18, R20, R22 |
| 3 | 27R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R24, R26, R28 |
| 3 | 2K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R11, R13, R15 |
| 3 | 4.7uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C26, C34, C35 |
| 3 | 4K3 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R8, R9, R10 |
| 3 | 910R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R17, R19, R21 |
| 3 | RED | LED_SMD:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder | LD1, LD3, LD5 |
| 2 | 1K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R2, R6 |
| 2 | 20pF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C39, C41 |
| 2 | 27pF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C64, C65 |
| 2 | 2K2 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R52, R55 |
| 2 | 330R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R32, R61 |
| 2 | 50R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R3, R4 |
| 2 | 5K1 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R50, R51 |
| 2 | 820R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R29, R30 |
| 2 | BC817,SOT-23 | Package_TO_SOT_SMD:SOT-23 | Q3, Q4 |
| 2 | DIOSCH20V | Diode_SMD:D_SMC_Handsoldering | D3, D4 |
| 2 | GREEN | LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder | LD2, LD4 |
| 2 | MAX40200AUK | Package_TO_SOT_SMD:SOT-23-5 | U17, U18 |
| 2 | SN74LVC00 | Package_SO:TSSOP-14_4.4x5mm_P0.65mm | U24, U25 |
| 2 | SPST2P | RetroBitLab:SPST-7.3x3.9x2.5-WUERTH-434121025816 | SW1, SW3 |
| 2 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP1, JP3 |
| 1 | 10uF-35V | Capacitor_Tantalum_SMD:CP_EIA-3528-12_Kemet-T_Pad1.50x2.35mm_HandSolder | C47 |
| 1 | 12MHzC | Crystal:Crystal_SMD_EuroQuartz_MT-4Pin_3.2x2.5mm | Y1 |
| 1 | 2.2uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C36 |
| 1 | 220R | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R54 |
| 1 | 22uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C37 |
| 1 | 2K7 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1 |
| 1 | 330R | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R58 |
| 1 | 40.000Mhz | Crystal:Crystal_SMD_2520-4Pin_2.5x2.0mm | Y2 |
| 1 | 74CBTLV3126PW,118 | Package_SO:TSSOP-14_4.4x5mm_P0.65mm | U8 |
| 1 | AMS1117-1.2 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U14 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U13 |
| 1 | ATARI DUO BUS | RetroBitLab:DUOCart_20x11_Rev | LOGO4 |
| 1 | ATARI READY | RetroBitLab:atari_ready_8mm_rev | LOGO2 |
| 1 | ATARI-CARTRIDGE | RetroBitLab:ATARI-LEFT-CARTRIDGE | CART1 |
| 1 | CD4011B | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U9 |
| 1 | CONN_DM3AT-SF-PEJM5 | RetroBitLab:HRS_DM3AT-SF-PEJM5 | J3 |
| 1 | CONN_SMD_01x08_Staggered_2.54mm | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical_SMD_Pin1Right | J6 |
| 1 | CONN_SMD_HEADER_BOX_02x08_HX-JN2.54 | RetroBitLab:IDC-Header_2x08_P2.54mm_Vertical_SMD | J1 |
| 1 | DNP | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R49 |
| 1 | DS1038-15FBNSiA74-0CC | RetroBitLab:CONNFLY_DS1038-15FBNSIA74-0CC | J2 |
| 1 | DX07S016JA1R1500 | RetroBitLab:JAE_DX07S016JA1R1500 | J4 |
| 1 | ECIBUS | RetroBitLab:ATARI-XE-ECI-SLOT | ECI1 |
| 1 | ESP32-S3FN8 | RetroBitLab:IC_ESP32-S3FN8-QFN40P700X700X90-57N | U7 |
| 1 | ESP32_BOBOARD | RetroBitLab:ESP32_BOBOARD_5V_21.7mmx21.7mm | LOGO5 |
| 1 | FB0805100R100MHZ4A | Inductor_SMD:L_0805_2012Metric_Pad1.15x1.40mm_HandSolder | L1 |
| 1 | IC74HC00 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U5 |
| 1 | ICE40UP5K-SG48ITR | RetroBitLab:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm | U2 |
| 1 | IND0603600R100MHZ300mA | Inductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolder | L2 |
| 1 | Jumper_2_Open | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | JP2 |
| 1 | KiCAD DESIGN | Symbol:KiCad-Logo2_6mm_SilkScreen | LOGO3 |
| 1 | L7805 | Package_TO_SOT_SMD:TO-252-2 | U15 |
| 1 | Label-20mmx10mm | RetroBitLab:Label-20mmx10mm-Silkscreen | LBL1 |
| 1 | MOSFET-BSS138-SOT-23 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | OT3EL89CJI-111YLC-25M | RetroBitLab:OSC_ECS-2033-250-BN | X1 |
| 1 | PJ-002AH-SMT-TR | RetroBitLab:CUI_PJ-002AH-SMT-TR | J5 |
| 1 | PJ-313D | RetroBitLab:jack_3.5_pj313d-smt | J7 |
| 1 | SN74HCT04DR | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | U23 |
| 1 | SN74LVC1G07DBVR | Package_TO_SOT_SMD:SOT-23-5 | U26 |
| 1 | TP5V | TestPoint:TestPoint_Pad_D2.0mm | TP1 |
| 1 | USBCH340T | RetroBitLab:SSOP-20_5.3x7.2mm_P0.65mm_Pad0.45 | U12 |
| 1 | VERA X16 LOGO | RetroBitLab:x16logo | LOGO1 |
| 1 | W25Q16JVSNIQ | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U10 |
| 1 | WM8524CGEDT | Package_SO:TSSOP-16_4.4x5mm_P0.65mm | U11 |
Similar boards
- 2 layers105 × 135 mm

- 2 layers96.5 × 55 mm

- 2 layers96.5 × 55 mm

Vera full audiojack
ifilot/open-vera-module
VERA (Versatile Embedded Retro Adapter) is a self-contained FPGA video and audio module for retro-computing projects.
105 partsMIT - 2 layers100 × 100 mm

OpenX65-vabo
Maverick-Shark/X65_BigMiST
The X65 is an ultimate computer for everyone interested in the venerable 65-series of 8-bit and 16-bit CPUs, i.e. the 6502 and 65816.
235 partsMIT - 4 layers26.6 × 84.3 mm

- 4 layers60 × 73.5 mm

Anthracite bottom
trope-oshw/anthracite
MIDI-controllable fuzz pedal: open hardware (CERN-OHL-S-2.0), firmware (GPL-3.0-or-later)
224 parts5CERN-OHL-S-2.0 - 2 layers98 × 77.2 mm

- 2 layers194.1 × 141.7 mm

Questions
How big is the VERA MODULE RBL PCB?
It measures 143 × 162.5 mm and has 4 copper layers, 1.6 mm thick.
What parts does the VERA MODULE RBL use?
219 parts, built around the ESP32-S3FN8, ICE40UP5K-SG48ITR50, W25Q16JVSNIQ and WM8524CGEDT. 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 VERA MODULE RBL KiCad files?
From the gianlucarenzi/Vera-Module-RBL-XE repository on GitHub, at the commit this page was made from: the board is VERA-MODULE-RBL.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the VERA MODULE RBL design in my own project?
Its repository publishes it under the GPL-3.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).