Close
0%
0%

MeowCAD

An online free and open source electronic design tool that runs in your browser. See it live at https://meowcad.com

Similar projects worth following
MeowCAD is an online free and open source electronic design application tool. It's focus is on schematic and PCB design for electronic circuits. MeowCAD is the first completely free and open source, software-as-a-service, electronic design tool and provides a free and open source alternative where there wasn't one before. Ultimately, the value of an online electronics design community comes from it's members. People are encouraged to fork the project, stand up their own servers or just use MeowCAD directly to create their own electronics projects and share with the community.

Check it out at https://meowcad.com



MeowCAD

MeowCAD is live, check it out!

MeowCAD is an online free and open source electronic design application tool that runs completely in your browser. It's focus is on schematic and PCB design for electronic circuits. MeowCAD is running online now and for people who want to try it out, they can register for an account or go directly to the schematic capture and board capture portions to play around.

You can see other projects that have been made public and design your own. MeowCAD has an easy 'snapshot' feature to share quick mockups of schematics and circuit boards. There's also library import of KiCAD files to import your own libraries for use in MeowCAD.

To have your board fabricated, you can export your designs made in MeowCAD to Gerber files (there's a short blog post about it). Export also has experimental features to create KiCAD files and GCode files for isolation routing (all source for conversion is also free and open source).

MeowCAD is the first completely free and open source, software-as-a-service, electronic design tool and provides a free and open source alternative where there wasn't one before. Source is available on GitHub, both the website and the JavaScript web application powering the schematic and board portion.

Links

Design Document for MeowCAD

MeowCAD website sourcode (on GitHub)

Web application for schematic and board capture (bleepsix)

Web application (bleepsix) Wiki

License

Most of the main source code is under AGPLv3. Where possible, 3rd party libraries licenses have not been altered. All 3rd party software has a free license of one sort or another. Please refer to the above source links for licenses for the respective portions.

  • Selectable Display Layers

    abetusk08/30/2015 at 16:34 0 comments

    I just implemented selectable display layers. There's still a few quirks to work out but hopefully they're pretty minor.

    Here are a few screenshots:

    Some layers need to be added, there should be some options for making the 'low contrast' display layers have a custom alpha channel, the top icon should do something (like toggle all or the selected bits), there's a deeper issue with the module text fields not being associated with any layer (that's why the blue "CR..." text is so visible) which needs to be dealt with, and the vias look to inherit whatever trace they are associated with (which is probably a deeper issue with the vias) but other than that it's working!

    I decided to push this 'good enough' solution so that the basic functionality is there and I can try to add and extend to it later.

  • kicad_pcb export

    abetusk08/28/2015 at 22:02 0 comments

    Very experimental "kicad_pcb" export is now available. kicad_pcb is the "new" KiCAD export format. The previous iteration (the one with a ".brd" extension) is being deprecated in lieu of the "kicad_pcb" format.

    The "kicad_pcb" format is in something called "s-expression". The conversion tool created was one that goes from MeowCAD's internal JSON format to the "s-expression" format that the "kicad_pcb" files use.

    You can see the new code on my GitHub page, specifically the json2kicad_pcb.py that does the conversion.

    I've successfully exported the 'h8ARt' project. Here's a screenshot:

    It's probably got a lot of issues but it's a start.

  • Get on Hack-a-Day

    abetusk08/28/2015 at 20:56 0 comments

    Success!

    http://hackaday.com/2015/08/21/a-tale-of-two-browser-pcb-tools/

    Development of the project is one thing, getting users is another. "Marketing" is work, even for a project that isn't meant to make money (really).

    Ultimately I created MeowCAD so that it would be a tool for the community. I'm using it for my own projects but it would be nice if there were other people who could use it as well. Letting people know about MeoCAD and ushering them through the initial pain of learning a new tool and getting started with making electronics design is a difficult process. Cultivating users takes work.

    MeowCAD stratches my itch to provide a tool that I can use to explore, learn and design schematics and PCBs for my electronics education. I hope that others will find it useful as well. I've started providing the basics of other user features (snapshots, project management, etc.) in the hopes that they'll be useful to the community. There's been some other press as well:

    http://opensource.com/life/15/7/intro-meowcad

    http://www.open-electronics.org/meowcad-a-free-foss-online-electronic-design-tool/

    I think being free and open source is critical for any project that wants to foster community involvement but getting a community involved and believing in a project is hard work.

    MeowCAD as it stands still needs work but the hope is that the marketing and press will attract a few "early adopters" that can help with MeowCAD, either with programming or with general use.

    Feel like being an early adopter? Try it out or drop me a line!

  • Board Fabrication

    abetusk08/16/2015 at 08:09 0 comments

    PCB Fabrication

    Ultimately MeowCAD is meant to create boards. The real test is whether you can go from idea to full board.

    I've created two functioning boards with MeowCAD. Both have been designed completely in MeowCAD, schematics and PCBs, sent to OSHPark for creation and reflowed at home with my own reflow oven (a converted convection toaster oven). You can read a bit about it in a blog post I did.

    Both circuits are very simple and are more of a 'proof of concept' than anything else. Remember, I'm still learning electronics. I built MeowCAD to help me with my electronics education. Both circuits were my first time designing and reflowing surface mount components (using 1208 and 0603 parts).

    8-Bit Heart

    The first board I successfully created through MeowCAD was the '8-Bit Heart'. Below is the board in action. The board itself is about 2 inches square with an ATMega328 directly driving a 4x4 1208 (red) LED matrix. The battery is a CR2032 pill battery (the kind you find in watches sometimes). One of the reasons I wanted AdaFruit and Dangerous Prototypes library import was because they both had a nice CR2032 surface mount holder that I wanted to use that wasn't available through the standard KiCAD libraries.

    The board scrolls a message across the LED display in 'ticker tape' fashion. Below is a video of it in action:

    Source is available on my GitHub page.

    h8ARt

    The second board was a smaller one. I originally wanted to create an earring but I think the board, while small, is still too large.

    The 'h8ARt' board uses an attiny13 driving a 3x3 0603 (red) LED matrix via Charlieplexing. The battery is mounted on the back and is a CR1220. It also displays a message in 'ticker tape' style though the font is extremely hard to read as 3x3 is not that legible. I originally had the source in C but quickly ran into the 1k memory limit of the attiny13 and had to go to assembly to fit all the functionality I wanted in it. Below is a video of it in action.

    Source is also available on my GitHub page.

    Success!

    The circuits are simple but I'm very happy with how they turned out. MeowCAD can be used to actually fabricate boards!

  • GCode Export

    abetusk08/16/2015 at 07:40 0 comments

    GCode Export

    MeowCAD has the ability to export to GCode as well. The feature is still experimental and the GCode itself might be a little 'quirky' but the basics are there.

    The main program that does the conversion is the gbl2ngc which takes in a Gerber file and produces a GCode file. The heavy lifting is done by the excellent clipperlib library (by Angus Johnson). MeowCAD uses this during it's export process via the downloadProject.py file. downloadProject.py calles gbl2ngc externally and collects the result into a final ZIP file to give back to the user.

    I have a GCode viewer running on one of my other servers. Below is a screenshot of the front copper layer (there are others):

  • Eagle to KiCAD Library Conversion

    abetusk08/16/2015 at 07:30 0 comments

    Eagle to KiCAD Library Conversion

    MeowCAD uses an older version of KiCAD's board format and it's useful for MeowCAD to have a conversion from Eagle the older KiCAD version. In addition, it's useful to add some 'default' components and footprints from some hobby friendly (and open source hardware friendly) companies like Adafruit, SparkFun and Dangerous Prototypes.

    The main repo that was used was a fork of DanChianucci's Eagle2Kicad tool. I modified this slightly to be more command line friendly. The source is available at my Eagle2Kicad GtiHub.

    Converted are available in the MeowCAD website source but can also be found in the Open-Hardware-Libraries source.

  • KiCAD Library Import

    abetusk08/16/2015 at 07:07 0 comments

    KiCAD Library Import

    You can import KiCAD libraries to MeowCAD for use in your projects. These imports are local to your account. Navigating to your 'Portfolio' page and hitting the 'Import' page, you can then select which KiCAD library files you want to import.

    The interface is still a bit rough but functional.

    Behind The Scenes

    The import process is a bit convoluted but works as follows:

    * There is a Python CGI script that stores the uploaded file(s) into a staging directory

    * Add an a message to the 'importq' Redis array and create a new Redis object with the appropriate library information.

    * The "background" process 'libmod_import_d.py' scans the 'importq' for new entries and when it finds them, processes them.

    * After 'libmod_import_d.py' processes the imports, it creates a file in a queue directory.

    * The "background" process "libmod_snap_d.py' scans the queue directory for new files and when it finds them, starts processing them and creating picture snapshots of each.

    The idea is to decouple each step as much as possible. The upload should just dump the files into a directory without blocking the client or web server. Once the files are there, the conversion from KiCAD to JSON can happen. Once the JSON conversion has happened, then the library element .PNG snapshots can be created.

    All code can be seen on the www.meowcad.com GitHub repo.

View all 7 project logs

  • 1
    Step 1

    Stand Alone Docker Image

    Building is complicated, unfortunately, because of so many dependencies on third party libraries along with specific needs for users, repository locations and different web and proxy servers.

    There's some beginnings of documentation in the MeowCAD source but it's probably easier to use a Docker image I've set up. The Docker image only has storage within the image so it's not persistent but it's a start.

    The Docker image itself is rather large but the Dockerfile has all the necessary information to be able to build your own server. In the future if there's interest I can look into making the Redis database persistent.

View all instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates