I am resuming the development of this module so I can finish it ASAP (while several other projects are eagerly waiting :-D). This is a good idea because I have all the required/necessary parts (delivery ended in february) so it won't cost me even more. I don't even know how much I've already spent, when you love, you don't keep scores... So I've had a few months to let the design "percolate" in my mind and I return with a fresh mind, only to find the mess I've done.
One little detail that changes everything is the single-button flip-flop that I discovered while searching something else for another project (probably flip-flops for the #Clockwork germanium).
One big advantage is that only one button is necessary and this saves space. Not that I'm space-constrained but the previous board revision was 83mm long, which is unfortunate for panelization in the Europe format.
With only 3 buttons, I have shrunk it to 29×79mm and this leaves just enough margin for milling in a 100×160 board (panelized as 3×2 boards).
This also reduces the number of pins on the connector, but now two functions must be controlled differently. A simple pair of push-buttons does not work as before, there is a risk of short-circuits if both pull-up and pull-down buttons are pressed at the same time (a 1K resistors becomes needed in series with the power supply).
The 5th digit's decoding logic is getting overhauled as well. I'm not happy with the cluster of single-gate chips, they put pressure on routing because of the power supplies, and the 1G157 MUX2 in SC70 is really tiny.
I think I've found a way to use a 74LVC157APWR instead, saving hassles during assembly but this forces me to review all the previous design rationales.
The '157 will also drive the common cathodes of the LEDs, saving a couple of MOSFET in SOT23. Another win. A couple of AND2 (1G08) remain but the SOT23 is not as annoying as SC70.
Overall I try to reduce the size of the BOM. I try to include 4-resistors networks for example. I have to find room to add pull-downs at the data inputs though...