3D Printing (Part 9)

Part 1234567, 8, 9

Open source printers are for ? … They are for mods, hacks and tweaks !

The first obvious modification (not to say immodestly improvement) deals with the cooling air blower in front of the print head. Most the air flow would splits on the Y axis rod, some would re-converge thanks to physic’s law, most would cool the peek insulator and little would reach the printed material. Gasp !

I found some nice ideas on the net, tried to design one based of the split air ducts principle but the result was poor due to the low section of the air ducts. So I decided to design one of my own which would match the following requirements:

  • Apply the least non destructive modifications to the existing design
  • Direct most of the fan production toward the printed area (1 or 2 extruders)
  • Has no effect on the size of the printed area

And here is the result:

air_ducts

The assembly is made of two symmetric parts which encapsulate the “y” rod. Tow key pins allow an easy and quick assembly. The two parts are  locked by an horizontal retaining screw (1x self-threading size 4, length 1/2′) and by vertical screws which go through the fan holes down to the cooling ducts assembly (2x self-threading size 4, length 1/2′).

The only change applicable to the existing material is a gentle bend applied to the fan holder so that the fan keeps in an horizontal position. Printing the parts is easy, take little time a little material (PLA is ok but ABS will probably last longer as the part faces a heated zone. No need for support and 0.2 mm “z” steps are far sufficient.

air_ducts_2

Here is an exemple of what you can get out of th Vertex k8400

P1170677

Installing is easy

P1170682

and results in this

P1170691

In other words, printing this part is a good exercise and results in bringing a significant improvement to the printing head design. The STL files are available for download from >here<

HTH

3D Printing (Part 8)

Part 1234567, 8, 9

This post is all about the new printer that I bought for my own pleasure and private use ! It globally fullfils my own requirements which could be enumerated in this way:

  • Budget: less than 800€
  • Printed material: PLA and ABS, others if possible; 1.8 mm filaments
  • Open source: mandatory
  • Extruder: 1
  • Printed volumes: 160x160x160 mm minimum
  • Turn key/Kit: no preference

Although I keep a constant attention to the 3D printers, I spent some time on the net seeking for printers which would match my expectations. The offer is widening from day to day, however, many attractive printers are advertised yet but still under development. So that I quickly resumed my early searches and made my decision for… the Vertex K8400 from VELLEMAN. This printer looks like it is the fusion of the early k8200 and the Ultimaker 2. The Ultimaker 2 was pretty high in my list but the price is steady high and far exceeding  my budget, on the other hand the k8200 looks good but I disliked the frame arrangement. So that the mix of both was of interest for me. The Vertex is available in a surprising wide range of price, starting at 600 € and getting up to 800€ depending upon the vendors. I carefully reviewed the building instructions which looked very detailed and very nicely illustrated. From the pictures I got the feeling that the material used by VELLEMAN were high standard. No time to loose I went to the order section of CONRAD and placed an order for one.

vertex

I arrived in a nice clean package, some sort of cardboard suitcase where all parts are well packed and labelled. I found no damaged parts although fragile parts (e. g. glass plate) coexist with heavier ones (e. g. PSU). I assembled the whole printer in two consecutive half-days. So far my advises are:

  • Place all parts in a large surface in order to find them easily and avoid to mix them up.
  • Read carefully the instructions and take your time.
  • Use good quality tools.
  • If you have no experience at all in 3D printers, it might be a good idea to join a FabLab or such community in order to get help.
  • Use the forum. As usual there is “à boire et à manger”, in other words there is poor and good quality information.

And here are a few tricks from my own experience:

  • Twisting the signal wires is boring but it helps a lot routing them properly and nicely. Do the routing as the last step, including down to the main board.
  • The Spiral Wrapping Band is hard to install and useless. I prefer the plastic ties.
  • A multi-meter is useful. Although it is not mandatory, I strongly suggest that you have own in order to check voltages and possibly temperatures if your multi-meter features such option.
  • Be very, very meticulous at adjusting the printing head rods. The better the adjustment, the lesser the frictions and constraints, the lower the power sunk from the drivers, the cooler the stepper motors. And ultimately and probably the better the prints.
  • Use alcool to clean the Buildtack surface, no acetone. This Buildtack surface is awesome be must be treated with care.

And now, it’s time for testing !

zon zon zwiss zwiss rol rol rol rol zon zon zwiss zwiss rol rol rol rol zon zon zwiss zwiss rol rol rol rol … crack ! Failure ! I could not install the filament properly, although I could push it manually through the extruder (in other words, this was not a temperature nor a clogging problem). Once the filament in place, the prints were incomplete and all observations were converging towards the extruder driver. Although these drivers use high quality chips from TI, one over millions may fail, and it just happened to me.

DRV-8825

As the chip was overheating constantly, I though that it was a heat dissipation problem. But neither a small heat dissipator nor a cooling fan helped. After replacing the defective module, none from my “improvements” proved to be necessary. The module was replaced under warranty simple and easy. However, it took me a week before I got the spare part.

Please note the small adjustable resistor on the top of the DRV8825 module. You must adjust it in order to set the proper trigger level for over-current sensing, please read instructions >here<.

Next post on same subject

 

Stepper Motors (Part 5)

Part 12, 3, 4, 5

The A4988 in details

pololu_3

Previous posts described the basic use of the A4988 driver. We shall get deeper in the A4988 driver in order to achieve the ultimate driving performances.

Apart from the STEP and DIR pins the A4988 driver features additional functions addressable through the following pins

  • ~RESET: the ground true RESET input sets the translator to a predefined “home state”, and turns off all of the FET outputs. All STEP inputs are ignored until reset input is set to HIGH. The RESET input is floating and should be connected to GND or VDD at any time. It is a valid option to connect the RESET input to the neighbour SLEEP input which is pulled at a HIGH level by internal resistor.
  • ~ENABLE: When the ground true ENABLE Input is set to a logic HIGH, the outputs are disabled. When set to a logic LOW , the internal control enables the outputs as required. The translator inputs STEP, DIR, and MSx, as well as the internal sequencing logic, all remain active, independent of the enable input state.
  • ~SLEEP: A logic LOW on the ground true SLEEP input turns the translator in sleep mode in order to minimize pits power consumption. A logic HIGH allows normal operation, as well as start-up. Wake up lasts at least 1ms.
  • MS1, MS2 and MS3:  The microstep resolution is set by setting the inputs MSx according to the following table.  The MS1 and MS3 pins have a 100 kΩ pull-down resistance, and the MS2 pin has a 50 kΩ pull-down resistance. When changing the step mode the change does not take effect until the next STEP rising edge.
MS1
MS2
MS3
Microstep Resolution
L
L
L
Full Step 
H
L
L
Half Step
L
H
L
Quarter Step
H
H
L
Eighth Step
H
H
H
Sixteenth Step

 

Tips and Tricks (Part 25)

Previous T&T

Burn Arduino bootloader… or burn your time !

Problem: When trying to burn the bootloader on any Arduino compatible board using the AVRISP mkII, Arduino IDE reports a “avrdude: usbdev_open(): did not find any USB device “usb“, “Error while burning bootloader.” smashing error message.

usb_01

Although many people faced this problem and many other tried to provide an answer, few web sites contain a simple and yet efficient answer to this problem. So that I take the risk to write this “Ultimate”, “My own way”, “Alternative” procedure.

When this situation will occur ? Mostly after installing AVR Studio or Visual Studio avr plugin, or after updating the driver from the windows environment. On completion of such operation, it is very likely that the Device Manager screen will show such list:

usb_2

The problem is that this version is not compatible with Arduino IDE and results in the above error message. Recovering from this situation is a two stages process:

  • Downgrade the driver
  • Upgrade avrdude

Downgrading the driver is pretty simple as long as you get the proper software package that you can download from >Here<. Extract the folder in a temporary folder and run the inf-wizard.exe from the bin sub-folder.

Here are the configuration forms

usb_3

Click Next >

usb_4

Select the device to install and click Next >

usb_5

Check the device configuration and click Next >

Store the installation file AVRISP_mkII.inf in the temporary folder.

usb_6

Press the Install Now.. button (unless you changed your mind)

You’ll get these splashing forms

usb_7

usb_8

And ultimately get this new list from the Device Manager

usb_9

Half the way done !

Now we need to upgrade avrdude to rev. 6.1 from >Here<

Unzip the avrdude-6.1-mingw32.zip file and store it a temporary folder.

In your [my_arduino_folder]\hardware\tools\avr\bin folder, deactivate the original avrdude.exe file, by adding an extra character or so and copy the [my_temporary_folder]\avrdude-6.1-mingw32\avrdude.exe file to [my_arduino_folder]\hardware\tools\avr\bin folder

usb_11

In your [my_arduino_folder]\hardware\tools\avr\etc folder, deactivate the original avrdude.conf file, by adding an extra character or so and copy the [my_temporary_folder]\avrdude-6.1-mingw32\avrdude.conf file to [my_arduino_folder]\hardware\tools\avr\bin folder

usb_10

Done !

usb_12

Ahhhhhhh !

Here are a couple of links which were helpful to me and contain fragmented although advanced information: https://goo.gl/8jn8I0, http://goo.gl/JCjfO1.

HTT

Cool stuff of the day

My daughters played a lot with their “Polly Pocket” in their young ages !

polypocket1

An endless perspective of gaming nicely packed in a hand palm format. Which translates into this portable lab case…

UNO Portable Lab Case

in the the Arduino’s world ! Isn’t it cute ?

More on the Arduino UNO Portable Lab Case >here<

FreeCAD (Part 1)

Part 1

For various reasons, I decided to investigate the field of open source CAD software for designing and printing mechanical parts. So I spent some time surfing the web for CAD applications and found a dozen of software which are topping the hit list. Blender software happens to be trusting the top of this list. A couple of years ago I asked newly hired engineers to spend some time in investing this field and they reported some complexity while approaching this software. So that I decided to give Blender a try my self: ah let’s show these green horns what’s in the old pots :-)

:-( Well, although the software is very nice looking, full of features, the first steps in Blender are uneasy and tedious. Tutorials are helpful but I could not find a “Blender for the rookie”; and top of that, I did not want to spend so much time in learning a new software. In comparison, KiCAD that I use a lot for electronics is piece of cake. Too bad.

Next from the list, described as focused on technical drawings, versatile and able to export all sorts of files (“no .stl, no way”) was FreeCAD. And about 20 hours after running FreeCAD for the first time here are my first impressions, advises, tricks, etc.

freecad_01

20 hours of “spare time” is about the time I needed to feel confortable at drawing all sorts of parts, rectangular and circular, using extrusion and revolutions, sweeping, cutting and fusing, placing axis and components, constraining and exporting. Although it looks like an exhausive description, I have the feeling that I covered one quarter of the features from FreeCad. SO, take the content of this series of post as they are: an other attempt to share experiences.

Getting the software

Simple and easy, there is a dedicated web site >HERE< and a download area >HERE<.

freecad

I personally decided to go for the last stable version, namely “0.15” that I installed on lap top running Windows 7 Pro 64b OS on an Intel Core i7-4500 CPU @ 1.8 GHz with 8 Gb memory. Quite a nice baby.

Learning how to create a sketch, navigate through the screens and memorizing the keywords is essential. The online help is fine but lacks details. You may have to learn the hard way and find answers in the forum >HERE< after multiple desperate attempts to cutting this #$%*§@ part the right way (sounds like real life experience doesn’t it?). There are many, many tutorials, mainly on YouTube which make a lot of sense. I found this series of tutorial mostly helpful for the beginner >HERE< and >HERE<.

Skip the tutorials which do not feature a sound track, most of them are boring and confusing.

freecad_02

This is what you will get on the first run of FreeCAD. In the next posts, I will show and tell a few tricks which proved to be (very) helpful while discovering FreeCAD and yet trying to achieve quite advanced part designs.

Enjoy

Thoughts of the day

I read in the news that the FBI (with a little help from his friends) managed to hack an iPhone which might contain valuable information for tracking some bloody devils. “We no longer need Apple assistance” for breaking the safety locks declared the Department Of Justice. This is the end point of a legal dispute between authorities and Apple. However, I agree with Congressman Darrell Issa (R-Calif.) when he declares that “This lawsuit may be over, but the Constitutional and privacy questions it raised are not”

Few thoughts crossed my mind about this controversy on privacy, like “Hacking is good for your safety” might be the new moto from the FBI, after blaming hacker for breaking safety gates. What is bad today will be good tomorrow, who knows ? But above all is something more general, philosophical and technical. From my early reading on cryptology, deciphering and related techniques, I learned that secrets are all to be broken one day or an other. It is just a matter of time, ressources and often luck (many hints were found in waste baskets…).

Twenty years from now, I worked on a data analysis software which required access to data encoded into binary data files from various instrument makers. Companies like HP were publishing their file formats, some others would agree to help under certain conditions (e.g. after signing a NDA). However, some other ones said “No”, “Never”. I explained that ultimately the file were containing my own data and that I could not understand why I could not get access to them using my preferred tool. “No way”. I took it for a challenge and one week later, after struggling hard, applying all my deciphering science, I broke the file format. And then ? What would I do ? Publish the file format on the web ? Sell it ? Advertise on the poor protection applied to data managed by this company ? This story is all about: never challenge someone who really needs an information as probably all systems can be reverse engineered.

To illustrate this, I will disclose today the password used for decades on HP 9825 computers for unlocking software. The funny thing about this password is that it is a mix of few digits and a (real) dirty word which was far beyond expectations of hackers at the time HP products had this very severe olive green, almost military alike, colors. And this dirty word was …

Credits: iPhone from pcworld.com, HP9825 picture from www.hpmuseum.org

Gamer Assembly 2016

For the second time in two consecutive years, the Gamer Assembly shelters a Makers Space dedicated to the local FabLabs. As a key player in this domain, Quai-Lab displays its current projects: Energyvore a fully original robots game featuring wireless remotely control funny robots which try to collect energy and bring as much of this energy to their home base. Early this morning the team was busy cutting, soldering, printing and coding in order to get ready for this afternoon.

ga2016_1

Visitors could also customize the power pc front panel using simple although powerful commands; they also place many question regarding the tri-copter project. The amazing thing about all these projects is that many different ressources and talents were required from design to electronics, from mechanics to firmware.

ga2016_2

Come and visit us at the GA 2016 !

The bi-bi binary code

Most of us know that many scientists are also artists: Da Vinci was an eminent painter, Samuel F.B. Morse spent much of his life as a painter too, many early anthropologists and naturalists were excellent at sketching and coloring their observations. Nothing too much too surprising anyway, as many scientist share the taste for imagination, innovation, creativity with artists.

And there are artists who are amazing scientists too. I discovered one by pure chance while looking for the lyrics of a song from my young ages.

What would have happened if the war had not crossed Robert Jean-François Joseph Pascal Lapointe’s (mostly known as Boby Lapointe) destiny ?

A fighter jet test pilot as he dreamed about when he was a kid ? Or a computer scientist ? Anyway, the fact is that he invented a binary notation of its own. Which is easy. I will not teach you anything about the three first line. The key for reading binary lies in the cell L4C2. The corresponding sign compares to the trace left by a sliding finger.

bibi_code

Using this notation, we can now state that ” bibi plus koka equal hahoho” ! Hu hu hu, very funny. Funnier and shorter than “One hundred and nineteen plus one hundred and thirty seven equal deux hundred and fifty six”, isn’t it ?

Enjoy !

SG90 servo (Part 1)

Part 1

Many robotic applications feature servo-motors. Most from these servos are used as is, sweeping a +/- 90° angle from an idle position. To the cost of few mods and two SMD resistors, a standard servo can be converted to a continuous rotation mode. I will cover this mod later on.

What makes servos very popular is the easiness of wiring and driving. Each servo features a
ribbon cable with three wires:

  • Black or Brown: Ground
  • Red: Vcc (be careful and check servo specifications)
  • White or Orange: Signal

In this serie of posts, the SG90 will be used as an exemple, the justification of this choice being that it is small, light, cheap and available from many vendors

servo-sg-90

Here are its main specifications:

  • Weight: 9 g
  • Dimension: 22.2 x 11.8 x 31 mm
  • Stall torque: 1.8 daN·cm
  • Operating speed: 0.1 s/60 degree
  • Operating voltage: 5 V typical (3 V to 6 V in some cases)
  • Dead band width: 10 µs
  • Temperature range: 0 ºC – 55 ºC

Although some size specification exist, I encourage you to get the servos in hands before drawing the plans of their mainframe as the dimensions of the servos may vary.

sg-90-drawing

Driving the servo is quite easy. It consists in periodically a positive pulse to the signal pin of the servo. The angle depends on the the pulse width:

  • 1.0 ms pulse width -> – 90 degrees
  • 1.5 ms pulse width -> 0 degree, center position
  • 2.0 ms pulse width -> + 90 degrees

Physically speaking, a servo is made of mechanical, electric and electronic components.

A small DC motor drives a 4 gears train which last wheel is bound to a potentiometer. This potentiometer sends the feed back position signal to the electronic board which compares this feedback signal to the input signal and drives the DC motor according to the difference between the two signals. The heart of the electronic section is the small versatile AA51880 chip from Agamem Microelectronics Inc. > AA51880 datasheet <

The amazing thing about this chip is that it can drive low current DC motor or higher DC motors with 2 or 4 additional transistors (BJT or MOSFET). Next picture illustrates the board as it is fitted to th SG-90 with two 0 Ohm jumper resistors on the footprints which may receive SMD sot-3 transistors on one side and two more plus their biasing resistors on the other side:

P1170417

P1170422

This introduction would not be complete without mentioning that Arduino IDE comes with a standard library which helps in building out of the box applications with servos.