Ya nanonote

Paul Boddie paul at boddie.org.uk
Tue Mar 5 17:04:02 EST 2013

On Tuesday 05 March 2013 16:56:37 Werner Almesberger wrote:
> Paul Boddie wrote:
> > My impression is that you cannot upgrade the USB capabilities on the
> > board because they are part of the Ingenic SoC, and although the SoC
> > actually does support USB Host, it isn't exposed in the package used on
> > the Ben.
> That's roughly correct. As I understand it, the chip doesn't have a
> package proper and the bonding is done in the process of making the
> PCB (*). Unfortunately, the USB host pins are either not bonded out
> or if they are, there are no traces. All this is under an epoxy blob,
> so it's de facto inaccessible.

I'm sure the lack of host pin connectivity was mentioned explicitly somewhere 
in a mailing list message, but I can't find it at the moment.

> (*) Chip-on-Board (COB), which is so exotic not even Wikipedia has an
>     article on it.

It might not be so exotic, or the blob aspect probably isn't. I was reading 
about ROM cartridges for the home computer I had in the 1980s, and the 
manufacturer apparently soldered ROMs directly to the board and sealed them 
in such a fashion, rather than use properly packaged ROMs.

> > I've been playing around with a USB Host controller via the 8:10 port,
> Cool ! Just UBB (and resistors, and later maybe a power booster) or
> with an external controller chip ?

It's actually an Arduino shield:


I think I mentioned it on IRC. The original shield is actually part of this 


So all the electrical stuff is more or less done for me, and the remaining 
work involves signalling the controller using SPI. So far, I've got as far as 
being able to handle connected devices and to ask for USB descriptors, but 
I'm not pretending to have everything correct and working yet.

None of this should be too difficult: there is, after all, an Arduino library 
that can communicate with USB devices and even handle hubs, but I've taken 
the opportunity to start from the ground up, deal with SPI (with the UBB code 
being a useful starting point, since the AVR has built-in SPI support that 
just involves setting registers), figure out the necessary payloads and 
protocols, and build up some C code (the Arduino library is C++) in a style 
that works for me.

A distant objective is to attempt a Linux host controller driver just to see 
if it can be done, but I don't really like the look of the ones I've seen, 
and there doesn't seem to be much real documentation about the driver 
framework (as usual).

> > I seem to recall issues related to upgrading the screen involved things
> > like the sizes of screens for different resolutions, so if you want VGA
> > there may not be anything compatible in the same size/shape as the LCD
> > currently used,
> The pixel size of the Ben doesn't seem too bad. Also vertical size
> of that QVGA screen is reasonable. So perhaps WQVGA would be the
> way to go. Keeping the resolution reasonably low also keeps demands
> on memory bandwidth and processing low.

Indeed. A thought did just occur to me about the availability of digital 
camera screens and their similarity to the screen used on the NanoNote. On my 
2007 edition compact camera, the screen is smaller than the one the NanoNote 
uses, but I'm not sure about the resolution. As time has progressed, I 
imagine that such screens have become bigger and higher resolution (200K, 
perhaps, and even larger on premium models), and it may be the case that such 
things may now be floating around various channels just like those Nokia (or 
made-for-Nokia, or Nokia-like) screens that were adopted by various companies 
as gadgets for hobbyists.

I also have an Arduino shield with such a screen fitted, and screen shields or 
add-on boards do seem to be a popular accessory. But it is the physical 
constraints that make these things workable or not.


More information about the discussion mailing list