Improved keyboard wedge

New version uploaded…

Changes:

  • An array containing UID/Password pairs has been added, if the UID matches one in the array the related password is output. If not it then checks the tag itself for a password stored as before. You do not have to use this feature.

  • The dotstar on the Trinket (RGB LED) slowly changes colour the entire time. This is pointless, but the dotstar is there so why not use it?

I still need to see about adding more card types (and testing them), a mode to set/change the password on the chip, change the status of the red led on the Trinket depending on what the software is actually doing.

2 Likes

I’m not sure how many people (if any) are interested in this.

Tonight’s version changes the built in dotstar so it shows white normally, when a token is scanned it will change colour depending on the action taken…

Green means that the wedge found a password on the token itself.

Blue means that it found the UID in the table of UID password pairs.

Red means it didn’t find either so it just outputted the UID. This means that with an unknown token this acts the way the KBR does.

Apart from the colour signalling, the other new change is the third mode where the UID of unknown tokens that don’t contain a password is typed out.

5 Likes

Does this have any difference in functionality to the one @Vicarious set up?

Yes. I wasn’t aware of the unloki but it only provides two of the three modes that this has.

The original mode for this version was to read the contents of the chip looking for a header, if it finds the header then it outputs from there to the next null character as the password. In this case any of these devices can be used with any number of chips with no special prep of the device.

Your password is not stored anywhere other than on your chip.

The other thing is that this hardware is cheaper than an unloki. The Arduino is about $9 and the RFID reader is $5. There is no case yet, but that would hopefully be a 3d printed case design that would be freely available.

I would like to add an extra mode if I can where the device itself can be used to write a password out to a chip allowing for easy updating.

I hope that helps you understand the additional mode in this device. Although as I didn’t know about the unloki this was developed entirely independently.

Edited to add:
This is not a commercial product, I am using off the shelf hardware modules combined with software I wrote which has been placed into the public domain.

4 Likes

This is an awesome evolution and works great :+1:

Can I use the “soon tm” logo here?
Got the first version printed this morning, should have something usable in a week or 2 …
Once it’s ready I’ll release it into the wild.

And we cannot thank you enough for this!
I’ve been looking at wedges and other devices, but non fitted what I wanted them to do … All did parts, but this does it all. And you can get in the code and tweek what you need for a perfect fit (if you want to, but why?)

3 Likes

@Zwack

Wondering if these projects can be merged, into a open source DIY united project.

I didn’t want to name drop, but Soon™…

(Btw the ™ is ( tm ) without the spaces)

This does not include a Bluetooth module. It might be possible to swap out the trinket m0 for a different controller (maybe the Adafruit ItsyBitsy nRF52840 Express - Bluetooth LE) and add Bluetooth functionality.

The current version could be battery powered but as it is pretending to be a USB keyboard what is the point?

The itsy bitsy would add a further $11 to the hardware cost, but if acting as a Bluetooth keyboard is important it is an option.

Great work! I will build this. Just need to get the hardware. Any reason you are not using the much cheaper and more available esp8266?

A couple of reasons…

  1. I had a trinket m0 and a couple of Digistump Digisparks available already.

  2. The Trinket has built in hardware USB support.

  3. I have no ESP8266 kicking around.

1 Like

Thanks for sharing this interesting project @Zwack I ordered a trinket m0 this morning to give this a try, I already have a RC522 here lying around not being used. Starting to learn Python as well, so the m0 could be interesting to me on a few fronts.

I’m looking forward to trying your code and will post up results. I have a xEM/125kHz & xNT/13.56MHz available to me for testing.

The rc522 is a high frequency reader. I need to improve the NTAG detection as the standard library decides that they are MiFare Ultralight or Ultralight C.

The Trinket M0 is an interesting little chip.

r.1 of the case:
As small and compact as possible, it needs to fit in my PM3 case for carry on (it fit right into the “duvet/step” of the PM3 easy)



A few minor tweek and I’ll release r.2 into the wild.

4 Likes

It looks good.

How is the read range?

thanks, Ill measure it with a card (Don’t have an implant yet … soon™ … but not soon™ enought)

Also, seam like the newest version of the code print the password and UID at the same time.
When there is a password store on the chip, the read print the password then the UID on the following line , was this intentional?

1 Like

No, I’d better fix that. It is obviously not returning the right value from the password search.

Thanks for the heads up.

its returning the password, but its also returning the UID

Try the latest version.

It looks like it is working now… I’ve also added some extra files that are irrelevant (the unlicense, a contributing file and some templates for bug reports and feature requests)

I have the same behavior …
Ill post caption when i get time to put it together.

I have increased the antenna gain and shifted the delay. I am sometimes getting the wrong answer (about 1 in 20 times) and I think it is because of poor coupling.

See if that works for you.