New Toys from questwiseventures.com

I just received a package from California from a fellow called Michael Yim. He got in touch some time ago. I think I’d seen his miniature CRT monitor MS-DOS prompt toy available online, and I wrote to him. He said, “Okay, I’ll send you one to play with.”

Here is his link – a good read. I’m not sponsoring anything incidentally.

I’ll cut a long story short: it cost him $23 (US Postage Paid) to send from San Jose, USA to Galera, Southern Spain, and the post-people somehow managed to send the package back to him, so yesterday his second attempt arrived. Interestingly the packages look identical (from his photo of the first one) so goodness knows how the post-people blew the first attempt.

New Toys from questwiseventures.com

But here is what arrived in the end – absolutely no purpose but great to have, the green USB-powered C: Prompt” monitor is going on top of my PC monitor. This absolutely reminded me of my late-1980’s act Sirius-1 (Victor 9000 in the USA). I love it.

Plug it into USB, prompt lights up complete with flashing underscore cursor – that’s it 🙂 The USB is out the back… Isn’t it great that someone has spent the time to make these.

New Toys from questwiseventures.com

I also received another one – identical but with a white c:\> prompt… In both cases the screens are even curved like the originals (way before flat screens).

Not a lot more I can say about these but to say that, they’re a great gimmick.

There was a third light-up miniature PC that looks like any of several towers I’ve owned over the years before switching to Mini-PCs. No monitor display on this one – just the various LEDs typical of Tower PCs. Isn’t that fun…

New Toys from questwiseventures.com

