HOW TO:Custom and Upgrade firmware for Digole Serial Display on Vx.xB
Posted at:2016-09-08 16:49:46 Edited at:2021-04-17 19:22:00
Upgrade able firmware download link: http://www.digole.com/fw
Any buyers received the Digole Serial display with pre-loaded firmware version affixed with NOT "A" (mean bootloader version, like V3.5B, V3.6B, V4.0V...), can upgrade firmware which released from Digole by using UART and I2C now. IMPORTANT: The released .hex files were encrypted and have special data structure, it can't be wrote directly on the module by using any programmer! otherwise your module will be un-usable.
This instruction only for UART mode, so, please remember: SET THE MODULE BACK TO UART, if you jumpered it to I2C or SPI.
1) a desktop or laptop computer,
2) an USB to UART adapter,
3) a software driving UART, freeware like Coolterm, Realterm.
You even can use a micro-controller to do this through UART or I2C ports.
There are 2 methods on UART mode:
1) slow method, using delay at the end of each line on .hex file, can drive multiple display modules(must be same modle) at same time, only need connect TX on UART to RX on display,
2) fast method, using Xon/Xoff flow control, only one display module each time, except connect TX on UART to RX on display, also need connect RX on UART to TX on display (CLK pin) .
The slow method can be used on all displays, but the fast method only can be used on the displays with 6 pin header (need bi-directional communication).
The process of slow method is very simple: use the CoolTerm program(it's free on platform of Windows, MAC OS and Linux) to send firmware data in .hex file to the Digole display through USB->UART adapter, the brief steps are: 1) send command "BLUBL}" to display, tell it that need to upgrade firmware; 2)set a wait time of 10ms delay at each line of data sent, this will give enough time to the display to write one line of firmware to the MCU); 3) switch the Baud to 57600 (this is fixed rate), then send the .hex file to the display; .
1) prepare a computer, an USB->UART adapter, a Digole serial display with preloaded firmware of Vx.xB, such as V3.5B, V3.6B, V4.0V..., older firmeare can't be upgraded
2) connect VCC and GND power supply pins from USB->UART adapter to display, and TX from adapter to RX(DATA pin) on the display (for fast Method, you also need connect RX from USB adapter to TX (CLK pin) on the display):
3) open CoolTerm program (or similar program which can operate the USB->UART adapter:
4) Click "Options" button, and select the port for USB->UART adapter, Baud is 9600 (you need to check ON "XON" if using fast method)
5) Click the "Transmit" page, set the 10ms delay after each line of data sent (for fast method, you don't need set this page )
6) click the "connect" button to active the USB->UART adapter, then select "Send string" function
7) (this step NOT required, just for testing)send "TT" command and termiantor value of 0 to display to test the connection is correct:
8.(NOT required, just for testing)if all good so far, you will see the test text on the screen like below
9) KEY STEP:send upgrade firmware command "BLUBL}" to the display
10) you will see the display is blank now. note: you can terminate the process of upgrade firmware at this time, just recycle the power
11) KEY STEP: back to "Options" menu, set the Baud rate to 57600, don't change any thing else
12) KEY STEP: click on "Connection"->"Send Textfile..."
12) KEY STEP: Choose the .hex released from Digole for upgrade or customized for special user, then click "Open".
13) Now, the program will send the .hex file to the display according to your setting.
14) You CAN'T terminate the upgrading process at this time, otherwise you need to use "HARD" method to restore crashed module, see below
Almost done upgrading
15) Bingo! customized or upgraded firmware write to display success!
If the module failed on upgrading firmware or the behaviors of module irregular, and not response "BLUBL}" command, you need use "Manual" method to restore the firmware:
1) for firmware older than V5.0:
the "manual" way to get the module entering upgrade mode is: pull the DATA pin on the module to GND(can use a jumper), then short the 2 pins on "RESET" button or (not installed but footprint on the PCB), then release the "RESET" pins, then release the DATA pin to high,you may need to try this way few times after you can see "S" on the CoolTerm window(@57600 Baud rate).
2) for firmware since V5.0:
Manual reset the display twice (connect the RST pin with GND shown on above pictures) quickly (in 0.5 seconds), till the "S" display on the CoolTerm window or the LED on RX of UART flash 3 times.