A project log for D1 Mini UI Shield

Add a user interface to a D1 mini

deshipudeshipu 06/08/2019 at 11:200 Comments

A few weeks later, and the PCBs have arrived. Unfortunately they weren't matte-black, as I originally ordered from @Elecrow, because I have panelized them, and apparently that is not allowed with matter-black — but they had no problems when I asked to change the color to red.

I tested how the angled headers as SMD pin headers work, and that was reasonably good:

(I included a module with a 0.96" display that I'm going to use here, for scale.)

The second attempt actually went much smoother, and I have a good technique of soldering them without too much work now, so I consider that experiment a success.

Next, I programmed an attiny24, soldered it in place, soldered all the passives, and added a display that, for now, I just desoldered from some module (I have proper, white, displays on order). A quick MicroPython script to test the display:

import machine

spi = machine.SPI(1, baudrate=1000000)
cs = machine.Pin(15, machine.Pin.OUT, value=1)
dc = machine.Pin(12, machine.Pin.OUT, value=0)

def write(data, command=True):
    dc(not command)

    b'\xAE' # display enable = off
    b'\x8D\x14' # charge pump = enable
    b'\xAF' # display enable = on
    b'\x20\x02' # address mode = page
    b'\xB7' # page = 7
    b'\x00x\x12' # column = 32


and several hours to fiddling with the passives and connections, until I figured out that the flex cable in the display I have is broken and only works in a certain position:

But at least I confirmed that the display is working.

I'm still waiting for the buttons to arrive — it's been two months already, since I ordered them for #PewPew Mini — but I hope they will arrive Really Soon Now™.