Custom Shield - MicroSD/FRAM

@markopraakli,

Very Nice indeed ! Are the RJ-19 connectors for sensors ?

Do you have a project page ?

So i checked all the trace and made sure not shorts etc…

Took out the lowest microSD i can ever find in case something happens…

Plugged it into the shield…put back to my machine… WOOHOO! The card didn’t get fried :stuck_out_tongue:

The only weird thing is that the Status LED didn’t light up. SS is giving 3.3V to but i don’t see the SCK pulsing somehow. If it’s pulsing i’m sure i should be seeing some light since i tested it…

I just used a simple SPI.transfer() so maybe it didn’t work?

EDIT: AH dang… I forgot that the SS is active low and the LED should be the other way around!!!

So you passed the Smoke Test (no smoke - good thing) :smile:

What’s that black wire laying on top of your core. Ah, I Know - they use those in race cars,

its your fire extinguisher :wink:

It's the wire for his uFL antenna.

(I apologize if I misread your question as serious rather than sarcasm. Sometimes it's difficult to tell the difference between the two on the Internet!)

@wgbartley,

I really wasn’t sure since I only have the on-cip antenna on my core. And, it was sarcasim too. smile:

I can’t be any happier than to see this on a Saturday morning!

MY FIRST FUNCTIONAL SHIELD EVER MADE :smiley:

The FRAMs shall be soldered on next week and tested to see how stuff are working.

I’m thinking of setting up a Kickstarter for this but it’s not available for Singapore. Maybe i’ll take a look at Crowdsupply etc…

@zachary and @zach, as a successful Kickstarter campaign team, i would really love to hear your inputs on this shield :smiley:

Also looking at making a place where all future :spark: shields/products can be sold by small makers around the world.

I can set up a website and get all these started which hopefully get more people on board and make :spark: even better! Maybe even work with the :spark: team’s production line that you guys are offering us for mass production of our stuff! (since i’m nearer to them)

I’m sure the team has these plans but i’ll just continue to move faster and kick off this idea :wink:

3 Likes

kennetlimcp, have you considered talking to the Spark Team about your shield? They have an amazing supply chain and can sell it through their store! :smile:

Some more pictures of the shield being attached to the core. I find the stack to high somehow.

Let’s see if i can find a shorter female header…

@BDub, i have some issues with the Library and need your inputs. For Spark-CardInfo, i need to comment out while(!Serial.available()) in order for the code to run or it simply get stuck there. It’s really weird and i’m wondering why so…

Some other examples i couldn’t get it running due to similar issues of code checking Serial.available().

It’s a weird issue.

Speed Test working too:

Things to do before pushing for PCB production:

  1. Populate FRAMs and see if we can do r/w to them

  2. Shift the FRAMs footprint more to the right so that users can self-populate the FRAMs as it’s rather challenging with the MicroSD right beside and headers along the edge.

  3. Increase the R value for the LEDs are they are kinda bright now :smiley:

  4. Add in pads which allows user to change the SS/CS pins

  5. Add in silkscreen to properly label all the different components

  6. Extend SD card pinouts pad to make it easier to hand solder


With that, i would like to just do a quick survey!

Please <3 this post if you are interested to get your hands on one!

Some options i would most likely be offering:

a) Fully soldered shield (FRAM + MicroSD + Header)

b) MicroSD only with or without Headers soldered

c) FRAMs only with or without Headers soldered

The challenge now is the Female + Male header to make this shield stackable. It seems there’s only 1 source and Sparkfun buys from them as well. The MOQ is 10,000 if i’m not wrong and that’s gonna be a huge overhead for me =:x:

Also, @zachary and @zach, please let me know if i’m allowed to promote this in the community! You guys are an awesome bunch and i won’t want to be flouting any rules here :smiley:

5 Likes

This is @BDub 's easy way of knowing when to launch the serial program on his PC--the core is waiting for a character on the serial port before continuing.

Dang. How can i even not notice that. HAHA!

Maybe a comment in there would be nice. The library works awesome but not for someone like me who haven’t used it before.

