joeycastillo / The-Open-Book

Creative Commons Attribution Share Alike 4.0 International
7.45k stars 232 forks source link

Suggestions: Linux board; larger display of 8 or 9 inches; 3D printed enclosure #10

Closed casainho closed 1 year ago

casainho commented 4 years ago

Hi.

Great project, the motivation correct and is strategic!! and I would love to use the final version.

Some ideas:

baconwaifu commented 4 years ago

The first request is not a goal of this project. The goal is to build a simple open ebook reader.

If you want to modify it to work with a pi zero, go ahead. the display is driven by a standard SPI bus, and if you do it right, the board can be flush-mounted without needing headers. you'd need to figure out a different power source though, as the pi does not have onboard battery management hardware like the feathers do.

casainho commented 4 years ago

The first request is not a goal of this project. The goal is to build a simple open ebook reader.

If you want to modify it to work with a pi zero, go ahead. the display is driven by a standard SPI bus, and if you do it right, the board can be flush-mounted without needing headers. you'd need to figure out a different power source though, as the pi does not have onboard battery management hardware like the feathers do.

When you mean simple, I guess is on hardware, so this can be easy DIY. I must say I don´t have experience with Raspberry Pi Zero and I understand that user should need to do the least possible work with hardware, that is a big barrier.

Here is another Linux board that runs directly from a lithium cell: PocketBeagle -- https://www.adafruit.com/product/4179

DESCRIPTION Want a powerful 1GHz AM3358 powered Linux single board that's ultra-tiny and open-source? PocketBeagle offers a wealth of computer power in a small footprint (pawprint?). This board is just like the BeagleBone Black but small enough to fit in your wallet. It has a fully-integrated chip that combines the processor and RAM all on one chip, so it's super small. Despite the compact shape, there are 72 total breakout pads, a microSD card slot for your filesystem and OS, and a native USB connection

Compared to other single board Linux computers, what differentiates the BeagleBone is that it has multiple I2C, SPI and UART peripherals (many boards only have one of each), built in hardware PWMs, analog inputs, and two separate 200MHz microcontroller system called the PRU that can handle real-time tasks like displaying to RGB matrix displays or NeoPixels.

It's not too much larger than our Feathers, but comes with 72 expansion pin headers, high-speed USB, 8 analog pins, 44 digital I/Os, and plenty of digital interface peripherals.

JIVS commented 4 years ago

I dont mind the small display but the biggest problem IMO is the low resolution it has which limits its usability to look graphics in PDFs or read graphic novels.

Many ereaders already offer 300ppi screens at this size, are there any display units for sale with these specs?

danielbarry commented 4 years ago

I think something like an Allwinner A13 could be appropriate in the TQPF package, which is hand-solderable [1]. Apparently you can pick these up for ~$1 in the right quantities [2]. The hardest part is the DDR2/3 RAM requirement, which (as far as I'm aware) could be solved using laptop RAM and an appropriate connector [3]. That way you've got an open hardware device running Linux that can be soldered in your garage.

Once that hardware is solved, you get a bunch of stuff for free, like tonnes of software stacks and hardware support - and enough processing power to likely be able to support future formats too.

I think whilst the hardware would be a pain in the arse (correctly interfacing with DDR2/3 RAM and compiling the Linux kernel), once it's running Linux the software should be a piece of cake (some front end connecting several existing programs together).

To really accelerate things, you could start with the Olimex A13-SOM-512 [4] and later use their chips [5].

Just an idea :)

[1] https://linux-sunxi.org/A13 [2] https://www.eevblog.com/forum/microcontrollers/the-$1-linux-capable-arm-processor-in-tqfp/?PHPSESSID=fa47nr9d27nkbvfoutf1mdelm0;topicseen [3] https://nz.mouser.com/Connectors/Memory-Connectors/Memory-Socket-Connectors/DIMM-Connectors/_/N-axja5?P=1yq9w4nZ1yxuyx9Z1yxuv64 [4] https://www.digikey.com/product-detail/en/olimex-ltd/A13-SOM-512/A13-SOM-512-ND/6580705 [5] https://www.olimex.com/Products/Components/IC/A13/

joeycastillo commented 4 years ago

Hi and thanks for the suggestions!

some board to run Linux

I agree with previous commenters that this is a bit beyond the scope of the project, but if you have an interest in this I'd suggest playing with the Giant Board in conjunction with the eBook FeatherWing in this repo. I don't have a Giant Board myself, and I don't know what the state of eInk drivers is on Linux, but that would be a quick way to start hacking on it.

3D print enclosure: I think you just need to define it and someone on community will design, test, print and share the 3D files

I had designed a 3D printed enclosure for Rev A, but have not updated it since I think I'm going to end up doing a laser cut enclosure instead. Right now the priority is finalizing the design of the board; making an enclosure for hardware that's still in flux feels like putting the cart before the horse. And anyway. I won't have access to my laser cutter or 3D printer until the end of the month.

larger display, I guess at least 8 or 9 inches

In theory this 7.5 inch display would be drop-compatible, although I have not tested it. The reason I'm sticking with the small display is cost: $18 for the 4.2 inch versus $52 for the larger panel makes a big difference. Above 8 inches the cost becomes prohibitive, and anyway you end up needing a more complex interface to drive the screen.

I dont mind the small display but the biggest problem IMO is the low resolution

