Cybook Odyssey
Posted on 01/09/2012 in Hardware
Description
The Cybook Odyssey is the 5th and 6th device I worked on when I was working for Bookeen. Over the minor hardware updates, a frontlight was added along a higher resolution screen.
The device was the first nearly fully designed in house, though the electronic side was designed by a contractor, but all the mecanical design was designed in house.
It used a TI OMAP3621 SoC with an e-Ink screen and a software based controller made by TI, a touch screen, an accelerometer, Wi-Fi, and on some variants a front light or audio output.
By lack of time and resource the sheer complexity of the SoC used and the overall better quality of the deliverable I received from TI this device used mostly standard bootloader and kernel we were provided by TI.
Photos
The Cybook Odyssey in its HD + Frontlight version:
Technical informations
Albeit the quality of the deliverable we got from TI, a couple of major fix was needed to be done on the bootloader, as there were a major bug in the original implementation of the FAT file system in the pre-bootloader was preventing it to working properly when long file name was present even if deleted in the boot partition. I had to rewrite a large portion of the related code to not have any issues at that stage. The error was a mix of assuption like position of the partition on disk and not handling properly of how FAT handle long file names.
The bootloader had also needed to have some heavy modification to support flashing a CPLD present on the device, adding support to the device and more.
Trivia
The “HSIS” was nothing special Bookeen created, and this is honestly one of the thing I’m the most proud and ambarassed at the same time. I was exploring the capability of the Sotfware EPD controller we got form TI, and found that I was able to display at about 20fps as long as the display stayed in black & white, and started to play around with it.
I was really proud of myself being able to get that out of an e-ink screen, and I know TI was quite happy when I showed that to them, and e-ink was somewhat furious because we managed and showcased something before they were even able to do such a demo.
After some people in the compagny saw what I was doing, they decided to make a short video showcasing my exploration, but they never showed the full picture. One persone also in the company decided that “it was the next big thing” and spent a lot of time working on something that never really approached what I was doing and ended with one of the worse annoying aspect of the Odyssey user interface: animations. The biggest issues with the animation is that they were looking sluggish, they also were not skippable in any way, and the first generation of Odyssey were comming with an intro animation that where nothing was done in the background and could not be skipped or disabled in any way.
Here is a video showing all of the demo I made back in the day running on stock hardware:
The intro animation used on some of the Odyssey:
Projects created or used
A few project were created or used with this device:
- CybUpdate the application used for updating devices
- fusd a linux kernel module allowing to create user space based device
- Gen5prod a factory application used during factory for testing the device and assigning serial number and other other parameter to the device, including a corresponding set of PC applications.
- MkFactory an appliation made to generate the image of the flash storage programmed before building the device.
- CyEvd a daemon tool used to translate linux input event into the event type the main reading app was expecting while using fusd
- Linux used as the OS running on the device and patched to add support for the device
- Various linux kernel module to support specific hardware on the device