Fork me on GitHub

Project Notes

#174 UsbNotifier

Tear-down and demo code for some old USB Webmail Notifier devices.

Here’s a quick video of the blinky test program in action:

UsbNotifier demo

Notes

So four of these USB Webmail Notifier devices turned up in a dusty cupboard in the office.

A quick tear-down shows they contain a super-simple circuit - just a SONiX Technology SN8P2203SB 8-Bit microcontroller that handles the USB protocol and drives an RGB LED. The SN8P2203SB is an old chip phased out 2010/04/30, superseded by the SN8P2240.

The USB implementation is extremely minimal - the device appears as a USB 1.0 HID device:

  • Product ID: 0x1320
  • Vendor ID: 0x1294 (RISO KAGAKU CORP.)
  • Version: 1.00
  • Speed: Up to 1.5 Mb/sec
  • Manufacturer: MAIL
  • Current Required (mA): 100

A quick google reveals quite a bit of old code lying around for various projects using devices like this. Most seem to use libusb for convenience - and often 0.1 legacy libusb that. As I’m mainly on MacOSX, the code is not much use since Apple no longer allows claiming of HID devices and the libusb team decided not to try to get around that.

But as I just proved to myself, hidapi works fine.

Now I just need to ponder on good ideas for what to do with these things!

The Blinky Test

blinky is a simple test program written in C using hidapi. I’ve tested it on MacOSX. It probably works fine on Linux too, but may need some platform tweaks to compile on Windows.

I installed hidapi with brew:

$ brew install hidapi

Once hidapi is installed, the blinky test program is easily compiled and run:

cd blinky
make
./blinky

The blinky program can handle up to 4 Notifier devices and simply:

  • reports the details of each device found
  • cycles through a color test on each device until you stop it

With 4 of the notifiers plugged into a USB hub, here’s what I get on my console:

$ make && ./blinky
gcc `pkg-config --cflags hidapi` -g -Wall -O3    blinky.c  `pkg-config --libs hidapi` -o blinky
Device Found
  type: 1294 1320
  path: USB_1294_1320_14540000
  serial_number:
  Manufacturer: MAIL
  Product:      MAIL

Device Found
  type: 1294 1320
  path: USB_1294_1320_14520000
  serial_number:
  Manufacturer: MAIL
  Product:      MAIL

Device Found
  type: 1294 1320
  path: USB_1294_1320_14510000
  serial_number:
  Manufacturer: MAIL
  Product:      MAIL

Device Found
  type: 1294 1320
  path: USB_1294_1320_14530000
  serial_number:
  Manufacturer: MAIL
  Product:      MAIL

Running a blinking demo; ctrl-c to end ..

And here are the 4 units blinking…

UsbNotifier_blinking_demo

Device Teardown

PCB front

PCB rear

Credits and References

About LEAP#174 LEDUSB
Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is just my personal collection of projects. Two main themes have emerged in recent years, sometimes combined:

  • electronics - usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting
  • scale modelling - I caught the bug after deciding to build a Harrier during covid to demonstrate an electronic jet engine simulation. Let the fun begin..
To be honest, I haven't quite figured out if these two interests belong in the same GitHub repo or not. But for now - they are all here!

Projects are often inspired by things found wild on the net, or ideas from the many great electronics and scale modelling podcasts and YouTube channels. Feel free to borrow liberally, and if you spot any issues do let me know (or send a PR!). See the individual projects for credits where due.