World’s Smallest Low-speed USB Analyzer using pic16f877

[Any] idea is dead without a good application for it. So “California Dreamin’” USB virtual peripheral could be a very nice sample of academic research, but hardly anybody is going to build a keyboard or mouse using it. I have been thinking for a while what to do with it as well. First project that came to my mind was building a hardware key logger for USB keyboards, something like, built for PS2 protocol using PIC16F877.

USB AnalyzerIt was quite simple to implement USB part using SX, serial EEPROM and a few switching IC’s. Furthermore I found out that built-in features of SX MCU would help to create a device able to work not only with pure low-speed USB keyboards, but also composite, built-in-hub, things, hence covering all existing systems (SUN, Mac, PC). Recording keystrokes is fun, but if we can do that, why not go further and try to record all low-speed USB traffic. No problem for SX again, problem for the memory. Serial EEPROM is just to slow to handle it. Solution was FRAM with 1MHz two-wire interface (let me pay credit here to, who happens to advertise it). Finally “California Dreamin’” found a real life application in the world’s smallest low-speed USB analyzer “Atapchi” (stands for a small fruit in Singapore, tastes like apricot). I hope you find this project interesting (mail your questions to chinook at

Ataphchi Features

  • Full support for low-speed USB specifications
  • 500 transactions capacity in non-volatile memory
  • Signal quality checking
  • CRC match checking
  • Bit stuffing checking
  • Data overflow checking
  • One device dedicate capturing
  • External triggering
  • Bus powered

Atapchi Applications


  1. Development of HID class low-speed USB peripheral devices
  2. Development of small scale USB based networks

The list of MCUs you can use with Atapchi (not full)

  • Cypress: CY7C630/1XX, CY7C3X/5XX, CY7C636XX, CY7C632XXA, CY7C637XX
  • Microchip: PIC16C745, PIC16C765, PIC16F747, PIC16F767, PIC16F745, PIC16F765
  • Motorola: MC68HC908BD48, MC68HC08JB1, MC68HC908JB8, MC68HC05JB3, MC68HC05JB4
  • ST: ST7261X, ST7262X, ST7263

Atapchi Architecture


  1. Ubicom SX48BD/TQ micro controller with 100% software implementation of USB (improved version of “California Dreamin”)
  2. Ramtron FM24C64-S 64Kb FRAM Serial Memory with 1MHz two wire interface
  3. Murata CSTCW5000MX03-T 50 MHz small footprint ceramic resonator
  4. Switching circuits (other manufacturers)
  5. No USB interface (Atapchi is to be used with USB repeaters)

For more Detail: World’s Smallest Low-speed USB Analyzer using PIC16F877

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.