Holy Crap! It Works!!

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.

    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!

    Very nice work Robin. Once you try stencils you will never go back.

    Regards,

    Kevin

    Regarding a vacuum pump I use this one and really like it:

    https://www.tedpella.com/grids_html/Vac … anchor-520

    Regards,

    Kevin

    VA3SU:
    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.

    rev1.1-backside.jpg

    Congrats on this , beautiful work!

    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:

    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.

    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. :smiley:

    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

    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!!

    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.

    Robin, this was awesome to read! I must not be signed up for notifications on this forum b/c otherwise I’d have seen a lot more of your excellent work. Anyway I just want to say thanks for sharing - it is really nice to hear some success stories.

    I thought I would give another update here for people who haven’t dived in yet to solder an Artemis. With my first board, I did the solder placement by hand. It was pretty ragged, but it worked. For the next board, I used a stencil. For the latest project, I decided to do the solder placement by hand again. I was pretty sure that this board revision would not be the last, so it seemed like a bit of a waste to get a stencil. Plus, it actually takes time to get the stencils aligned and then there is the fact I’m more interested in seeing if the freshly baked board works than cleaning the stencil.

    This time around, I learned how to apply the solder better. For all the regular components, I just squeeze solder onto the pads via a syringe. The Artemis pads are too small and too close together for my syringe tip though. What I found works pretty well is to get an exacto knife and put in a brand new #11 blade, the one with the incredibly pointy tip. Squirt a blob of solder from the syringe onto a piece of paper, which you will use as a supply source for doing the pads. Use the tip of the exacto to get a tiny ball of paste on the end. Now, just barely touch the PCB pad with the ball at the end of the exacto. If the ball size is right, it will transfer some of the paste to the pad. If not, get a bigger ball on the end of the tip. It will take a couple trys to get the size of the ball right, but it is easy to replicate once you have it. Once you get going, you just dab and move on to the next pad. I can usually do 2 or three pads before having to re-dip the exacto in the paste supply on the paper. I saved time by not bothering to apply solder to pads I was not using.

    It went really well. The next tricky part is placing the Artemis on the board so that you don’t put it off-axis and smear all your lovely solder paste balls. Take a deep breath and just do it.

    Everything went OK, right up until I was adjusting the position of another part and bumped the Artemis with my finger. So I removed the Artemis, wiped off the smeared solder paste with a Q-tip, and redid all the bumps. It went even faster the second time. I attached a pic of my solder balls before placing the Artemis. You can see that they are not too bad, but certainly not as perfectly consistent as with a stencil.

    I ran the new board through the toaster oven, and then wrote some simple test software to check the continuity of all my IO solder connections. They all turned out perfect. So there you are, hand application of the solder paste is an option if you want.

    robin_hodgson:
    I thought I would give another update here for people who haven’t dived in yet to solder an Artemis. With my first board, I did the solder placement by hand. It was pretty ragged, but it worked. For the next board, I used a stencil. For the latest project, I decided to do the solder placement by hand again. I was pretty sure that this board revision would not be the last, so it seemed like a bit of a waste to get a stencil. Plus, it actually takes time to get the stencils aligned and then there is the fact I’m more interested in seeing if the freshly baked board works than cleaning the stencil.

    This time around, I learned how to apply the solder better. For all the regular components, I just squeeze solder onto the pads via a syringe. The Artemis pads are too small and too close together for my syringe tip though. What I found works pretty well is to get an exacto knife and put in a brand new #11 blade, the one with the incredibly pointy tip. Squirt a blob of solder from the syringe onto a piece of paper, which you will use as a supply source for doing the pads. Use the tip of the exacto to get a tiny ball of paste on the end. Now, just barely touch the PCB pad with the ball at the end of the exacto. If the ball size is right, it will transfer some of the paste to the pad. If not, get a bigger ball on the end of the tip. It will take a couple trys to get the size of the ball right, but it is easy to replicate once you have it. Once you get going, you just dab and move on to the next pad. I can usually do 2 or three pads before having to re-dip the exacto in the paste supply on the paper. I saved time by not bothering to apply solder to pads I was not using.

    It went really well. The next tricky part is placing the Artemis on the board so that you don’t put it off-axis and smear all your lovely solder paste balls. Take a deep breath and just do it.

    Everything went OK, right up until I was adjusting the position of another part and bumped the Artemis with my finger. So I removed the Artemis, wiped off the smeared solder paste with a Q-tip, and redid all the bumps. It went even faster the second time. I attached a pic of my solder balls before placing the Artemis. You can see that they are not too bad, but certainly not as perfectly consistent as with a stencil.

    I ran the new board through the toaster oven, and then wrote some simple test software to check the continuity of all my IO solder connections. They all turned out perfect. So there you are, hand application of the solder paste is an option if you want.

    That is awesome Robin!

    I’ve wanted to use the Artemis module on its own, to minimize power, kinda like how the Freethegameboy.info used an Apollo3 to build their own PCB and power it with solar panels.

    Today I got my Artemis Nano in the mail, and I’m working on designing a solar panel large enough to fit around a laptop keyboard and power an e-ink monitor using the Artemis running noMMU linux. Here is my youtube video of getting the power LED to light up with just a 160mA monocrystalline cell: https://www.youtube.com/watch?v=jeXPXmlq9TQ

    I thought I might share yet another experience soldering down an Artemis module for people who are still on the fence about it. I built up another board yesterday and was having some trouble with shaky hands and inconsistent solder output from my hypodermic dispenser. It was bad enough that when I was all done, I decided to wipe all the solder off and have a do-over before placing any parts. The second time around was much better.

    I always place the Artemis last so that I don’t bump it while placing the other parts. But when I placed the Artemis this time, I bumped it with my tweezers and knocked it a good 3 mm sideways. I did not relish redoing the solder for the module yet again, so I stared at it for a while. Then, I decided to try it an experiment: I used the tweezers to push it back into position and then baked it as-is. My theory was that if it worked, it would tell me a lot about how much abuse a module can tolerate during hand placement.

    I was immensely happy when everything worked just fine afterwards. I will still be as careful as I can, but it is nice to know that the module can tolerate some sloppiness when it is placed.

    Here is a pic of the system. The Artemis is at the front edge of the PCB. This project is a trailing edge (reverse phase) lighting dimmer controller. It uses a GPS to detect its location and what time it is so that it can do sunrise/sunset calculations on a daily basis. It uses those calculations to maintain different default lighting levels during daylight and overnight. It uses a cheap radar person detector located inside the foil covered tube. That seems to help to impose some directionality on the radar signal. When a person is detected, the controller smoothly increases the light level over 2 seconds. After they leave, it glows the light back down over about 10 seconds. I don’t like dimmers that just snap between their light levels!

    Really cool @Robin! This developer made a solar powered LoRaWAN-connected 8-bit microcontroller running at 16mhz with an e-ink display (uses 240uA in active mode), though I figure Artemis would use just over 2x the power at 4x the speed: https://github.com/RobPo/PaperiNode

    Eventually I’d like to make a laptop out of it, and we’re looking for researchers: https://forum.ei2030.org/t/paperterm-pr … erials/146 If we get to the custom PCB stage, we’d definitely reference your methods! Our discord server is here, if any of this interests you: https://forum.ei2030.org/t/join-ei-2030 … server/125 (We have a couple members who are familiar with PCB making) Thanks!

    Hi Robin, glad to see your project progressing! You sharing your experience with hand soldering has prompted me to share mine.

    Rather than painstakingly applying solder to each pad, it’s a lot easier to tin all the pads on both the board and the Artemis with a soldering iron (Ie. run a ball of FRESH solder slowly over them on the end of a soldering iron). Surface tension will dictate a uniform amount and a nice convex curve on all the pads of both board and module. If there’s excess flux residue, clean it off both sides (can impact RTC capacitance). I’ve found there’s not much point adding extra flux.

    Then position the Artemis on the board and do your reflow (I always use a hot air gun for this bit, so I can adjust position and poke at the Artemis module). It’s a bit harder to get the Artemis module to stay in position but not a huge deal. Most reliable method I’ve found, super easy, and no smudging from shakey hands!

    I would love to see a youtube video of your process. It sounds like a really, really good way to do it.