Skip to content

Charlieplexing without diodes #1

@fanf2

Description

@fanf2

Many thanks for publishing this! I was idly wondering about charlieplexing a keyboard, and I found this repo which explained why it is not (never?) used.

I have a few comments, one of which is a bug in your exposition.

a bug

In your diagram of a diodeless charlieplexed switch matrix, lines C and D are shown connected via switch 6. C and D can also be connected by switch 3.

I think this diodeless matrix cannot be decoded at all, because every pair of IO lines is connected by two switches and the controller has no way to tell them apart.

truth in advertising

There is a big hardware assumption in your top-line summary that markoplexing is a software extension: it requires analogue inputs, and not all microcontrollers are blessed with flexible enough inputs. (For instance, I have been playing with RP2040 devices recently, and they can’t use your trick.)

I think it would be helpful to readers to mention this requirement up front.

a fun idea

Another way to solve the ghosting problem is by controlling the IO voltage so it is less than twice the diode forward drop voltage. Then the second diode in a ghosting chain cannot pass current.

I don’t think this is very easy to do with normal digital IO pins and silicon diodes, but if you are using a 3v3 IO voltage, and you use blue LEDs instead of 1n4148, it might work. (Blue LEDs have a larger forward drop because of the materials they are made from.)

The disadvantage is it’s more expensive, and you have mandatory reactive bling.

anyway

Thanks again for publishing this neat idea, it saved me from a lot of brainwork!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions