SparkFun Forums 

Where electronics enthusiasts find answers.

Tips, tricks, & best best practices using Artemis with your board designs.
User avatar
By robin_hodgson
#210549
I finally decided to go for broke this morning and solder down my first Artemis module. My basic issue is that I am not set up for using stencils. I have always done everything by hand using a syringe dispenser for the solder. Today, I used a 20Ga syringe tip, because that's all I had on hand. Working under a microscope, I would put a little blob on the Artemis pad, and then use the tip of a brand new Xacto blade to remove any excess, and to scrape any solder that had smeared off the pad back onto the pad. Or at least, scrape it closer to the pad. I can tell you, it was a pretty slow, crude process. I attached a photo showing the solder blobs before placing the Artemis. I'm pretty sure that anyone who does this for a living would get a bit queasy looking at those solder bumps. But what the heck, it's all I could do.

I had thought to silkscreen an outline of the Artemis on the board to help me place it. My outline was designed be just visible on 3 sides when the Artemis was set down in the right spot. I don't have a vacuum pen, so I used tweezers to hold the Artemis by its bluetooth antenna. Maybe I got a bit lucky, but it set down fairly accurately, and I only had to push it a little bit to get it centered up. That had me worried the most that I might be smearing the solder underneath.

But that's what I was going with, so I headed out to the garage. After 6 mins in the toaster oven, it was back to the bench. The board's power lines Ohmed out OK with no opens or shorts. But just in case, I set the power supply on a current limit of 10 mA and then powered the board. No smoke!! A good start. The current meter said that the board was drawing less than 10 mA, so nothing bad appeared to be going on. Another good sign.

Then it was time for firmware. I soldered down the SWD debugger header and attached my JLink. To my total happiness (and amazement, honestly), Segger Studio recognized the processor, flashed my firmware, and stopped at the first line of main(), ready to go. Single stepping worked, the on-board LED worked, and the GPIO pushbutton worked. Woo Hoo!

Then it was time for the first big test. I added the connector to plug in my AC current sensor daughterboard. The daughterboard uses an I2C IOM interface. And.... it fired right up and started printing current measurements to the Segger debug output window. That meant that the Apollo3 VCOMP voltage comparator connections were working too, because that's how my current sensor knows when to wake up and start sampling.

Next up was the SPI IOM that talks to the RFM95 LoRa radio. I had to make a cut and jumper before starting. In a fit of stupidity during the design phase, I had connected the radio's RESET signal to the general system RESET signal. That works, but the radio RESET really needs to be controlled by a GPIO so that the radio driver software can reset the radio as required. I cut the RESET trace in a convenient spot and added a jumper from the radio socket pin over to one of my collection of spare GPIOs that were routed to a 12-pin connector on the board for just such a purpose. I always put some spare GPIO connections on the first few versions of a board until I either need the space, or everything is working perfectly. Anyway, I fired up the board again and used Segger to single-step through the process of resetting the radio, and performing the initial SPI communications checks. The SPI interface worked fine in both directions. Score!!

The only things I haven't tested yet are:
  • Battery operation, including reverse battery protection circuitry
  • USB/serial daughterboard for communications and as an indirect source of AC power (via USB)
  • QWICC interface
I'm stoked. I was mentally prepared for some opens and shorts, and so far, every single connection has tested OK. It looks like the soldering process can tolerate some sloppiness, and the module can be relflowed in a toaster oven reflow machine without damaging it. So that's good.

The only bummer in this whole process so far is that my module firmware reports that the processor is the A1 silicon revision with its deep sleep power consumption bug. The board is meant to be powered by a CR123 battery and I want it to live outside for years between battery changes, so having the A1 throw power on the ground is not great.
You do not have the required permissions to view the files attached to this post.
User avatar
By robin_hodgson
#210550
Here are pics of the entire board. The Artemis module is hidden under the current sensor daughterboard because there is basically nothing to probe on it. It's not like you have access to the pins like a normal IC!
You do not have the required permissions to view the files attached to this post.
User avatar
By VA3SU
#210562
Very nice work Robin. Once you try stencils you will never go back.

Regards,
Kevin
User avatar
By robin_hodgson
#210905
VA3SU wrote:Once you try stencils you will never go back.
Well, I'm about to find out. I just submitted a rev to the original board for fabrication. For the first time ever, I am getting a stencil made. I wasn't looking forward to the process of manually applying solder on all those Artemis pads again.

For additional fun this time, I added some PCB art on the backside, replicated from an original embroidery patch that my daughter gave me for Xmas. It took a surprising amount of time to do, mainly due to figuring out the sources of the 3187 errors it generated in the Design Rule Checker. But I like how it looks, so it was all worth it.

The new rev fixes 2 bugs from V1.0 (doh!), adds a new cutout for a different radio antenna, and adds a pair of 8-pin 1mm JST SH connectors for future expansion. Each new JST connector exposes one of the Apollo3 IOM units plus some carefully chosen GPIOs. I can expand a system by adding another I2C or SPI device, along with 3 (SPI) or 4 (I2C) extra GPIOs for slave selects, interrupts, PWM outputs, or analog inputs. I have found that it never hurts to add stuff like that for future-proofing, at least during the initial project phases. I am also trying out a feature of the Apollo3 GPIOs D3 and D36 where they can be configured as PFET high-side drivers capable of supplying 100 mA from the 3.3V supply. I am using D36 as the power source for one of the new IOM connectors. For ultra-low power systems, it means I will be able to completely shut down whatever eventually gets connected to it without requiring an external PFET.

The V1.0 board has been working nicely as my software test mule for a couple weeks now. The hand-done solder job seems to be holding. I'm hoping this new version solders down even easier with its stencil.
You do not have the required permissions to view the files attached to this post.
User avatar
By robin_hodgson
#211358
Part 2 of the story...

My new parts came in, and I tried fabricating my first V1.1 board today. I had a stencil made for the first time. Here is a pic of my first attempt at getting the solder on the board. Certainly not a perfect job, but it was waaay better than my first hand-done attempt described above. I thought it seemed like there was a lot of solder, but what the heck, it went into the toaster oven.

My first attempt at bringup was a total failure: the new board had a dead short from VDD to GND. I was worried that it might be the PWR and GND pins under the Artemis which are located right beside each other, but examining the solder paste placement on those pads as shown in the stencil pic seemed to look just fine. It took an hour or two of removing components and even cutting a trace to prove that the Artemis soldering was not at fault. I finally found that the VDD and GND pins on one of the IO connectors had a tiny solder bridge. I guess that should teach me to look more carefully at the easy stuff before diving into the hard stuff!

After proving the short was gone, I soldered down the rest of the connectors and the battery clips. I attached the debugger and fired up Segger Studio. Total success! The program downloaded and the debugger parked itself at the start of main(). I will never get tired of that! I hit 'go', and everything was off and running as expected:
Code: Select all
Artemis RTOS Current Sensor Jan 18 2020 15:47:08
Processor revision: A1
Processor Freq: 48 MHz
Entering setup_task
I also tested the new reverse battery protection circuit, and it worked fine. I always get nervous sticking the battery in backwards though. I mean, I know it should have worked, but you never know know until you do it. Life can be full of surprises, and some of them make circuits go "bang!". I hate those surprises.

So now I am two for two in soldering down Artemis modules. Maybe I shouldn't have been so nervous about it.
You do not have the required permissions to view the files attached to this post.
User avatar
By robin_hodgson
#211359
Here are some shots of the front and back of the new board. I'm especially proud of how the logo turned out on the backside. :D
You do not have the required permissions to view the files attached to this post.
By stephenf
#211691
Nice work! I can also report I've had good success (about 90%, with failures mostly due to sloppy solderpaste/stencil application) with Artemis module install using solderpaste, stencil and toaster oven.

I've also had good success with swapping Artemis modules, using this procedure:
1. Hot air the whole module
2. Remove, being very careful not to touch anything (everything inside the module will be molten too)
3. Let cool
4. Tin pads (apply fresh flux-cored solder) with soldering iron - board pads and Artemis pads
5. Clean solder residue from both with PCB cleaner and cotton tip
6. Apply a minimal amount of flux (from flux pen) to board only
7. Position module very carefully on board
8. Hot air module into place
User avatar
By robin_hodgson
#211693
Wow, that is really inspiring. I was assuming that my old boards were just good for being software mules, then trash! I am going to have to try popping a module from on an old board now that I know it can be done. Thanks for the insight!!
User avatar
By Staypower
#211895
Wow! This thread inspired me. I'm a newbie here and in this (kind of) hobby. I'm not sure what should I start with, but I'm planning to surf this forum and find some interesting ideas and people, who do sth like this.
 Topic permissions

You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum