4D-UPA
Description
This datasheet covers the 4D-UPA (Universal Programming Adaptor) which is compatible with multiple 4D display modules. It is included in most Starter Kit (SK) packs but can be sold separately and is a quick and easy way to interface to the 4D display modules.
The 4D-UPA (Universal Programmer Adaptor) is a universal programmer designed to replace all current 4D programmers, such as the uUSB-PA5, uUSB-PA5-II, gen4-PA, gen4-IoD-PA, and the 4D Programming Cable. It can be used for programming gen4-uLCD display modules, gen4-IoD display modules, IoD-09TH display modules, PIXXI-LCD modules, uLCD and uOLED display modules, as well as the gen4-ESP32 display modules. It can also be used for interfacing with a breadboard for prototyping, or interfacing with virtually any host. Some older products are still best suited for other 4D programmers, so they may be included in some Starter Kits instead of this 4D-UPA - consult the Product Page of the Starter Kit in question.
The 4D-UPA has a 30-way FFC connector at the top of the module, for connecting to gen4-uLCD-xx display modules and PIXXI-LCD modules. On the opposite side is a 10-way FFC connector, for connecting to gen4-IoD-xx display modules. Located centrally in the larger rectangular outline, are pads associated with the gen4-uLCD-xx, and gen4-ESP32-xx modules. These break out all the signals which come to/from the modules. 5 of the signals are the universal 4D RESET/GND/TX/RX/5V signals, these are located together to enable interfacing/programming of the uLCD and uOLED display modules, such as the uLCD-43DT and uOLED-128G2. The outer 2 sets of 6 holes are for mounting and programming the IoD-09TH display module. The IoD-09TH pads are slightly offset, enabling a simple 'friction fit' interface to the 4D-UPA, no soldering or headers are required - although headers can be soldered if needed.
4D-UPA Pin Mapping (REV 1.3 and under)
4D-UPA | DIABLO-16 | PICASO | PIXXI-LCD | PIXXI-44 |
---|---|---|---|---|
GPIO1 | PA3 | IO1 | IO1 / IO7 | IO1 |
GPIO2 | PA2 | IO2 | IO2 / IO6 | IO2 |
GPIO3 | PA1 | IO3 | IO3* | IO3 |
GPIO4 | PA0 | IO4 | IO4* | IO4 |
GPIO5 | PA9 | BUS5 | IO5* | IO5 |
GPIO6 | PA8 | BUS4 | - | IO6 |
GPIO7 | PA7 | BUS3 | - | IO7 |
GPIO8 | PA6 | BUS2 | - | IO12 |
GPIO9 | PA5 | BUS1 | - | IO13 |
GPIO10 | PA4 | BUS0 | - | IO14 |
GPIO11 | PA10 | BUS6 | - | IO15 |
GPIO12 | PA11 | BUS7 | - | IO16 |
GPIO13 | PA12 | IO5 | - | IO17 |
GPIO14 | PA13 | RX1 | - | IO18 |
GPIO15 | PA14 | TX1 | - | IO6 |
GPIO16 | PA15 | I2C‑SCL | - | IO7 |
GPIO17 | N/C | I2C‑SDA | - | N/C |
4D-UPA Pin Mapping (REV 1.4 and above)
4D-UPA | DIABLO16 | PICASO | PIXXILCD | PIXXI-44 | ESP32 | ESP32-RGB / ESP32-90 | ESP32-QSPI |
---|---|---|---|---|---|---|---|
GPIO1 | PA3 | IO1 | IO1 / IO7 | IO1 | GPIO17 | I2C‑SDA | I2C‑SDA |
GPIO2 | PA2 | IO2 | IO2 / IO6 | IO2 | GPIO18 | I2C‑SCL | I2C‑SCL |
GPIO3 | PA1 | IO3 | IO3* | IO3 | GPIO16 | EXT‑GPIO0 | GPIO1 |
GPIO4 | PA0 | IO4 | IO4* | IO4 | GPIO15 | EXT‑GPIO1 | GPIO14 |
GPIO5 | PA9 | BUS5 | IO5* | IO5 | GPIO48 | EXT‑GPIO2 | GPIO15 |
GPIO6 | PA8 | BUS4 | - | IO6 | GPIO47 | EXT‑GPIO3 | GPIO16 |
GPIO7 | PA7 | BUS3 | - | IO7 | GPIO38 | EXT‑GPIO4 | GPIO21 |
GPIO8 | PA6 | BUS2 | - | IO12 | GPIO39 | EXT‑GPIO5 | GPIO38 |
GPIO9 | PA5 | BUS1 | - | IO13 | GPIO40 | EXT‑GPIO6* | GPIO39 |
GPIO10 | PA4 | BUS0 | - | IO14 | GPIO6 | EXT‑GPIO7* | GPIO40 |
GPIO11 | PA10 | BUS6 | - | IO15 | GPIO5 | GPIO38/SPI-CS | GPIO45 |
GPIO12 | PA11 | BUS7 | - | IO16 | GPIO3 | GPIO11/uSD-MOSI | GPIO46 |
GPIO13 | PA12 | IO5 | - | IO17 | GPIO45 | GPIO12/uSD-SCLK | GPIO47 |
GPIO14 | PA13 | RX1 | - | IO18 | GPIO46 | GPIO13/uSD-MISO | GPIO48 |
GPIO15 | PA14 | TX1 | - | IO6 | GPIO20* | GPIO20* | GPIO20* |
GPIO16 | PA15 | I2C‑SCL | - | IO7 | GPIO19* | GPIO19* | GPIO19* |
GPIO17 | N/C | I2C‑SDA | - | N/C | GPIO11* | N/C | N/C |
GPIO18 | AUDIO‑OUT | AUDIO‑OUT | - | AUDIO‑OUT | GPIO0 | GPIO0 | GPIO0 |
GPIO19 | AUDENB | AUDENB | - | AUDENB | 3V3‑OUT | 3V3‑OUT | 3V3‑OUT |
GPIO20 | RESET | RESET | RESET | RESET | EN‑RST | EN‑RST | EN‑RST |
Note
- The PIXXI-LCD column is for all PIXXI-LCD devices (both PIXXI-28 and PIXXI-44) which have a 15-way FFC, and connect to the 4D-UPA via the 15-to-30 FPC cable. For PIXXI-28 modules, these use IO1/IO2 and sometimes more, depending on the module. For PIXXI-44 modules, use IO6/IO7.
- The PIXXI-44 column is for PIXXI-44 devices which feature a 30-way FFC natively. IO6/IO7 is repeated to bring the I2C-compatible pins into the same position as the DIABLO modules
- For ESP32 products, the pins marked with a * mean the hardware needs to be modified in order to gain this connection. Please refer to the ESP32 display product datasheet for more information.
- The 4D-UPA REV 1.4 is when compatibility with the ESP32 product lines was added. It adds a switch on the back of the board, to toggle between ESP32 mode and uLCD mode (uLCD mode is for all core 4D products such as GOLDELOX, PICASO, DIABLO-16, PIXXI-28 and PIXXI-44). It will be noticed that in REV 1.4, more GPIO names are present on the 4D-UPA itself. This is simply due to extra pins being required for the ESP32 line of products, so signals which were just passed through typically, now have different usages depending which module is connected, and also the position of the switch on the rear of the module.
The Flash and RESET buttons (shown as ESP-RESET on REV 1.3 and higher boards) are for the gen4-IOD, IOD-09 and ESP32 range's of products only. They have no impact or effect on gen4-uLCD, uLCD, uOLED or PIXXI-LCD products.
The 4D-UPA uses the Silicon Labs CP2104 USB to Serial Bridge IC. More information about this can be found on the Silicon Labs website. A link to the driver is available on our website.
- USB 2.0 compliant Full Speed 12Mbps maximum speed.
- Hardware or Xon/Xoff handshaking supported, 300bps to 2Mbps
- UART supports 5, 6, 7, 8 data bits, 1, 1.5, 2 stop bits, odd/even/mark/space and no parity
- Supports Windows 2000 and above, MAC (OSX-8 and above) and Linux (2.4 kernel and above)
- USB powered
- -10 to +60 degrees Celsius temp range
Programming Modes
The following pictures show how to connect the 4D-UPA to various hardware and display modules.
If you are connecting another device (such as an Arduino - shown in the previous Figure) to the 5-way interface pins on the 4D-UPA, while you are also connecting a 4D Display module to the 30-way FFC, the connection to the other device (Arduino for example) uses the UART0 serial port on the gen4 display. This is also used by the USB controller to program the gen4 display module. Therefore, each time you program to the display module, the 5-way cable needs to be disconnected from the other device (Arduino for example) so the serial UART will not have conflicts and fail.
Alternatively, you can wire to other GPIO pins on the 4D-UPA separately, to use the UART1/2/3 etc (as is available on selected gen4 display modules) which will help avoid this conflict because you used a separate UART. Adjustments to the settings in Workshop4 to use comms to a different UART are required.
The ViSi-Genie Settings were changed for the previous set-up to work.
FFC Cable information
The FFC cables supplied by 4D Systems (included with products) have the following specifications:
- For gen4-uLCD, uLCD-90, gen4-ESP32 and ESP32-90 products:
-
30 Pin Flexible Flat Cable, 150mm Long, 0.5mm (0.02") pitch
Cable Type: AWM 20624 80C 60V VW-1
Heat Resistance 80 Degrees Celsius
Connections on the opposite side at each end (Type B)
Note
Some different length cables are available by contacting 4D Systems sales directly
- For gen4-IoD products:
-
10 Pin Flexible Flat Cable, 150mm Long, 0.5mm (0.02") pitch
Cable Type: AWM 20624 80C 60V VW-1
Heat Resistance 80 Degrees Celsius
Connections on the opposite side at each end (Type B)
For PIXXI-LCD products:
PIXXI-LCD products use a custom FPC (not FFC) which converts the 30-way from the 4D-UPA into 15-way, for connecting to the PIXXI-LCD display modules. These are custom designed and have no standard replacement option off the shelf. For replacements, please contact 4D Systems Sales.
gen4-ESP32 / ESP32-90 Detail
To use a 4D-UPA with the gen4-ESP32 or ESP32-90 product lines, only REV 1.4 or higher versions of the 4D-UPA are compatible, as this is where compatibility was added in.
On the back side of the 4D-UPA REV 1.4 is a switch, which is used to select between uLCD mode (traditional mode, same as all 4D-UPA's prior to REV 1.4), or ESP mode (the new mode for ESP32 products). Simply switch the selection to the type of module being programmed, and it reconfigures how the 30-way FFC connector handles the modules being connected.
- gen4-uLCD-XX, uLCD, uOLED, PIXXI-LCD modules - use uLCD mode.
- gen4-ESP32, ESP32-90 modules - use ESP mode.
Note
Please note, the 4D-UPA REV 1.4 Switch affects the 30-way FFC connector, GPIO18(A) pad and RESET (GPIO20) pad, it does not affect the 10-way Gen4-IoD connector, or the IoD-09 pads. It does change the function of the GPIO18(A) marked pad (from AUDENB for uLCD mode, to G0 for ESP mode), as well as the RESET pad (marked as GPIO20, from RESET for uLCD mode, to ESP-RESET for ESP mode).
The ESP32 modules require a different type of RESET signal, and a G0 signal (via DTR and RTS), for programming the ESP32 processor. This is the reason for this change. When in uLCD mode (selector switch), functionality is identical to previous versions of the 4D-UPA.
Revision History
Hardware Revision
Revision Number | Date | Description |
---|---|---|
1.2 | 31/08/2017 | Initial Public Release Version |
1.3 | 29/04/2020 | - Minor PCB fixes and improvements - Addition of automatic Flash/uSD card hardware selection |
1.4 | 10/07/2023 | Added compatibility for ESP32 product lines - Switch added to rear of PCB to switch between ESP32 and uLCD (regular) modes |
Datasheet Revision
Revision Number | Date | Description |
---|---|---|
1.0 | 13/09/2017 | Initial Draft |
1.1 | 16/11/2017 | Updated the Mechanical Dimensions |
1.2 | 20/11/2017 | Formatting change |
1.3 | 29/11/2017 | Formatting change |
1.4 | 09/04/2018 | Addition of headers |
1.5 | 05/03/2019 | Cosmetic Changes to 4D-UPA Datasheet |
1.6 | 17/12/2020 | Minor changes and addition of REV 1.3 hardware information |
1.7 | 23/06/2021 | Minor addition of references to PIXXI-44 IO numbering, as it's different from PIXXI-28 numbering when mapping to GPIO labels on the UPA. Added images of FPCs. |
1.8 | 28/10/2021 | Minor addition regarding Flash and Reset buttons, into the main description |
1.9 | 08/07/2022 | Updated Schematic REV 1.3 to add in PIXXI-44 column, to reflect addition to the gen4-uLCD family for the P4 range. No change to the 4D-UPA itself, just the mapping to PIXXI-44 modules. |
1.10 | 20/12/2022 | Modified datasheet for web-based documentation |
1.11 | 14/08/2023 | REV 1.4 information added (ESP32 compatibility) |
1.12 | 06/03/2024 | Updated formatting for resource centre redesign |
1.13 | 03/05/2024 | Fixed conflicting names in Rev 1.4 schematic diagram Added discussion regarding the switch for ESP32/uLCD programming in schematic Added gen4-ESP32-QSPI column in pin map table |