I've been slowly making progress building my own AVR RFID according to the instructions in this blog: http://scanlime.org/2011/05/duct-tape-rfid-tag-1/
After building the assembly code for HID tag type, I obtained a ATTiny85 and a handful of ATMega168s. I wanted to prototype first with the Tiny85s, but I have a cheap and plentiful source for the 168s and wanted to use those if possible: http://store.atxhackerspace.org/
Building the code for the ATMega168 turned out to be challenging, as I kept getting the same compiler error over and over and just couldn't fix it with any of the most common suggestions I found by googling:
C:AppDataLocalTemp/cc69IjcD.o: In function `loop': (.text+0x1d12): relocation truncated to fit: R_AVR_13_PCREL against `no symbol'
This comment gave me the clue:
"... IOW, you are trying to RJMP to a location that
cannot be reached that way. .."
Researching rjmp vs jmp I found this thread..
I changed the "rjmp loop" to "jmp loop" and it compiles now. Whether it works or not, we'll see 🙂
Back to the Tiny85, I got one and soldered it to a $2 Surfboard from Frys. This was my first experience hand soldering SMD components and it was pretty challenging but I managed to do a pretty good job. This was a little crazier by the fact that I had purchased 0203-sized (grain of sand) sized parts without thinking it through.
In the end, I was able to successfully solder the 2 caps in place on the surfboard. (Circled in red)
To make the antenna, I laboriously made a 66mm form out of cardboard, started winding it, and noticed a nearby beer can. Just for fun, I measured the beer can and it turned out to be... 66 mm! What are the odds?
I wound approximately 100 turns of 30 gauge magnet wire (or maybe 98... or 102... :), slipped it off the can, and stuck it to a clear packing tape backing. I soldered a 1x4 male 0.1 header strip flat against the contacts to connect the bus pirate probes up to for (very slow) programming purposes.
Ultimately, unfortunately my first test was a failure. Swiping the "badge" by the hackerspace and my office readers does not result in a beep. I'm certain the hackerspace badge is the right type. After looking closer, I realized I had attached the capacitor in series with the antenna rather than in parallel.
After fixing the error this morning (with a parts-bin capacitor roughly 100 times larger than the original :), the badge still does not garner a beep from the card reader.
I have to say, I'm pretty pleased with myself for just getting this far, it does look pretty neat even when it doesn't work.
Next steps: probe the antenna leads with the oscilloscope while trying to read the badge to check for resonance; also go back to the formula and try to recalculate the antenna length. Perhaps using a heavier-gauge wire or a slightly incorrect number of turns of wire resulted in a change in the resonant frequency? (I don't really know what I'm doing here yet, just learning as I go 🙂
I'll also probably also attempt to build my own reader at some point using these instructions here by the same author: http://forums.parallax.com/showthread.php?105889-World-s-simplest-RFID-reader
Just a little something I was playing with.. Email me (firstname.lastname@example.org) if you want the template.
Woo woo, I'm now 6 for 6 on repairing the "broken" Cricuts I got off eBay. (ok, Danny M. gets 95% of the credit for the one with the busted middle-layer board traces)
The last holdout was a Personal model, which would beep three times when powered up. Nothing from the LCD, all the keyboard lights would come on.
I started by plugging a known-good power supply into it, just in case, but it didn't make any difference.
Next, I removed the bottom cover where the motherboard lives, and immediately spotted the culprit. The LCD header was unplugged.
After plugging it back in and powering it back up, angels sang, it started right up and gave me the "Cricut 1.0 OK"!
Incidentally, I had been wondering if the earliest firmware versions had perhaps not been read-only, so I plugged in my handy programmer card and attempted to download the firmware.
At first I thought I had hit paydirt, the file was NOT all 0s like the others, but alas, I realized the bytes were all sequential numbers in an interesting pattern (high-byte increasing across, low byte increasing downwards).
This machine looks pretty much unused and gleaming. I wonder if it was bad right from the factory? How else could a header just come unplugged like that?
One thing that always bugged me about using pens in my Expression is the super short limit on pen length. I love the Staples mini gel pens, and I've gotten pretty good at shortening others, but some (like Sharpie paint pens) just not feasible to do this with.
One video on YouTube shows someone with a Personal model who removed the keyboard which allows a full length pen to be used. Unfortunately, this requires removing the end caps which is kind of a hassle. The Create is even worse, the body of the case extends underneath the keyboard and completely eliminates the option altogether.
Anyhow, with the help of a friend at the hackerspace the other night, I finally figured out how to do this EASILY on the Expression.
Here's photos showing how:
Using the head of the special tool, slide the latch towards the rear of the machine. It's pretty stiff, but don't worry about breaking anything. You could also use a flathead screwdriver for more leverage.
Once the latch clicks, lift up on the left side of the keyboard. The right side is just held down by some plastic fingers in holes in the case and will release when you move the keyboard a little to the left.
Taking care not to tug too hard on the wires, you can now lift the keyboard up and out of the way, eliminating any length limit on pens. On mine, the power wires on the right side were especially short. Taking the right side endcap off allowed me to release a bit more wire, but it doesn't really take much.
Reversing the process is pretty easy, just tuck the right side back in the holes, press the left side down flush, and use your special tool in reverse, this time to pull the latch back towards the front of the machine until it clicks.
I've been looking into and learning some secrets of the Cricut's cutting carriage.
First off, it appears to be a custom version of the US Cutter "Refine EcoCut" carriage. See for yourself: http://www.uscutter.com/Refine-EcoCut-Carriage_p_1669.html - the only difference I can see from the photo is there are TWO positions in the tool holder. The manual says the front hole is for the pen attachment, and the rear hole is for the blade attachment.
Regarding cutting pressure, both the Refine manual and in other places, the maximum pressure is claimed to be 400g (or 0.88 lbs). However, a colleague of mine actually tested it and got an indicated 0.4 lbs at +4 vdc. I'm planning to retest this on a running machine (after disconnecting the stepper motors!).
Finally, I originally believed this to be a solenoid, but after taking the carriage apart and checking voltage readings, it was discovered that it's actually a voice coil! Basically just like a speaker without a diaphragm. Normally, a -2vdc current biases the blade upwards, and switches to +4vdc (at maximum pressure) to press the blade downwards.
As part of learning about HPGL and DMPL plotter protocols recently, I wanted to see some actual samples of code sent to various types machines by any cutting application like MTC or SignCut.
Here's how I did it (in windows):
1) Download and install Eltima Software RS232 Logger and Virtual Serial Port Driver. Unfortunately, although the logger is free software, the VSPD is only a 14 day trial version. You probably can get all the samples you need in just a day or two
2) Using the Virtual Serial Port Driver, create a new pair of virtual serial ports, we'll call them COM1 and COM2.
3) Start the RS232 Data Logger, select COM2, set the baud rate the same as your cutting software will use, and set flow control to None. Select your output file name and click Start logging.
4) Go into your cutting software (MTC, SignCut, etc), configure the cutter type you are interested in (Black Cat, US Cutter, etc...), and set the port to COM1. Make the cut. The software should finish very quickly.
5) Stop the data logger to make sure the file content is flushed, and you are done!
Here is a sample of DMPL code for a test file sent by MTC.
;:H A L0 ECN U U8158,9620;D8167,9620;D8167,9630;D8150,9630;[...];D8463,7116;U0,0;!PG;
While further developing my printed-circuit-board method, I inadvertently figured out how to do filled shapes with the pen using the free version of "Eagle" PCB design software.
1) You'll need to have Eagle (free version is fine), Inkscape, and Make-the-Cut all installed and available. I use Gimp for editing and converting file formats.
2) Open the desired image in Gimp (or other image editor) and save it out as a BMP format image, with as few colors as possible. A 1-bit monochrome with no dithering is best, like line art. (you set this via Image->Mode->Indexed... in Gimp)
3) Start up Eagle, and do a New->Board.
4) Do File->Run, and run the script "import-bmp.ulp". This will be located in the ulp subfolder of your Eagle installation directory. It will prompt you to browse to your BMP file and open it. Keep your bitmap size modest, 300 DPI or less, more just slows everything down. If you have a black-on-white drawing, select White only and click OK. Click the DPI radio button under Format, and set your DPI value; it will set the Scale factor for you automatically. Click OK.
5. It will think and popup window saying "Accept Script?", click "Run script".
6. Your bitmap should now appear in blue in the Eagle Board window. Save your project, then Run File->CAM Processor.
7. Select Output Device HPGL. Deselect all layers except #200 "200bmp". You'll have to scroll down to find it. Click "File" and browse to your desired output file location and name. Be sure to give the file a ".plt" extension which indicates the HPGL file type. Set the Pen Diameter to the actual width of the line your pen produces. 1 mil = 1/1000 inch. A ballpoint pen tip ranges from about 20-50 mils. Click "Process Job". This will render your .plt file.
8. Start up Inkscape, do File->Import... and import your .plt file. This can take a little time. If the application freezes, give it some time.
9. Eventually, your image will appear in Inkscape, already selected. Click "Edit->Copy".
10. Switch to Make-the-Cut, now do "Paste-in-Place". Voila!
Note, depending on how large the filled areas are, and the diameter of the pen, it might take quite a while to calculate when you click the "Cut Project With..." button. (the example image has 65000 points). Fortunately, since the fills are done using mostly horizontal and vertical lines, the machine can run pretty fast.
Here are another couple screenshots to show the pattern closeup. If you wanted a grid you would tell Eagle that the pen is wider than actual.
This method should work really well with engraving tips..
MTC reported this image was about 11000 cutting points which really seems pretty modest to me. I haven't tried actually printing one this big yet. If you (in MTC), right click on the imported image, and do Shape Magic->Advanced->View Path Detail... and scroll down through the path segments with the cursor key, you'll see the path taken is pretty sensible and doesn't waste a lot of time scrolling wildly all over the place.
I created a circuit in Eagle to test the resolution and fills using a fine tip pen in the Cricut.
The pen itself is a 0.01 inch diameter permanent marker, shortened to fit the machine. The test image is made of three identical copies of a diagram. The diagram contains some sample SMD and through-hole pads, as well as traces in 0.01, 0.03, 0.05, and 0.07 inch widths.
The legend reads "10mil pen, 20mil pen" and "30 mil pen" to indicate the pen size as given to the Eagle CAM processor function, but the entire drawing is rendered using the 10 mil pen in order to see which circuit will have proper fills with no white lines inside.
The results prove to me that the best fills do indeed result when the pen size is accurately set in the Eagle CAM processor. When the pen in smaller than Eagle thinks, it doesn't lay down enough lines to completely fill the solid traces. The TQFP and SMD resistor pads look nearly usable, even the horizontal jitter is almost nonexistent near the middle of the page. (Maybe the duct tape pen mount absorbs vibration better than my custom metal pen holder?) The worst flaw just seems to be incomplete coverage in the diagonals of the largest (0.07 inch) traces, which should be easily retouchable by hand.
Here's the workflow:
1) Create the board in Eagle
2) Run the CAM processor, select output device HPGL, layers Vias, Pads, Top or Bottom, and Holes.
3) Start a new drawing in Inkscape. Import the HPGL file into Inkscape. Select the imported circuit diagram, and click "Copy".
4) Mount the pen in the Cricut tool holder.
5) Start Make-the-Cut, and do "Paste in Place" (ctrl-shift-V) to paste without resizing. Arrange as needed and then cut to the machine.
Last night at the Hackerspace I tried a new way (to me) of doing PCBs on the Cricut. So far it looks like the most promising yet.
This time instead of trying to scratch off an etch resist, I'm directly drawing it on using a plain old mini Sharpie pen like a plotter would. I understand the Stadtler Lumicolor pen is also recommended.
I just now discovered this link that shows exactly what I need to try next as far as the pen goes: PCB Plotting
-Then, in Eagle, run File->CAM Processor.
-Select Output Device EPS
-Click File and select your output file path.
-Don't worry about the offset and page size.
-Select the "Pads", "Bottom" or "Top", and "Vias" (it will complain if "Vias" is not selected).
-Click "Mirror" if you are doing the bottom layer.
-Click "Process Job," this will write the output file.
-Install a copy of Ghostscript & GSView, and run "ps2pdf [options] input.[e]ps output.pdf" to convert the EPS file from Eagle to a vector PDF.
-Fire up Make-the-Cut, and do "File->Import->Vector PDF File", leave "Import Strokes and Fills" selected, select your PDF file and click "Open".
-Select the imported image and click "Ctrl-B" to Break the circuit up into its pieces.
-Deselect all, then click on each of the four border lines and delete.
-Select all, and click "Ctrl-J' to Join the circuit back up into a single piece.
-Position the circuit on the cutting pad as needed.
-Load up your Sharpie in the tool holder and print a test piece on paper to verify positioning.
-Load up your copper in the machine. If you're running anything thicker than 0.01 you may need to raise the pen in the holder. I use double-stick tape or at least a fresh spritz of spray-tack.
-Print your design. I don't know how many coats are necessary, but I am doing two coats, one after the other. Don't use Multicut for this!!! It does each line multiple times immediately instead of doing the whole pattern completely and repeating it: This causes the pen to dissolve the previous coat and move it around a little.
-(optional) Put the board into the toaster oven just briefly to make sure the ink is fully dry.