A Look at the Ben NanoNote
The command line is something I always want in any computer or gadget I own. For me, it symbolizes ultimate access and control. When I heard about the Ben NanoNote from Qi Hardware and learned it primarily was a command-line device, I knew I had to get one and play with it. It also doesn't hurt that it costs only $99 ($124 after shipping).
Qi Hardware is a firm believer in not only open software, but also open hardware. According to its Web site, its mission is “to promote and encourage the development of copyleft hardware”. As part of this mission, full documentation on the Ben NanoNote is available on the Web site, including circuit-board layouts, schematics and other hardware documentation.
Granted, I probably never will have the tools or expertise to create my own NanoNote from parts, and even if I could, I probably wouldn't be able to do it for less than what it costs to purchase one. But, the documentation is available, and it is under a license that lets me do it if I had the inclination.
Incidentally, “Ben” refers to a Chinese character meaning “origin”, “root” or “beginning”. The idea is that this is the initial or first version of what eventually will be a complete line of NanoNote and other related products.
The Ben NanoNote is built around the JZ4720 366MHz MIPS-compatible processor from Ingenic Semiconductor with a three-inch, 320x240 pixel color TFT LCD (40x15 character in the text console). It has 32MB SDRAM, 2GB NAND Flash memory, one microSDHC slot (SDIO-capable), a 59-key keyboard, a headphone port, a mono speaker and a USB 2.0 Mini port. It is powered by a 3.7V 850mAh Li-ion battery, or it can run off USB power (5V 500mA DC) either by plugging it in to your computer or by using one of the increasingly common USB power adapters (my phone, camera and eBook reader all came with USB power adapters). The Ben NanoNote earns the “nano” part of its name, measuring only 99x75x17.5mm. Including the battery, the Ben NanoNote weighs in at only 126g, which is lighter than my cell phone.
Four days after ordering the Ben NanoNote, it arrived on my doorstep in North Carolina—not bad for coming all the way from Hong Kong. It comes in an attractive black box containing the Ben NanoNote itself, a manual (most of which is devoted to printing the full text of the Creative Commons BY-SA license), a microfiber cleaning cloth, a battery, a USB cable and a little rubber nub for shorting the “USB Boot” pins in the battery compartment.
The build quality is decent with no gaps or loose bits. The keyboard has an okay feel to it, even though it is a bit stiffer than I prefer. And, despite it having the world's smallest spacebar, the layout actually works pretty well for command-line work—except that the dash (-) key is is annoyingly placed.
The sound quality out of the single speaker is tinny and prone to distortion, but it's what I expected. If you must listen to music on the Ben NanoNote, external speakers or headphones are the way to go.
Like many embedded devices, upgrades to the core software are done by flashing the device to the newest firmware. Unlike other handheld devices, which can flash themselves or be flashed by copying some files to the device via USB, the Ben NanoNote needs to start in a special “USB Boot mode” to be upgraded. Full instructions are on the Qi Hardware Wiki, but the basic steps are as follows:
Install the Xburst tools (used for booting the Ben NanoNote over USB).
Download the reflash_ben.sh script from the Qi Hardware Wiki.
Put the Ben NanoNote into USB Boot mode.
Run the reflash_ben.sh script.
Putting the NanoNote into USB Boot mode was harder than I thought it would be. To do this, you need to take out the battery and plug the Ben NanoNote in to your computer (if the screen comes on when you plug it in to your computer, unplug the USB cable briefly and plug it back in; the screen should stay dark). Next, use the little nub that came with the Ben NanoNote (or some other piece of conductive material) to short the two USB Boot pins found in the (now empty) battery compartment. While keeping the pins shorted, and without unplugging the USB cable, you have to press and hold the power button for two seconds. Because the power button is on top and the pins are on the bottom, this was not very easy for me to do. Even worse, the indication that you've succeeded is that nothing happens—when the screen stays dark after holding the power button for two seconds.
After going through the contortions it takes, I would prefer some sort of icon on the screen or even a little indicator light to confirm I am in the proper mode, but for now, that's the process. When in USB Boot mode, the Ben NanoNote is waiting for the usbboot utility (one of the Xburst tools) to give it an image from which to boot.
The final step, running the reflash_ben.sh script, is nicely hands-free. The script automatically fetches the latest firmware (unless you specify a specific version) and then boots and flashes the Ben NanoNote. The main root image is more than 140MB, so downloading may take some time, depending on your Internet connection. Flashing the rootfs also took several minutes. Patience, or a nice snack break, are required for this step.
After flashing my Ben NanoNote, unplugging it and re-inserting the battery, I knew all was well when it booted and I saw the OpenWrt logo, and then the graphical “Desktop” (Figure 5). Although the flash procedure is not overly difficult, it's not ideal, and I hope it improves over time.
Webinar: 8 Signs You’re Beyond Cron
11am CDT, April 29th
Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.Join us!
- Users, Permissions and Multitenant Sites
- New Products
- Flexible Access Control with Squid Proxy
- Not So Dynamic Updates
- Security in Three Ds: Detect, Decide and Deny
- DevOps: Everything You Need to Know
- Tighten Up SSH
- High-Availability Storage with HA-LVM
- Solving ODEs on Linux
- Non-Linux FOSS: MenuMeters