Request for help to make ESP32 to work with 6" ePaper of ‘Dalian Good Display’

Dear Mr. Jean-Marc,

At the outset I would like to congratulate you for the outstanding work you have been doing. The patience with which you attend the forum topics is exceptional. And, your passion towards your work is exemplary. May God Almighty shower you with his choicest blessings.

I have thoroughly gone through each one of the 21 pages of the Topic 'Good Dispay ePaper for Arduino'. However, few points are still not clear to me. I'm definitely not a newbie; but I am not from the electronics domain. I'm, herewith, earnestly seeking some help from you:

I am trying to build a simple device using GDE060BA of ‘Dalian Good Display’. I want to use ESP32 with 8Mbyte PSRAM + 4Mbyte flash storage (similar to the configuration of ESP-EYE).

What I am seeking is similar to the Waveshare's code for their ESP32 board. The code is available here. Unfortunately, this code doesn't support GDE060BA (please check the Supported e-Paper section).

GDE060BA is chosen because a minimum of 6 inches screen size is required along with refresh time of <1 sec (full or partial).

If we manage to have sufficient Pins on a custom ESP32 board (by adding an IO Expander) for connecting the parallel connector of GDE060BA, is it possible to make ESP32 to work with this display thereby completely eliminating the necessity of DESTM32-T (the recommended Display-Kit-Combo-for-6"ePaper of 'Good Display')?

With great humility, extending a tiny gesture of gratitude for the work you are doing for the community, I propose to sponsor anything (boards, instruments, tools or anything else) that would help you in continuing this fantastic endeavor.

Thanks,
Regards.
Jiva

1 Like

@Jiva1970, Dear Mr. Jiva, welcome to the forum!

I appreciate to continue our exchange by PMs here.

Ok, now I understand what you didn't understand up to now.

SPI e-paper displays, the ones sold by Good Display or Waveshare, have a controller on the panel itself.
This controller has a complete graphics memory for the display, and even a second buffer for "previous data" for differential refresh.

Parallel interface e-paper displays neither have a complete controller nor graphics memory on the panel.
They have just a driver chip on the panel, that drives the TFT part of the panel. This driver chip contains just enough shift registers to drive the rows and columns.

Parallel interface e-paper displays need an external controller with graphics memory. The "800x600, 6inch E-Ink display HAT for Raspberry Pi" has such a controller, the IT8951. The "The DESTM32-Tcon-11" also has such a controller, a simpler one, AVT6203A, and a timing controller, TPS65185.

You could also use a processor as controller, and its memory as graphics memory, as the old demo board from Good Display does, E-ink Display Kit, e-paper display Arduino, with parallel interface, DESTM32-L(Discontinued)
But this can't achieve the fast refresh time.

So you need to look at the other end, other connector of the DESTM32-Tcon-11.

800x600, 6inch E-Ink display HAT for Raspberry Pi

E-paper display kit With Partial Refresh & 16 Grey Level For Parallel Port EPD Panel DESTM32-T

E-ink Display Kit, e-paper display Arduino, with parallel interface, DESTM32-L(Discontinued)

Let's get less formal. Best regards

Jean-Marc

Parallel interface e-paper displays need an external controller with graphics memory. The "800x600, 6inch E-Ink display HAT for Raspberry Pi" has such a controller, the IT8951.

OK. Now I understand. Building a similar HAT for ESP32 was never possible because of insufficient number of available Pins on ESP32 Board.

You could also use a processor as controller, and its memory as graphics memory, as the old demo board from Good Display does, E-ink Display Kit, e-paper display Arduino, with parallel interface, DESTM32-L(Discontinued)
But this can't achieve the fast refresh time.

Any idea regarding the refresh-time it might achieve?

The schematics of DESTM32-L(Discontinued) shows STM32F407ZET6 as MCU. That means this board can run individually without depending on any external MCU. Then, why does the name of this kit contain the word 'Arduino'?

Thanks,
Jiva

Building a similar HAT for ESP32 was never possible because of insufficient number of available Pins on ESP32 Board.

The 800x600, 6inch E-Ink display HAT for Raspberry Pi can be used with ESP32, as it also has an SPI interface in addition to a parallel interface.

BTW: the schematics of this HAT is quite simple. So if you want to build your own board this could be an option. You would need to find out how to parameterize/program the controller for your e-paper. Maybe Waveshare could help (the HAT is matched to the e-paper display).

Then, why does the name of this kit contain the word 'Arduino'?

Only the Gods and Good Display know why. But it can be used with the Arduino IDE, e.g. with my library GxEPD_HD.

I have not written down the refresh time, as far as I remember. And putting all together to try would take some time. I think it is several seconds.

Jean-Marc

Thanks much for the details and guidance.

I have few more doubts.
Kindly correct me if following understandings are wrong:

GoodDisplay's Combo DESTM32-T (DESTM32-L1-11 + DESTM32-Tcon-11) + GDE060BA can be used directly without any additional external hardware aid; of course, one will have to resort to using Keil4 or Keil5 IDE since the MCU on DESTM32-L1-11 is STM32.
However, thanks to you, this Combo can now be easily put to work (or programmed) through Arduino IDE by using/implementing your library GxEPD_HD.

On similar lines...
Waveshare's Combo 800x600, 6inch E-Ink display + HAT for Raspberry Pi (together with Raspberry Pi) can be used directly without any additional external hardware aid; we use PyCharm IDE here (or any other supported IDE) since Raspberry Pi is programmed in Python.
However, once again thanks to you, this Combo can now be easily put to work (or programmed) through Arduino IDE by using/implementing your library GxEPD2.

My apologies for posing very mundane and fundamental-level questions.

Thanks,
Regards.
Jiva

Good Morning Jiva,

you are correct with both points.

The purpose of the DESTM32-T is to serve as a complete Evaluation System for parallel IF e-paper displays of several sizes.
The DESTM32-Tcon-11 can be used as a controller and interface board, it is available separately, but this is not practical because of the two 40pin connectors, and the missing FCP connector(s) for the e-paper.

The advantage of this system is its open-ness, it can be controlled completely by any driver software, and the specs of all components are available and complete, as far as I remember. It can serve as an example to build your own system.

The purpose of the 6inch E-Ink display HAT for Raspberry Pi is to serve as a controller and interface board. Combined with a Raspberry Pi or any other processor board it can also be used as an evaluation system for the specific 6" e-paper, or the other variants for their specific e-paper.

It can be used with different processor boards, because it has several interfaces available:

This is an E-Ink display HAT for Raspberry Pi, 6inch, 800x600 resolution, with embedded controller IT8951, communicating via USB/SPI/I80/I2C interface, supports partial refresh.

The advantage of this board is that it can be used as-is, because its interfaces, and its acceptable size.
But it is not an open system. The IT8951 is a dedicated processor, see e.g. page 23 of the specs, and there is a flash memory on the board with specific firmware and parameters.
You would need more information to use it as an example to build your own system.

Remark on usability of GxEPD2 or GxEPD_HD for parallel IF e-papers:

GxEPD and GxEPD2 are quite mature for use with SPI e-papers from Good Display and Waveshare, I think.

Support for IT8951 in GxEPD2 is still in experimental state. I don't know if it is in use by anyone.
Support for IT8951 in GxEPD_HD is not (yet) available. It could have more grey level support and faster data transfer to the controller.

Support for DESTM32-T in GxEPD_HD, and GxEPD_HD as a whole is in experimental state. Support for grey level graphics could be added, grey level bitmaps is supported. Mixed content with differential refresh for b/w parts may not work or not work correctly.

I still use an old Tolino with its Browser as my main display for my main 2 inside and outside temperature and humidity sensors. I use a 7.5" b/w 640x480 e-paper display to present a list of the values of all my temperature and humidity sensors (Wemos D1 mini with SHT31).

Did you consider using an ePaper Reader such as Kindle, Tolino, Kobo.. with their Browser for your application?

Obviously the manufacturers of ePaper Readers have a solution to connect parallel IF e-paper displays without needing much space. I still intend to take apart an old Kindle to have a look at its internals.

Jean-Marc

The secret is still under cover: (next to the FCP connector)


"hard to open", the lioness told her kid about the crashed plane, "but delicious, like canned food".

The 256k flash chip MX25U2033EZNI on the flex cable of the 6" e-paper of the above Kindle is interesting...

It is big enough to persistently store a copy of the screen content, 8006004bit for 16 grey levels.

This allows to use differential refresh with grey levels using a corresponding waveform.

There is may even be enough space left to store 256 wavetables for the (24)*(24) combinations.
And maybe even a multiple of this for temperature compensation.

Should I really cut off the caps of such an intelligent device, to learn more?
E.g. with a small disk saw, similar to brain-surgery, as there are so many solder joints holding the caps.

E-paper displays for ePaper Readers seem more trick-full than e-paper displays for shelf labels.

Jean-Marc

Opened like opening a can without a can-opener, but starting with a side-cutter:


Samsung K4X2G323PD-8GD8 2GB MDDR 64Mx32
NXP MCIMX508CVK8B i.MX50 32-bit MPU, ARM Cortex-A8 core, 800MHz, MAPBGA 416
SanDisk SDIN5D1-2G iNAND flash

The e-paper controller was expected to be near the flex connector. So I assume the processor i.MX50 serves as controller.

Support for DESTM32-T in GxEPD_HD, and GxEPD_HD as a whole is in experimental state. Support for grey level graphics could be added, grey level bitmaps is supported. Mixed content with differential refresh for b/w parts may not work or not work correctly.

I'm going to test GxEPD_HD with DESTM32-T + GDE060BA. Request you to kindly guide me if I get stuck up somewhere.

Did you consider using an ePaper Reader such as Kindle, Tolino, Kobo.. with their Browser for your application?

Our project demands innovative costing; stylish name for "low-cost" :slight_smile:
At any given moment, the device is expected to hold ONLY one document having content equivalent to 30 A4 Pages (at maximum). Nothing else. And, I intend to replace this document file from an MDM (Mobile Device Management) platform, as and when required. Further, we don't need: Browser, Front Light, Bluetooth, Internal Battery, USB Content Management and Text to Speech

That's the reason we are trying to build a new one (re-inventing the wheel ?)
Does our decision make sense? Or, do you have a contradicting opinion? Kindly comment upon, please.

You could also use a processor as controller, and its memory as graphics memory, as the old demo board from Good Display does, E-ink Display Kit, e-paper display Arduino, with parallel interface, DESTM32-L(Discontinued)
But this can't achieve the fast refresh time.

For such a limited processing and storage requirements (as mentioned in the previous paragraph) don't you feel the following configuration would suffice?
GDE060BA +
'ESP32' (as processor & WiFi block) +
'8Mbyte PSRAM' (as graphics memory) +
'part of 4Mbyte flash' (as storage)

Can the above configuration take care of your contention that it "can't achieve fast refresh time", please?

The 256k flash chip MX25U2033EZNI on the flex cable of the 6" e-paper of the above Kindle is interesting...

Kudos!
You last post reconfirms your thirst, patience and fervour !!
Is there any way to make use of the meticulous observations and inferences that you have made, in our current context, please?

Thanks,
Regards.
Jiva

@Jiva1970

I'm going to test GxEPD_HD with DESTM32-T + GDE060BA. Request you to kindly guide me if I get stuck up somewhere.

Yes, I will try to help you.
Note that the DESTM23-T is not as easy to use with the Arduino IDE as a simple Arduino. You need a separate ST-LINK V2 for program upload, and a separate serial to USB adapter if you want to monitor diagnostic output of the program.

Our project demands innovative costing; stylish name for "low-cost"

My work is targeted to hobby users of Arduino IDE and e-paper displays from Dalian Good Display or Waveshare. My knowledge about e-paper displays is limited to these e-papers. I can't take responsibility for use of my libraries for commercial products, see GNU General Public License v3.0.

E-Paper Readers are produced in mass quantities. They are produced cost effective. They can use sophisticated SW because the cost is covered by high volume.

There are cheap e-paper E-Paper readers, not much higher than the cost of the e-paper panel.
e.g. Portable e-book reader E-Ink 6 inch E-reader 800x600 Resolution Display

Can the above configuration take care of your contention that it "can't achieve fast refresh time", please?

This configuration can't achieve the refresh speed you stated, I am sure of. And there is no SW for this configuration to start with. And it would need a hardware interface, e.g. for the generation of the panel driving voltages.

Is there any way to make use of the meticulous observations and inferences that you have made, in our current context, please?

No. This is for me to learn and understand. But its use is far out of my reach. I need existing controller/interface solutions to use. I can then try to find out what can be achieved with these.

It would be helpful if you could state your minimum requirements once more, e.g.:

  • minimum and maximum size
  • minimum resolution (pixels in both dimensions)
  • minimum number of grey levels

How does it compare with this panel: 7.5 inch Large 4 Grayscale e-paperdisplay higher resolution 800x480 SPI GDEW075T7

Jean-Marc

I can't take responsibility for use of my libraries for commercial products, see GNU General Public License v3.0.

Understood from the very beginning.
Perfectly alright!
I just elaborated on the specs to make the project-requirements more clear, so that the context is established properly. That's it.

There are cheap e-paper E-Paper readers, not much higher than the cost of the e-paper panel.
e.g. Portable e-book reader E-Ink 6 inch E-reader 800x600 Resolution Display

Thanks for suggesting.
I have seen this. Unfortunately, the device doesn't provide WiFi support and software customization.

It would be helpful if you could state your minimum requirements once more, e.g.:

  • minimum and maximum size
  • minimum resolution (pixels in both dimensions)
  • minimum number of grey levels
  • minimum and maximum size: Minimum 6"
  • minimum resolution (pixels in both dimensions): Minimium 800 X 600
  • minimum number of grey levels: 16
    Notes on Size selection: Less than 6" would not be suitable for the use case. Non of the higher sizes (more than 6 inches) support refresh rates of less than 1sec; GDEW080T5 supports parallel interface and required refresh rate, but its way too costly.

How does it compare with this panel: 7.5 inch Large 4 Grayscale e-paperdisplay higher resolution 800x480 SPI GDEW075T7

Thanks for that suggestion. Gone through it. Unfortunately, refresh rates are quite high (>=4secs).

Yes, I will try to help you.
Note that the DESTM23-T is not as easy to use with the Arduino IDE as a simple Arduino. You need a separate ST-LINK V2 for program upload, and a separate serial to USB adapter if you want to monitor diagnostic output of the program.

Thank you very much.
Is it that without ST-LINK V2 we can't upload your GxEPD_HD example sketches from Arduino IDE to DESTM32-T ?
One more question.. there are two example sketches in the GxEPD_HD examples folder: GxEPD_HD_DESTM32L_Example.ino and GxEPD_HD_Example.ino
Can you kindly try to explain the difference between these two.

Thanks,
Regards.
Jiva

Hi Jiva,

may I ask you where you live? Not easy to deduce from the time stamps of your posts :slight_smile:

Yes, for program load from the Arduino IDE to the STM32 board you need either the ST-LINK/V2 or one of the cheaper versions such as e.g. ST LINK Stlink ST-Link V2 Mini STM8 STM32 Simulator Download Programmer
The first one is preferable if you ever want to use the Keil 4 or Keil 5 development environment with full debug capability, e.g. for use with the demo sources from Good Display. The second one is the one I use and have about 10 of. I use to keep them connected to my diverse STM32 boards.
The important advantage of the first is the matching cable with the standard pinout. And the ISOL version could help with GND loop issues.

The GxEPD_HD_DESTM32L_Example is for use with the E-ink Display Kit, e-paper display Arduino, with parallel interface, DESTM32-L(Discontinued), which is no longer available.

The GxEPD_HD_Example is the example for use with the DESTM32-T.

Jean-Marc

Dear Mr. Jean-Marc,

may I ask you where you live? Not easy to deduce from the time stamps of your posts :slight_smile:

Where can 'Jiva' be from, other than from 'The Land of Karma'? :wink:

Yes, for program load from the Arduino IDE to the STM32 board you need either the ST-LINK/V2 or one of the cheaper versions such as e.g. ST LINK Stlink ST-Link V2 Mini STM8 STM32 Simulator Download Programmer

Thanks much for your kind guidance. I'm going to get ST-LINK/V2-ISOL.

Adding to it, it seems that there are few other tools which might be of help; but, then, I'm a bit confused about the utility of the same:
STLINK-V3SET
ARM-JTAG-20-10
Would it help to have them too?

(Note: I possess a Segger J-Link Base. However, I couldn't get an opportunity to put it to use yet)

....if you ever want to use the Keil 4 or Keil 5 development environment with full debug capability, e.g. for use with the demo sources from Good Display....

I want to use Keil MDK5-lite (its free), but its code size limit is 32 KBytes (32 KByte for Debugger and 32 KBytes for 'Compiler, Linker, Libraries, and Utilities'). Can GxEPD_HD_Example work within this limit?

If not, STMCube IDE seems to be one plausible option. Do you think GxEPD_HD_Example will work fine in STMCube IDE?

You kind suggestion on the above choice will be of great help, please.

The GxEPD_HD_Example is the example for use with the DESTM32-T.

Thanks a lot!
That cleared my confusion.

However, my bad luck, while trying to add Good Display's MCU to the Arduino Boards manager, I'm facing a slight issue. :frowning:

The MCU on DESTM32 L1-11 (the main board of DESTM32-T) is STM32F103VET6. It sports 512Kbytes-Flash, 64Kbytes-SRAM and 100 Pin Package (please refer to Pages 11 & 135 of Datasheet).

Rightly so, you too have mentioned the same MCU in the initial comments section of GxEPD_HD_Example as follows:
To be used with "STM32F103VE" of "Generic STM32F103V series" of package "STM32 Boards (STM32Duino.com)" for Arduino.
Install package with Boards Manager after adding to preferences in additional Boards Manager URLs:
https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/master/STM32/package_stm_index.json

I had tried the following URL too:
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json

When I followed the above instructions, 'STM32 Cores by STMicroelectronics version 1.7.0' appeared in the 'Boards Manager' of Arduino IDE; I installed it. However, boards included in this package list the following STM32F103 varieties, only:
Nucleo F103RB, BluePill F103C6 (32K), BluePill F103C8, BluePill F103C8 (128K), BlackPill F103C8, BlackPill F103C8 (128K), Maple Mini F103CB

Overview of STM32F103 provides the specifications of the above boards as follows:
F103C6: 32Kbytes-Flash, 10Kbytes-SRAM and 64Pin-Package
F103C8: 64Kbytes-Flash, 20Kbytes-SRAM and 64Pin-Package
F103CB:128Kbytes-Flash, 20Kbytes-SRAM and 64Pin-Package
F103RB:128Kbytes-Flash, 20Kbytes-SRAM and 100Pin-Package

The F103VE version is missing! And, unfortunately, stm32duino.com is down.
Can you kindly guess, choosing which one of the above boards might work for GxEPD_HD_Example, please?

Thanks,
Regards.
Jiva

Dear Mr. Jiva,

Yes, I thought you live in India, but I had mixed up time difference of your time zone and CET.

The ST-LINK/V2-ISOL may be an overkill, I didn't look at the price.
I have not yet looked at the STLINK-V3SET, neither to ARM-JTAG-20-10.
So I don't know if they can be used with the Arduino IDE for program upload, but I would expect so.

I do have a Segger-J-Link, I had used it with Keil some while ago, but not with Arduino IDE.
Maybe this is the "Black Magic Probe" available for program upload.

I only used Keil 5 for a short time, I had a time-limited license. The code-size limited license is not usable for the Good Display demo code.

GxEPD_HD_Example and the GxEPD_HD library can only be used with Arduino IDE, as it uses Arduino specific syntax elements, and the Arduino specific library Adafruit_GFX.

I am sorry about the confusion with the STM32 packages.
Support for STM32 for Arduino IDE is evolving, and I lost the overview, as I don't use STM32 often currently. The link in the example is not usable.

I think the version from Roger Clark is the one I use for this board. I expected the stm32duino.com to contain the same, but this is not (yet) so, obviously.

You could try to manually install this package as described in the README.MD:

I will try this on my new system I am setting up, so I should be able to help with questions.

As you already have installed an STM32 package, it should be enough to:

  • download Arduino_STM32 as zipfile
  • extract all
  • rename to Arduino_STM32 (remove -master)
  • copy to Documents/Arduino/hardware (create directory hardware)

You may need to restart the Arduino IDE to see the added STM32 package as selectable boards.

Jean-Marc

BTW: I appreciate your questions and your interest in GxEPD_HD. It is an occasion for me to learn and hopefully improve and enhance this library.

More to add:

It might be worth to search for alternative connection options for parallel IF e-paper displays.
You could ask Good Display, as they are interested in selling e-paper panels.

And there are more experts for e-papers, e.g. http://www.wf-tech.com/en/about.asp?id=1

You may already have seen the specs of the IF chip on the GDE060BA panel:
HX8705-B_DS_preliminary_v01_100621

Dear Mr. Jean-Marc,

I will try this on my new system I am setting up, so I should be able to help with questions.

That's so kind of you.
Thank you very much :slight_smile: .

I think the version from Roger Clark is the one I use for this board. I expected the stm32duino.com to contain the same, but this is not (yet) so, obviously.

You could try to manually install this package as described in the README.MD:

GitHub - rogerclarkmelbourne/Arduino_STM32: Arduino STM32. Hardware files to support STM32 boards, on Arduino IDE 1.8.x including LeafLabs Maple and other generic STM32F103 boards

Superb!!
That worked. STM32F103VE showed up !!!
Thanks. :slight_smile:

I'm facing few problems, further. I request you to kindly consider providing any possible help/guidance in this regard, please:

On trying to compile (by clicking the 'Verify' button in Arduino IDE), I'm getting the following error(s) in the console panel:

Can you think of any possible reasons for that, please?

On the hardware front:
I have bought few ST-Link V2 Mini Simulator Download Programmers.
Below is the screenshot of Board Settings that I have set, in Arduino IDE:

As you can see, I have selected Upload method: "STLink".
However, in the absence of any instructions on 'how-to-connect' in the DESTM32-T Specification I'm finding it difficult to decide upon how to connect the PINs 2(SWCLK), 4(SWDIO), 6(GND) and 8(3.3V) of ST-Link V2 Mini Simulator Download Programmer to DESTM32-T.
ST-Link V2 Mini SimulatorDownloadProgrammer.png

The following is mentioned on Page#5 of DESTM32-T Specification.

It is evident from the above that the DESTM32-T should be powered with 5V only and NOT 3.3V.
It means that I was wrong in my assumption to use PIN 8(3.3V) of ST-Link V2 Mini Simulator Download Programmer for power (as I mentioned in Point#2 above). I should use PIN 10(5V), rather. Right?

It is mentioned in the last line on Page#5 of DESTM32-T Specification (pl refer image given below) that "It doesn't support USB power input for now."

I think I should power the board with an external 5V DC Adapter, connected to the "DC5V Input" socket on the Board (shown in the layout below).

Am I right?

And, Good-Display had supplied the following cable with the DESTM32-T.
Cable provided with DESTM32-T.PNG

The above cable (connected to the "USB Interface" socket of the Board - please refer second image under Point#4 above) should be serving the purposes of PINs 2(SWCLK), 4(SWDIO) of ST-Link V2 Mini Simulator Download Programmer. And, the external power source should be providing 5V and GND.
In this context, can we completely do away with the ST-Link V2 Mini Simulator Download Programmer?
And, if yes, shall I change 'Upload method' (in Tools menu of Arduino IDE) to: "Serial"?

Any guidance is highly welcome, please.

Thanks,
Regards.
Jiva

Cable provided with DESTM32-T.PNG

ST-Link V2 Mini SimulatorDownloadProgrammer.png

Dear Mr. Jiva,

I am surprised you already got your DESTM32-T.

I will try to answer in several steps, as I will add some photos.

First step is the compile issue.

I need to know about your Arduino IDE environment, as the error output looks unfamiliar.
Which version of the Arduino IDE do you use?
Do you use a local installed version, or an online version?
On which operating system?
Local installed .exe version or Windows App version?

I use a local installed .exe version on Windows 10.

If you get errors during compile there should be a button "Copy error messages" down right above the output window. Click this button and paste it to your post using the </> command symbol to put it into code tags. This makes it easy for readers.

I could compile on my new set up system, with some warnings.
I get errors on my "work" notebook, I may need to update the STM32 package. That fixed it.

This is for a start, I will add more answers.

Jean-Marc

However, in the absence of any instructions on 'how-to-connect' in the DESTM32-T Specification I'm finding it difficult to decide upon how to connect the PINs 2(SWCLK), 4(SWDIO), 6(GND) and 8(3.3V) of ST-Link V2 Mini Simulator Download Programmer to DESTM32-T.

You connect it to the pins of the JTAG connector of the board. Standard pinout for JTAG, your Seegger may have pin diagram. Note that my ST-Link V2 has different pinout than yours, there are variants. See also Photo.

It is evident from the above that the DESTM32-T should be powered with 5V only and NOT 3.3V.

Correct. My red 5V wire was disconnected last, it should go to a 5V pin.

It is mentioned in the last line on Page#5 of DESTM32-T Specification (pl refer image given below) that "It doesn't support USB power input for now."

I think it can be used, if the switch is set accordingly. I would need to check.

In this context, can we completely do away with the ST-Link V2 Mini Simulator Download Programmer?
And, if yes, shall I change 'Upload method' (in Tools menu of Arduino IDE) to: "Serial"?

I think the USB to serial connection goes to the wrong serial channel for program upload. And it would need a jumper to select the serial bootloader. It can however be used for diagnostic output to Serial Monitor, if the other serial channel is chosen. I always use ST-Link for program upload, it is more reliable.



Note the missing reset button of the demo board, a common left-out of Good Display boards.

I am surprised you already got your DESTM32-T.

Received it on 23rd itself. :slight_smile:

I need to know about your Arduino IDE environment, as the error output looks unfamiliar.
Which version of the Arduino IDE do you use?
Do you use a local installed version, or an online version?
On which operating system?
Local installed .exe version or Windows App version?

I use a local installed .exe version on Windows 10.

I too use local installed .exe version on Windows 10. Please see images 01 and 02 (attached).
Version of Arduino IDE: 1.8.10

If you get errors during compile there should be a button "Copy error messages" down right above the output window. Click this button and paste it to your post using the </> command symbol to put it into code tags. This makes it easy for readers.

Following is the error on Arduino Console, please:

Arduino: 1.8.10 (Windows 10), Board: "Generic STM32F103V series, STM32F103VE, STLink, 72Mhz (Normal), Smallest (default)" C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\govin\AppData\Local\Arduino15\packages -hardware E:\Users\govin\OneDrive\Documents\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\govin\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries E:\Users\govin\OneDrive\Documents\Arduino\libraries -fqbn=Arduino_STM32:STM32F1:genericSTM32F103V:device_variant=STM32F103VE,upload_method=STLinkMethod,cpu_speed=speed_72mhz,opt=osstd -ide-version=10810 -build-path C:\Users\govin\AppData\Local\Temp\arduino_build_159088 -warnings=none -build-cache C:\Users\govin\AppData\Local\Temp\arduino_cache_132150 -prefs=build.warn_data_percentage=75 -verbose E:\Users\govin\OneDrive\Documents\Arduino\libraries\GxEPDHD\examples\GxEPD_HD_Example\GxEPD_HD_Example.ino C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\govin\AppData\Local\Arduino15\packages -hardware E:\Users\govin\OneDrive\Documents\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\govin\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries E:\Users\govin\OneDrive\Documents\Arduino\libraries -fqbn=Arduino_STM32:STM32F1:genericSTM32F103V:device_variant=STM32F103VE,upload_method=STLinkMethod,cpu_speed=speed_72mhz,opt=osstd -ide-version=10810 -build-path C:\Users\govin\AppData\Local\Temp\arduino_build_159088 -warnings=none -build-cache C:\Users\govin\AppData\Local\Temp\arduino_cache_132150 -prefs=build.warn_data_percentage=75 -verbose E:\Users\govin\OneDrive\Documents\Arduino\libraries\GxEPDHD\examples\GxEPD_HD_Example\GxEPD_HD_Example.ino Using board 'genericSTM32F103V' from platform in folder: E:\Users\govin\OneDrive\Documents\Arduino\hardware\Arduino_STM32\STM32F1 Using core 'maple' from platform in folder: E:\Users\govin\OneDrive\Documents\Arduino\hardware\Arduino_STM32\STM32F1 Detecting libraries used... "C:\\Users\\govin\\AppData\\Local\\Arduino15\\packages\\STM32\\tools\\arm-none-eabi-gcc\\8.2.1-1.7/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -DBOARD_generic_stm32f103v -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10810 -DARDUINO_GENERIC_STM32F103V -DARDUINO_ARCH_STM32F1 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DSERIAL_USB -DGENERIC_BOOTLOADER -DMCU_STM32F103VE -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103VE -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 "-IE:\\Users\\govin\\OneDrive\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple" "-IE:\\Users\\govin\\OneDrive\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/include" "-IE:\\Users\\govin\\OneDrive\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/stm32f1/include" "-IE:\\Users\\govin\\OneDrive\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/usb/stm32f1" "-IE:\\Users\\govin\\OneDrive\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/usb/usb_lib" "-IE:\\Users\\govin\\OneDrive\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\cores\\maple" "-IE:\\Users\\govin\\OneDrive\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\variants\\generic_stm32f103v" "C:\\Users\\govin\\AppData\\Local\\Temp\\arduino_build_159088\\sketch\\GxEPD_HD_Example.ino.cpp" -o nul Alternatives for GxEPD_HD_EPD.h: [GxEPD_HD-master@0.0.4 GxEPDHD@0.0.4] ResolveLibrary(GxEPD_HD_EPD.h)  -> candidates: [GxEPD_HD-master@0.0.4 GxEPDHD@0.0.4] panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x0 pc=0x7855fb] goroutine 1 [running]: github.com/arduino/arduino-cli/legacy/builder.ResolveLibrary(0x11cdc5a0, 0x11e060b4, 0xe, 0x11e060b4) /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/resolve_library.go:64 +0x14b github.com/arduino/arduino-cli/legacy/builder.findIncludesUntilDone(0x11cdc5a0, 0x11cfc560, 0x88ed00, 0x11c8ce40, 0x11f30670, 0x11d2ef00, 0x0) /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/container_find_includes.go:358 +0x3b6 github.com/arduino/arduino-cli/legacy/builder.(*ContainerFindIncludes).Run(0xdebc68, 0x11cdc5a0, 0xdebc68, 0x0) /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/container_find_includes.go:152 +0x3e5 github.com/arduino/arduino-cli/legacy/builder.runCommands(0x11cdc5a0, 0x11c39e1c, 0x20, 0x20, 0x409a01, 0xfff, 0x0) /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:210 +0xbd github.com/arduino/arduino-cli/legacy/builder.(*Builder).Run(0x11c79f40, 0x11cdc5a0, 0xdebbb4, 0x11c4ac98) /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:117 +0xb9c github.com/arduino/arduino-cli/legacy/builder.RunBuilder(...) /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:226 main.main() /home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-builder/main.go:398 +0x6d2 C:\Program Files (x86)\Arduino\arduino-builder returned 2 Error compiling for board Generic STM32F103V series. 

I couldn't resolve the above errors yet :frowning:

Thank you very much for the photos of your DESTM32-T setup. That was very helpful.

Now I received the "ST-LINK/V2 is an in-circuit debugger and programmer" too; NOT the ISOL version.
Attached image is of my connection scenario. Is it OK?


Can you kindly comment upon the following jumper settings (marked as A, B, C & D in the image), please:
A (N_J21) - 4 Pins - All open,
B (P_J7) - 2 Pins - All shorted,
C (P_J2) - 3 Pins - 2 Pins shorted (towards the edge of the main board) and
D (Y_J1) - 4 Pins - All open

Note the missing reset button of the demo board, a common left-out of Good Display boards.

If I use the JTAG connecting cable (as shown in above image), is there any other way to connect an External Reset Button (like you did)?

Two software (firmware/drivers), out of many available here, seem to be applicable for my connection scenario:
STSW-LINK007: Used to upgrade the firmware of ST-LINK/V2 and ST-LINK/V2-1 boards through the USB port.
STSW-LINK009: Declares to the system the USB interfaces possibly provided by the ST-LINK: ST Debug, Virtual COM port and ST Bridge interfaces.
Am I right?
Or.. missing anything?

Kindly guide, please.

Thanks,
Regards.
Jiva

I assume you have installed GxEPD_HD library by downloading it as zip-file and using the Library manager "Add .ZIP Library…" method.

You also need to install Adafruit_GFX. It is known to Library Manager; use "Manage Libraries..." and write "Adafruit_GFX" into the search box, then install it. Maybe this helps.

My compiler output with verbose output for compile:

.. Using board 'genericSTM32F103V' from platform in folder: C:\Users\ZinggJ\Documents\Arduino\hardware\Arduino_STM32\STM32F1 Using core 'maple' from platform in folder: C:\Users\ZinggJ\Documents\Arduino\hardware\Arduino_STM32\STM32F1 Detecting libraries used... ... Alternatives for GxEPD_HD_EPD.h: [GxEPD_HD-master@0.0.4] ResolveLibrary(GxEPD_HD_EPD.h)  -> candidates: [GxEPD_HD-master@0.0.4] "C:\\Users\\ZinggJ\\AppData\\Local\\Arduino15\\packages\\STM32\\tools\\arm-none-eabi-gcc\\8.2.1-1.7/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -DBOARD_generic_stm32f103v -DVECT_TAB_ADDR=0x8002000 -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6 -w -x c++ -E -CC -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10810 -DARDUINO_GENERIC_STM32F103V -DARDUINO_ARCH_STM32F1 -DSERIAL_USB -DGENERIC_BOOTLOADER -DMCU_STM32F103VE -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103VE -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/include" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/stm32f1/include" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/usb/stm32f1" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/usb/usb_lib" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\cores\\maple" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\variants\\generic_stm32f103v" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\libraries\\GxEPD_HD-master\\src" "C:\\Users\\ZinggJ\\AppData\\Local\\Temp\\arduino_build_711221\\sketch\\GxEPD_HD_Example.ino.cpp" -o nul Alternatives for SPI.h: [SPI@1.0] ResolveLibrary(SPI.h)  -> candidates: [SPI@1.0] .. Alternatives for Adafruit_GFX.h: [arduino_337648@1.5.7 Adafruit_GFX_Library@1.6.1] ResolveLibrary(Adafruit_GFX.h)  -> candidates: [arduino_337648@1.5.7 Adafruit_GFX_Library@1.6.1] ... WARNING: library GxEPD_HD-master claims to run on STM32 architecture(s) and may be incompatible with your current board which runs on STM32F1 architecture(s). Generating function prototypes... ... Compiling libraries... Compiling library "GxEPD_HD-master" "C:\\Users\\ZinggJ\\AppData\\Local\\Arduino15\\packages\\STM32\\tools\\arm-none-eabi-gcc\\8.2.1-1.7/bin/arm-none-eabi-g++" -c -g -Os -w -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++11 -MMD -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -DBOARD_generic_stm32f103v -DVECT_TAB_ADDR=0x8002000 -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6 -mcpu=cortex-m3 -DF_CPU=72000000L -DARDUINO=10810 -DARDUINO_GENERIC_STM32F103V -DARDUINO_ARCH_STM32F1 -DSERIAL_USB -DGENERIC_BOOTLOADER -DMCU_STM32F103VE -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 -DMCU_STM32F103VE -mthumb -march=armv7-m -D__STM32F1__ -DARDUINO_ARCH_STM32 "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/include" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/stm32f1/include" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/usb/stm32f1" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\system/libmaple/usb/usb_lib" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\cores\\maple" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\variants\\generic_stm32f103v" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\libraries\\GxEPD_HD-master\\src" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\hardware\\Arduino_STM32\\STM32F1\\libraries\\SPI\\src" "-IC:\\Users\\ZinggJ\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "C:\\Users\\ZinggJ\\Documents\\Arduino\\libraries\\GxEPD_HD-master\\src\\GxGDE060BA.cpp" -o "C:\\Users\\ZinggJ\\AppData\\Local\\Temp\\arduino_build_711221\\libraries\\GxEPD_HD-master\\GxGDE060BA.cpp.o" ... Compiling library "SPI" ... Compiling core... ... Archiving built core (caching) in: C:\Users\ZinggJ\AppData\Local\Temp\arduino_cache_475272\core\core_0393d058552e78ae46ac502370a096cf.a Linking everything together... ... C:\Users\ZinggJ\Documents\Arduino\hardware\Arduino_STM32\STM32F1\cores\maple\libmaple/timer.c:524: warning: undefined reference to `dispatch_basic' c:/users/zinggj/appdata/local/arduino15/packages/stm32/tools/arm-none-eabi-gcc/8.2.1-1.7/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld.exe: C:\Users\ZinggJ\AppData\Local\Temp\arduino_build_711221\core\core.a(timer.c.o): in function `__irq_tim7': C:\Users\ZinggJ\Documents\Arduino\hardware\Arduino_STM32\STM32F1\cores\maple\libmaple/timer.c:528: warning: undefined reference to `dispatch_basic' "C:\\Users\\ZinggJ\\AppData\\Local\\Arduino15\\packages\\STM32\\tools\\arm-none-eabi-gcc\\8.2.1-1.7/bin/arm-none-eabi-objcopy" -O binary "C:\\Users\\ZinggJ\\AppData\\Local\\Temp\\arduino_build_711221/GxEPD_HD_Example.ino.elf" "C:\\Users\\ZinggJ\\AppData\\Local\\Temp\\arduino_build_711221/GxEPD_HD_Example.ino.bin" Multiple libraries were found for "Adafruit_GFX.h" Used: C:\Users\ZinggJ\Documents\Arduino\libraries\Adafruit_GFX_Library Not used: C:\Users\ZinggJ\Documents\Arduino\libraries\arduino_337648 Multiple libraries were found for "GxEPD_HD_EPD.h" Used: C:\Users\ZinggJ\Documents\Arduino\libraries\GxEPD_HD-master Multiple libraries were found for "SPI.h" Used: C:\Users\ZinggJ\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI Using library GxEPD_HD-master at version 0.0.4 in folder: C:\Users\ZinggJ\Documents\Arduino\libraries\GxEPD_HD-master Using library SPI at version 1.0 in folder: C:\Users\ZinggJ\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI Using library Adafruit_GFX_Library at version 1.6.1 in folder: C:\Users\ZinggJ\Documents\Arduino\libraries\Adafruit_GFX_Library "C:\\Users\\ZinggJ\\AppData\\Local\\Arduino15\\packages\\STM32\\tools\\arm-none-eabi-gcc\\8.2.1-1.7/bin/arm-none-eabi-size" -A "C:\\Users\\ZinggJ\\AppData\\Local\\Temp\\arduino_build_711221/GxEPD_HD_Example.ino.elf" Sketch uses 432824 bytes (82%) of program storage space. Maximum is 524288 bytes. Global variables use 64104 bytes (97%) of dynamic memory, leaving 1432 bytes for local variables. Maximum is 65536 bytes. Low memory available, stability problems may occur. 

My jumper settings:

A: open
B: closed
C: left side (maybe for USB)
D: closed, for diagnostic output through USB

If I use the JTAG connecting cable (as shown in above image), is there any other way to connect an External Reset Button (like you did)?

I don't know. I don't think there is any other pin for reset. There is RES on J19.

Two software (firmware/drivers), out of many available here, seem to be applicable for my connection scenario:
STSW-LINK007: Used to upgrade the firmware of ST-LINK/V2 and ST-LINK/V2-1 boards through the USB port.
STSW-LINK009: Declares to the system the USB interfaces possibly provided by the ST-LINK: ST Debug, Virtual COM port and ST Bridge interfaces.
Am I right?
Or.. missing anything?

I have no idea. I don't have this ST-Link.

Jean-Marc

@Jiva1970,

I had asked Good Display for information concerning your project:

Do you know of any products that use the design or chipset of your DESTM32-TCON-11?

I have a user who looks for an inexpensive solution with GDE060BA:
Request for help to make ESP32 to work with 6" ePaper of ‘Dalian Good Display’ - Displays - Arduino Forum
Or any other inexpensive solution. Thank you.

I got:

About the user's questions, we use TCON solution for GDE060BA that is to say AVT6203 drive solution.
At present, GDE060BA can support to drive by ESP32 or other processors.
Please help pass on the message. Thanks.

asked:

I assume you meant “At present, GDE060BA can’t support to drive by ESP32 or other processors”.
Do you know how your customers drive the GDE060BA e-paper display?
Are there any users using the AVT6203 except your TCON-11?

got:

Our customer drive the GDE060BA by TCON-11.
Even if the customer need to drive by other ways, they will develop but won't tell us.
Sorry.

I think these customers invest quite some effort and time for their products.
And not all can be protected by patents.
So they hide their solutions, e.g. under RFI shields and in firmware that can't easily be reverse-engineered.

Jean-Marc

google "e ink driver board" gets you the known interface boards from Waveshare and Good Display, some hacking suggestions, and some expensive development boards, e.g.:

The link to e ink driver board images may be interesting:

https://www.google.com/search?sa=X&q=e+ink+driver+board&tbm=isch

Dear Mr. Jean-Marc,

Thanks much for the links to Eink boards and images.

I think these customers invest quite some effort and time for their products.

I very well agree with you.
Similarly, we are going to develop our own product.
Let's see how it fares.

From now on, the help I would seek will predominantly pertain to your GxEPD_HD library vis-a-vis Good-Display's 6" ePaper (GDE060BA) + Dev Board (DESTM32-T) + Arduino IDE.

Do you think its better to post those queries/requests on Good Dispay ePaper for Arduino ? Or, shall continue here?
Kindly suggest, please.

Thanks,
Regards.
Jiva

Dear Mr. Jiva,

Both topics are suitable to continue, whatever you prefer.
I slightly prefer to continue on this topic, as it is specific to your questions.

I am interested to learn how you get on.
Could yo compile the example, or even run it on your system?

Any questions or suggestions for improvement are welcome.

Jean-Marc