I’m also on Twitter and that stream gets updated a lot more often than this blog. Feel free to send me a message about anything you’d like to discuss.
LOL okay so b/c of Elno, find me at @krekr.bluesky.social and @krekr.ioc.exchange (Mastodon)
I’m also on Twitter and that stream gets updated a lot more often than this blog. Feel free to send me a message about anything you’d like to discuss.
LOL okay so b/c of Elno, find me at @krekr.bluesky.social and @krekr.ioc.exchange (Mastodon)
I recently bought a really cheap Chinese laser cutter from China. I will post more about that process later.
First I want to document the process for cutting, engraving and a combined “mode” for cutting and engraving. Before I forget it myself.
Be prepared. This will not be at all logical. Or efficient.
As several people have pointed out, the standard software that comes with the machines is a complete pain in the butt. It’s protected by a dongle – though you wouldn’t even want to rip it. It won’t run on a virtual machine. Etc.
Illustrator vector cutting via CorelDRAW and Moshidraw
Let’s start “simple”. Just cutting a vector graphic from a decent graphics suite or CAD-package is reasonably simple:
– In Illustrator, draw your shapes and save the file as an .ai without compression
– Open the .ai in Corel and export it as a .plt (pay attention to the “Curve resolution” parameter in the “Advanced” tab.
– Start Moshidraw and create a new file
– Click “Output (O) > AllPage”. The software seems to crash. Be patient.
– In the top right corner of the new window, click on the checkbox right to the “PLT File” button. This button will now be available (!?!)
– Select the PLT file you just generated
– Adjust parameters and click “Output”
So it’ll take you 3 programs (on 3 different systems, for me) to finally slice some stuff, but at least you’ll be able to design in Illustrator.
Combined vector cutting and vector engraving from Illustrator
Although I won’t be using it much, I wanted to be able to engrave and cut a material at the same time. This – it seems – is impossible. The closest I could get is making two separate files and first engrave, then cut. Align the two files in Moshidraw’s main window, but do the cutting directly in the production window. So here goes:
– Design your piece in Illustrator, following the steps above. Make sure that the stuff you want to engrave has a solid black fill.
– Open the file in Corel and export two different .plt files: one for cutting, one for engraving. You can select the items and use the “Selected only”-checkbox in the export dialog.
– Open Moshidraw, create a new file of at least the size of your workpiece.
– Select the “Image (I) > Image”-menu option. Click anywhere in the workspace. You’ll be prompted for a file. Select the .plt file you created for cutting.
– Align the image neatly in the top left corner. Import the other .plt (for engraving) and align as you designed it. Yes, it might be a bit off, but you won’t notice half a mm shift with engraving.
– Delete the cutting .plt image. We’ll cut it in the “Output window”. We just needed it for alignment. Moshidraw is a b*tch about image order (back, front) so play around with that for a while.
– Select “Output (O) > AllPage”. Adjust parameters as needed. Engrave.
– After the engraving is done, cut the .plt you created for cutting as described earlier (directly in the Output window).
The reason for this weird workflow? Moshidraw rasterizes your .plt when you import it. For engraving, that’s fine. For cutting, the lines will be mangled. So you have to cut directly in the Output window, which preserves the vectors from the .plt. Thanks to this guy for working that out.
Frustrated? Get an Epilog, which are about 15x more expensive, but have a better (but not perfect) workflow. Don’t ask me how I figured this out…
For those few times I’ll need to engrave and cut, I have a workaround. I hope this will be useful for some lost soul sometimes.
Update 16-4-2018: I came across this software that might be interesting for people running the normal hardware: http://www.scorchworks.com/K40whisperer/k40whisperer.html
To make my thermostat more stable, I wanted to add a watchdog. Here is a nice tutorial about that. AVR’s (the basis of Arduino platform) support this, but the standard bootloader hangs when trying to use the function.
A solution for this is using Adafruit’s updated bootloader. Unfortunately, I don’t have a proper programming device, and I also don’t like to use avrdude to upload sketches (as proposed by ladyada).
So I wanted to use ArduinoISP to flash the bootloader and the Arduino IDE for later programming. Here’s what I did:
– Get Ladyada’s bootloader package for 328’s (most modern Arduino’s have these) and extract it.
– For Mac: Open up your Arduino app package (go to applications, right click on Arduino and select “Show package contents”.
– Copy the file named “ATmegaBOOT_xx8_adaboot328.hex” to “/Contents/Resources/Java/hardware/arduino/bootloaders/atmega” inside the application.
– Adjust the boards.txt file (at “Contents/Resources/Java/hardware/arduino”) to include a reference to the Adaboot-“board”:
##############################################################
atmega328ADA.name=Arduino Duemilanove or Nano w/ ATmega328 ADABOOT
atmega328ADA.upload.protocol=stk500
atmega328ADA.upload.maximum_size=30720
atmega328ADA.upload.speed=19200
atmega328ADA.bootloader.low_fuses=0xFF
atmega328ADA.bootloader.high_fuses=0xDA
atmega328ADA.bootloader.extended_fuses=0x05
atmega328ADA.bootloader.path=atmega
atmega328ADA.bootloader.file=adaboot328.hex
atmega328ADA.bootloader.unlock_bits=0x3F
atmega328ADA.bootloader.lock_bits=0x0F
atmega328ADA.build.mcu=atmega328p
atmega328ADA.build.f_cpu=16000000L
atmega328ADA.build.core=arduino
##############################################################
– Not sure if this was really necessary, but replace the stock avrdude.conf with the one from the package (at “Contents/Resources/Java/hardware/tools/avr/etc”) and delete all lines from 522 – 715 (dealing with parallel programmers, throwing errors on OS X for obvious reasons).
– Restart the Arduino IDE. A new board should now show up under Tools > Board called “Arduino Duemilanove or Nano w/ ATmega328 ADABOOT”
– Get an Arduino with auto-reset disabled, select “Arduino Duemilanove or Nano w/ ATmega328” (NOT ADABOOT!) and upload the “ArduinoISP” example.
– Wire that up to the second Arduino that you want to upload Adaboot bootloader to.
– Follow the rest of the tutorial
Remember that you’ll have to select “Arduino Duemilanove or Nano w/ ATmega328 ADABOOT” as the board if you want to flash something to that Arduino. I suggest marking the Arduino as such.
Thanks for Dorkbot for much of the details. His tutorial is nice, but a bit outdated…
This post also explained a lot.
A test sketch:
//Watchdogtest.pde
//requires adaboot!
#include <avr/io.h>
#include <avr/wdt.h>
int ledPin = 13;
void setup()
{
wdt_reset();
wdt_enable(WDTO_8S);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println(“RESET”);
}
void loop()
{
for(int i = 0; i < 3; i++){
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a 10 seconds
digitalWrite(ledPin, LOW); // sets the LED off
delay(250); // waits
wdt_reset();
Serial.println(“wdtr”);
}
digitalWrite(ledPin, HIGH); // sets the LED on
delay(10000); // waits for a 10 seconds
digitalWrite(ledPin, LOW); // sets the LED off
}
I will update my thermostat tonight and post the results.
It’s been getting cold lately, here in Holland. This is the first winter I have actual control over the central heating in my home. It’s also the first time I have to pay for the energy costs myself. To save myself some cash, live more comfortably and save the environment, I wanted a good thermostat. Thermostat 2.0, you could say.
It had to be controllable over the internet. It should document historical values, for greater insight. Nest does exactly that. It’s a great product. But, it’s $250. And not yet available, even in the US. And I’m freezing when I get home.
So I had to build one myself. Below is the first alpha-stage prototype, running a test. It’s based on the great Arduino platform, incarnated as a nanode. On top is a Grove-shield from Seeed studio for easy prototyping, with a relay that controls heating. (During the test, the relay is the heating element itself.) Wired into a breadboard is a DS18B20 OneWire digital temperature sensor.
And a sample from my Pachube feed:
Notice the temperature bouncing around, but being relatively stable around 22 degrees Celcius. I’m curious to see if this will also be the case when I hook it up to my central heating. There’s still a lot to be done before I can actually call this an “Open Source Nest”, but for me the basic functions are here.
I can now adjust the temperature of my home about half an hour before I get home! I will post my findings after actually using it for a while.
Here is some basic info about the sketch:
Nanode + Pachube + DS18B20 temperature sensor + relay = internet controlled thermostat
Code relies heavily on the following arduino sketches:
EtherShield ENC ReadPachube example
PacubeV3_WithoutNode by WickedDevice
The Dallas Temperature library and its examples
Features:
DHCP
DNS
Onewire temp sensing
Todo:
PID control
Local Override
Failsafe (no connection, weird data, …)
Neater temperature getting from pachube (“Z,”)
Pachube normal temperatures (no *100; floats instead)
Timing (programming) (better yet: self programming)
Scheme:
Nanode or Arduino with ENC ethernet shield
Relay on pin 5
OneWire temp sensor (DS18B20) on pin 4