Thanks @bko for the fast input! Let me try it now ^^ :smiley: :smiley:

@bko, I’m trying to test out Spark-ReadWrite but the

  if (!SD.begin(chipSelect)) {
    Serial.println("initialization failed!");
    return;
  } 

just kept running. The CardDataInfo examples works which means the hardware is fine.

@kennethlimcp Great job on getting it up and running!

I think the question now is where did you get that awexome antenna? It’s like made for breadboards. Does it have good range when stuck to the breadboard?

@bdub, I bought from here: http://www.ebay.com/itm/2-4G-WIFI-3dbi-PCB-Antenna-IPX-IPEX-WLAN-Laptop-Bluetooth-Zigbee-Wireless-Module-/281124110495?pt=LH_DefaultDomain_0&hash=item41744d809f

It’s awesome IMO. I managed to get it working on a school network in the middle of the building with no APs in sight. My room is 2 walls apart from the router and it doesn’t get affected!

I saw one like that in the GSM module on the testing instrument for a project in the past. Sent us SMSes without any hiccups

Cmon help me get the other example codes running :stuck_out_tongue:

I’m kinda tempted to build a test jig like what Sparkfun has. I always find them really cool and innovative!

Cool. I wonder how they come up with that PCB design :smile:

So what examples do you need to get working? All of those SD Card examples work already on the Spark Core. I’m guessing FRAM?

Right now, and for the last couple days I’ve been working on getting my new work computer up and running. I’m installing Win8.1 on it from scratch, and all drivers… so it’s kind of a pain since this is my first time with Win8.1. I’m almost a pro though… then I’ll have a computer that can keep up with ME.

See https://community.spark.io/t/custom-shield-microsd/3592/89 above. Spark-ReadWrite isn’t working for me.

Yeah good point on the FRAM as well. How should i go about testing? :smiley:

@BDub, did you also locked the components on the .brd as well? I can’t move em :stuck_out_tongue:

Hmm, I suspect it might be due to the recent addition of SoftSPI. I had to change the Speed Test example like this to make it work for soft SPI. See the code in the pull request here: https://github.com/technobly/SparkCore-SD/pull/1

Also I haven’t looked to see if the Hardware SPI is affected… or what the !SD.begin(CS) should return… and why that might be failing… .but that’s where I’d look :smile:

Trying to take the only free time I have right now to focus on this new computer … if you are still having trouble later I’ll take a look at it.

BDub & kennethlimcp, I did not test the ReadWrite program when I added the software SPI. I will test it with soft and hardware SPI later today and get back with my results. However, I can tell you that if this works with SpeedTest then it is not likely an issue with the library. :smile:

@BDub,

the components can’t be moved in the BOARD. Any clues?

** EDIT; some layers were not shown and i got it working :D**

Next question is, i want to move the FRAMs so would it be better if i redo the ground pour since things are gonna be messed up?

@bdub & @peekay123,

the problem seems to be this:

>   if (!SD.begin(chipSelect)) {
>     Serial.println("initialization failed!");
> 	Serial.println(SD.begin(chipSelect));
>     return;
>   }

in the Spark-ReadWrite.cpp.

It’s like calling Serial.begin() multiple times which shouldn’t be that way.

I commented that portion out and left it only running only in setup().

Maybe it should be checking for something like SD.available() or something along that line.

Thanks for the input!

Really happy to get this working with everyone’s help :wink:

kennethlimcp, I am glad you got it working. I just tested the ReadWrite code and its works perfectly in both hardware and software SPI. However, this code:

   if (!SD.begin(chipSelect)) {
      Serial.println("initialization failed!");
	Serial.println(SD.begin(chipSelect));
    return;
 }

is wrong in many ways. First, the second Serial.println calls SD.begin again and should not be there. If you want to see what the first call returned do:

if (!(int ret = SD.begin(chipSelect))) {
  ...
  Serial.println(ret);
  while (1);
}

Second, you really want the Spark to halt after the error so change ā€œreturnā€ to ā€œwhile(1);ā€

:smile:

Is there an RTC that can be used with this?

I want to be able to log time stamped data and periodically upload to the net.