|
|
Line 1: |
Line 1: |
− | [[File:tindie-mediums.png|link=https://www.tindie.com/products/land_boards/esp32-vga-keyboard-mouse-card-pcb-only/]]
| + | == Homebrew RF Attenuators == |
| | | |
− | <video type="youtube">RuGWCMFNtms</video>
| + | [[file:Atten_30dB_20dV_P1812-720px.jpg]] |
| | | |
− | [[File:P968-cropped-720pxV.jpg]]
| + | == Attenuators == |
| | | |
− | == Features ==
| + | [[file:Chart_mW_vs_dbM.PNG]] |
| | | |
− | * [[ESP32]] Module
| + | === 30 dB Attenuator === |
− | * 6-bit VGA color
| |
− | ** 2:2:2 R:G:B
| |
− | * 2 x PS-2 DIN connectors
| |
− | ** 5V mouse/keyboard
| |
− | ** 3.3V to 5V level shifters
| |
− | *** Better than 5V keyboard with series resistors
| |
− | ** 10K pull-ups on both sides
| |
− | * 2 x FTDI connectors
| |
− | * 5V DC Jack
| |
− | * 3.3V regulator (optional)
| |
− | * GVS pins for extra ESP32 pins
| |
− | * 95x95mm form factor
| |
− | * 6-32 mounting holes
| |
| | | |
− | === ESP-32 Module ===
| + | * [http://leleivre.com/rf_pipad.html Pi Attenuator Calculator] |
| | | |
− | * Uses the [https://circuits4you.com/2018/12/31/esp32-devkit-esp32-wroom-gpio-pinout/ ESP32 DevKit ESP32-WROOM GPIO Pinout]
| + | [[file:Atten30dB_P116-720px.jpg]] |
− | * On board Blue LED = Arduino Pin 2
| |
− | * There are various modules out there with different pinouts, but this card uses this one
| |
| | | |
− | [[File:ESP32_MODULE-720PX.jpg]] | + | [[file:30dB_Attenuator.PNG]] |
| | | |
− | === ESP-32 Module Pinout === | + | * Built |
| + | ** Standard 5% resistor values |
| + | ** R1 = 820 in parallel with 22K = 790.6 ohms |
| + | ** R2 = 2 paralleled 120 Ohm 1/4W resistors paralleled with 470 ohms = 53.2 ohms |
| + | ** Flat from 0-30 MHz |
| + | ** Measured attenuation is flat |
| + | *** -30.01dB at 1 MHz |
| + | *** -30.24dB at 30 MHz |
| + | ** Input Impedance - 53.1 ohms, 21.3nF |
| + | ** SWR 1.06 |
| + | ** 1/2W max (5VDC max, 0 ohm source) |
| | | |
− | [[File:ESP32-Pinout.jpg]]
| + | * NanoVNA scan data |
| | | |
− | === "Chip" on the module ===
| + | [[file:30dB_Attenuator_NanoVNA_Setup_Curve_900MHz.PNG]] |
| | | |
− | [[File:esp32-pinout-chip-ESP-WROOM-32.png]] | + | [[file:30dB_Attenuator_NanoVNA_Data_900MHz.PNG]] |
| | | |
− | ==== ESP32 Pin Usage - Rev 1 ====
| + | * LTSPICE Simulation |
| | | |
− | [[File:ESP-32_VGA_Pinout.PNG]] | + | [[file:LTSPice_30dB.PNG]] |
| | | |
− | ==== ESP32 Pin Usage - Rev 2 ==== | + | === 20 dB Attenuator === |
| | | |
− | [[File:ESP-32_VGA_Pinout_Rev2.PNG]] | + | [[file:Atten_20dB_P115-720px.jpg]] |
| | | |
− | === Module Features ===
| + | [[file:20dB_Attenuator.PNG]] |
| | | |
− | * Architecture: Xtensa Dual-Core 32-bit LX6 | + | * Build |
− | * CPU frequency: up to 240MHz | + | ** Standard 5% resistor values |
− | * Total RAM available: 528KB (part of it reserved for system) | + | ** R1 = 2 of 510 in parallel also in parallel with 8.2K = 247.3 ohms |
− | * BootROM: 448KB | + | ** R2 = 2 paralleled 150 Ohm 1/2W resistors paralleled with 330 ohms = 61.11 ohms |
− | * Internal FlashROM: none | + | ** Flat from 0-30 MHz |
− | * External FlashROM: code and data, via SPI Flash; usual size 4MB | + | ** Measured attenuation is flat |
− | * GPIO: 34 (GPIOs are multiplexed with other functions, including external FlashROM, UART, etc.) | + | ** Input Impedance - tbd ohms, tbd nF |
− | * UART: 3 RX/TX UART (no hardware handshaking), one TX-only UART | + | ** SWR tbd |
− | * SPI: 4 SPI interfaces (one used for FlashROM) | + | ** 1W max (8.6 V max, 0 ohm source) |
− | * I2C: 2 I2C (bitbang implementation available on any pins) | |
− | * I2S: 2 | |
− | * ADC: 12-bit SAR ADC up to 18 channels | |
− | * DAC: 2 8-bit DACs | |
− | * RMT: 8 channels allowing accurate pulse transmit/receive | |
− | * Programming: using BootROM bootloader from UART - due to external FlashROM and always-available BootROM bootloader, the ESP32 is not brickable
| |
| | | |
− | == Video DAC LTSpice Simulation ==
| + | [[file:20dB_Attenuator_NanoVNA_Setup_Curve_900MHz.PNG]] |
| | | |
− | * [https://github.com/land-boards/lb-boards/tree/master/ESP32/ESP32-VGA/Docs/Simulation Video DAC Simulation files]
| + | [[file:20dB_Attenuator_NanoVNA_Data_900MHz.PNG]] |
− | * Video is 2:2:2 - R:G:B
| |
| | | |
− | === Summing Resistor DAC ===
| + | * LTSPICE Simulation |
| | | |
− | * 5% resistors are "good enough"
| + | [[file:LTSPice_20dB.PNG]] |
− | * 1V into 75 Ohm VGA load
| |
− | * 3.3V drive
| |
− | * ESP32 has [https://www.esp32.com/viewtopic.php?t=5840 40 mA drive]
| |
− | ** Uses 10 mA (max)
| |
− | ** R4 = 1.2 mA to -10 mA
| |
− | ** R3 = 1.1 mA to -5.3 mA
| |
− | * Output in 4 steps
| |
− | ** 0V
| |
− | ** 0.3V
| |
− | ** 0.65V
| |
− | ** 0.96V
| |
| | | |
− | [[File:VGA_Sim_2R.PNG]]
| + | === 10 dB Attenuator === |
| | | |
− | == Headers (Rev 1 board) ==
| + | [[file:Atten_10dB_P115-720px.jpg]] |
| | | |
− | === H1 - 3.3V SRC select ===
| + | [[file:10dB_Attenuator.PNG]] |
| | | |
− | [[File:H1_3p3V_Select.png]]
| + | * Build |
| + | ** Standard 5% resistor values |
| + | ** R1 = 2 of 150 in parallel also in parallel with 1.5K = 71.43 ohms (0.3% error) |
| + | ** R2 = 3 of 330 Ohm 1/4W parallel resistors paralleled with 810 ohms = 96.85 ohms (0.62% error) |
| + | ** Flat from 0-30 MHz |
| + | ** Measured attenuation is flat |
| + | ** Input Impedance - tbd ohms, tbd nF |
| + | ** SWR tbd |
| + | ** 3/4W max (9.1 V max, 0 ohm source) |
| | | |
− | * 1-2 = Get 3.3V from ESP32 on-board regulator
| + | [[file:10dB_Attenuator_NanoVNA_Setup_Curve_900MHz.PNG]] |
− | * 2-3 = Get 3.3V from on-board regulator (Default)
| |
| | | |
− | === H2 - 5V SRC Select Jumper (Rev 1 Board) ===
| + | [[file:10dB_Attenuator_NanoVNA_Data_900MHz.PNG]] |
| | | |
− | * 5V power options for the 5V to 3.3V regulator | + | * LTSPICE Simulation |
| | | |
− | [[File:H2_5V_Select.png]] | + | [[file:LTSPice_10dB.PNG]] |
| | | |
− | * 2x4 header
| + | === Attenuator Construction === |
− | * Care must be taken to install the correct jumpers
| |
− | * USB jumper sends out 5V when a USB cable is connected to the ESP32 module
| |
| | | |
− | ==== Power from DC Jack ====
| + | * Single side copper clad PCB |
| + | ** Approx 2"x1" |
| + | * Clean with steel wool |
| + | * Solder SMA connectors |
| + | ** Use large alligator clips to hold while soldering |
| + | ** Solder on sides only |
| | | |
− | * '''Do not connect USB cable when the DC jack is used'''
| + | [[file:Atten_01_SMAs_720px.jpg]] |
− | * 1-2 = VUSB - Install - Power to ESP32
| |
− | * 3-4 = DCIN - Install - Power comes from DC jack
| |
− | * 5-6 = FTDI5V_1 - Do not install
| |
− | * 7-8 = FTDI5V_2 - Do not install
| |
| | | |
− | ==== Power from USB on ESP32 module ====
| + | * Cut "T" Shaped pads |
| + | ** I used nibbler |
| + | * Center fits between connector ground pins |
| + | * Glue down pads with Superglue |
| | | |
− | * 1-2 = VUSB - Install - 5V comes from USB on ESP32 module
| + | [[file:Atten_02_Pads_720px.jpg]] |
− | * 3-4 = DCIN - Do not install
| |
− | * 5-6 = FTDI5V_1 - Do not install
| |
− | * 7-8 = FTDI5V_2 - Do not install
| |
| | | |
− | ==== Power from FTDI #1 (Rev 1) ====
| + | * Solder center pin with big solder blob |
| + | ** A bit too high for direct contact |
| + | * Verify raised pad does not short to ground |
| | | |
− | * '''Do not use this position with "most" FTDI cards since they will drive 5V on the Rx/Tx pins when the FTDI jumper is set to 5V'''
| + | [[file:Atten_03_Solder CenterPads_720px.jpg]] |
| | | |
− | ==== Power from FTDI #2 ====
| + | * Solder side resistor(s) |
| + | * Leave room for center resistor(s) |
| | | |
− | * '''Do not use this position with "most" FTDI cards since they will drive 5V on the Rx/Tx pins when the FTDI jumper is set to 5V'''
| + | [[file:Atten_04_Solder Side_Resistors_720px.jpg]] |
| | | |
− | == Connectors (Rev 1 board) ==
| + | * Measure side resistors from pad to ground |
| + | * Should match value |
| + | * Solder center resistor(s) |
| | | |
− | === P2/P4 = GVS - Rev 1 ===
| + | [[file:Atten_05_Solder Center_Resistors_720px.jpg]] |
| | | |
− | * Ground/Voltage/Signal lines | + | * Verify no shorts between centers and ground |
| | | |
− | # GPIO13
| + | == References == |
− | # GPIO14
| |
− | # GPIO16
| |
− | # GPIO17
| |
− | # GPIO35
| |
− | # GPIO34
| |
− | # VN
| |
− | # VP
| |
| | | |
− | === P3 - VGA - Rev 1 ===
| + | <video type="youtube">A5gGeV7CiQ0</video> |
− | | |
− | * ESP32 pins
| |
− | | |
− | * This table is incorrect - it has the Lower/Higher bits swapped
| |
− | <pre> | |
− | HSync => GPIO23
| |
− | VSync => GPIO15
| |
− | R0 => GPIO22
| |
− | R1 => GPIO21
| |
− | G0 => GPIO19
| |
− | G1 => GPIO18
| |
− | B0 => GPIO5
| |
− | B1 => GPIO4
| |
− | </pre>
| |
− | | |
− | === J2 - FTDI #1 - Rev 1 === | |
− | | |
− | # GND
| |
− | # RTS (Not used)
| |
− | # 5V (Power in if [[ESP32-VGA#H2_-_5V_SRC_Select_Jumper|H2 is configured]])
| |
− | # RX (from card to External FTDI)
| |
− | # TX (from External FTDI to card)
| |
− | # CTS (Not used)
| |
− | | |
− | ==== Connect to FTDI card - Rev 1 ====
| |
− | | |
− | * Set FTDI jumper to 3.3V (unlike picture below)
| |
− | * Cross-over pins 4 and 5 when connecting to FTDI card (Rev 1 only)
| |
− | | |
− | [[File:FTDI_rot.jpg]]
| |
− | | |
− | === J6 - FTDI #2 - Rev 1 ===
| |
− | | |
− | * Rev 1 board won't program or boot with FDTI #2 card attached
| |
− | * This interface is in common with the USB-to-Serial interface on the ESP32 module
| |
− | | |
− | # GND
| |
− | # RTS (Not used)
| |
− | # 5V (Power in if [[ESP32-VGA#H2_-_5V_SRC_Select_Jumper|H2 is configured]])
| |
− | # TX2 (from card to External FTDI)
| |
− | # RX2 (from External FTDI to card)
| |
− | # CTS (Not used)
| |
− | | |
− | * Requires a cross-over of the Transmit and Receive pins if directly connecting to an FTDI part
| |
− | * Earlier versions of the FabGL schematics used pin 12 for RX
| |
− | * Most recent (2020-02) ANSI terminal uses pin 34
| |
− | * Board won't boot with an FTDI interface attached and USB cable attached
| |
− | ** This is an issue for the ANSI Terminal sketch
| |
− | * Original pins were (Rev 1 matches original)
| |
− | | |
− | <pre>
| |
− | RX2 => 12
| |
− | TX2 => 2
| |
− | </pre>
| |
− | | |
− | Here's why using pin 12 is a bad idea:
| |
− | <pre>
| |
− | GPIO12 (MTDI) is used as a bootstrapping pin to select output voltage of an internal regulator which powers the flash chip (VDD_SDIO). This pin has an internal pulldown so if left unconnected it will read low at reset (selecting default 3.3V operation).</pre>
| |
− | | |
− | ==== UART2 Rework ====
| |
− | | |
− | * The easiest way to do this is to wire the FTDI to GPIO34 pin instead of pin J6-5
| |
− | ** Not pretty, but it does work fine
| |
− | * This is what is needed to permanently rework the board
| |
− | * Rework is only needed to run "stock" FabGL code that uses the UART2 port on the ESP32 (like the ansi terminal)
| |
− | * Cut trace/adding jumper to rev 1 board
| |
− | ** Route to GPIO34
| |
− | * Cut as follows (cut in white)
| |
− | | |
− | [[File:GPIO12_Cut.PNG]]
| |
− | | |
− | * Add wire as follows (add wire in white)
| |
− | | |
− | [[File:GPIO34_Add.PNG]]
| |
− | | |
− | * [2020-01-20] Tested rework on card and it worked
| |
− | | |
− | ==== Connect to FTDI card - Rev 1 ====
| |
− | | |
− | * Set FTDI jumper to 3.3V
| |
− | * Cross-over pins 4 and 5 when connecting to FTDI card (Rev 1 only)
| |
− | | |
− | [[File:FTDI_rot.jpg]]
| |
− | | |
− | === J3 - PS/2 Keyboard - Rev 1 ===
| |
− | | |
− | * Purple DIN 6 connector
| |
− | * ESP32 pins
| |
− | | |
− | <pre>
| |
− | DAT => 32
| |
− | CLK => 33
| |
− | </pre>
| |
− | | |
− | === J4 - PS/2 Mouse - Rev 1 ===
| |
− | | |
− | * DIN 6 connector
| |
− | * ESP32 pins
| |
− | | |
− | <pre>
| |
− | DAT => 27
| |
− | CLK => 26
| |
− | </pre>
| |
− | | |
− | === J5 - Audio Out - RCA Jack - Rev 1 ===
| |
− | | |
− | * ESP32 pins
| |
− | | |
− | <pre>
| |
− | AUD => 25
| |
− | </pre> | |
− | | |
− | === J15 - 5mm Terminal Block - Rev 1 ===
| |
− | | |
− | * 5V
| |
− | * Gnd
| |
− | | |
− | == Headers (Rev 2 board) ==
| |
− | | |
− | * The Rev 2 board changes around headers and connectors
| |
− | | |
− | === H1 - 5V - Rev 2 ===
| |
− | | |
− | * The ESP32-VGA can be powered from either the DC Jack or ESP32 USB power
| |
− | * '''Warning: Do not power from 5V Power jack and connect USB cable to the ESP32 module at the same time'''
| |
− | ** The ESP32 module has blocking diode to protect the module
| |
− | *** If the 5V DC jack has a power supply attached with lower voltage it could result in the supplied being shorted between the USB 5V and the DC power jack
| |
− | *** This is not an issue if the DC power jack is disconnected
| |
− | * This could be used for an external power switch
| |
− | | |
− | === H2/H3 - GVS - Rev 2 ===
| |
− | | |
− | * 3x4 header
| |
− | * Ground/Voltage/Signal lines
| |
− | | |
− | # GPIO35
| |
− | # GPIO12
| |
− | # VN/I39
| |
− | # VP/I36
| |
− | | |
− | == Connectors (Rev 2 board) ==
| |
− | | |
− | === P1 - PS/2 Mouse - Rev 2 ===
| |
− | | |
− | * DIN 6 connector
| |
− | * ESP32 pins
| |
− | | |
− | <pre>
| |
− | DAT => GPIO27
| |
− | CLK => GPIO26
| |
− | </pre>
| |
− | | |
− | === P2 - PS/2 Keyboard - Rev 2 ===
| |
− | | |
− | * Purple DIN 6 connector
| |
− | * ESP32 pins
| |
− | | |
− | <pre>
| |
− | DAT => GPIO32
| |
− | CLK => GPIO33
| |
− | </pre>
| |
− | | |
− | === P3 - VGA - Rev 2 ===
| |
− | | |
− | * ESP32 pins
| |
− | * This table is incorrect - it has the video bits reversed
| |
− | | |
− | <pre>
| |
− | HSync => GPIO23
| |
− | VSync => GPIO15
| |
− | R0 => GPIO22
| |
− | R1 => GPIO21
| |
− | G0 => GPIO19
| |
− | G1 => GPIO18
| |
− | B0 => GPIO5
| |
− | B1 => GPIO4
| |
− | </pre>
| |
− | | |
− | === P4 - Audio Out - RCA Jack - Rev 2 ===
| |
− | | |
− | * ESP32 pins
| |
− | | |
− | <pre>
| |
− | AUD => GPIO25
| |
− | </pre>
| |
− | | |
− | === J1 - 5V Power - Rev 2 ===
| |
− | | |
− | * Center +5V
| |
− | | |
− | === J2 - FTDI #1 - Rev 2 ===
| |
− | | |
− | * This interface is in common with the USB-to-Serial interface on the ESP32 module
| |
− | * Pinout
| |
− | | |
− | # GND
| |
− | # RTS (Not used)
| |
− | # 5V (Not used)
| |
− | # RX (from card to External FTDI)
| |
− | # TX (from External FTDI to card)
| |
− | # CTS (Not used)
| |
− | | |
− | <pre>
| |
− | RX => GPIO3
| |
− | TX => GPIO1
| |
− | </pre>
| |
− | | |
− | ==== Connect to FTDI card - Rev 2 ====
| |
− | | |
− | * Set FTDI jumper to 3.3V
| |
− | | |
− | [[File:FTDI_rot.jpg]]
| |
− | | |
− | === J3 - FTDI #2 - Rev 2 ===
| |
− | | |
− | * Most recent (2020-02) ANSI terminal uses pin 34 for Rx
| |
− | * Pinout
| |
− | | |
− | # GND
| |
− | # RTS (Not used)
| |
− | # 5V (Power in if [[ESP32-VGA#H2_-_5V_SRC_Select_Jumper|H2 is configured]])
| |
− | # RX (from External FTDI to ESP32 card)
| |
− | # TX (from ESP32 card to External FTDI)
| |
− | # CTS (Not used)
| |
− | | |
− | <pre>
| |
− | RX2 => GPIO34
| |
− | TX2 => GPIO2
| |
− | </pre>
| |
− | | |
− | ==== Connect to FTDI card - Rev 2 ====
| |
− | | |
− | * Set FTDI jumper to 3.3V (image below shows jumper set to 5V which is wrong)
| |
− | | |
− | [[File:FTDI_rot.jpg]]
| |
− | | |
− | === J4 - SD Card - Rev 2 ===
| |
− | | |
− | * Brought to GVS header pins (Rev 1)
| |
− | * Brought to SD Card (Rev 2)
| |
− | | |
− | <pre>
| |
− | MOSI => GPIO17
| |
− | MISO => GPIO16
| |
− | CLK => GPIO14
| |
− | CS => GPIO13
| |
− | </pre>
| |
− | | |
− | == VGA - Resistor Selection ==
| |
− | | |
− | * ESP32 has a 3.3V driver which can drive more than 10 mA
| |
− | * Ideal case drive current
| |
− | ** 0.7V (full scale VGA level) into 75 Ohms = 9.33 mA
| |
− | ** 2/3 of the current or 6.16 mA comes from the lower value resistor (digital most significant bit)
| |
− | ** 1/3 of the current or 3.08 mA comes from the higher value resistor (digital least significant bit)
| |
− | * R-2R values
| |
− | ** Ideal resistor values are 417.9 ohms and 835.7 ohms
| |
− | ** [http://www.brannonelectronics.com/images/STANDARD%20VALUE.pdf Standard value 1% resistors]
| |
− | ** 1% standard values are [https://www.mouser.com/ProductDetail/652-CR0805FX-4220ELF 422 (Mouser)], [https://www.mouser.com/ProductDetail/603-RC0805FR-07845RL 845 (Mouser)] Ohms
| |
− | *** Get closest values
| |
− | *** 0V, 0.228V, 0.460V, 0.693V
| |
− | * Voltage steps are:
| |
− | | |
− | [[File:VGA_Sim_2R_Voltage.PNG]]
| |
− | | |
− | * Current steps are:
| |
− | | |
− | [[File:VGA_Sim_2R_Current.PNG]]
| |
− | | |
− | == FabGL GPIOs assignment summary - fabgl dev board rev2 ==
| |
− | | |
− | [https://github.com/fdivitto/FabGL/blob/master/fabgl%20GPIOs%20assignment.txt From here]
| |
− | | |
− | | |
− | === I2C (not usable with VGA) ===
| |
− | | |
− | <pre>
| |
− | SDA => GPIO4 (conflicts with VGA B1)
| |
− | SCL => GPIO15 (conflicts with VGA VSync)
| |
− | </pre>
| |
− | | |
− | === SPI Display - VSPI (not usable with VGA) ===
| |
− | | |
− | <pre>
| |
− | CLK => GPIO18 (conflicts with VGA G1)
| |
− | MISO => GPIO19 (conflicts with VGA G0)
| |
− | MOSI => GPIO23 (conflicts with VGA HSync)
| |
− | CS => GPIO5 (conflicts with VGA B0)
| |
− | D/C => GPIO22 (conflicts with VGA R0)
| |
− | RESET => GPIO21 (conflicts with VGA R1)
| |
− | </pre>
| |
− | | |
− | == Software ==
| |
− | | |
− | === Arduino Programming ===
| |
− | | |
− | * Board : "DOIT ESP32 DEVKIT V1"
| |
− | | |
− | [[File:Ardino_ESP32.png]]
| |
− | === FabGL ===
| |
− | | |
− | * Display Controller features/applications
| |
− | ** VGA
| |
− | ** SSD1306
| |
− | ** PS/2 Mouse and Keyboard Controller
| |
− | ** Graphics Library
| |
− | ** Sound Engine
| |
− | ** Game Engine
| |
− | ** ANSI/VT Terminal for the ESP32
| |
− | | |
− | ==== FabGL Libraries ====
| |
− | | |
− | * [http://www.fabglib.org FabGL] - ESP32 Display Controller and Graphics Library
| |
− | * [https://github.com/fdivitto/fabgl FabGL Github repo]
| |
− | | |
− | ==== FabGL Arduino library ====
| |
− | | |
− | Installing the released library
| |
− | | |
− | [[File:FabGL_Library.PNG]]
| |
− | | |
− | ==== Using Latest FabGL builds ====
| |
− | | |
− | Here's how I did it
| |
− | | |
− | # Install drivers via Arduino from the Library Manager. These are not the latest files. Space Invaders should run but not have sound (as of now because it's the older version).
| |
− | # Move the FabGL from the Arduino libraries file folder to the desktop.
| |
− | # Copy the FabGL from the GitHub download to the Arduino files folder (where you removed the other folder).
| |
− | # Examples will now be the latest.
| |
− | # Compile/download/test the new files. You know it works if you now get sound from Space Invaders.
| |
− | # Save as where you would normally save your Arduino sketches.
| |
− | | |
− | === MicroPython ===
| |
− | | |
− | * [https://micropython.org MicroPython Homepage]
| |
− | ** [http://docs.micropython.org/en/latest/esp32/quickref.html Quick reference for the ESP32]
| |
− | ** [http://docs.micropython.org/en/latest/esp32/general.html General information about the ESP32 port]
| |
− | ** [http://docs.micropython.org/en/latest/esp32/tutorial/intro.html Getting started with MicroPython on the ESP32]
| |
− | * [https://github.com/land-boards/lb-Python-Code/tree/master/MicroPython/ESP32 GitHub repo] (MicroPython)
| |
− | ** [https://github.com/land-boards/lb-Python-Code/tree/master/MicroPython/ESP32/examples Examples] (MicroPython)
| |
− | ** [https://github.com/land-boards/lb-Python-Code/tree/master/MicroPython/ESP32/libraries Libraries] (MicroPython)
| |
− | | |
− | === ESP-IDF ===
| |
− | | |
− | * [https://docs.espressif.com/projects/esp-idf/en/latest/index.html ESP-IDF Programming Guide]
| |
− | | |
− | === Operating Systems ===
| |
− | | |
− | * [https://www.freertos.org FreeRTOS]
| |
− | * [https://docs.zerynth.com/latest/official/board.zerynth.doit_esp32/docs/index.html ESP32 DevKit v1]
| |
− | * [https://github.com/Nicholas3388/LuaNode LuaNode]
| |
− | * [https://github.com/espressif/arduino-esp32/issues/544 ESP32 DEVKITV1 module schematics] (also helpful discussion)
| |
− | | |
− | == Schematic ==
| |
− | | |
− | * [http://land-boards.com/ESP32-VGA/ESP-32_VGA_Rev1_Schematic.pdf ESP32 VGA Rev 1 Schematic]
| |
− | * [http://land-boards.com/ESP32-VGA/ESP32-VGA_Rev2_Schematic.pdf ESP32 VGA Rev 2 Schematic]
| |
− | * [https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf ESP32-WROOM-32 Datasheet]
| |
− | * [https://github.com/land-boards/lb-boards/blob/master/ESP32/ESP32-Hub/Parts_/SchematicsforESP32.pdf ESP32 Module schematic]
| |
− | | |
− | == Rev 2 Changes ==
| |
− | | |
− | [[File:ESP32-VGA_CAD_REV2-bw.PNG]]
| |
− | | |
− | * '''Rev 1 board won't program or boot with FDTI #2 card attached'''
| |
− | ** Earlier FabGL had GPIO12 instead of GPIO34
| |
− | ** Move FTDI Rx line (GPIO12 to GPIO34)
| |
− | * Swap FTDI pins 4 and 5 (FTDI connectors)
| |
− | ** Allow direct connect to FTDI card (no swap)
| |
− | * Add SD Card connector
| |
− | ** MISO => GPIO 16
| |
− | ** MOSI => GPIO 17
| |
− | ** CLK => GPIO 14
| |
− | ** CS => GPIO 13
| |
− | ** Remove I/O pins from GVS connector
| |
− | * Replace H1/H2 with 1x2 to select/remove DC jack power\
| |
− | * Remove Polysilicone fuse
| |
− | * Change ESP32 board name silkscreen
| |
− | * Add SD card connector
| |
− | | |
− | == Prototype ==
| |
− | | |
− | * [[ESP32-I2C-HUB]]
| |
− | * [[VGAX49]]
| |
− | * [[PS2X49]]
| |
− | ** Purple = Keyboard
| |
− | ** Green = Mouse
| |
− | * [[CARRIER95TO49MM|95mm to 49mm Adapter card]]
| |
− | * 6-32/4-40 Standoffs, screws, nuts
| |
− | * Cabling
| |
− | | |
− | [[File:FabGL_P905-512pxV.jpg]]
| |
− | | |
− | == Assembly Sheet ==
| |
− | | |
− | * [[ESP32-VGA Rev 2 Assembly Sheet]]
| |
− | * [[ESP-32-VGA Rev 1 Assembly Sheet]]
| |