I have my eye on this higher-resolution panel for a future revision, but the issue there is that it uses a parallel interface instead of SPI, and I'm not aware of the state of Arduino libraries for that type of display. I'd also need to free up some pins on the SAMD51 because right now all of them are spoken for. 😬

casainho commented 4 years ago

I think you are right in keep your focus and not changing the hardware every time someone says something different. Still, here are the full sources of a very similar hardware but using instead a LCD (but also SPI): https://pt.mouser.com/applications/retro-arcade-build/

Running at 1GHz and with 1GB of DDR3 memory, and seems with enough pins to drive a parallel display. It runs Linux, meaning you can have your Python there, with more resources so future prof even for demanding big and higher resolution displays compared to actual one.

Screenshot from 2019-11-01 06-14-53 Screenshot from 2019-11-01 06-14-14 Screenshot from 2019-11-01 06-13-59

tidux commented 4 years ago

Your attempt to avoid using Linux is wrong and counterproductive. Tools for driving high DPI displays in bitmap mode for internationalization and proper font rendering, to say nothing of features like note taking, bookmarks, and the ability to fetch content over USB or the network, require a modern general purpose OS. The design as it stands now is garbage. I applaud the intent, but you vastly underestimate the scope of software work needed to get where you want to go.

titimoby commented 4 years ago

@tidux I'll be glad to follow also any project of the same kind with a linux board. There is room for any maker in this world. 💖 but maybe you can consider that some of us are interested in challenges 🧠 and maybe you are the one underestimating the power of micro controller and existing libraries 😉. Let's see.

justinclift commented 4 years ago

Your attempt to avoid using Linux is wrong and counterproductive.

How is it counterproductive? Really not seeing how this is taking away from the world, instead of contributing.

I applaud the intent, but you vastly underestimate the scope of software work needed to get where you want to go.

It might turn out ok anyway, as people can figure out some pretty creative solutions when the need arises. Regardless of that, it's an interesting exercise and (being OSS) provides a base other people can look at + learn from.

joeycastillo commented 4 years ago

Your attempt to avoid using Linux is wrong and counterproductive.

Like many things in engineering it’s the result of a compromise. Linux would require a more expensive MPU and more RAM, which means more pins, which (I sense) means a BGA package and maybe even a 4-layer PCB with tighter (read: $$$) manufacturing constraints. For a project that aims to be inexpensive, comprehensible and hand-solderable, this $4.00, 64-pin microcontroller hits a sweet spot.

internationalization and proper font rendering

This is another area of compromise. We may not have “proper” font rendering, but if we limit ourselves to ≤16x16 bitmapped glyphs, we can fit the entire basic multilingual plane onto a 2MB flash chip. It ain’t Caslon and it ain’t libicu, but it gets us readable text, localized case mapping and Arabic shaping for like 50¢.

to say nothing of features like note taking, bookmarks, and the ability to fetch content over USB or the network, require a modern general purpose OS.

Just to reiterate what was said earlier in the thread: the Giant Board is real and it’s shipping next month. Plug it into the ebook wing and you’ve got a solid platform for building the kind of device you’re describing. Add an AirLift wing and you’ve got network connectivity. If you get that working, a Linux Open Book becomes a matter of merging schematics and routing traces (although the SAMA5D2 chip is only available in a BGA package which, again, limits hand-solderability for DIY folks).

The design as it stands now... vastly underestimate[s] the scope of software work needed to get where you want to go.

I fully recognize that there’s a lot of software work ahead. But folks once wrote books on machines more constrained than this. I sense that we can get there.

liamdawson commented 4 years ago

Running Linux would have a negative effect on battery life, by necessity. It operates with more overhead than a dedicated software package.

For argument's sake, let's say we do need things that don't exist here, and do in Linux. If we run with something simple like this and find out that it's not enough, at least we'll better understand what we actually need. And because this is being done in the open, everyone can benefit from that knowledge. For that reason, I'm glad it's being done this way.

justinclift commented 4 years ago

... making an enclosure for hardware that's still in flux feels like putting the cart before the horse.

Very much this. Anything that's done before the "release" version :wink: would just be a prototype needing adjustment at the end. Though if someone wants to iterate on designs for that it's not a bad idea.

For myself, I have access to 3D printers and ~low end CNC machines (3 and 4 axis). Can't do metal though, so my wish for some nice brushed aluminium case isn't going to happen with the gear here. :roll_eyes:

joeycastillo commented 4 years ago

An update on the enclosure actually: I designed something basic here that's suitable for 3D printing and works with the Open Book. It would need some tweaks to work with the eBook Wing; the positions of the enable switch and headphone jack are a bit different on that board. But you use that same design it to generate laser-cut SVG's that work with both. The laser cut option is open on all sides, and if you rotate the back piece 180 degrees, the cutout for the feather header cutout will line up.

ELRr_e-XYAI4hF3

ELnIwaYXkAAkjGl

ELnIwaPXkAElj73

ELnIwaSX0AEfO84-2

Both enclosures are held together with nylon screws, nuts and standoffs; I have this kit and it had parts that worked for me.

justinclift commented 4 years ago

Awesome. :smile:

Interesting kit. Generally I've found 2.5mm stuff to be "too small", instead preferring 3mm hardware for MDF. Maybe I just need to try more 2.5mm hardware. :wink: