Old posts
Posted by
Ril3y on February 17, 2010 |
No comments
I know everyone has done this before. RFID and arduino that is. But looking at the example code it looks like the antenna is always in receive mode. I am not sure how this affects the life of the chip / reader but I thought of adding a way to detect human presence before activating the receiver.
I found some little IR heat detector (HERE: http://www.allelectronics.com/make-a-store/item/IRD-10/INFRARED-DETECTOR-MODULE/-/1.html and tossed together some analog read code and viola. Now when the IR detector detects over a certain variable heat temp it activates the RFID reader.

Tags: arduino, heat detector, pyro sensor, rfid
Posted by
Ril3y on February 16, 2010 |
5 comments

So I had some free time while waiting for Alden to proof my xproto breakout board I designed for the tinyG system that we are working on. So I took some time to try to mimic the results that Joe Grand of Grand Idea Studios did on his professional PCB mill. I think the results were pretty good. In fact they were even better than you see on the final version. I say this because currently I have a very coarse wire brush on my grinder and did not take the time to switch it to a much finer wire gauge. I was lazy. As you can see some of the building is coming off.
Also in the middle there was some “over burn” where I left it in contact too long.

This has kind of inspired me to do some neat graphic / electronics. Not sure what I am going to do but this would have been much cooler if the cyborg’s eye lit up and would blink faster / slower based off of the temp in the room etc…

Tags: art, defcon, etching, laser, pcb
Posted by
Ril3y on January 20, 2010 |
One comment
So I ordered a 1-Wire RTC (real time clock) from the maxim corporation. To be exact its a ds1904. What is really cool about the 1-Wire protocol is it only needs 1 wire to send data on. It is a bit misleading however since it does need a ground as well. You really need to read the data sheet on these guys to understand fully how they work. But in the mean time basically one button gets to talk at a time. Every button has a unique serial number which is kind of a cool feature in it self. Since its in a steel “can” its really rugged so you could place it on say a card, keychain etc? It would be cool to use as a key FOB to get into my workshop. However no time for a new project at the moment. The reason I am messing with this stuff is I had to take a break from the project I have been working on for work. Call it a mind break.
I created a DIY (with a laser cutter that is) OneWire button mount as you can see it just holds 2 wires against the top and bottom of the steel can. Pretty simple. Not really useful as an end solution but good for testing.

Anyhow there is a nice Arduino lib for the 1-wire stuff here. Just extract this to your arduinoxxx/hardware/lib/OneWire folder.
This is the source code that I used and edited to get the RTC DS1904 working. Note that you need to uncomment the //write Section upload it to the board let it run then re-comment it and upload it again. Otherwise the oscillators will not turn on and it does not “count seconds” or more to the point at as a normal clock.
This is the source code that I used and edited to get the RTC DS1904 working. Note that you need to uncomment the //write Section upload it to the board let it run then re-comment it and upload it again. Otherwise the oscillators will not turn on and it does not “count seconds” or more to the point at as a normal clock.
#include
// DS1904 Real Time Clock iButton I/O
OneWire ds(10); // on pin 10
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
byte i;
byte present = 0;
byte data[8];
byte addr[8];
if ( !ds.search(addr)) {
Serial.print("No more addresses found.\n");
ds.reset_search();
delay(500); // for readability
return;
}
Serial.print("ROM: ");
for( i = 0; i < 8; i++) {
Serial.print(addr[i], HEX);
Serial.print(" ");
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.print("CRC is not valid!\n");
return;
}
if ( addr[0] != 0x24) {
Serial.print("\t\tDevice is not a DS1904 family device.\n");
return;
}
/*
// write!
Serial.println("writing to RTC...");
present = ds.reset();
ds.select(addr);
ds.write(0x99,1); // write RTC - this is the write code
ds.write(0xAC); //This is the control byte. AC in hex = 10101100
//read the datasheet and you will see that this is important
//to start the internal osc's... Or to make the clock start
//counting seconds. --ril3y
ds.write(0x02); //0x02 is a random time set it with your own
ds.write(0x03); //same with this
ds.write(0x05); //this
ds.write(0x08); //and this
present = ds.reset();
delay(1500); // unknown if wait needed
*/
// read!
present = ds.reset();
ds.select(addr);
ds.write(0x66,1); // read RTC
Serial.print("PR: ");
Serial.print(present, HEX);
for ( i = 0; i < 5; i++) {
data[i] = ds.read();
}
Serial.print(" CTRL BYTE: ");
Serial.print(data[0], BIN);
Serial.print("\n\ttime: ");
for ( i = 1; i < 5; i++) {
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.println();
}
Note that I did not write most of this code. You can see the original thread here: This should be enough to get you starting using a 1Wire RTC. Enjoy!
Tags: 1wire, arduino, ds1904, one wire, onewire, rtc
Posted by
Ril3y on January 8, 2010 |
No comments
Well I was the only one there…. BUT! I did have a few different ATMEGA’s guests. I had purchased about 10x ATMEGA168V’s and 5x ATMEGA168P’s both in the SMD packages for some upcoming projects. My goal was to get a TQFP (which is just the name of the chip foot print or size if you will) socket hook it up to the SPI programming ports that ATMEL uses to flash their chips and then burn the Arduino Boot loader on to them. Well this turned out to be harder than I though.
First, the wayyyy too cheap TQFP Socket Breakout Board $25 actually when most are around $150 – $200 was too good to be true. I assumed and did not RTFM (google if it you dont know that one) that it had a standard male breadboard socket headers on the bottom to “breakout” the pins. It actually had this:
So after realizing that my whole “good idea” of removing the 6 pin headers needed to flash and arduino bootloader off of any future design and just use the “breakout board” to quickly flash these guys was starting to seem like it was not going to work. After about 4 hours of searching for the counterpart of this connector I gave up and got crazy. I went ahead and desoldered the whole enclosure popped it off solder 6 wires to the right corresponding pins needed to flash the AVR’s. I needed this to be done quickly as I had a project that’s deadline is approaching so I had to breadboard

this design rather than make a nice custom eagle footprint for this part and do a DIY PCB via the Laser.
This is where the real trouble started. I thought I had bought all ATMEGAxx8P’s when in reality I had bought ATMEGA168V’s. So my trouble was through the arduino IDE I had selected to flash these chips with the Arduino mini pro as the board selected. All this means is through the IDE the mini pro has the smd atmega168p chip which is what you would have wanted if you had the right chip.
Issuing the avrdude -c tinyisp -p m168 told me that everything was good. So then I proceeded to select Burn Boot Loader through the Arduino IDE. This failed and now I was no longer able to talk to these chips. After reading more I realized they were ATMEGA168V’s which is the same chip the lillypad uses. I selected that board on a new chip burned the bootloader and now its all working. However I did “screw up” about 6 other chips.
I posted a question on chiphackers to see if anyone could help me out. It turns out that the Arduino IDE seems to have changed the fuses on the chip to need an external oscillator. This is ok if the hex file that the arduino was trying to burn was the right one. Which it was not as I described above. So I am in the process now of trying to fix these “screwed up chips” by adding an oscillator to the xtal pins and then trying to burn them again with the right bootloader. I will update with more info when I know its fixed. Here is some more pics of the process.

Tags: arduino, atmega168p, atmega168v, tqfp
Posted by
Ril3y on January 4, 2010 |
No comments

So its a new year. This blog should attempt to paint a picture as to the road map of Synthetos projects.
- Get the store.synthetos.com up and running.
- Finish a work hardware project. (hush hush until its released)
- Finish up contraptor mini-cnc
- Finish new stepper driver board. (Including the linear encoders)
- Finish Atenna Bot.
- Start the DIY pick and place.
- Convert the mill to a cnc metal mill.
If we were to finish all of this by June that would rock! So if anyone is interested in contributing to any of the above projects please let me know.
Ril3y
Posted by
Ril3y on December 16, 2009 |
One comment
So I tested out the resolution of the linear encoder I made (blog entry here) a bit back. This is just a quick update and shows that there is a vast amount of digital pulses created by running a magnet over the sensor. I hooked up my logic analyzer and took a peek at what was getting generated. This does not really do anything yet however has the potential to create a cheap brushless DC motor with accuracy built into the table. (assuming CNC applications etc).
Here is the video and screen shot:


Tags: AS5306, encoder, linear encoder, logic analyzer, saleae
Posted by
Ril3y on December 13, 2009 |
No comments
I have been ordering lots of VERY small surface mount parts as of late and been tired of using the bag / reels to find the parts I am after. So I got an idea from a fellow hacdc member to use these small part containers. I have noticed aswell that once you find a part that you love and just “works” its important to save this info to re-order when you are running low. So I laser etched the type of device and the mouser part number on each box.


This would be next to impossible to do on a thermal label printer due to the sub 1″x1″ top surface. So this is why I went the laser route. It did take some time to do each one but I am more organized and productive for it. Even if you do not have a laser cutter you can always make a open office doc that maps a “code” to a part. So something like
RESISTOR
4.7K
CODE:451
Then in the doc file you have like 451 = PN: 71-CRCW08054K70JNEB
URL: http://www.mouser.com/ProductDetail/Vishay-Dale/CRCW08054K70JNEB/?qs=sGAEpiMZZMu0ojHvF9cQKJlWGXCBPeeocLYUb%252beqCU8%3d
Anyways just some cool organization tricks.
ril3y
Tags: container, DIY, Electronics
Posted by
Ril3y on December 13, 2009 |
2 comments
This weekend I organized a few hacdc members to come help out a fellow hacker in need. Alden broke his collar bone and had many smd boards to get done for xmas presents for family and friends. He was obviously going to have a hard time making the xmas deadline. So here is the Chinese sweat shop assembly line we created in an Arlington VA basement workshop.




The “fuzzy clock” as I have named it basically tells time like so. Five after Noon. Eight past six, etc. This board will be available as a kit on the synthetos.com store around the new year and the design files will also be available. We will also offer custom laser engraving for the back side at an extra cost. Hope you guys like the work. Alden and I have put a lot of time and effort into the boards.
Ril3y
Tags: DIY, fuzzy clock, hacdc, microcontroller, open source hardware, pic, reflow, reflow oven
Posted by
Ril3y on December 9, 2009 |
6 comments
For awhile now I have been meaning to try to find a way to close the stepper motor “loop” on CNC devices. What started as an need / idea turned into reality last night. A few weeks back cruising thingiverse.com I found a post where Zach had created a magnetic linear encoder. However his design was off and needed fixing. Instead of re-inventing the wheel with a different linear magnetic chip I decided to use the same setup as Zach. I contacted him about fixing the problem with the board (the footprint was off) and in about 3 hours after emailing him he had it fixed.
I have blogged about laser etching PCB’s in the past (you can read about it here). The inherit problem with laser etching PCB’s is that is it very hard to get aligned if its a double sided board. So I modified Zach’s design to be a single sided board. Its tight in some spots but if you use the solder mask I created and have a somewhat steady hand its doable. Here are some pictures of the process and a video of it working!
The AS5306 can be found here:
http://www.austriamicrosystems.com/eng/Products/Magnetic-Encoders/Linear-Encoders/AS5306
Thingiverse entry and files here:
http://www.thingiverse.com/thing:1409











Tags: arduino, AS5306, austria micro systems, linear encoder, linear motion, makerbot, pcb
Posted by
Ril3y on December 5, 2009 |
One comment
As you know I recently purchased a milling machined to be able to do some custom PCB stuff along with some intro level metal working. Well today I thought that I would try to create a collet holder that would have its sizes clearly visible. However being short on time and on a break from some “real” work I made an end mill holder for my 10 piece set from grizzly instead.
I am using a method that I invented I termed: Self threading square tube insert method. Whats so cool about this is it combines fairly easy cuts of aluminum that pretty much anyone can do with a band saw, hand saw or rusty pocket knife… Well not the last one and I don’t suggest you try it. But is very cool. Basically its all in the spacing of the 4 holes that were laser cut that the aluminum sits below. Its a very tight squeeze which allows the screws to “self thread” inside the square tube’s inside. Hence the name. Not super witty but it describes it nicely. Comments, questions or concerns always welcome. Next thing to make is the collet holder.
Here is the final results:
http://www.thingiverse.com/thing:1393

Thingiverse Links as always here:
http://www.thingiverse.com/thing:1393
Tags: DIY, end mill, laser, Laser Cutter, Metal Working, mill, useful