Giter VIP home page Giter VIP logo

the-open-book's People

Contributors

arthurlutz avatar darigovresearch avatar dcelectr avatar echolalien avatar issackelly avatar joeycastillo avatar josecastillo avatar jpwhiting avatar kasbah avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

the-open-book's Issues

Put the BOMs in the repository, as CSV

Please add the bills of materials, for the different variants, in this repository. Preferably as CSV, which is largely supported, and text only.

It is very important to keep the whole project together, to be futureproof (i.e not relying on an external provider like Kitspace, that may shut down, and would require to reverse engineer the schematics to get a BOM).

FPC connector insertion is pretty hard

Hi,
Great project! I've been having a really hard time getting the flex cable from the pcb into the FPC connector. I used the fpc connector from the BOM, not the one the that came with the display (I didn't have it when I assembled the board). I can only get it to insert if I push it in from an angle > 30 degrees. because the cable is so short, it does not seem possible to get the cable to this angle when it is threaded through the hole in the PCB. Is there some trick to getting it to insert, or do I need to remove the connector and replace it?

this is on the A1-05 revision.

Slightly larger, high resolution display?

So love, LOOOOOVE this. Will definitely be making one of these, although my trust PRS-T3 is managing to stay alive. Personally I prefer the size of a 6" display, rather than 4.2". I found https://zh-tw.buyepaper.com/6-inch-1024758high-resolution-epd-display-p0096.html except it's 34-pin parallen, so not a drop-in compatible. Is there any info that, in your research, you've found that could be useful to someone wanting to tweak the design to support these slightly larger displays?

I did just find https://www.waveshare.com/wiki/6inch_HD_e-Paper_HAT which uses IT8591 parallel controller for e-ink displays. Wish they would open-source the design and software. I definitely can see it as more of a v2/advanced.

I suppose I could just go straight to https://zh-tw.buyepaper.com/583-inch-high-resolution-648x480-e-paper-display-black-and-white-e-ink-screen-gdew0583t8-p0363.html which is a 5.48" that still uses the same 24-pin SPI FPC, so probably a drop-in other than mounting differences and changing the resolution/size in the code.

Adafruit Compatible Stackable Header for the Feather to the FeatherWing Wifi is too thin and falls out of the eBook Wing's Header

In the BOM, the Top feather header and Bottom Feather header are used to allow the Feather to stack solderlessly on top of the eBook Wing, breadboard style. I would have used the cheaper option of just cutting a Raspberry Pi header in half but I didn't want to risk that.

The feather comes with standard male break away header that is square so it fits snug in the breadboard style header on the eBook Wing. However, these would not allow the FeatherWing wifi to stack on top. Just like these:

https://www.adafruit.com/product/3002

So Adafruit provides a $1 thin pin stackable female header set commonly used in the Arduino for the header to connect to other boards, which is of course, able to stack to thin pin stackable female headers like itself just fine.

https://www.adafruit.com/product/2830

Unfortunately, these thin pin stackable female headers are too thin compared to the standard male break away header, and easily fall out of the breadboard style one on the eBook Wing, so I could not use them for the purpose of stacking the FeatherWing Wifi chip atop it. Observe the example shown in this product guide to witness the clear difference between the stackable female header Adafruit uses, vs one using square pins just like the standard male break away header:

https://www.rugged-circuits.com/components/8-pin-stacking-header

https://www.rugged-circuits.com/components/6-pin-stacking-header

(buying 2 of the 8 pin and 2 of the 6 pin female stacking header would solve this issue)

How did you stack the FeatherWing Wifi chip atop, and with what stackable female headers? Do I have to buy those square ones as above and not flat? it seems to be harder to find, and if so needs to be noted in the guide.

An alternative cheap option is to use longer square male header, and then solder the thin pin female stackable header (or a non stackable header if its the last in the stack) to the bottom of the FeatherWing instead of the top of the feather. Of course this means that the header is now in an unusual nonstandard reversed position, but at least Adafruit doesn't solder down the headers so it could work. Did you do that?

https://www.adafruit.com/product/400

Adafruit Feather STM32F405 Express

https://www.adafruit.com/product/4382

Thoughts on using the STM32 instead of M4 Express?

Adafruit tested this board in Arduino STM32duino with all their FeatherWings and only the RFM69/RFM9x libraries did not work

