All posts by admin

Industrial 3D model repositories

TraceParts

One of the best 3D repositories of Industrial specifications and 3D models in various formats.

 

McMaster-Carr

Maybe the largest repository of industrial components online. Most of parts have at least proper drawing with dimensions if not a full 3D model and for many drawing suits.

 

GrabCAD

A ever growing community of Inventor/Catia/Solidworks designers with various 3D models in various formats.

 

Archive3D

Not a proper industrial repository but still a good source of 3D models in various formats. No specifications or dimensions.

 

Sketchfab

Sketchfab is not per say a 3D model repository but more a showcase. It still offers various interesting 3D models for download. Also some of 3D models have animations.

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Overview of Standard and Alternative CNC linear guides – part I

Precision and strength of CNC machines is highly dependent upon the linear guides on which elements move. There are many many different ways CNC axis can move around. Part I is about general overview of existing linear guides and some alternatives. Part II will be about experimentation with T aluminum profile for use with small CNC machines.

Highly precise machines usually use linear motion guides like the one from HiWin. Such linear motion solutions are due to their complexity rather expensive. MGN12 model usually used in making high end Delta 3D printers can cost up from $40 for 40cm and up depending on length.

qh_series_linear_guideway_large

But there are alternatives. The most known alternative is MakerSlide which started as Kickstarter project. In europe amberspyglass offers 1m lenght makerslides for £12.00.

It is good for medium sized machines but when going for small to tiny machines the where size and weight is an issue they are not that practical.

f9ac6e50ac74f0290b2b81b0b494cd49_original

Makerslide offers good rigidity for the price. It was aluminum profile of choice when building Shapeoko  CNC machines.

eshapeoko

Slightly beefed up version on makerslide is c-beam and V-slot from Openbuild. Also OpenRail is a good add on to standard aluminum profiles to make them into high end linear rails.

1f2b9759064296201bc9f40f237f964d_original

Also standard aluminum profiles 1010 or 2020 are popular in making 3D printers, especially Kossel mini.

openbeam-3-pieces-of-750mm-black-anodised-openbeam (1)

maxresdefault

Somewhere in between of HiWin and Makerslide are guide rods. They can be purchased from tiny to massive diameters and are used all over the place.  They are not that expensive by them self but require additional items to make them fully useful.

ps12970903-induction_hardened_hard_chrome_plated_rod_linear_motion_shaft_precison_shafts

Such guides offer a wide array of carriages that can ride on the rail.

okrogla-vodila01-v

Now, all of these are more or less standard ways of making CNC machines move with precision. While making smaller or huge CNC machines such linear guides are sometimes impractical and other times prohibitively expensive. Thus I needed an alternative solutions for linear guides. While experimenting it was found that almost anything with little imagination can be used as rails for CNC machines.  Especially pipes, square, T and V aluminum profiles.

Note: I dont have images of all experiments so Im using internet images.

Some of examples are:

3d252e381d455d72e9259c390a0467da

V profile, good for large scale 3D printers as they have no Z axis force put on them.  Easy to acquire and fast to guild.

linear-4

Simple setup for use with medium CNC machines. Has no limiters so prone to wobbling.

a3fc389ec4de80a74f59fbc1da82c939ec5c65782181f547baf2f263a29ddce9

Rather robust setup for use with square or round pipes.

One of good examples of alternative guide lines is Mostly 3D printed CNC. Files and videos can be found of thingiverse.

db44694b31002e06d13cf663c64cd7dc_preview_featured

 

Facebooktwittergoogle_plusredditpinterestlinkedinmail

CNC movement designs

In 3 years of building CNC machines I’ve built almost all of popular CNC  movement styles; from  Delta, CoreXY, HBot and classic 3 axis Cartesian machines.  Each of mentioned movement systems has its advantages and disadvantages. But the most interesting is Delta.

Delta configuration is by far the most attractive to watch move. It’s almost, no, it is mesmerizing. When my Kossel is working I can stare at it for hours.  Several different configuration of motors exist but the movement style is the same. DeltaRamki

Advantages of Delta setup is that it can move rapidly, much more than any other configuration (except SCARA?). Its disadvantages are small operating area and as you make it bigger (except height) it gets more and more complex.

All styles listed here at the end of the day work in Cartesian coordinate system but only one is thought about when that name is used without any additional descriptions or attributes.

CNC machines are traditionally 3 axis Cartesian machines. It’s rather simple and intuitive system where each of the axis has its own motor. Such arrangement has little to non disadvantages if you keep it small and tight. As soon as you go to 1m and above in any dimension, things start to fall apart. The stiffness of machine needs to be increased which introduces additional cost, weight and often additional motors as 1m length of any material will tend to bow if driven from only one side. The opposite side will tend to just lag behind as motion vector is transferred to it. If machine is not stiff enough the lag can be such that the machine is unusable.

sb344-90s-2200g-x-sb233-90-820gl

In addition to those issues, with larger machines there is an issue that motors travel together with axis. It’s not really an issue as it increases stiffness but complicates cable routing and adds weight to axis limiting the acceleration and speed at which it can move.

There are workaround for those issues but at the end, they are workaround solutions that do nothing to solve underlying issues and can introduce a whole set of other issues. One example is removing the need for Y axis to move and instead moving the work bed. Work bed is usually a flat stiff sheet that can be moved using one motor compared to two for Y gantry. But then, you are moving your work piece and adding stress to it. If the workpiece is brittle Y axis can not move or accelerate fast. The same is true if work piece is heavy.

Still, it is the most popular and useful movement system.

With popularization of alternative uses of CNC machines for novel uses such as 3D printers and laser cutters new movement systems and arrangements are being developed. Most of them are not intended to be used with large machines or machines whose axis are under stress like when cutting material.

Take for example Hbot arrangement of belts and pulleys.

Hbot is a very elegant solution for a lot of issues. Motors are stationary and due to pulley system there is a lot of torque. But, such arrangement needs to be built under tight tolerances. If belts become loose accuracy will be decreased drastically  and immediately. With that in mind it is still the most elegant and practical solution for X and Y axis for a CNC machine that has little to no stress on gantry, like 3D printers or Laser cutters. Additional information about this can be found on Double Jump webpage and FABtotum.

hbot

Layout-XY-2

To solve issues of slack belts CoreXY was developed and is my current favorite when building smaller machines. It eliminates the issue with slack belts but to do so adds an element that is frowned upon in engineering.

corexy

And that is crossed belts that rub against each other. That is a huge point of failure and a real problem but doesn’t need to be a dealbreaker. Several options to solve this exist.

One is to just leave it as it is and put up a finger to classical engineering practices. Just replace the belt if and when it gets worn out. Depending on use of machine this could take years. My machines are now running for a year without any significant wear on the belts. The wear is minimal as not a lot of stress is put on them. They move very light gantrys with 3D printer heads or laser assemblies. If it were under big loads like big spindle then it would be another matter.

Then there is introduction of separator in form of additional roller or rollers that are placed where belts meet. Roller/s are made of non abrasive material like delrin, teflon, nylon or polished steel and create a smooth surface against which belts can move without wearing and tearing. In a pinch even ABS can be used as separator.

Third option is the most complicated one and that is to place each motor and belt on different planes. One motor and belt is just below the other for the height of the belt itself. This eliminates the crossing of belts but unnecessarily increases complexity of the build.

c0553a_3b43456e7221473db67ce4451287a50b

No separator and option with delrin separator is usually enough for normal and low speed operations.

Styles mentioned here are just the most practical, but still, just a slice of possible movement styles. There are a lot of different ones but the rest are more or less gimmicky.

Some of more alternative movement styles:

Facebooktwittergoogle_plusredditpinterestlinkedinmail

The end of a Era and start of a New, IoT era of hacking hardware

Samurize is done, gone. Its website is now just a shell. Files can be access directly over ftp but link to them have been broken on the site.

Vepar Config

Samurize is, was “an advanced system monitoring and desktop enhancement engine”. I’ve used it for years but now there is no point as it will not be supported. Community is trying to open source it but libs and code have become cumbersome and compiling errors are to many.

For some reason, there is no interest in keeping such tool alive. Which is a huge surprise to me as I found it extremely useful, and have participated in plugin and theme development.

VeparVUOne of my most popular plugin with last count of over 6229  downloads was KeyLed.  It allowed the user to define triggers and to control the status leds on keyboard as VU meter, HDD read/write indicator and much more. The trick is that the trick of controlling your keyboard lights is a very, very old one.  Like the 2B2B2B41544829 bug in telephone modems, , the COM1 in zip files or the legendary 2600hz. Sigh…The good old days …. … are coming back 🙂

Those issues are so low level, so embedded in the operation of devices or firmware that some of them have not been solved up to this day as it would require too much investment of time and money to fix them and it is easier to just keep calm and quiet hoping no one notices.

Old issues and exploits are a good starting point when looking at future of IoT security problems. Some of those problems have already surfaced especially with most of current devices being shipped and installed with default or no passwords. What is your bluetooth device password? Is it 0000 ? Now, imagine that you have bluetooth mic or data storage.

The next era is of disposable powerful and cheap interconnected devices that are full of holes and possibly have access to your personal data. What is even more worrisome is that most of those devices will be connected to some device that interacts with its environment. Devices such as garage doors, temperature controllers, wireless lights. I would suggest watching Mr. Robot or at least reading this.

This is on its way, and that train can not and should not be stopped as it represent an evolution of internet. What you need to be is informed so you can ask proper questions and be mindful and critical of producers of IoT gear.

One of the best examples of weak security in embedded systems is described in a document  Internet Census 2012 – Port scanning /0 using insecure embedded devices. It describes one person’s quest to do a scan of entire internet for the last time before the change over to IPv6. At one point it contained over 420 Thousand Clients out of which most were embedded machines; Coffee machines, refrigerators, routers and other machines with weak, default or no security. It is one extremely interesting read, I would highly recommend it.  I especially liked and enjoyed the joke at the end.

Now imagine if such project had malicious intent and place it some 5 to 10 years in the future where a lot of additional thing will be in IoT. The launch of Stuxnet showed just how much damage a piece of code can do, and not to software which for most people is rather abstract but to physical objects.

Now, back to KeyLed or low level Port 64h. It’s not an exploit per se but a good example of hardware hacking and works only on keyboards connected using PS/2 connector, not USB.

Computer communicates with keyboard on I/O ports 60h which is data port, and with port 64h which is Command/Status port of keyboard. By writing to port 60h we bypass the system and change the LED indicator for eg. Caps Lock to off without changing the Caps Lock status. Caps Lock stays on even if LED is off. This enables us to play with keyboard lights without any worries.

Port 64h is used to detect if keyboard is ready. We do that by waiting that status of port 64h becomes 0. Then we prepare keyboard to change keyboard light by writing EDh to port 60h and then wait port 64h to once again become 0.

The waiting for 64h port to become 0 is a safety measure that can be bypassed but I would recommend against it. You would still be able to change the LED state but by waiting for ready state you remove some unwanted artifacts like missing keystrokes etc.

After we prepare the keyboard we can turn off and on Keyboard lights. By writing to port 60h combinations of

  1. Caps Lock = 4 or second bit = 1 (00000100)
  2. Num Lock = 2 or first bit = 1 (00000010)
  3. Scroll Lock = 1 or zero bit = 1 (00000001)

We can selectively turn on and off lights on the keyboard without changing capslock or numlock status.

Windows XP introduced restrictive methods for accessing hardware ports, most of IoT devices deployed currently around the world that have Over the Air update enabled (OTA) have no security check. This enables an attacker to basically overwrite the embedded devices firmware with his own and do it remotely with little to no risk of detection. An attacker would need to know the target device make and model which is, trust me,  not that difficult to find out.

So, to bypass that restriction we need a way to access those hardware ports in Windows. Luckily, there already is a library that can to that for us. In the good old Dos there was Int 9 and direct access to ports but not anymore. Library that I used was Inpout32.dll. It is open source so if you really like it you could incorporate it directly into your applications removing the need for “one additional file to carry around”.  After registering the dll functions in your code you can simply do the following:

Procedure Set_keyboard_lights(n,c,s : boolean);
var
	bErr:byte;
	val : byte;
Begin
	val := 0;
	IF s THEN inc(val);
	IF n THEN inc(val,2);
	IF c THEN inc(val,4);
	repeat until (inp32($64) AND 2)=0;
	bErr:=(Out32($60,$ED));
	repeat until (inp32($64) AND 2)=0;
	bErr:=(Out32($60,val));
end;

Procedure presented will take three parameters that can be either true of false; NumLock Status, CapsLock Status and NumLock Status.

This small snippet is all you need to control your Keyboard Lights. Have Fun!!

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Online ASCII Art Generators

Ever since the early 90’s and the start of the end of Bulletin Board Systems ASCII Art has become neglected unlike Pixel Art that is still doing fine. Coding, Demo scene have kept the tradition and continue to use ASCII codes extensively. One of best examples is cosmblop 4k demo. More about what is ASCII and for what it is used, and it is used ALL the time, can be found on Wiki.

The basic form of ASCII art is creating big letters out of special characters. The one I use most often is Text to ASCII Art Generator.  or TAAG

ascitext

Now, why would anyone use ASCII art today, in 2016? Well, I use it as source code separator and organizational tool while coding. It is especially useful with Sublime Text, where right side of the screen offers an overview of the code and Large Banner like ASCII art stands out denoting individual parts of the code.

Sublimetext3

A step from using ASCII just for creating large letters we can use them to create pictures. This started almost with the dawn of computers as they had no Graphic User Interface. When something graphic had to be shown it was done using combination of special characters from the ASCII set. They are still used today and the most famous is the smiley. Smiley is the most used ASCII art. 🙂
There are allot of archives online that organize and host tutorials on how to create ASCII art. Some of them are Chris.com and Ascii Art Dictionary. ASCII Art Dictionary also hosts tutorials on how to create animated ASCII graphics. ASCII Art doesn’t has to be black and white. Wikipedia has surprisingly detailed entry about all kind of ASCII art.

Facebooktwittergoogle_plusredditpinterestlinkedinmail

What I learned from over a year or two of using ESP8266 01 module.

First off, ESP does not tolerate 5v, under any circumstances. Not to power it up nor as communication voltage. Usually when you read that a piece of tech does not tolerate 5v, usually it does. It tolerates it but for short time, not ESP. Just try and show it 5v and it will blow up. And the worst thing is that there will be no white smoke to indicate that something went very wrong. It will continue to sit there, not working, while you rearrange the code for the tenth time trying to figure out what’s wrong. To make things even worse, the red led will be on just to taunt you into believing it’s still alive.

There are 12+ different variants of basic ESP reference board. With the simplest and most prolific being the ESP-01.

A good and stable power supply is a must as ESP does not like fluctuations. The ones that happen when it turns on its WiFi are enough for it to reboot. ESP-01 onboard power supply filter is virtually nonexistent with only a small 100 nF capacitor. There should have been at least another 10 uF, which is not there. I would suggest adding another 10-100nF decoupling capacitor together with a larger >300uF capacitor between Vcc and Gnd to the board.

Who ever designed ESP-01 board was one massive troll. All of those component should have been there in the first place. I can almost see him, the engineer that designed the ESP boards, snickering as he plots his troll move on the unsuspecting Makers around the world .

Most of those traps are now fixed with more complete prototyping boards like NodeMCU and others.

USB, Arduino and other power sources will not be sufficient for normal operations of ESP with WiFi turned on. Most such sources only provide around 100ma while ESP needs more than 150ma to work properly. One symptom of not enough current is that you can upload a firmware but it will constantly cause watchdog timer (wdt) reset if you try to connect to a network. Or, in other words it will constantly reboot. A good rule of thumb is to provide at least 300ma or even better, a minimum of 500ma able power supply. ESP consumption can peak at around 300ma.

ESP ADC is used internally by the chip to measure internal voltage and to adjust WiFi power output. This causes a lot of problems if you wish to sample a large sample using ADC. If watchdog timer can not access ADC ti will raise a fault.

There is no warning faults, all faults are critical and cause reset of watchdog or a straight out reboot. If anything goes wrong, even if it’s not important it makes it important.

The good practice is to allow the watchdog to do its thing every now and again or simply call delay() or yield() every 50ms or 500ms on the outside. This will let watchdog do its thing and keep WiFi alive. This is true for all actions not just when reading ADC. It’s more sensitive when ADC is used but any task that takes more than 500ms to finish without watchdog having its chance to rowe around will cause it to crash and burn, or just reboot.

As with all new things ESP had its childhood problems (and trolls). As the platform matures and bugs are ironed out, both hardware and software it’s becoming a powerful replacement for Atmel based arduino.

Facebooktwittergoogle_plusredditpinterestlinkedinmail