USB Smart Button

The other day I found out that the company I work for would be getting some promotional USB Smart Buttons for our new website.  I though how fun would it be to reprogram these buttons to go to our competitors website and put them on a few select employees desk. So the first thing to figure out  was what is inside… I had hoped for a micro and eeprom so all that would be required is the changing of a string in the eeprom but instead all I found was a cypress CY7C63803 micro controller.  This prank was going to take a bit more effort than I had first thought so I ordered a PSoC Mini-Prog and downloaded the PSoC Designer Software and started writing my own version of the USB Smart Button Firmware.  Below is the firmware for the one URL version of the Smart Button with PWM three phase color phasing LED’s.  I have also posted the Excel spreadsheets that I used to make the Sine Table and ASCII to Scan Code Tables.  Please enjoy reprogramming your USB Smart Buttons with this free firmware. I know I got a few good laughs out of it and some good experience working with USB HID devices.

USB Pinout

Pin Name Cable color Description Mini Prog
1 VCC Red +5 VDC Vdd
2 D- White Data – SDATA
3 D+ Green Data + SCLK
4 GND Black Ground Gnd

USB Smart Button
USB Smart Button Dual Link
Sine Wave Table.xls
Scan Code Table.xls

13 thoughts on “USB Smart Button

  1. Hi, I program but on the web only… and wanted to make some use of your code to laugh myself with collegues.

    As I’m not really used to programming HID, do I only need to get ahold of a PSoC Mini-Prog myself and play with the downloaded files or can I dump the firmware directly to the device once its plugged to my computer and then be able to “change its destination url” right there?

    Thanksfor your great work.


    • You will need a PSoC Mini-Prog and make the USB Adapter so you can program the buttons. Once you have the mini-prog you just need to download PSoC Designer from or you can use the link in my post. Once you have PSoc Desinger you can download and open the project from this post and change the URL’s in the C code and recompile with your new URL. Once you compile you will get a *.hex file which is your new firmware to be put on the button via the mini-prog and PSoc Programmer software that is included with the PSoC Designer I believe otherwise it is also a free download.

      I hope this helps, Let me know if you have further questions or run into issues.


    • Yes you can have it send codes for Function Keys as well as other special keys supported by USB including volume +/- and mute. Refer to the scan code table in my post to get the scan code for the F3 Button.

      Nick Graber

  2. Hello!

    My colleague and I have been competiting for awhile to see who can figure out how to reprogram the USB smart button.

    Both of us have failed miserably. We’re not programmers.

    >>You will need a PSoC Mini-Prog and make the USB Adapter so you can program the buttons.<<

    Can you direct me to exactly which product I would need to purchase on the Cypress Store site?

    Also, would I need to disassemble the USB smart button to perform the change or can I change the URL programmed on the button via a USB cable?


    • Yes there is no need to take the button apart to modify the software although you might want to take it apart to verify that it has the CY7C63803 micro controller in it. The Adapter cable you will be making will allow you to plug the USB Cable from the Button into the programmer. The parts you will need are as follows:

      Mini Prog From Mouser
      USB Cable From Mouser
      Mouser USB Pin Headers

      Note: you will need a soldering iron to Assembly the cable as pictured in the post.

      Sorry for the delayed response I get a lot of span and not a lot of actual people posting on my site.

      Nick Graber

  3. Could you please tell me wether this device or the firmware allows the combination of a single key (say like F10) plus multiple modifiers (SHIFT, ALT, CTRL) ?

    Just to be clear is (holding) SHIFT+ALT+CTRL+ (stroking) F10 possible?

  4. Hey Nick,

    I was hoping you could give me some pointers on how to make the cable to connect these…I’d like to be able to re-use it because I have a handful of these buttons I’d like to reprogram for different purposes, but I don’t know where to start when it comes to creating a cable….

    • I would use a USB Extension cable and some 0.1″ Headers to make a reusable cable.
      USB Extension Cable:
      0.1″ Break Away Header:

      Tools needed
      Soldering Iron:
      Some Wire cutters or kitchen scissors.

      and if you follow the connection info on the page you will have a reusable cable…. Just plug the buttons into the USB A Female connector and you are ready to program and unplug when done. If you need help with soldering refer to spark fun tutorials or You Tube.

      Best of luck,

      • Hey Nick,

        I got the PSoC MiniProg, and I got the parts and soldered a re-usable cable together. Unfortunately I didn’t have the foresight to think about what kind of chip is in it. I found the part of the code to change the url, however when I’m trying to download it I get an error. I am guessing this must be because of the kind of chip, but I’m not sure….Any chance you can help me identify it?

        This is the chip inside. If you can help me understand what it is, and if the firmware that you created will work with this, I would very much appreciate. Thanks again for all of your help so far as well. If I can’t get it figured out, at least it’s a fun project and learning experience.


  5. Hello Nick.
    Nice Little button. I have several buttons myself, (20+) ;-).
    Reading your post I have ordered my PSoC, and ready to program them.
    Do you have any tutorial for some one never work whit PSoc Designer.
    Or can you give private lessons.
    I can send you some CRYPTO. lol
    Thanks in advance.

Leave a Reply

Your email address will not be published.