Universal SD card module for Reprap: first print!

After a long phase of debugging and incantations to the god of electronics, I finally dared testing my setup on the 3D printer!

I had a box to print for Ma’m, so I decided to print it using this module. 2:50 printing without a bug. Cool!

The module is connected to RAMPS’s AUX1 port.

The unique connection is made with 4 wires to the AUX1 port on my RAMPS. These 4 wires are +5V, 0V, Rx and Tx.

So this module doesn’t need any external power supply and this is cool!

Here is a nice box for her 🙂

Programming interfaces for ESP8266

The first self-asked question when we receive an ESP8266 is generally…

“Damn, how the hell will I program this?”

We need 4 wires: +, -, Rx and Tx,so the first thing to get is a USB-serial converter. The most important point is that the voltage must be 3.3v both on Vcc AND Tx. The risk if you use 5V is simply to burn the ESP.

L'interface USB-série
The USB-serial interface. We can see the voltage selector on the bottom, and the reset button on top.

The ESP8266 01 has 0.1 inch spaced pins, but is unusable on a breadboard because of their positioning. So you can connect it to the adapter either with Dupont connectors, or you can make a custom PCB.

I began with simple wires, but I rapidly came to making my own PCB 🙂

Vert jaune rouge... Rastaman!
Green, yellow, red… Rastaman!

On the left I can put a jumper to boot the ESP8266 in programming mode.

Oui, je n'avais que des connecteurs femelles Ă  8 contacts...
Yeah, I only had 8 pins female headers. Tape looks nice, doesn’t it?
Et l'ensemble connecté sur le PC, prêt à être programmé!
Everything’s connected to the PC, ready to be programmed!

The thing with the ESP8266, is that there are maaaany versions with different pinouts. I also have a 12e, and for this one the gap between pins is 2mm. I had to order some male headers to make a correct adapter.

Il est juste glissé entre les headers pour faire le contact. Pas de soudures, c'est cool!
It’s just placed between the headers. No soldering, pretty cool!

A jumper is needed permanently between GPIO15 and GND. The jumper on the bottom is to boot the ESP8266 in programming mode (GPIO0 to the ground)

Same principle to connect it to the PC:

Un peu plus gros mais ça va bien :)
A bit larger but it’s ok 🙂

 

Mini MakerCam tutorial

