Tutorial: Custom 3D models for KiCad 3D viewer

Posted in Tutorials with tags , , , , , , , , , , , on March 30, 2014 by sethkoberg

One of my favorite features of KiCad is the built in 3D viewer functionality. A lot of your standard components will have a 3D model already assigned to a module, like resistors, capacitors, IC’s, etc., so when you fire up the 3D viewer, you will get a nice approximation as to what your finished, populated PCB will look like. In the image below, all the components came bundled with KiCAD, with the exception of the USB connector. When it comes to modules you’ve download from the web or have created yourself, you may have to create a custom 3D model for that module.

Case in point, my FT230X breakout board uses a Mini USB-B connector which I needed to create a schematic component and PCB module for. Clearly, creating these files didn’t magically generate a 3D model for viewing in the 3D viewer.

Rendered 3D model of my FT230X from KiCads 3Dviewer

Rendered 3D model of my FT230X from KiCads 3Dviewer

Requirements:

  1. 3D modeling software – I used Wings3D for this project to import an OBJ file to edit and export to VRML (*.wrl) for KiCad. You can use any 3D modeling software you like – another good, free one is Blender3D. Whichever modeling software you choose, make sure you know the basics so you can clean up the model you’re modifying. Also, this extra piece of software is needed because the VRML export doesn’t work from FreeCAD, so we need a middle man to take care of that.
  2. CAD software- I’m using FreeCAD to export CAD files to OBJ to modify in Wings3D (you didn’t think I was going to make you actually model anything, did you?). You can use this software to modify the CAD model before exporting to the OBJ format, but since I’m only using it to convert the files, I’m not bothering with learning another piece of software this week.
  3. 3D CAD drawings of your component – You can find these on the manufacturer websites for the part your creating. For this USB connector, searching the part number (67503-1020) on the Molex website will lead you to a link to download 3D CAD Models – they’ve already done the hard work, so why should you.

Downloading CAD Models

For this USB connector, Molex has provided 3 formats for the CAD model: PRO/E, IGES, and STEP. The manufacturer may offer more or fewer formats for the component you’re working with, but a cursory glance at the capabilities of FreeCAD suggests most standard file formats should work. If the manufacturer hasn’t supplied a file format that can be imported into FreeCAD or doesn’t supply 3D CAD models, you may need to find a similar component from a different manufacturer that does for the purpose of this tutorial – you don’t need to use the secondary component in your project and rework your schematic and PCB, as this is just for a 3D rendering, not the final product.

Download the 3D Model file from the manufacturers website and save the file, typically a *.zip, to your computer, then extract the file from the archive to a location that makes sense – I extracted my file to the project directory for the FT230X breakout board.

Advertisements

Delayed, but not forgotten

Posted in Blog, Gadgets with tags , , , , , , , , , , , , on March 25, 2014 by sethkoberg

Another weekend has passed and I have neglected to post anything; however, this time around, I have been busy working on a little side project that will ultimately interface with the Anemometer. In my last post, I had mentioned the use of KiCad, which I’ve been working on learning to take my mind off of the anemometer for a bit so when I do continue work on it, it will be with a pair of fresher eyes. One of the things I hate is working on a single project and essentially getting burned out before its completion – one of the reasons, I’m sure, I fail to complete many of my projects.

I had decided to move onto learning KiCad so when a project gets to the point of fabrication, I’ll be able to tackle the schematic and PCB design without delaying the process any further than necessary. Eagle cad, a schematic and PCB generating software I’ve used before, is still a superior piece of kit, in my opinion, however, the limitations in the free version was something I wanted to break away from. If I ever do decide to sell anything I design, I would have to purchase a licensed version of Eagle. On top of that, using KiCad will support the open source community by using open source software to develop open source hardware.

So, onto my little side project…

 

Continue reading

History repeats itself

Posted in Blog with tags , , , , , , , , , , on March 17, 2014 by sethkoberg

As I could have predicted, I have been putting off writing in my blog and working on my projects for a while now. Both have been in the back of my mind, but for one reason or another, I have been neglecting to do anything about them. I have been running into a few problems with the Anemometer, and those things need to be ironed out – issues with the RTC not updating or storing the time correctly, issues with having the anemometer write data to an SD card while simultaneously outputting to the serial monitor – things that I never imagined I would have to take into account. The DS1337 is purportedly hot swappable with the more common DS1307, at least, that is what I figured when comparing registers between the two and the DS1307 worked fine when I was testing code, but when I switched to the DS1337, I started getting the wrong data.

Continue reading

Checkout Registers

Posted in Blog, Gadgets with tags , , , , , , , , , , on February 23, 2014 by sethkoberg

After wiring up the DS1337 RTC with its respective crystal to my Arduino, I needed to learn how to communicate with slave devices over I2C – which is a serial bus designed by Phillips to allow a master device (Arduino) to communicate with a multitude of slave devices with only two wires. The benefit of this protocol is the preservation of I/O pins, both analogue and digital, to communicate with up to 100+ devices while only occupying two pins on the master device, either the Arduino or other micro controller. Another added benefit to the I2C protocol is the ability to a) hot swap devices, and b) add in more components without having to re-wire or change the code already being used.

Continue reading

It’s Just a Matter of Time…

Posted in Blog, Gadgets with tags , , , , , , , , , , on February 15, 2014 by sethkoberg

Last time I wrote a post, I had gotten to the point where my anemometer reads pulses from the Hall Effect sensor, calculates the wind speed, and prints that data to a serial monitor (either the built-in monitor in the Arduino IDE, or a third party monitor like PuTTy). Since then, I’ve finished the next hurdle in the programming which is storing that data to a MicroSD card.

Wiring up the MicroSD card is relatively straight forward, and writing to the card is as simple as writing to the Serial monitor, so it wasn’t a difficult hurdle to overcome, but getting one of the necessary steps taken care of gives me that warm, fuzzy feeling inside. I’ve also included in the Arduino Code a rudimentary checking system to verify if the Arduino can communicate with the MicroSD card, and if not, skip writing to it and just print the data to the Serial Monitor. This way, if the end user isn’t worried about historical wind speed data, they don’t need to stick one in and they can just hook it up with a USB cable to view the data.

Maybe I need to think about integrating some sort of monitor to the Arduino, like an LCD screen, so a computer isn’t needed if you don’t want to store the data.

Continue reading

All Together Now…

Posted in Blog with tags , , , , , , , , , on February 10, 2014 by sethkoberg

Another weekend has passed and I did not update on time, but I am going to update today and try to get back on the Saturday/Sunday bandwagon this weekend. Since my last post, however, I have received another anemometer from Shapeways and started working on assembling the components and writing the Arduino code to calculate wind speed and store the data with a time stamp to an SD card.

Continue reading

Ready for assembly

Posted in Blog on February 1, 2014 by sethkoberg

Earlier this week, Wednesday I think, maybe Thursday, I received the updated version of the stator for my anemometer. When I got the piece out of the packaging, I immediately test the fit of the bearing into the socket and it fit amazingly! The next step was to attach it to some 1/2″ PVC pipe and take it outside to watch it spin, but there was a very minor issue – this version of the stator, even though the only change I made was to the socket, was a much tighter fitting over the PVC pipe. I can only assume this is a side-effect of 3D printing – each print of a model isn’t going to be 100% exactly the same: some minor differences are going to be present.

Continue reading