Skip to content

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.

Adaptor

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.

Display Module

Connection of an IoD-09TH Display module to 4D-UPA with a micro-USB Cable

gen4 display module

Typical connection of gen4 display module
(gen4-uLCD-43DCT-CLB) to 4D-UPA

USB chip

gen4 display (gen4-uLCD-43DCT-CLB), connected to the 4D-UPA using a 30-way FFC cable, and Jumper wires connecting to the Arduino Adaptor Shield, on top of an Arduino. This is using GPIO1 and GPIO2 pins, mapped through to being a different UART/COM port on the gen4 display (Diablo processor), so as not to cause a conflict with the USB chip on the UPA.

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.

Visi Genie Settings

uLCD-35DT connected to 4D-UPA

4D-uLCD Display (uLCD-35DT) connected to the 4D-UPA.

4D-UPA.png

gen4-IoD Display (gen4-IoD-32T) connected to the 4D-UPA

PIXXILCD-25P4 Display

PIXXILCD-25P4 Display connected to the 4D-UPA using the PIXXI-LCD FFC cable

ESP32 display module

Typical connection of ESP32 based display modules
(gen4-ESP32-50CT) to 4D-UPA (REV1.4+)

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

gen4-uLCD products

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.

PIXXI-LCD products

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.

4D Universal Programming Adaptor - Front

4D-UPA REV 1.4 Front

4D Universal Programming Adaptor - Back

4D-UPA REV 1.4 Back

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.

4D-UPA Switch

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.

Mechanical Dimensions

Revision 1.3 and under

Mechanical Dimensions

Revision 1.4

Mechanical Dimensions

Schematic Diagram

Revision 1.2

Schematic Diagram HW REV 1.2

Revision 1.3

Schematic Diagram HW REV 1.3

Revision 1.4

Schematic Diagram HW REV 1.4

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