Description
The portable, hackable sign is a scrolling LED display that was designed to be portable and battery-operated. The displayed message can be changed by using the provided message changer to rewrite the memory where the message is stored.
The concept is that people can display what they want and where they want, whether its connected to a computer, on their wrist, on the side of a building, or mounted on a pumpkin.
It’s also designed to be hacked to provide different functionalities based on the user. The emulator debug pins are exposed, the bootloader allows firmware upgrades via USB, and the serial peripheral bus (SPI) pins are exposed on the bottom side which can be used as a
general I/O or to communicate with other devices. Also, the bootloader is in a protected area of memory and will never be overwritten so the device is non-brickable, at least by a failed firmware upgrade.
All project files can be downloaded from the Tokyo Hackerspace website at:
Tokyo Hackerspace Portable Hackable Sign Project


Hardware
The board’s hardware is fairly simple and consist of the following blocks:

AVR microcontroller
The AT90USB162 has 16 kB flash and 512 bytes of RAM. Of this, approximately 3 kB of flash are taken by the bootloader so it actually has about 13 kB available. The software requires a dynamic RAM stack of approximately 200 bytes so about 300 bytes are available for the application.
There is also an integrated USB peripheral inside the IC and so the FreakUSB USB device stack is used to handle the USB communications. When plugged into a PC, the device will come up as a COM (or serial) port on the PC.
There are numerous features of the AVR with many unused peripherals such as the analog comparators, timers, and other goodies. Please download the datasheet from the Atmel website for further info
on the microcontroller.
For debugging, the microcontroller was chosen to be compatible with the AVR Dragon which is a low cost debugging tool for AVR microcontrollers. The AVR dragon plugs into the exposed debug pins and
will allow single stepping, breakpoints, and manual control of the IO.
Power
The board can be battery operated or
powered by the USB depending on the configuration of the power switch located on the bottom side. If a battery is present and the switch is on the battery side, the battery will power the board. The same goes for the USB. When not plugged into the USB, the USB side of the power switch is the same as turning the board off.
LED
The LED matrix is an 8x8 matrix with row and column pins. The column pins are driven by an I/O from the microcontroller turning on a transistor. The transistor just functions as a switch that will allow power to flow to the LED column or cut it off. The row pins are also driven by I/O which turns off a transistor sink driver. Turning on the sink driver will allow the current to flow, and turning it off will shut off the current flow. By controlling the row and column pins, the user can address each of the dots on the LED matrix. Please see schematic for further details of the board’s hardware design.
Installing the USB Driver
The scrolling led board uses the
FreakUSB software to emulate a serial port. It uses the USB Communications Device Class (CDC) which is a standard class driver supported by Windows. In order to have the device recognized by a Windows system, you will need to point the Windows Hardware Wizard to the FreakUSB “inf” file. The inf file should be inside the “Win USB Driver” directory in the main release package.




Changing the Message
To change the message, a simple GUI based application is available for Windows called the THS Message Changer. To use it, simply plug the LED sign into the USB port (it requires a standard to mini-USB cable), choose FreakLabs Virtual COM Port, and click on Connect.

Once connected, the Message box is enabled and the message can be typed in there. The maximum number of characters that the display can handle is 250. The box on the right is the speed at which the scrolling occurs. It can scroll from 0 lines per second to 100 lines per second.

After you finish typing in your message, press Enter in the message box or click on Send. The message will be written to the device.
Firmware Uploading
The Portable, Hackable Sign comes with a bootloader that allows you to upload new firmware to the device. The bootloader is in a protected area of memory and cannot be overwritten except by special hardware. Hence, even if an upload does not go well, the device can still go into bootloader mode and the original firmware can be re-written to it.
The bootloader mode requires a special key combination on the buttons, S1 and S2. S1 is a general purpose button and S2 is the reset button. In order to go into bootloader mode, you will need to push S1 first, and while keeping it down, press and release Reset (S2). In technical terms, the button S1 is sampled on reset so that if its found that the button is pressed during reset, the hardware will automatically go into bootloader mode.
Before using the bootloader, you need to have the Atmel FLIP software installed. FLIP stands for FLexible In-system Programmer). The software can be downloaded from the following location:
After it’s installed, and when you go into bootloading mode, you’ll probably get a query for the driver (in English). Click on No, and point the wizard to the location of the Atmel FLIP USB directory:



After that, click Next and the drivers should be found and get loaded. Once that’s taken care of, the microcontroller will get recognized each time you plug it in so you won’t have to do it again.
Now you can open up the FLIP software:
The first thing you need to do is select the device in the FLIP software. Click on the device icon and it will bring up a menu of AVR microcontrollers. Select AT90USB162 and click OK.

You’ll then want to open the USB. Click on the USB icon, select USB, and then click on Open.


Finally, click on Run and you should see a Progress Bar window. It will write the file to flash memory, and then read it back for verification.

Debug interface
For people that want to customize the
firmware to add other functionality, the boards come with their own debug port compatible with Atmel’s low-cost AVR Dragon In-Circuit Emulator (~$50, Digikey). This allows single stepping, breakpoints, manual control of registers, and general programming.

In order to connect the two devices, you will either need to make a 6-pin cable or a device that can connect the two ports together:

Auxiliary SPI Interface
The Portable, Hackable Sign also comes with an auxiliary SPI interface. SPI stands for Serial Peripheral Interface and is a serial protocol popular in the embedded industry. Many sensors come with SPI interfaces and most microcontrollers also have one. This allows communications between the device and things such as sensors, I/O expanders (which can allow connection to switches and relays), or other microcontrollers.
An SPI driver will need to be written for this, however numerous examples can be found on the web or on the Atmel website.
Files
This project is completely open source hardware and software. The files can be downloaded from the link below and consist of:
- Firmware source code
- Windows application source code
- Firmware and Windows app binary images
- Board schematics (pdf)
- Board layout (pdf)
- Documentation
Releases
Version 0.81
Version 0.80 (deprecated)
Release Notes
- v0.81 Added Vista/x64 support in Windows inf file
- v0.80 Initial release
Support
Please post support questions to the support forum. The link to the support forum is here:
Portable Hackable Sign Support Forum
| THS Class: WTF is a Resistor |
"WTF is a resistor?" or "Electronics Basics: The stuff you need to get your shit up and running" by Akiba and MRE Location: Aoyama. Map sent to you when you reserve a place. |
| Weekly Meeting |
Meeting will be held either at Yoyogi Park, or Respekt Cafe in Shibuya in the event of thunderstorms. Please bring an item of interest for Show... |
| Solar Eclipse |
My show and tell last night was about today's solar eclipse. The best time to view the eclipse in Tokyo will be at 11:15. It will be 70%. We are too far north for a total eclipse. So, in an... |
| THS Class:WTF is a Resistor - レジスタって何よ?! |
Akiba と MRE による "レジスタって何よ?!” または "エレクトロニクスの基本" 講座 場所: 青山. 参加登録者には詳しい場所をお知らせします. |
| Weeekly meeting |
== Next Meeting 次回の会合 == This is a super pre-launch new spot. THS will be our... |


I only use hardware with
I only use hardware with Microsoft certified signed drivers.
Kyle, did you get this
Kyle, did you get this running with Karmic? Or do you need to use WINE/VM-ware? Mac?
I booted to my Win 7 x64
I booted to my Win 7 x64 partition and it worked with ver 0.81.
Akiba, USB stack runs OK on
Akiba, USB stack runs OK on Windoze XP, not at all on Vista.
When I try to load the driver, I get an error message that says "The INF file you selected does not support this method of installation."
In poking around a bit, I tried using the legacy hardware wizard, and it suggests that the problem is that the stack is not compatible with x64 architecture. Any thoughts?
Release v0.81 has been tested
Release v0.81 has been tested and working on Windows Vista/x64.
The USB stack uses the
The USB stack uses the standard USB Communications Device Class driver which is supported by Windows. The problem is probably with the .inf file not being compatible with the format that Vista is expecting. I'll look into it, but gonna need to find a Vista PC.
Here's a little Javascript
Here's a little Javascript tool to aid in creating new characters. It converts dot matrix characters to hex as required by font.c
http://tokyohackerspace.org/dot2hex/