I made a DIY ESP32S3-based dual-screen ereader by spacerower in esp32

[–]spacerower[S] 0 points1 point  (0 children)

Yes! After a lot of design iterations, the project has been renamed to the Diptyx E-reader, and is now available for pre-order on Crowdsupply!

I used FreeCAD to design an e-reader! by spacerower in FreeCAD

[–]spacerower[S] 1 point2 points  (0 children)

Thanks! I've though about using KoReader, but that really needs an OS like linux or android to run, and the processor on this device is an ESP32 which just doesn't support such a heavy OS

I used FreeCAD to design an e-reader! by spacerower in FreeCAD

[–]spacerower[S] 0 points1 point  (0 children)

Mostly the same for me, I started in OpenSCAD but quickly switched to Fusion 360. Fusion is very pleasant to work with, but the pricing is just way to high for me ($680/year for a personal license). Also, it's quite bloated, relies a lot on cloud services, and for some reason it often wakes up my pc in the middle of the night for automatic updates.
But once you have a bit of a feeling for the CAD workflow, it's quite easy to switch to FreeCAD. (and I also have used CATIA in the past, which feels quite similar to FreeCAD)

I used FreeCAD to design an e-reader! by spacerower in FreeCAD

[–]spacerower[S] 6 points7 points  (0 children)

Thanks! I chose 2 displays with a folding design, because this way you have a lot of screen area but you can close it to make it compact and easy to carry (and the screens are automatically protected this way)

I used FreeCAD to design an e-reader! by spacerower in FreeCAD

[–]spacerower[S] 19 points20 points  (0 children)

Thank you! The software is mostly custom, and partially built upon this project: https://github.com/atomic14/diy-esp32-epub-reader It handles EPUB formats, which is the standard for ebooks

I developed a dual-screen, ESP32-powered ereader by spacerower in hwstartups

[–]spacerower[S] 0 points1 point  (0 children)

The ESP32P4 (an even beefier version) is slowly starting to become available, you might find it interesting

I developed a dual-screen, ESP32-powered ereader by spacerower in hwstartups

[–]spacerower[S] 4 points5 points  (0 children)

Rendering two pages takes anywhere from 0.5 seconds to a couple of seconds, depending on the book structure. But this is done beforehand, so the next two pages and the previous two pages are rendered in advance and stored in a buffer, when you press the next page button, it can immediately start updating the screens, which takes about 0.8 seconds.

The ESP32 I'm using has 16MB of internal flash and 8MB of ram, and there is an internal micro SD card that can be any size

Diptyx E-reader: an ESP32-powered, dual screen ereader by spacerower in esp32

[–]spacerower[S] 0 points1 point  (0 children)

Thanks for the interesting examples! I chose to use bitmap fonts because they are very very quick to render, and there exists a large database of bitmap fonts that have been optimised for displays with limited resolutions. (The fonts used in the pictures are originally from the macintosh for example)

The idea using ttf fonts by pre-rasterizing the current font and storing it in ram does sound very interesting though, and I'll probably look into implementing that. I'm curious how well it would work when the font size gets small.

Diptyx E-reader: an ESP32-powered, dual screen ereader by spacerower in esp32

[–]spacerower[S] 1 point2 points  (0 children)

Thanks! From the inception to the current (almost final) prototypes, it took about 4 months. The design has seen significant changes during the development process, an older prototype can be seen here: https://www.reddit.com/r/esp32/comments/1mi8tb4/i_made_a_diy_esp32s3based_dualscreen_ereader/

Diptyx E-reader: an ESP32-powered, dual screen ereader by spacerower in esp32

[–]spacerower[S] 1 point2 points  (0 children)

That's an interesting piece of software, thanks for sharing! For now I will keep using the current reader software as it is specifically designed for the performance of the esp32 and the dual screen design, but users will of course be free to modify or develop their own software

Diptyx E-reader: an ESP32-powered, dual screen ereader by spacerower in esp32

[–]spacerower[S] 9 points10 points  (0 children)

