Type4me

luca 14/01/2013 13

Il progetto di oggi nasce per risolvere la necessità di dover inserire, tramite tastiera, più volte la medesima sequenza di caratteri (ad esempio una password, una frase di saluto…).

Descrizione generale

Type4me è un device USB composito, ovvero formato da due elementi:

  • una tastiera USB
  • una porta seriale

Attraverso la connessione seriale, è possibile inviare al dispositivo la sequenza di caratteri da ripetere; inoltre sono disponibili due comandi per salvare/cancellare tale sequenza e per includere/non includere un “a capo” alla fine.

Tutti i files del progetto (schema, pcb, firmware…) sono disponibili nel mio repository su Github.

Schema

Cuore di Type4me è il microcontrollore PIC18F14K50, che ha al suo interno una periferica USB slave utilizzata per la comunicazione con il PC. Per il funzionamento di tale periferica, al PIC va fornito un clock di 12MHz, generato dal quarzo Q1 insieme ai condensatori C2 e C3. I condensatori C4 e C5 servono per filtrare e disaccoppiare l’alimentazione.

Completano l’elenco dei componenti il pulsante S1, insieme alla resistenza di pull-up R1 e al condensatore (opzionale) C1, e il led LED1 con la resistenza R2.

Per la programmazione del PIC, è disponibile il connettore JP1 a cui collegare un programmatore ICSP (ad esempio il PICkit di Microchip).

Pagine: 1 2 3 4

13 Comments »

  1. Dario 14/01/2013 at 20:16 - Reply

    Well done!
    By the way, why CCS?

    • luca 14/01/2013 at 21:36 - Reply

      Hi Dario,

      thanks! I chose CCS mostly because of its great ready-to-use libraries, especially the USB stack. I tried to use the new “XC” microchip compiler but at the moment it’s not very mature and it’s hard to use it with Microchip USB stack so I gave up.

  2. Chris 14/01/2013 at 23:29 - Reply

    This is a perfect solution for me? Any kit availability?

    • luca 15/01/2013 at 09:58 - Reply

      Hi Chris,

      not at the moment… but if you need a pre-programmed PIC or help for building it write me!

  3. zaion 15/01/2013 at 09:11 - Reply

    Good job. Now shrink it and sell it.

  4. lucasvb 15/01/2013 at 09:45 - Reply

    does the keyboard emulation work on linux too?

    • luca 15/01/2013 at 09:55 - Reply

      Yes: it’s a HID device so under Linux you don’t need any drivers.
      Actually CDC drivers are only for Windows, I haven’t tried if you can use “generic” drivers under Linux.

  5. Chris 15/01/2013 at 18:21 - Reply

    Does this have the ability to store multiple pieces of text? For instance, can I store 3 or 4 different items, and then pick which one I want?

    • luca 15/01/2013 at 20:11 - Reply

      Hi Chris,

      not at the moment, the v1 of Type4me was kept intentionally simple… v2 will have more buttons (I think 4) and a GUI (to create complex sequences like the one shown to play MAME).

  6. chris shaffer 17/06/2013 at 18:47 - Reply

    Luca,
    I’m looking for a device that will enter Ctl-N with a button push. i want to put this button on the top of a bar code scanner. I’m thinking that your device will do this and it wouldn’t be a big deal to make the buttom remote from the board. Your thoughts?

    Chris

    • luca 17/06/2013 at 21:09 - Reply

      Hi Chris

      sending CTRL-N is not a problem at all! About remoting… I’d probably choose a couple of inexpensive nRF24L01.
      If you like, write me an email!

  7. Mike Gordon 07/11/2013 at 17:04 - Reply

    Luca,

    This device would be perfect for a particular use case: copying a long complex password from a password vault running on 1 PC and “typing” it into the Windows password field on another.

    Could we remove the “save to EEPROM” routine and just put a small battery on it to maintain the memory while moving it from one PC to the other? I’d also add an on/off switch to save battery when not in use and to force an erasure of the password. This would also prevent a technician from storing a password permanently in the unit, as sooner or later the battery would run out.

    Also, could you add toggles in the GUI for !enter! vs !noenter!! and !save! vs not doing a !save! on each copy?
    Mike

Leave A Response »