content/numworks-lcd.rst

Wed, 12 Jul 2023 21:35:29 +0200

author
David Douard <david.douard@sdf3.org>
date
Wed, 12 Jul 2023 21:35:29 +0200
changeset 149
5ce5f3046c0b
child 150
8eb94ab1fa43
child 151
c851522149f5
permissions
-rw-r--r--

Add a blog entry for the Numworks N0110 repair

149
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
1 ==========================
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
2 Numwork N0110 calculator
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
3 ==========================
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
4
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
5 :Author: David Douard
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
6 :Category: Electronics
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
7 :Tags: Numworks, N0110, repair, calculator
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
8
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
9
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
10 My daughter's `Numwork <https://www.numworks.com>`_ N0110 graphing calculator
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
11 got fried when plugged in a cheap USB PSU. Black screen, heating up killing the
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
12 battery in a matter of a few tens of minutes.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
13
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
14 The design being originally Open Source (hardware and firmware), it makes sense
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
15 to try to fix it instead of just buying a new one (it is not a cheap
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
16 calculator).
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
17
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
18 The schematic is pretty simple: built around a `STM32F730V8T6 <https://www.st.com/en/microcontrollers-microprocessors/stm32f730v8.html>`_, there are
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
19 only a few components surrounding the MCU:
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
20
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
21 - an LCD (280x320, 2,8", ST7789V driver) driven using the 16 bits 8080
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
22 interface, taking advantage of ST's `FSMC <https://www.st.com/resource/en/product_training/STM32F7_Memory_FSMC.pdf>`_ controller,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
23
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
24 - a 64MB flash (`AT25SF641 <https://www.renesas.com/us/en/products/memory-logic/non-volatile-memory/spi-nor-flash/at25sf641-64mbit-27v-minimum-spi-serial-flash-memory-dual-io-support>`_) to store apps and user data,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
25
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
26 - LiPo charger (`RT9526AGE <https://www.richtek.com/Products/Battery%20Management/Single%20Cell%20Li-Ion%20Battery%20Charger/RT9526A?sc_lang=en&specid=RT9526A>`_),
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
27
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
28 - `RT9078 <https://www.richtek.com/Products/Linear%20Regulator/Single%20Output%20Linear%20Regulator/RT9078?sc_lang=en&specid=RT9078>`_ 2.8V voltage regulator to poser the MCU from the LiPo battery,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
29
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
30 - LCD backlight DC-DC converter (`RT9365GQW <https://www.richtek.com/Products/LED%20Driver/White%20LED%20Driver/RT9365?sc_lang=en>`_)
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
31
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
32 - 3 LEDs plus a number of passives, keypad, reset button,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
33
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
34 - LiPo battery,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
35
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
36 - USB port surge protection diodes (`USBLC6-2SC6 <https://www.st.com/en/protections-and-emi-filters/usblc6-2.html>`_)
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
37
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
38
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
39 The list of fried devices was pretty much every active component:
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
40
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
41 - MCU,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
42
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
43 - LCD,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
44
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
45 - 2.8v regulator,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
46
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
47 - USB protection diodes.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
48
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
49
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
50 Due to the global chip shortage, I had to gamble on Aliexpress to find a
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
51 STM32F730. I bought one from `there <https://fr.aliexpress.com/item/1005004924466026.html>`_. Against all odds, the delivered chip
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
52 looks genuine and is working properly.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
53
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
54 So I replaced the MCU and the 2.8v regulator. At this point, I wasn't sure
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
55 about the status of the LCD. I did not know the USB protection diodes was dead,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
56 so uploading a firmware was quite a challenge; USB based DFU was not working
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
57 (obvioulsy), but it was not obvious to understand why; I wasn't sure if a blank
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
58 STM32 should enumerate ok as USB device, or if bootstrping a firmware was
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
59 required before.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
60
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
61 I also did not want to upload Numworks' latest official firmware nor using
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
62 their WebDFU tools since they changes their licensing policy and moved to a
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
63 closed source model, official firmwares since version 16.3 now lock the
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
64 bootloader to prevent custom or open source firmware from being installed.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
65 A complete explanation of this (in French) is `provided here <https://tiplanet.org/forum/viewtopic.php?f=97&t=25561>`_
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
66
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
67 So I started looking at the alternative firmware projects for the Numworks:
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
68 `Omega <https://getomega.dev/install/latest>`_, `Phi
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
69 <https://phi.getomega.dev/>`_, `Khi
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
70 <https://www-fourier.univ-grenoble-alpes.fr/~parisse/nws.html>`_ and `Upsilon
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
71 <https://lolocomotive.github.io/Upsilon-website/install>`_ (!) Plus starting
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
72 from a blank STM32 instead of an upgrade from an existing installation added a
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
73 bit of confusion.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
74
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
75
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
76 After some time I got convinced I had successfully uploaded a firmware, but
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
77 noting showed up on the LCD: diagnostic of a dead LCD as well...
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
78
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
79 The tricky part is that the LCD used in the calculator is pretty common on
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
80 principle: standard size, usual LCD controller. The very one used in the
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
81 calculator seems specificly made for the Numworks: specific ribbon cable and
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
82 specific pinout. Could not find a compatible device on usual sources.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
83
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
84 To validate I did indeed have a successfully replaced the MCU and uploaded a
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
85 working firmware, I did a nasty rastnest experiment with a ST7789V LCD module I
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
86 had around.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
87
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
88 The result was pretty ugly
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
89
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
90 .. image:: {static}/images/numworks/rastnest.jpg
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
91 :alt: The test setup to connect a ST7789V based LCD module to the Numworks,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
92 using a breadboard to interconnect the 2 interfaces.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
93 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
94
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
95 but I had *some* results:
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
96
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
97 .. image:: {static}/images/numworks/partial.jpg
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
98 :alt: The LCD module shows half a screen with some content mixed with garbage.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
99 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
100
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
101
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
102 First I was thinking the issue could be related to the speed of the
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
103 communications between the MCU and the LCD: the signal path was far from
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
104 optimal, with a ribbon cable, a breakout board, a bus of 10cm jump wires, a
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
105 breadboard, another bunch of 10cl jump wires, yet another bunch of jump wires,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
106 another breakboard, and at last, the ribbon cable of the LCD module... So I
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
107 spent some time hacking the Omega source code to reduce the transmission speed;
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
108 but that did not help.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
109
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
110 To figure out what was wrong I ended up using my DSLogic logic analyzer. The
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
111 culprit was a pair of swapped jumpers (strangely there was only one pair of
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
112 messed connections). Since it was a pair of data lines above D7, it was
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
113 partially working. So the messed half display.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
114
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
115 With the 2 wires back in order, result was much better...
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
116
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
117 .. image:: {static}/images/numworks/success.jpg
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
118 :alt: The LCD module shows the Numworks main screen... but flipped
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
119 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
120
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
121 For some reason, this display showed the image reversed. Anyway, I was
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
122 confident enough to spend a bit more money buying a replacemement LCD module.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
123
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
124 Choosing a suitable replacement was not an easy task:
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
125
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
126 - It needs to use the ST7789V controller.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
127
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
128 - It needs to be the proper size; seems easy, it's a standard 2.8" module...
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
129 well no, most of these modules are 66.95x47.80mm while the module in the
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
130 calculator is 66x50mm. Also the thickness must be about 2.1 or 2.2mm max.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
131
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
132 - It needs to have the proper ST7789V signals available, 16bits 8080 mode;
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
133 especially the Tearing Effect (TE) signal is used by the firmware to optimize
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
134 display refresh timing.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
135
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
136 - It needs to be an "12 o'clock" IPS LCD module (not a TN one) so the viewing
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
137 angle is adapted when used in the calculator.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
138
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
139 I found a few references on AliExpress (almost) matching all these contraints
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
140 and bought `this one <https://fr.aliexpress.com/item/1005004628969756.html>`_.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
141
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
142 Which worked nicely:
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
143
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
144 .. image:: {static}/images/numworks/test_ips_module.jpg
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
145 :alt: The IPS module works just fine, the image is correctly oriented.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
146 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
147
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
148 Obviously, the ribbon cable pinout is not the same as the original LCD module.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
149 So an adapter had to be made. At first I thought I could just solder a bunch of
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
150 thin enameled wires, but this was not a very good idea; too hard to do
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
151 properly, without damaging the ribbon cable etc. So I decided to try the new
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
152 Flex PCB service JLCPCB (and others) now offer. Never did a Flex PCB design,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
153 was a nice opportunity to give it a try.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
154
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
155 I did a simple design, with one side being connected to 30 pins FCP connector
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
156 on the Numworks side, and the other side with a 40pins FCP connecter soldered
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
157 onto the Flex PCB.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
158
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
159 The design, printed on paper to check dimensions, looks like this:
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
160
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
161 .. image:: {static}/images/numworks/flex_design.jpg
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
162 :alt: Paper print of the flex-PCB adapter.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
163 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
164
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
165 The flex-PCB arrived a few days later:
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
166
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
167 .. image:: {static}/images/numworks/flex_pcb.jpg
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
168 :alt: Flex-PCB adapter side-to-side with the paper print.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
169 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
170
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
171 Was not sure how it would support hand soldering the FCP connector, but it went
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
172 ok.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
173
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
174 .. image:: {static}/images/numworks/flex_pcb_connected.jpg
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
175 :alt: Flex-PCB adapter installed in the Numworks.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
176 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
177
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
178 It fits pretty nicely in the Numworks enclosure; the only modification I had to
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
179 make it to trim a bit some plastic pads to fit and center le LCD module.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
180
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
181 .. image:: {static}/images/numworks/repaired.jpg
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
182 :alt: The Numworks fully reassembled running the Omega firmware.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
183 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
184
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
185
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
186 The Kicad design for the Flex-PCB is available `here <https://git.sr.ht/~douardda/numworks-lcd-adapter>`_.

mercurial