One of you asked me information about MakerCam (Nico, if you read this 🙂

I didn’t know about this software; it’s an opensource, Flash based, 2.5D CAM software. You can import svg files, or draw directly on it.

Note: I made this test on Windows because… Flash reasons…

makercam vide
MakerCam in it natural state

Ok, so for this demo we’re going to cut a letter (an A, as you can see ;-).

By pure lazyness I’ll draw it by hand directly in the application. Don’t forget to switch to centimeters (top right) if you want!

makercam lettre A
So pretty!

With the arrow tool, let’s select the whole drawing. It now appears red.

To cut this letter, a profile operation is prefect. Let’s say we want to cut it 10mm deep.

So let’s open, if you will, CAM>Profile menu. A dialog box pops up, and we can type the parameters for the profile operation.

I have a 1/8 in. end mill (3.175mm)

So I type my parameters in:

makercam profile
Creating the profile operation

After clicking the OK button, the A is filled with blue. Now it’s time to generate the toolpath, with CAM>Calculate all!

makercam toolpath
Toolpaths are displayed in green

Good! But if we cut this “as is”, the last pass will be problematic. The part will move, and might be wounded by the end mill. Bad.

So we must avoid this and use tabs!

Considering our drawing is still selected, let’s go to CAM>add tabs to selected.

A menu pops up, and we can define the spacing, thickness and length of our tabs.

Paramétrage des tenons
Defining tabs
makercam-tabs
Tabs were generated, but their positions are not always ideal.

Do not hesitate to drag and drop them so they’ll be easier to cut manualls later.

Once everything is ready, just recalculate all once more.

Time to export G-Code!

Open CAM>Export GCode.

Select all, and click Export selected toolpaths. It will downlad the g-code file and you can now visualize it in Chilipeppr for example:

chilipeppr

DĂ©tail des tenons
Detail of tabs

Well, I have to say I’m not a big fan of MakerCam. It’s a little buggy and can have weird behaviors.

But it might be helpful it I have nothing else to generate some G-Code.

Anyway, it’s a huge piece of work I have to salute, and the program is open source!

 

Evolutions in Arduino IDE

Ohoy!

I wanted to write a small article to salute Arduino IDE evolutions.

Compared to the beginnings, we’ve seen at least two major enhancements: the board manager and the library manager.

The board manager

Today, Arduino IDE can be used with many microcontrollers, and not necessarily Atmel’s. Amongst many others, the Teensy and ESP8266.

Of course the upload protocol is different according to the chip used, and the IDE must know how to communicate.

To select the right board, we have the menu Tools>Board. But what if your board is not in the list?

Well, it’s not that complicated.

First of all, you might need to add the package URL in IDE preferences:

arduino-esp-preferences

Then go back to Tools>Boards>Borad manager, and now you should see a list of available boards. Just install yours and done!

Ok the Teensy is a bit different, as you have to download and install Teensyduino, an add-in available on the manufacturer’s website.

arduino-esp-boards

The library manager

This one is even better!

You just bought a new sensor or component, and don’t want to read the %&!! datasheet to try to understand the communication protocol and implement a buggy program? I really understand…

Let’s take the DHT22 sensor for example. It’s a humidity/temperature sensor.

No headache: just go to Sketch>Include library>Library manager. A list appears, and you can filter it by typing “DHT22” in the field, and… DHT sensor library by Adafruit.

Riiiiight!

arduino-dht22-librairy

Just click the install button and not only the library becomes available to your programs, but you can also find an example of usage in the File>Examples menu!

arduino-dht22-exemples

I particularily appreciated this feature for a sensor I bought some time ago, a bit difficult to discuss with: the MLX90614. It’s a directional IR thermometer, that can measure the temperature of an object without contact. It uses a modified i2c protocol, and even with the datasheet, if you’re not really at ease with it, you can have hours of anti-fun…

So I had the pleasure to see thet this sensor is available in the library manager, and I can now use it very easily.

Thanks Adafruit, and respect!

Communicate with Adafruit IO using PHP

Hello there!

It’s been a long time without a post, but I have a good reason: intensive tinkering with an ESP8266. I’ll write about it soon 🙂

Well, for now I’ll just introduce the Adafruit IO platform, which is an awsome environment to store IoT data.

The data structure is simple and efficient: we create some feeds that are just lists of values.

Every element in a feed has a value (temperature for example) and eventually GPS coordinates.

For my first project, I used a DHT22 sensor and the ESP8266 sends the temperature and humidity data into two feeds.

And guess what, with those feeds we can (among others) display graphs:

adafruit io graphique
Still a bit cold in the living room…

https://io.adafruit.com/toxnico

The interation with Adafruit IO is made with REST APIs; so I decided to write a small library in PHP to allow people to display the last value of a feed on a webpage for example.

It’s under GPL v2: https://github.com/toxnico/php-adafruitio

Feedbacks are welcome!

A plywood candle holder

Hey!

Machining plywood can lead to beautiful things, because colors alternate with the depth of cut.

I made a small candle holder, to be ready when power shutdowns happen, and because I find it beautiful 🙂

So I made it from three 8mm plywood layers glued together.

Le matériau brut : trois morceaux de contreplaqué collés entre eux
The stock: three plywood boards
Ebauche Ă  l'aide d'une fraise droite de 6.35mm (1/4'')
Roughing with .25 inch end mill
L'ébauche est terminée...
Roughing phase is finished…
...passons Ă  la finition! Fraise Ă  bout rond de 3.175mm (1/8'')
…let’s go with the finishing pass! (ball end mill, .25 inch)

After 30 minutes and a little sanding, here we are!

bougeoir contreplaqué

bougeoir contreplaqué

Après une couche d'huile d'abrasin, les teintes sont réchauffées
Tung oiled candle holder

See you!

Open toast

The idea came a long time ago… I wanted to laser-engrave something on a toast.

So I engraved the Open Hardware log on a slice of bread. This is an open toast!

I had to go very slowly (50mm/min) because the surface is not flat. At 500mm/min, nothing happens…

Open hardware toast

The cut is deep
The cut is deep
Much better with some stinky cheese :)
Much better with some stinky cheese 🙂

Making customized, laser engraved drink coasters

Like every easter week-end for ten years, I’m coming back to my region of origin to see my old friends and family, and it’s always a good occasion to party hard… 🙂

This year, I decided to make some drink coasters for my friend Geo (http://vivrealarochette.fr), and engrave on it his main specialties.

The drink coasters diameter is 10cm. I cut them with a 2.5mm end mill, and engraved them with my laser.

1. Design

I used Inkscape (https://inkscape.org). I drew my 10cm circle, and placed my texts on it.

Oh by the way here is how to bend a text in Inkscape:

  • First, transform your text to a path (Path menu > Object to path)
  • Go to Path > Path effects
  • Click the + to add a new effect, and select “bend”
  • Play with the different ways of bending (manual, link to a path…)

Ok, so my drawing is ready, I export is as black and white PNG.

inkscape

2. Cutting

My laser is not powerful enough to cut 3mm MDF, so I cut it with Cambam and a 2.5mm end mill.

3. Preparing G-Code to engrave the PNG image

In order to generate some G-Code from a raster image, I wrote a program in C# that reads the picture and writes a G-Code text file with M3/M5 commands (for Grbl)

It’s perfectible but works pretty well 🙂

PicGCode

4. Zeroing the machine for the laser

Disks are cut, G-Code is ready, we just have to engrave now!

But the laser module is not at the same XY position as the end mill, so I needed to zero some things before starting.

So I wrote a little G-Code by hand, to draw a 10cm circle on cardboard. Then I just have to place my disks in the circle and I’m sure of its position 🙂

Shapeoko, préparation gravure laser
Positioning the disk after zeroing the machine

5. Let’s roll!

Now the most exciting phase: engraving!

Le faisceau laser m'impressionnera toujours...
This beam is always impressive…
Universal G-Code Sender
Universal G-Code Sender
Petite photo prise entre deux allumages du laser
Little photo taken between two laser shots
Et voilà la série de sous-verres :)
Here is a series of drink coasters 🙂

6. Varnishing

Some say that drink coasters shouldn’t be varnished, because the initial goal is to absorb the drops of water or wine. But… Once stained, your drink coaster is… Well… Stained…

So I felt free to put two coats of varnish on them and the result is not so bad!

Première couche
First coat
Seconde couche
Second coat