That’s it for the tiny PCs, the only other thing that arrived in the box was a tiny paper-white display board the company sell – It needs hooking up to an ESP to do anything with it – but out of the box it is showing a HELLO world message (typical paper white, no power needed – not a dummy display, non-volatile – only needs power (and processor) to change the message.

Anyway – here it is. It’s just an SPI connection and these days getting the display running should be simple – at least for a “Goodbye world” 🙂

New Toys from questwiseventures.com

The display arrived as in the image left saying “Hello World”.

I told ChatGPT I want to use ESPHOME rather than Arduino and…

ESPHome DEV version is currently (19/10/2026) and is needed to make that little display work (If you already have ESPHOME sitting in Home Assistant, you can safely run that and the DEV version side by side). And as if by magic… I loaded in the project you see here… I’ve doctored my SSID and password to protect the innocent. Why use a Seeed ESP32-C6 board? Only as I had one handy with pins attached – the display also came with pins attached. EASY. This is fun… see pins in the code – it seems the board can run on 3v3 or 5v, I used 3v3. All pins below connected to the Seeed ESP32-C6. No other parts – just USB-C to the C6 for power.

New Toys from questwiseventures.com
esphome:
  name: eink-c6
  friendly_name: E-Ink C6

esp32:
  board: seeed_xiao_esp32c6
  framework:
    type: esp-idf

logger:

api:

ota:
  - platform: esphome

wifi:
  ssid: "blah"
  password: "xxxxxx"

  ap:
    ssid: "E-Ink-C6 Fallback"
    password: "12345678"

spi:
  clk_pin: GPIO19
  mosi_pin: GPIO18
  miso_pin: GPIO20

display:
  - platform: epaper_spi
    model: SSD1681

    dimensions:
      width: 152
      height: 152

    cs_pin: GPIO21
    dc_pin: GPIO1
    reset_pin: GPIO0

    busy_pin:
      number: GPIO2

    enable_pin: GPIO16

    rotation: 0
    update_interval: 30s

    lambda: |-
      it.fill(Color::WHITE);

      it.print(
        76,
        60,
        id(font_large),
        Color::BLACK,
        TextAlign::CENTER,
        "GOODBYE"
      );

      it.print(
        76,
        90,
        id(font_large),
        Color::BLACK,
        TextAlign::CENTER,
        "WORLD!"
      );

font:
  - file: "gfonts://Roboto"
    id: font_large
    size: 20

Ok, the code above is simple but with a fairly lame result – how about this – to use – you’d need to change my WiFis and Home Assistant outside temperature and humidity sensors – and to read them, the device would need adding to HA first – but here’s a ready-made use for the e-ink display – again with the ESP32-C6 just as it was handy.

New Toys from questwiseventures.com
substitutions:
  device_name: eink-c6
  friendly_name: E-Ink C6
  device_version: "0.1"

esphome:
  name: ${device_name}
  friendly_name: ${friendly_name}
  on_boot:
    priority: -100
    then:
      - delay: 15s
      - component.update: eink_display
      - delay: 8s
      - deep_sleep.enter: eink_sleep
  
esp32:
  board: seeed_xiao_esp32c6
  framework:
    type: esp-idf

logger:

api:

ota:
  - platform: esphome

wifi:
  networks:
    - ssid: !secret wifi_ssid
      password: !secret wifi_password
    - ssid: !secret wifi_ssid2
      password: !secret wifi_password
    - ssid: !secret wifi_ssid3
      password: !secret wifi_password
    - ssid: !secret wifi_ssid4
      password: !secret wifi_password
    - ssid: !secret wifi_ssid5
      password: !secret wifi_password

  power_save_mode: none
  post_connect_roaming: true

  ap:
    ssid: "E-Ink-C6 Fallback"
    password: "12345678"

deep_sleep:
  id: eink_sleep
  run_duration: 30s
  sleep_duration: 60s
    
time:
  - platform: sntp
    id: local_time
    timezone: Europe/Madrid

    on_time_sync:
      then:
        - component.update: eink_display
sensor:
  - platform: homeassistant
    id: outdoor_temperature
    entity_id: sensor.outdoor_meter_65_temperature

  - platform: homeassistant
    id: outdoor_humidity
    entity_id: sensor.outdoor_meter_65_humidity

spi:
  clk_pin: GPIO19
  mosi_pin: GPIO18
  miso_pin: GPIO20

font:
  - file: "gfonts://Roboto"
    id: font_time
    size: 56

  - file: "gfonts://Roboto"
    id: font_day
    size: 30
    
  - file: "gfonts://Roboto"
    id: font_date
    size: 24

  - file: "gfonts://Roboto"
    id: font_temp
    size: 24

  - file: "gfonts://Roboto"
    id: font_small
    size: 16

display:
  - platform: epaper_spi
    model: SSD1681
    id: eink_display

    dimensions:
      width: 152
      height: 152

    cs_pin: GPIO21
    dc_pin: GPIO1
    reset_pin: GPIO0

    busy_pin:
      number: GPIO2

    enable_pin: GPIO16

    rotation: 0
    update_interval: never

    lambda: |-
      it.fill(Color::WHITE);
    
      // Time
      if (id(local_time).now().is_valid()) {
        it.strftime(
          76,
          2,
          id(font_time),
          Color::BLACK,
          TextAlign::TOP_CENTER,
          "%H:%M",
          id(local_time).now()
        );
    
        // Day
        it.strftime(
          76,
          60,
          id(font_day),
          Color::BLACK,
          TextAlign::TOP_CENTER,
          "%A",
          id(local_time).now()
        );
      }

        // Date
        it.strftime(
          76,
          90,
          id(font_date),
          Color::BLACK,
          TextAlign::TOP_CENTER,
          "%d %b %y",
          id(local_time).now()
        );
      
      // Temperature and humidity
      if (id(outdoor_temperature).has_state() &&
          id(outdoor_humidity).has_state()) {
        it.printf(
          76,
          115,
          id(font_temp),
          Color::BLACK,
          TextAlign::TOP_CENTER,
          "%.1f °C   %.0f%%",
          id(outdoor_temperature).state,
          id(outdoor_humidity).state
        );
      }

Caveat: Remember this is an e-Ink, not LCD or LED display and when it refreshes (once a minute in this case) it will flicker briefly and noticeably. All such displays are the same.

Leave a Reply

Your email address will not be published. Required fields are marked *

Leave the field below empty!

Are you human? Please solve:Captcha


The maximum upload file size: 512 MB. You can upload: image, audio, video, document, spreadsheet, interactive, text, archive, code, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here