STM32F405 Cortex M4 with FPU and 1MB Flash, 168MHz speed

  • 192KB RAM total - 128 KB RAM for general usage + 64 KB program-only/cache RAM
  • 3.3V logic, but almost all pins are 5V compliant!
  • USB C power and data - our first USB C Feather!
  • LiPo connector and charger
  • SD socket on the bottom, connected to SDIO port
  • 2 MB SPI Flash chip
  • Built in NeoPixel indicator
  • I2C, UART, GPIO, ADCs, DACs

Anti-aliased Text

It looks like the display does support greyscale, but currently the text is rendered with hard edges. Any plans to introduce anti-aliased text rendering?

Dual Display Support

E-Ink book readers have all been single display. Kind of makes sense because a button press can shift the page. But there is something comforting about two pages. I think a PCB (think two) that can be connected together with fewer components on one of the PCB's will be give this reader a very good unique selling point. The design can be made such that there is an additional ribbon cable (optional) that connects both the PCB's (which are the same as for a single PCB design). When the ribbon is in use, one of the boards with the CPU can handle both the displays. Additionally, the two screens when the books is closed protect each other. So the design change won't increase the cost of the PCB or BOM for the single display model while allowing for the dual display to be made. Seeing two pages can also be useful for students who are doing research and want to read two different thing at the same time. For example, problem and solution.

License

What's the license of this project and the PCBs?

I Cannot Find Directions

I am probably completely missing the link, so please point me in the right direction.

I do a minor amount of DIY but really enjoy it. I need basics, though, like a list of parts to buy and step-by-step assembly. If this exists, please point me in the right direction.

I'd like to make one and, if successful, make a few more with middle school students for the classroom. Any help is appreciated.

Donations accepted?

I would love to support this project, and money tends to be helpful when it comes to open source. Is there a way to donate to this project to help it along?

Thank you for doing this, Joey. This is a glaring hole in the open source world, and we desperately need open ereaders... Your work is very much appreciated!

Firmware to be used?

Hello, i love your project but was a bit disapointed when i wanted some code to use.
I wanted to use an epaper to read ebook but can't find good tutorial to explain how to, seems only ebook company manage to display pdf or epub on an epaper.
Maybe i'm wrong, and that you know some already existing project which use custom epaper hardware to display ebook? That you might use for your project?
Or maybe i'm right and you are currently developping one your project?
In any case i would be glad to have your answer anf maybe your tips

[Question] How do you parse the .epub files?

Hi,
first of all, kudos for this project! It's a very ambitious project and I fully support it. It looks like fun :-)

I'm also working on something myself and found out your project while looking for information.

I looked at the code but I could not see how you handle .epub files? They are basically .zip archives, and a bunch of .xml / .html files. I did not see code to deal with this.

How do you intend to do? Do you have a few pointers to this?

Thanks for the comments, have fun and keep the good work up!

Incorrect FPC Connector P/N for the ePaper

The FPC (flexible printed circuit) connector specified in the BOM (for connecting the ePaper flexible cable) is Amphenol-ICC P/N: SFV24R-4STBE1HLF.
According to the application specification (see page 3), the selected connector is designed for use with FPCs that have cut-out sections.
FPC_specifications
These connectors could work with the ePaper FPC, but further verification of the footprint is required before selecting one.
The FPC connector supplied with the ePaper screen by Good Display appears to be an Omron P/N: XF3M-2425-1B

What is display PPI/DPI?

Can you specify what is resolution of display and its PPI/DPI?

As I can see on photos its PPI is very low (bold pixels)

Photo of board without e-ink display

Hey Joey,

Amazing DIY project! Me and my girlfriend stumbled upon this recently while surfing the internet for a e book reader. We're not that versed in reading electrical schematics and were hoping you could also include a photo of the front without the e-ink display so we can match the connections to the drawn schematics to help understand how to do it.

Thank you so much for this cool project and very excited to see how it goes forward!

Thanks,
Shoham

Questions

Dear Mr. Castillo,

  1. Will you use the e-Ink electronic paper at 1200+dpi?

  2. Have you considered using mRuby (embedded Ruby) ( Found Here: https://github.com/mruby/mruby ) in place of the Python selection?

  3. What are the best batteries to use? : I get about 2 weeks out of my Kindle-Paperwhite.

I just also wanted to say Thank You for doing this. I have long wanted an ebook reader unbound to any one corporation. I would spend $150 - $200 to get one that is well designed. I don't need color, and I don't want to watch movies >>> what I want is a high-dpi book-like experience in an ebook reader independent of any one corporation. If you do an at-cost business around this idea please also consider accessorizing with a small USB-based Solar charger for it. You've inspired me just by doing this project. Good Luck to you.

mistergibson

Migrate to KiCad for PCB design?

Hi, great project idea and I'm excited to contribute. However, I'm not excited to use Eagle. KiCad is mature enough to handle this project and is FOSS. Would you consider moving to it?

Use case: update conference room meetings remotely

I know a little out of your use case, but was thinking this would be cool to have as a conference room display to display an eBook or PDF to show meeting changes more frequently than paper. If there was remote SSH, FTP, and/or WiFi then I could update the file remotely?

Not expecting you to change any hardware design or make the price go up... just something for you to consider in the far future.

About The battery

I am willing to add li-ion/li-po BMS to this board, but have few concerns, firstly modern lithium batteries are no joke, so it should be done the right way. We need to add at least 2 ics, one for charging (possibly MCP73831 or BQ24040) and one to protect battery from over-discharge (MIC2776?). But that would add a lot components to solder, we may do universol board so one have to solder either aaa battery bay or lithium stuff. What do you think?

More photos

Could you post photos of the populated board, and photos of the Wing + Feather + screen?
Thanks.

Bookbinder script issues

I tried running bookbinder.py and got these error messages:

ken@ZenPenguin:~/Arduino/projects/Ereader/The-Open-Book/Examples/Open_Book_MVBook$ ./bookbinder.py
import-im6.q16: attempt to perform an operation not allowed by the security policy PS' @ error/constitute.c/IsCoderAuthorized/408. import-im6.q16: attempt to perform an operation not allowed by the security policy PS' @ error/constitute.c/IsCoderAuthorized/408.
import-im6.q16: attempt to perform an operation not allowed by the security policy PS' @ error/constitute.c/IsCoderAuthorized/408. ./bookbinder.py: line 5: class: command not found ./bookbinder.py: line 6: syntax error near unexpected token ('
./bookbinder.py: line 6: ` def init(self, offset, length):'

I think this is the version of python I have installed:
ken@ZenPenguin:~/Arduino/projects/Ereader/The-Open-Book/Examples/Open_Book_MVBook$ python
Python 2.7.18 (default, Aug 4 2020, 11:16:42)
[GCC 9.3.0] on linux2

I'm not sure how to run the bookbinder script, (no instructions provided) IE: are any arguments required, or which version of python is required.

Tried again, this time invoking python directly with script as argumen, different error, seems script might not call python if called from shell.
ken@ZenPenguin:~/Arduino/projects/Ereader/The-Open-Book/Examples/Open_Book_MVBook$ python bookbinder.py
File "bookbinder.py", line 51
SyntaxError: Non-ASCII character '\xe2' in file bookbinder.py on line 51, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

That would be this line ( I think)
print("\033[;1mMinimum Viable Book Binder\033[0;0m\n▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔")

Ideas (I'm not a Python Gru)?

I wanted to build one but when i try to order the components it is written that they are retired?

I am in need of an ebook reader. I don't want to buy a kindle or that sort. This project is really interesting. So wanted to give it a go. But when i visited the site that are linked here, for the components, it is written that they are retired. I am very sad to see the end of this project. Hoping someday it will come back. So any idea when the board and other components will be available for purchase?

Constructive Comment

@josecastillo Hey, awesome project! I like that it works with a Feather ecosystem. You should submit it on Hackaday.io for this contest that’s running right now, looks like a great opportunity for this to grow fast. Good luck!

Contribution Guide

Hi @joeycastillo , this is a great effort and idea. It would be nice if you could put up a contribution guide for people like me wanting to work on this project. Thanks.

[Request] PCB Design With Side And Bottom Buttons

Requesting a PCB design that moves the left and right buttons to the side of the device, and then takes the other four buttons (up, down, and the two outside ones) and places them horizontally along the bottom or on the side face of the unit.
Take the Kobo Forma as an example.

This would utilize dead space significantly better, as well as add similarity in comparison to a lot of retail readers.

Text highlighting

Exciting project!

I'm not sure if I'm posting in the correct area but I have a question on functionality. This project looks like a great way to ditch a Kindle but is there a text highlight/comment system? I currently have a workflow around the text file Kindle creates out of notes (clippings.txt) but would much rather move to an open source alternative.

Please add beginner tutorial

Hi, I just found this repo on github. It is interesting to make my own e-reader. However, I would like to know if there are any How-to guide (detail step by step, preferable to someone new to do-it-yourself hardware stuff) to make one my own e-reader.

How to configure/compile library for other hardware

Hi. I purchased my EPD (4.2") and Adafruit Feather M0 logger (with SD card socket) to build my simple eBook reader. Then, while searching for libraries to simplify my project, I stumbled across your project and was super excited that I don't have to start from nothing.
My setup is simple: EPD and SD on SPI plus MCP23008 for buttons in I2C
I downloaded the folder and modified the OpenBook.h like so:

#elif defined(ADAFRUIT_FEATHER_M0) // e-book wing on Feather M0
#define OPENBOOK_DISPLAY_BUS (&SPI)
#define OPENBOOK_SRCS (-1)
#define OPENBOOK_ECS (10)
#define OPENBOOK_EDC (9)
#define OPENBOOK_ERST (6)
#define OPENBOOK_EBSY (5)
#define OPENBOOK_SDCS (4)
#define OPENBOOK_BCS (-1)
#define OPENBOOK_BATTERY_MONITOR (A7)
#define OPENBOOK_BUTTON_INTERRUPT (11)
#define OPENBOOK_BUTTON_LATCH (-1)
#define OPENBOOK_BUTTON_DATA (-1)
#define OPENBOOK_BUTTON_CLOCK (-1)
#define OPENBOOK_BUTTON_LOCK (-1)
#define OPENBOOK_BUTTON_ACTIVE (LOW)
#define OPENBOOK_AUDIO_L (-1)
#define OPENBOOK_AUDIO_R (-1)
#define OPENBOOK_MIC_RAW (-1)
#define OPENBOOK_MIC_AMPLIFIED (-1)

Disabled the serial RAM as this waveshare 4.2 BW already has one built in
and I also wanted to disable Flash for Babel.
I am assuming that it is the OPENBOOK_BCS (-1) that does it. (Don't have EAGLE so I can't verify)
I am building a simple external PCB with MCP23008 and buttons to handle buttons.
How do I disable Babel support (can it be disabled?)
When compiling I get an error: "BabelTypesetterGFX.h: No such file or directory"
What is causing it?
Could you help me to modify the library setup to work with my simple reader hardware?
Thank you,
Mike.

E-Paper Display

The BOM calls for the GDEW042T2 display from Good Display. As far as I can see, this has been sold out for months, with no sign of coming back in stock. Is there a direct replacement display which can be used without changing hardware and code?

Q: Minimum pin requirement for ESP32 (WiFiNINA)

Hello,

could you please confirm me that this is all what I need to use WiFiNINA with your board:

// Initialize the WiFi client library
#define SPIWIFI       SPI  // The SPI port
#define SPIWIFI_SS    13   // Chip select pin
#define ESP32_RESETN  12   // Reset pin
#define SPIWIFI_ACK   11   // a.k.a BUSY or READY pin

I found it with your example and I´m just wondering if this all what I need to use WiFi with your board? Also pins correspond to Feather Wing layout?

Many thanks for your answer.

Dead project?

This project has not seen a commit since 2021. Is the project dead? I hope not, it's really cool

Will the screen size be an option?

Hi,

congratulations and thanks for a very nice effort!

May I suggest to use a bigger screen size? The biggest problem with current eBook readers, from the usability point of view, are the bad support for PDF, which still is the format, most technical and scientific papers are being published in. PDF doesn't float, so a screen size >8" would be needed for comfortable consumption.

I am desperately seeking for a reader, that supports ePub, PDF and (X)HTML (even CHM and CBA would be nice), so much, that I even would bother to solder my own.

Maybe supporting more than one screen size could be an option?

Sister project? Inkplate

Hi,

It's exciting to see the Free-Software / Open Hardware movement gain momentum with the explicit aim of protecting our privacy.

I just found your project and see that you have very similar goals as Inkplate, also an open source e-paper project.

  1. Would you be able to make a comparison between your project and Inkplate?

  2. Would you consider helping each other as you both are working on essentially the same project? (I'm not affiliated, I just want both of your projects to succeed!)

Best wishes.

Will you be selling these?

I love this concept, but is this a design to hack upon, or plans for a final product that is open hardware?

Book title and text not showing in MVBook

I'm having this problem where text does not show in MVBook but it does on Quotes demo. It seems that text rendering is not working on menu.h and readbook.h.

I'm using a Feather M4 Express on the E-Book Feather Wing.

signal-2020-11-03-235904

signal-2020-11-04-000501

Great Job!!!. What about of think on linux?

First of all I want to congratulate you for an excellent idea and purpose of your work.

In another hand, i think that is a good time for suggest and offer some help to you on this project, for improve oriented to the final user to future.

Really, make a board and desing all firmware it's a great job for engineering and intelectual purposes, but in long way it's very difficult for manteniance and flexibility, in way to give for give more functionalities to ereader.

Have you think about in more storage, conectivity and compatibility?. there are many boards (open hardware) than should be great for supply this requierements, which need more people workning on firmware for eink display.

For not go far with my idea. What if think on some board that support linux and give conectivity on wifi or bluetooth? and only give mode suport for eink displays in very size and resolutions?.

This give to the final user, more flexibility for have an ereader with an app of your preferences for read. More flexibility for us for think on the Ux/Ui and other funcionalities for pluralize the ereaders in low cost and good quality..

Let me know what you think about this point of view, if your purpose is oriented to this or is different?

one more time, great job men. You are a master!!!

Wiki documentation link correction for OB BOM

The link to the kitspace BOM for the Open Book at https://github.com/joeycastillo/The-Open-Book/wiki/Open-Book-Documentation#bom-notes points to https://kitspace.org/boards/github.com/joeycastillo/the-open-book/ instead of https://kitspace.org/boards/github.com/joeycastillo/the-open-book/open-book/ - which results in the 29 component BOM for the eBook-Wing, rather than the 49 component BOM for the Open Book (this happens because https://kitspace.org/boards/github.com/joeycastillo/the-open-book/ redirects you to https://kitspace.org/boards/github.com/joeycastillo/the-open-book/ebook-wing/ )

Apparently wiki's aren't part of GitHub repos, so raising an issue seemed the best way to get this correction in front of you, with new boards up on the open book Tindie it seemed like folks might just blindly click and end up missing a bunch of stuff ;)

cheers.

Font support

Does Open Book support fonts? If so, consider bundling Noto fonts. They’re designed by Google, open source, and compatible with a wide range of languages. Plus, they look pretty great too.
https://www.google.com/get/noto/

Saw your project on Hacker News. Great initiative.

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

Hi.

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

Some ideas:

  • some board to run Linux, I guess that would mean much easier and fast development, possible much easier to find developers to join on the software side
    -- why not Raspberry Pi Zero W, that is very popular, is very easy to source and should stay long on the market. Includes Wifi and Bluetooth, meaning possible wireless sync of ebooks in future to PC or mobile
  • 3D print enclosure: I think you just need to define it and someone on community will design, test, print and share the 3D files
  • larger display, I guess at least 8 or 9 inches. Would be nice if user could decide the size and the changes could be mainly on display size + 3D printed enclosure

Open Book vs Open Book Feather wing

I just ordered two displays ("First rule of government spending, why buy one when you can have two at twice the price?"), couldn't justify spending as much on the shipping as the hardware, the second display was $1 cheaper and free shipping (sorta). I will order a board once I figure out which one (might get both, see above rule :-) ).
Questions:
1: Why does the "wing board" have an added serial RAM chip that the "full" board does not?
2: Can I use the SAMD51J20 (twice the memory) instead of the 'J19? (I've got two of them in my parts bin).
3: Will there be a new hardware spin on either board soon (like to add that 'missing' ram chip to the "full" board)?
My SMT solder skills are probably up to the task, I've hand soldered 0.5mm QFTPs many times with good results. The first time I tried to use paste, a stencil and hot air it was a disaster! (couldn't remove solder bridges UNDER the legs, removed the chip and lost it when it fell on the floor!). I'll stick with drag soldering by hand and have wick handy!

Wifi?

Hi, it doesn't look like this thing has wifi. Would there be any big issues with switching the main chip to an ESP32 which would have built in wifi and bluetooth?

Ruby

Is possible put Ruby to this device?

Missing Parts on Digikeys

Hello!

I love this project. I am so excited to be able to build my own e-reader!

I have a problem though. Some parts are missing on Digikeys, or the lead times are super long. I have been able to find alternatives for most of them, but I am can't find the three below anywhere. Could you help me find some replacement parts? Which other parts could I use instead?

  • FERRITE BEAD 1 KOHM 0805 1LN (mpn: MMZ2012R102AT000)
  • MOSFET N-CH 100V 1.6A SOT-23-3 (mpn: IRLML0100TRPBF)
  • NOR FLASH (mpn: GD25Q16CTIGR)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.