Skip to content
Nixie tube clock simulated on ESP32 using the device M5Stick-C
Branch: master
Clone or download
Latest commit e6481f1 Jun 17, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
images - Copy images final Jun 17, 2019
images LCD Image converter Jun 17, 2019
lcd-image-converter LCD converter editor Jun 17, 2019
.gitignore Initial commit Jun 14, 2019
LICENSE Initial commit Jun 14, 2019
M5StickC_Nixie_tube_Clock.ino Update Nixie Tube images Jun 17, 2019
vfd_18x34.c Initial Jun 14, 2019

Nixie tube clock simulated on ESP32 using the device M5Stick-C

To build a Nixie tube clock is a perpetual project on my mind. But it requires high voltage, expensive and not easy to be wereable. So the feeling I wanted to see was made by software.

The perfect opportunity came up to me when I get the M5Stich-C. It is an amazing device based on ESP32 with a small LCD display of 80 × 160 pixel, but bright and clear.


The watch has three faces. You can switch betewen them using the M5 switch.

How to

Previously, it is mandatory install the development environment. If you use the Arduino IDE, exists a perfect guide to start up the device : M5StickC Quick Start - Arduino Win

finally this is the configuration that you need to compile the Arduino sketch of M5StickC_Nixie_tube_Clock that you have here in this repository.

Now only that you need is plug in the M5Stick whith the USB-C adaptor and load the program.

Update Nixie Tube images

Execute the lcd-image-converter.exe include in this repository.

  1. Png or Jpg is read from File->Open Menu. The image will be displayed when loaded.
  2. Select: Option->Conversions Menu. The top Preset: selects "Color R5G6B5".
  3. Select: Image tap and select “8 bit” for Block size :. Press "OK".
  4. The example "vfd_35x67_8.c" is output by "Convert ..." in File-Convert Menu. Know in advance the destination path. Tick: Import All Images You can also output all the images with “Convert ... all”.
  5. Edit .c converted file. You will get an error as it is, so fix it with your editor.
  • Change: "Static const uint8_t image_data_vfd_35x67 [4690] = {" at the top of the file deleting "image_data_" as result of "static const uint8_t vfd_35x67_8 [4690] = {".
  • At the bottom of delete de entire line: "const tImage vfd_35x67 = {image_data_vfd_35x67, 35, 67, 8};
  • Save the example "vfd_35x67_8".c

Hardware components

The M5Stick-C is a device with multiple components as processor, sensors, interrupters and LED. The processor features are:

Microcontroler ESP32 Pico
Frequency 240MHz
Flash 4MB
  • I2C BM8563 : Realizes the RTC function. Address: 0x15.
  • AXP192 : power management IC.
  • ST7735S : LCD IPS Display 80 × 160 pixel, 0,96"
  • SH200Q : IMU Movement and positioning 6 axis inertial sensor.
  • SPM1423 : PDM Micropohne
  • IR : IR Transmitter

Software components

You can’t perform that action at this time.