SparkFun Forums 

Where electronics enthusiasts find answers.

Questions relating to designing PCBs
By morphogen
#167734
Hey all,

I'm trying to make an arduino shield for the SM130 RFID module that just has the SM130 chip and some screw terminals for digital and analog I/O pins. The schematic for my project is attached, as are the front/back traces.

The SM130 board doesn't seem to work when I attach it to the arduino. At first I realized that the onboard +5V terminal didn't seem to have sufficient current to drive the chip -- when I measured the VCC and RFVCC on the SM130, I was only getting 4.65 V. When I switched to a +12V supply rather than USB power, the VCC on the SM130 jumped up to between 4.95 and 5.05 V, which seems much more normal. However, when I try to communicate with the chip via Arduino's SoftwareSerial, I still can't connect.

Is there anything obviously wrong with the board? I've gotten it to work by breadboarding the SM130, and as far as I can tell, the PCB is made to the be as close to the breadboarding as can be. I'm using the same code to communicate with it as I had previously, so I can't help but think that the PCB is the problem.

Any insights would be greatly appreciated!
You do not have the required permissions to view the files attached to this post.
User avatar
By Ross Robotics
#167765
We can't see any details on those pics. Can you? Might as well post the code you are using. Have you prototyped this before making the board?
By morphogen
#167774
Oh dear! I'm sorry -- I printed them as pdf / vector images and then had to convert them to get the forum to accept them. I'll post vector ones ASAP.

I prototyped the whole thing on a breadboard according to Tom Igoe's SM130 tutorial (wiring: http://www.tigoe.net/pcomp/code/wp-cont ... _00041.png rest of tutorial: http://www.tigoe.com/pcomp/code/Processing/309/). It worked just fine, which is what makes me lean towards the PCB being the issue.
By morphogen
#167807
I tried to edit the above post, but can't see how...

The schematic is here: http://docdroid.net/8lox

front copper is here: http://docdroid.net/8lp0

back copper is here: http://docdroid.net/8loy

and the front silkscreen to help identify everything: http://docdroid.net/8lpy

and the above files are available as zipped gerbers here: http://ge.tt/98SoQrG1/v/0

thanks!
User avatar
By Ross Robotics
#167808
I don't see anything sticking out right away. I will say that your traces are tiny, and are really close to the copper pins. Check the board for any flaws, make sure all solder joints are correct.

Where was the board manufactured?
By morphogen
#167823
I had the board manufactured from Alberta Printed Circuits. The board was autorouted using Kicad's online routing tool, and I left everything (including trace width) at the default value.

This is the SM130 library I'm using -- https://www.dropbox.com/sh/1c5xyeq18wmnlo6/CFd6H3nfAr

I wrote it myself based off of this code: https://github.com/sparkfun/RFID_Evalua ... _56MHz.ino

which seems consistent with the SM130 datasheet.
By morphogen
#167876
Testing with a breadboard resolved my problem -- turns out that the issue was really just the code. I feel like such a dork now...

For some reason the code was hanging when opening my SoftwareSerial port:
Code: Select all
 rfid = new SoftwareSerial(RX, TX);
  delay(100);
  rfid->begin(19200);
 
  while(!rfid->available()) {
    rfid->begin(19200);
  }
  Serial.println("Connected to SM130 RFID Reader!");
  delay(10);
I thought the while loop would just ensure that the port connects, but instead it hangs. When I commented it out, it works just fine.

Sorry!