October 25th Update: What happened in Customs & how to go from CAD to finished cut using OnShape

Happy Wednesday Everyone!

We’re sorry to start off with some bad news. The motors have not arrived yet. The good news is that as of today they have been released from customs and they have arrived at our customs broker warehouse. From there a local transport company will have to move the motors from that warehouse to Exceed, which won’t take more than a few hours, so we are expecting them to be there tomorrow. As previously stated, we’re going to start shipping as soon as those motors arrive at Exceed, and of course that will be our number one priority until all kits have shipped. We will be sending out daily confirmation of shipment emails that include a tracking number, so on the day you receive that email, you will know that your kit has shipped. Again, we’re so sorry for the delay.


What exactly happened with the huge delay?

With all the frustrations around getting the motors through customs, Bar suggested we provide a little information about Customs and Border Patrol, both so that we can understand it better and so our community can understand that while this delay in shipment wasn’t ideal, it was indeed necessary. This write-up is a bit lengthy, so if you already consider yourself well-versed (or not interested) in the customs process, scroll down to “What happened with the motors?” for the specifics.

First of all, what is Customs anyway? At it’s most basic level, the customs of any country is a governmental agency that’s in charge of regulating what goes out of and comes into that country. This not only includes products, but also people and other living things, such as plants and animals. Anyone who has traveled internationally knows that you have to go through customs, whether it be in an airport or at a border crossing, before officially entering into that country.

Usually, as a human being going through customs, things go fairly smoothly. You can fill out paperwork for yourself and speak for yourself, so unless you’re a fugitive of the law or you’re attempting to smuggle illegal products into a country, you get through by talking to one or two people and then you’re on your merry way.

With products, this process is a bit more complicated. Because products aren’t living things that can speak for themselves (ie humans), there have to be humans at both ends, in the country of export and the country of import, to “speak” for said product. “Speaking” for a product you are trying to export means sending along the correct information with that product so that those on the importing end know what they are receiving when importing the product. These forms include a Packing List, Commercial Invoice, and some type of Bill of Lading.

The Packing List is fairly simple as it is just as it sounds - a list of what’s included in the shipment. The Commercial Invoice is a form that states who created and is shipping the product and to whom they are shipping it to. Generally, this is fairly simple, but not always. Many times, those who are creating the product are not the same people who are actually shipping that product. Both of these contacts need to be listed on the shipment in case any type of contact with these people needs to be made. On the receiving, or importing, end, the persons who purchased the product are listed on the Commercial Invoice. Additionally, if the persons actually receiving the product are different from those who purchased the product (this became true for us with this batch of kits as we are now shipping with Exceed Enterprises instead of shipping directly out of ADX), then these persons need to be listed as well.

Finally, a Bill of Lading (B/L) has to be sent with every shipment. The B/L is perhaps the most important document, as it usually includes all the information included in the Packing List and Commercial Invoice, and then some. Additionally, the B/L acts as a legally binding document between the shipper and the carrier delivering the goods, as well as a receipt once the goods have actually been delivered. The B/L also acts as a title, determining who is the final owner of the goods that are being imported. Because the B/L is a legal document, an original copy is usually required on the importing end to confirm that the goods should indeed be delivered where they are told to be delivered. Sometimes a Telex Release B/L is sufficient in the importing process, which is essentially just an official copy of the original B/L. Express Release B/L are the other type, and although less common, these generally ensure the movement of goods through customs at the quickest pace. Express Release B/L acknowledge that there is no original, and are generally only used when there is a high amount of trust between the shipper and the receiver, as they are less legally binding. More information on B/L can be found here.

It’s important to note that with all of these documents, specific versions of them must be provided. It is never acceptable to send a photo of the document. In most cases, a PDF version of the document will do, but once in a while, particularly if there is confusion in the export/import process, an original copy of the document may be required.

So, who’s in charge of managing all this paperwork? Well, as we learned the first time we attempted to import anything, which happened to be on January 1st of 2017, you basically need a customs broker to get any product you are trying to import through customs and to your (figurative) doorstep. Luckily, in all the craziness of this learning process, Bar found a great customs broker with a company called Coppersmith Global Logistics here in Portland who was open on New Year's day. Victoria has been nothing but immediately responsive and very helpful in all of our importing, and we’re happy to have found her.

Regardless of having an awesome customs broker, sometimes getting things from one side of the world to the other just doesn’t go as planned. Ideally, you also have a shipping agent in the country you are receiving the export from. This is something that we haven’t had the time to adequately research and set up yet. If you don’t have a shipping agent in the country you are purchasing a product from, the company (as long as they are experienced enough in exporting) will have their own shipping agent who will work to get the Packing List, Commercial Invoice, and Bill of Lading to your customs broker on the import side. Assuming this all goes well, the product will be sent on its way to you.

Now, if shipping by sea or air freight, your product will have to go through customs once it makes landfall in the country of import. With certain expedited couriers (such as DHL), your product actually “goes through customs” while it is in the air, meaning that by the time it makes landfall in the country of import, it only has to be put on a truck and sent to its final destination. The problem with these expedited couriers is that they can be very expensive. As with any shipment, the cost is calculated by weight. As the weight of the product you are importing goes up, so does the cost of the import, and exponentially so. Of course, there are costs associated with moving a product through customs on the ground as well. These include handling fees, exam fees (if your product must be examined, as the motors were), and fees that go to pay for your customs broker. Sometimes, depending on the weight of the product, it can actually be more cost effective to just ship with an expedited courier, as you don’t have to pay those on-the-ground customs and broker fees. In our case, as we import in larger and larger batches, it almost always makes financial sense to ship by sea freight and have our import go through customs on the ground.

So, when we ship by sea freight, where do our products first make landfall? There are 7 major ports on the West Coast of the United States, which are Los Angeles, Long Beach, Oakland, San Francisco, Portland, Tacoma, and Seattle. You would think it would make the most sense for us to always receive our imports in Portland, and you would be correct! The issue is that sometimes the shipping agent of the company we have purchased product from does not have a contact in Portland. Most commonly, our products first arrive in LA, and then have to be transported up to Portland.

The two ship photos are of the CMA CGM T. JEFFERSON, the boat on which the motors arrived. These photos were sent to us by Jim Meyers, a preorderer of the kit, on October 3rd.


What happened with the motors?

In the case of our motors, unfortunately they had to undergo a CET Exam at the Port of Los Angeles. CET stands for Contraband Enforcement Team. We don’t really know why our motors were subject to this search. According to some research, there are many factors that go into why certain imports are selected for CET Exams, which include shipper, importer, tariff number, and country of origin. It’s also possible that if you are a newer importer (which we are), your imports are more likely to undergo these types of exams initially until you can establish more credibility with your imports. A CET Exam is one of the more intensive exams that an import can go through. The product has to be moved to an off-site location for the examination, where it can sometimes wait in line for more than a week (which is what happened with us). If you are Customs-Trade Partnership Against Terrorism (C-TPAT) certified, you have the ability to be moved to the front of this line. We are looking into whether or not getting this certification is something that will be worthwhile for the future. Aside from adding weeks to our delivery, the CET Exam of course incurred us a large fee that has to be paid in order for the import to be released to us. For more information on customs inspections, check out the blog post here.

Long story short, exporting and then importing a product through customs, particularly US Customs, is a complicated process with many steps and many people involved. As I’m sure many of you know, when there are that many moving parts, whether figurative or literal, in any process, there are bound to be hold-ups in the process. Bar and I are still very much learning as we go when it comes to Maslow as a whole, and because of the multitude of parts, the realm of customs in particular has been especially difficult to figure out. We’re so grateful for your patience and belief in us as we move through this process, and we promise to keep trying our best and improving with each forward step that we make with Maslow!

Keep reading below to find a sweet video Bar made about using OnShape to go from CAD to a finished cut.

We get a lot of questions in the forums about going from different CAD programs to cutting things out on Maslow. Hannah did a great video on how to go from SketchUp and community member Rancher did an excellent one for AutoCAD Fusion360, which can be found here and here.

This week I decided to make a similar video for the CAD program OnShape.

This video talks about one system to go from the CAD program OnShape to gcode which is ready to cut The video for going from Sketchup to gcode video can be found here: https://www.youtube.com/watch?v=W0mW_mm1iBI&t=2s The video for going from AutoCAD Fusion360 to Gcode can be found here: https://www.youtube.com/watch?v=5UbAr7VcK4U

Here is the script for those of you who would rather read along.

OnShape has become my CAD program of choice, and this video is going to cover the steps I have been using to go from a CAD model to a finished part. My system isn't the simplest but it has been serving me well. Discussions in forums have told me that there is an OnShape plugin called KiriMoto which may be a simpler way to do this process.

Making the CAD file

I like OnShape because it lets me design each part individually, virtually assemble them into the final object to test how they will fit, then export a 2D drawing of all the parts at once to cut them. For this example I've kept it simple and we just have a circle and a square to make them easy to tell apart.

Here are the circle and the square individually, and here they are joined in an assembly. Here they are laid out on a 2D drawing ready to be cut.

Notice how if we change one of them, the change is reflected in the assembly, and we can update the drawing easily. For a simple example like this one that doesn't seem like a big deal, but for a large project like the house we have been building which has hundreds of parts this is a must have feature. We purchased the plywood for that project in two batches and the thickness of the wood was significantly different between the batches. Nearly every part had to be changed slightly and the assembly let us check virtually that all the parts would fit correctly after the change, and the drawing meant that we had the up to date version of every part in one file.

There are a couple notable things about this drawing file. The first is that when I created it I chose to remove the border which usually appears because we don't need it. The second is that it has a scale of 1:1. This is critical because if the scale is not 1:1 all of your parts will come out ½ size or some other scale we don't want.

Once all of our parts are in place we can save the drawing as a .dxf file by right clicking and choosing “export”. I use the older R13 standard for my files because I have found that the newer R14 files do not work with some programs.

Now I want to use MakerCAM to generate my Gcode but MakerCAM needs a .Svg file and we have a .dxf file. To save the file as a .svg I am going to use the free program Inkscape. All I am going to do is open the file, then save it again. There is a dialogue at the beginning which asks if the units should be read from the file or if it should be scaled to 1. If your parts show up either 25 times too large or too small, there was an inches to mm conversion issue with the file and you want the other option.

Once we have the file saved as a .svg file we can open it in MakerCAM and set up our cut.

I know this seems like a lot of steps, and it IS a lot of steps. I know there is an easier option out there. We were under a very tight time schedule to get the house done and we needed a system that simply worked reliably. Now that we are finishing up that project I am going to keep exploring new and simpler options.

As always, your feedback is what guides us so if you have a system that works well for you, we would love to hear about it in the forums!

Software Changes This Week:


Firmware version .95 adds an important bug fix from @blurfl which fixes issue #321. The issue had to do with the division of two floating point numbers being cast to type long which could be truncated to zero.

Pull Requests

#322 Avoid divide by zero error in coordinated move()

Firmware version 0.94 includes even more brilliant contributions from @krkeegan. In the past we have had issues with something called "quantization noise" at low rpms. Basically what's happening is that when the motor is turning at low speed it hasn't moved very far in the 10ms window at which we measure the speed (say 20 encoder steps). Even if the motor is turning at a constant speed, this value can jump back and forth between say 20 and 21 steps which makes the controller think that the motor speed is changing. @krkeegan's approach has been to use the number of microseconds between pulses instead of the number of pulses per 10ms at very low RPMs. Brilliant!

Pull Requests

#320 Fix Error in Quantization Buffer; Allow RPM to Approach 0 2 days ago

#319 Configurable Loop Timing; Improved Movement Loop Timing; and Debugging 3 days ago

#318 Improvements For Low RPM Speed Calculation 7 days ago

Ground Control

Ground Control version 0.95 adds a new option to the automatic calibration procedure to make it work with the linkage kits now available. This is important because the automatic calibration process is much more consistent and user friendly than trying to do the calibration manually. 0.95 also adds a label to the simulator which will tell you how much a particular simulated error will distort a 600mm square centered on the sheet. This is useful to simulate how well a given calibration process will perform in the real world.

Pull Requests

#436 Add a label which tells you how much a 600 mm square centered will be distorted

#435 Add Calibration for triangular kinematics

Ground Control 0.94 added another excellent fix this week from @blurfl who tracked down a tricky bug with the help of @gero. The issue was that a lines with multiple spaces between characters were not processed correctly. Now any extra spaces are removed automatically by Ground Control

Pull Requests

#434 Gobble space runs

Thanks for making it all the way through. Have a great couple of weeks everyone!