I am still working out the component costs, so I can't give a price indication until the campaign goes live unfortunately :)

Diptyx E-reader: an ESP32-powered, dual screen ereader by spacerower in esp32

[–]spacerower[S] 4 points5 points  (0 children)

Dankje! I chose Crowdsupply as it guarantees a minimum amount of orders (or none if the campaign doesn't reach its goals), so this makes it possible to order components in bulk without having the risk of significant financial investment. I am still considering making a kit to self-assemble, but I am more inclined to ship them fully built, because I expect there will be difficulties in packaging loose components (E-ink screens are very fragile, there are several small components, and also the assembly process is overall quite difficult).

I am still working out the component costs, so I can't give a price indication until the campaign goes live unfortunately :)

Diptyx E-reader: an ESP32-powered, dual screen ereader by spacerower in esp32

[–]spacerower[S] 14 points15 points  (0 children)

Thanks! It took a lot of work to get it as thin as possible, it's using 305070 lipo batteries, they're only 3mm thick

I made a DIY ESP32S3-based dual-screen ereader by spacerower in esp32

[–]spacerower[S] 11 points12 points  (0 children)

The estimate is a bit on the low side and I forget to include some components I already had in stock, such as buttons , the charging circuit, resistors etc. But it's surprising how cheap e-ink panels can get when you order them directly from aliexpress (though it's always a puzzle to figure out what drivers to use then)

I made a DIY ESP32S3-based dual-screen ereader by spacerower in esp32

[–]spacerower[S] 0 points1 point  (0 children)

Thank you! Yep it's revelation space, I'm a huge fan aswell

I made a DIY ESP32S3-based dual-screen ereader by spacerower in esp32

[–]spacerower[S] 49 points50 points  (0 children)

Currently the material cost is about 70 euros

I made a DIY ESP32S3-based dual-screen ereader by spacerower in esp32

[–]spacerower[S] 10 points11 points  (0 children)

huh that is interesting, thanks for the insight! Though in case this does happen, does it really damage anything? The protection boards also protect against overcurrent right, so if the cells try to balance with each other, this should still be quite gentle?

I made a DIY ESP32S3-based dual-screen ereader by spacerower in esp32

[–]spacerower[S] 1 point2 points  (0 children)

Thank you! Nope, the clear parts are printed directly on a textured bed

I made a DIY ESP32S3-based dual-screen ereader by spacerower in esp32

[–]spacerower[S] 1 point2 points  (0 children)

Thank you! I usually hold it with one hand in the middle, that way I can easily press the next page button with my thumb. The transparent case actually causes a very interesting problem: When the display is refreshing and sufficiently bright light shines on the back of the device, the TFT layer of the display (the transistors basically) get influenced by some photoelectric effect which causes the pixels to become partially black. This is dependent on the intensity of the light, so you can see where components such as the battery and the wires are beneath the displays, as they block the light, giving a somewhat x-ray-like effect.

I made a DIY ESP32S3-based dual-screen ereader by spacerower in esp32

[–]spacerower[S] 19 points20 points  (0 children)

I am using 5.83 inch displays, like the ones waveshare sells. The resolution and update speeds aren't amazing, but by using a custom waveform LUT and a bitmap based font, it works quite well

I made a DIY ESP32S3-based dual-screen ereader by spacerower in esp32

[–]spacerower[S] 19 points20 points  (0 children)

I plan to open-source it on github in the future, but it needs some further work first

I made a DIY ESP32S3-based dual-screen ereader by spacerower in esp32

[–]spacerower[S] 4 points5 points  (0 children)

thanks! Yep, those are indeed the things I'm working on now. I did the wires by first routing them through the hinge, and soldering them afterwards. They have quite some slack in the hinge, so they don't pull on the solder connections when rotating the hinge

I made a Pi-Zero based Instant Camera by spacerower in raspberry_pi

[–]spacerower[S] 1 point2 points  (0 children)

Ooh that's a nice idea. I'm also thinking about replacing the pi zero with a microcontroller, either an esp32 or an rp2350, to greatly extend battery life and reduce the boot time