content/numworks-lcd.rst

Wed, 13 Mar 2024 11:03:13 +0100

author
David Douard <david.douard@sdf3.org>
date
Wed, 13 Mar 2024 11:03:13 +0100
changeset 152
96ebc76edfaf
parent 151
c851522149f5
permissions
-rw-r--r--

Update URLs for pcb & firmware to sourcehut

151
c851522149f5 numworks: minor fixes
David Douard <david.douard@sdf3.org>
parents: 149
diff changeset
1 =======================================
c851522149f5 numworks: minor fixes
David Douard <david.douard@sdf3.org>
parents: 149
diff changeset
2 Numworks N0110 calculator full repair
c851522149f5 numworks: minor fixes
David Douard <david.douard@sdf3.org>
parents: 149
diff changeset
3 =======================================
149
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
151
c851522149f5 numworks: minor fixes
David Douard <david.douard@sdf3.org>
parents: 149
diff changeset
8 :slug: numworks-lcd
149
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
151
c851522149f5 numworks: minor fixes
David Douard <david.douard@sdf3.org>
parents: 149
diff changeset
11 My daughter's `Numworks <https://www.numworks.com>`_ N0110 graphing calculator
149
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
12 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
13 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
14
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
15 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
16 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
17 calculator).
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
18
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
19 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
20 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
21
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
22 - 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
23 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
24
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
25 - 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
26
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
27 - 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
28
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
29 - `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
30
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
31 - 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
32
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
33 - 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
34
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
35 - LiPo battery,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
36
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
37 - 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
38
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
39
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
40 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
41
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
42 - MCU,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
43
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
44 - LCD,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
45
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
46 - 2.8v regulator,
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
47
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
48 - USB protection diodes.
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
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
51 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
52 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
53 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
54
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
55 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
56 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
57 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
58 (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
59 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
60 required before.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
61
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
62 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
63 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
64 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
65 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
66 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
67
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
68 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
69 `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
70 <https://phi.getomega.dev/>`_, `Khi
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
71 <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
72 <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
73 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
74 bit of confusion.
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
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
77 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
78 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
79
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
80 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
81 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
82 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
83 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
84
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
85 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
86 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
87 had around.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
88
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
89 The result was pretty ugly
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
90
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
91 .. 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
92 :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
93 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
94 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
95
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
96 but I had *some* results:
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
97
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
98 .. 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
99 :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
100 :class: image-process-large-photo
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
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
103 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
104 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
105 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
106 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
107 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
108 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
109 but that did not help.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
110
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
111 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
112 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
113 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
114 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
115
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
116 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
117
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
118 .. 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
119 :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
120 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
121
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
122 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
123 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
124
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
125 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
126
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
127 - 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
128
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
129 - 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
130 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
131 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
132
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
133 - 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
134 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
135 display refresh timing.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
136
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
137 - 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
138 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
139
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
140 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
141 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
142
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
143 Which worked nicely:
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
144
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
145 .. 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
146 :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
147 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
148
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
149 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
150 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
151 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
152 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
153 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
154 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
155
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
156 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
157 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
158 onto the Flex PCB.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
159
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
160 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
161
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
162 .. 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
163 :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
164 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
165
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
166 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
167
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
168 .. 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
169 :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
170 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
171
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
172 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
173 ok.
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
174
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
175 .. 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
176 :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
177 :class: image-process-large-photo
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
178
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
179 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
180 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
181
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
182 .. 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
183 :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
184 :class: image-process-large-photo
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
5ce5f3046c0b Add a blog entry for the Numworks N0110 repair
David Douard <david.douard@sdf3.org>
parents:
diff changeset
187 The Kicad design for the Flex-PCB is available `here <https://git.sr.ht/~douardda/numworks-lcd-adapter>`_.

mercurial