-
Selectable Display Layers
08/30/2015 at 16:34 • 0 commentsI 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
08/28/2015 at 22:02 • 0 commentsVery 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
08/28/2015 at 20:56 • 0 commentsSuccess!
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
08/16/2015 at 08:09 • 0 commentsPCB 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
08/16/2015 at 07:40 • 0 commentsGCode 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
08/16/2015 at 07:30 • 0 commentsEagle 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
08/16/2015 at 07:07 • 0 commentsKiCAD 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.