• Real and imitation VFD one next to another

    svofski03/30/2024 at 20:38 0 comments

    After some fooling around with text on the 7-segs, I'm returning back to the original purpose of these display modules: the calculator. I assembled both OLED and VFD modules on a single breadboard and plugged them into MK-61 emulator.

    OLED and VFD together
    Fake and real VFD together, isn't it a lovely sight!

    A curious detail. PT6315 used in the VFD driver here can be powered by 3V3, but for reasons explained earlier I'm powering it with 5V. But that makes it not happy with 3V3 logic signals from the Pi Pico. The solution here is to power it from ~4.7V VSYS rail rather than from 5V VBUS. 3V3 reaches that lowest logic high threshold voltage and it works reliably.

    I had a bit of a falling out with Mbed Arduino and switched to Arduino-Pico framework because I thought it doesn't work with SPI1. Later I realised that I messed up pin numbers and the framework probably wasn't a problem. For simplicity I keep 2 displays connected to different SPI busses.

    Here's some epic dual screen eggog action:
    Blinky program execution with a happy end

    The plan is to make an universal carrier board that would accept both OLED and VFD modules:

    The idea is also to make it usable both as a single-board design, hence the elaborate silkscreen labels for all buttons, and as a sandwich with 3d printed buttons like the IVEE.

    If you missed it, here's a video about my 7-seg VFD text experiments:

  • ИЛЦ2-12/8Л

    svofski03/24/2024 at 21:19 0 comments

    ИЛЦ2-12/8Л displaying the most iconic message it has ever displayed

    In the previous log I documented a modern imitation of the old VFD display look. There is no shortage of the original VFD displays on ebay though. A word of warning: their quality may be highly variable. Out of 3 that I bought only one worked without issues.

    A while ago I designed a PCB that would let me use this display in a project as a module. I pretty much copied a design for a Futaba VCR display that I found on Taobao. It is based on MT3608 step up converter for -24V, AC generator around some 74LS04 and UCC27517 gate driver + some discretes and the main course is PT6315, which is a very convenient and rather flexible VFD display driver.

    Here's the kicanvas link to the module schematic and PCB. It works.


    There's not much to say other than compared to the more recent Japanese VFDs this display looks rather dim. I'm not sure if this is simply because the technology is inferior, their age, or maybe my driving circuit is inadequate. It's good, just less bright than expected.

    ИЛЦ2-12/8Л segment shapes

    I always keep going about how unique the shapes of these segments are. They are very unusual and for some people simply iconic. Generic modern LED 7-segs in comparison are lacking the character, they are just 7 slabs and a dot put together in the most unimaginative way possible.

    The inner structure of these displays is a sight to behold.

    And the obligatory HELLORLD:

    The module must be powered by 5V. The limiting factor is UCC27517 gate driver used in the AC generation, which has undervoltage cutoff around 4.3V. I've yet to test if this module can be driven by 3V3 TTL signals, but I'm hopeful.

    Update: I recorded a longer video about it:

  • Faking that VFD look

    svofski03/17/2024 at 20:52 0 comments

    The most iconic calculator for me is Elektronika MK-54, or MK-61. MK-52 to a lesser degree, because it came out so late and I never had a chance to actually use it. In the mid-80s, alone in the summer at a country house I spent countless hours on MK-54 playing lunar lander and displaying various things it shouldn't display. Actually it ate through the batteries really fast and the hours were pretty short after all.

    The display that those calculators used may seem nothing special today, but the peculiar shape of its segmented characters is very dear to my heart as it turns out. The display is called ИЛЦ2-12/8Л and it's easy to buy it today on ebay. Of course I have a few of them and there's a driver circuit in the works.

    However before I found them and the courage to make a VFD driver board, I found an OLED screen which seemed to be perfect for modern fakery. It's a 2.08" 256x64 OLED screen. It has a SH1122 driver with SPI interface. The driver can achieve 16 levels of grayscale, so in theory it could show some antialiased fonts. The lot on aliexpress looked like this:

    u8g2, which would be my go-to library for driving a small OLED, supports it out of the box. Unfortunately, u8g2 doesn't have any support for grayscale graphics at all. The older u8glib can handle grayscale, but has no support for SH1122. Fortunately I found this nice video:

    Mr. Tsaryov generously shared his code on github here: https://github.com/mikhail-tsaryov/SH1122-STM32-HAL-Driver/

    It was easy to adapt it to Arduino HAL, which is what I blasphemously use with Pi Pico. The mini library provides functions for initialisation, graphics primitives and and text rendering with several fonts included. The fonts that it supports can't be antialiased though, so I ended up pixeling up my own stuff.

    I traced the indicator in The GIMP from a high-resolution photo. After several iterations I had a tilemap of every character my calculator can display.

    I ruled against rendering individual segments because at this low resolution the segments bleed a little bit into eachother, and it is important for the overall warm and fuzzy look. Note how there's a dedicated minus glyph -- this is because mantissa and exponent sign have a wider, more blocky shape rather than the common middle segment in the main digit pattern.
    For that nice look, non-lit segments should also be visible. Unfortunately, even though this OLED is grayscale, its darkest non-black value is way too bright.

    Trying to achieve slightly better perceptual linearity in the lower intensity range, I played with precharge/discharge parameter of SH1122. Empirically, the value of 0xF1 seemed to give the darkest dark so I kept it.

    But it was still way too bright. To further reduce the brightness, I added a checkerboard stencil for the darkest shade. This reduced the brightness by 50%, but it kinda looked ugly. The solution is to invert the stencil every frame. Provided that the frames refresh fast enough, this gives reduced darkness while staying smooth. It's next to impossible to photograph though because you tend to end up with only A or B frame but not a mixture of both.

    On the photos it tends to look rather crude, but keep in mind that this is a fairly small indicator. I can't see all the sharp detail with a naked eye.

    I already had a port of MK-61 emulator by fixelsan and sergev ready for my pipico, so I just had to plug in my freshly cooked library. After some fiddling around I was greeted by a wonderful MK-61 display in all its weird glory:

    It's impossible to catch this on camera really, but the surprising thing about this display is how close to VFD it actually feels in person. Sold as white, it's rather blueish, so not that far off from a typical VFD and would be indistinguishable under a green filter.

    In the likeness of the VFD it imitates, this display is also very power-hungry. I couldn't power it from 3.3V rail on a pipico without rendering rp2040 completely unstable. You need a dedicated LDO to power a display...

    Read more »

  • IVEE

    svofski02/28/2024 at 12:34 3 comments

    IVEE, a FORTH-based Arduino calculator is a mostly completed project. It is based on IVEE by zooxo. Kudos to zooxo for designing this beauty and making it public. Please visit his repository, give it a star and watch his video explaining the features of this calculator. It's inner beauty is hard to appreciate without some deep diving in.

    My contribution here is purely aesthetical and mechanical. I designed a carrier PCB with cute buttons and a means of packing it together in one sandwich. I made a bunch of mistakes which I hope to avoid in the future, but nothing serious. Things that you can't avoid when designing things based on incomplete technical drawings.

    Buttons on a frame, printed in resin. The engravings are added as displacement in Blender with very high mesh subdivision level. They are then filled in with water based gouache paint (not acrylic!) and subsequently fixed with several layers of transparent acrylic spray.

    buttons frame

    Buttons with top cover assembly. The legends are designed to be recessed by leaving out copper and mask layers, this creates trenches deep enough to fill them in with gouache paint. Also fixed with acrylic spray.

    buttons with the top plate

    The dome switches SKRRAAE010. The whole thing didn't work quite as planned because of incorrectly accounted for the height of the display assembly. I added a second layer of buttons as spacers, luckily I printed several.

    dome switches SKRRAAE010

    The bottom side of the buttons have little push pimples that are supposed to be perfectly aligned with dome centres. The reality is such that the pimples need to be larger and higher than I designed them. Eventually I was able to align the buttons with the domes, but it was incredibly fiddly.

    smol pushrods

    The design files are in this repo: https://github.com/svofski/calculator-ivee

    I describe the project in the video, please watch and comment. Hope you like it.

    This calculator still needs a battery to be actually useful. Soon.