How NOT To Use Pushbuttons

Board Layout
ARM Pro Mini Board Layout
ARM Pro Mini Before Reflow
ARM Pro Mini Before Reflow

I decided to try my hand at making a simple ARM Cortex microcontroller board. I based my board on the ARM Pro Mini design. The ARM Pro Mini uses an NXP ARM Cortex M0 chip, and has the nice feature of letting you drag and drop program files on to the chip as a USB mass storage device.

I essentially copied the existing ARM Pro Mini schematic in KiCAD and then started making my own modified board layout. I ended up with a design that I could panelize to fit 8 copies on a SeeedStudio 10cm x 10cm board.

I ordered a set of boards from SeeedStudio, and got a laser cut solder paste stencil from OSH Stencils. I have reflowed a number of boards by just hand applying solder paste, but this design is the first I have attempted to use tiny 0402 sized resistors, and it has a tiny 32 pin QFN chip for the ARM processor. I pasted a board and got to work placing all of the components with tweezers. Time for the moment of truth! I put the populated board in the toaster oven and watched as the solder paste melted into nice shiny solder joints.

The board out of the oven looked really good.

Soldered Board
Soldered Board

I connected a USB cable and plugged the finished board into a computer. Initial signs were good. The power LED lit up, so at least the basic power input was good. Unfortunately, there was no sign of any actual USB device showing up in the operating system. I spent a bit of time troubleshooting the board. I first measured the DC power input voltages at all the pins they should be. I also checked for continuity between various pins to make sure that there were no short circuits between pins on any of the tiny surface mount chips. Everything seemed to be OK, so I spent some time reviewing my circuit design for errors. I double checked the schematic against the original ARM Pro Mini design and ruled out problems there.

Eureka!
While double checking some pinouts in data sheets, I found the problem… According to the datasheet of the pushbutton switches that I used on the board, the two terminals on each long side of the switch are tied together. I had unfortunately drawn the terminal layout in KiCAD rotated 90 degrees, tying the two terminals on each short edge of the switch together. This effectively makes my switches always “pushed” on my board.
PRO TIP:If you generally use any two opposite corners of most pushbutton switches, you can avoid this problem

Switch Pinout
Switch Pinout

How to Fix What You Screw Up
I sat around for a minute annoyed that I have a bunch of boards that won’t work. Then I started to brainstorm ideas for work arounds. I initially thought about some kind of intermediate adapter layer between the board and my switches. Then I came up with an alternate idea. What If I could rotate the switches and solder them on crooked?
I played around with rotating the switch footprint in KiCAD.

Looks like it should work!

Original Switch Layout
Original Switch Layout
Hacked switch layout
Hacked switch layout

 

 

 

 

 

 

 

 

 

 

I tried to unsolder the switches on my board, but melted them in the process. I got some fresh switches and did an ugly hand solder job to attempt to replace them in the new, slightly tilted orientation.

Switch hack
Switch hack

I gave the new fix a shot by plugging it in to my computer. Success! The board showed up as a new mass storage device and some quick test programs worked just fine.

2015 PaxSpace Ornaments

The 2015 PaxSpace Christmas ornaments are here!

We have scheduled several group build sessions to work on assembling and programming your ornaments. See the sign up link below for information on dates and times.

Click here to sign up for a 2015 PaxSpace ornament kit.

2015_Ornament

We hope to see everyone at these build sessions and are looking forward to seeing what kind of cool things people can make their ornaments do.

‘Tis The Season To Hack Blinky Ornaments

We’ve been working on developing a PaxSpace Christmas ornament this year.  A bunch of Christmas ball-shaped PCBs have been designed and are on order from SeeedStudio.com.  The plan is that once the finished boards arrive, we will hold several workshops at PaxSpace to reflow solder the surface mount components, hand solder the through-hole LEDs and any other peripherals that you might want (such as a speaker, microphone, sensors, more LEDs, etc.), and to program the microcontroller on the board to blink the lights and control whatever you attached to it.

We’re planning to keep the cost of the workshop low, probably about $10 for PaxSpace members, and maybe a bit more for non-members.  This should be a good activity for people of any skill level.  You don’t need to be an electronics or software expert and can just do the parts of the build that you choose.  If you are an expert it will be a good challenge to hack the ornament do something cool.

 

 

 

The ornament will have a PSoC 4 microcontroller, 3 RGB LEDs, space for a bunch of extra LEDs, and some pin headers to attach other random peripherals.  There is space on the board to attach batteries, and a hole at the top to hang it from a Christmas tree.

Keep an eye out for updates on the ornament build workshops!

Altium CircuitMaker

There is a new kid on the block to compete with existing free PCB design software such as Eagle , KiCAD, gEDA, and DesignSpark.
CM_PCB

Altium recently opened a public beta of their new free PCB design tool, CircuitMaker. CircuitMaker is a free to use tool that incorporates many of the features of their several thousand dollar professional PCB design software, Altium Designer. Some of the things that set CicruitMaker apart from other free options are:

  • No board limits – Unlike Eagle, there are no limits on board layer count, board size, or quantity of pads and signals (except for likely performance issues past a certain point of complexity)
  • Advanced PCB routing features – CircuitMaker has many of the same interactive routing features as the full Altium Designer software, which let you more easily route signals around obstacles, route differential pair signals, and many other features. See this video for some examples.
  • 3D view – CircuitMaker has a nice 3D preview and the ability to export 3D models as STEP files for use in other 3D CAD software.
  • Community features – CircuitMaker stores your designs in the cloud and allows for CircuitMaker 3Dcollaboration and version control of projects. The parts library is also a shared resource and leveragees existing data from a third party parts database, Ciiva

So, what’s the catch?

  • Windows only – There are no Linux or Mac versions of CircuitMaker
  • Time – Like all software, CircuitMaker requires some learning curve. If you don’t have prior experience with Altium Designer (like me) it takes some reading to get familiar with the workflow and menue locations for creating schematics, netlists, and boards. That being said, I was able to pretty easily work through a quick test project. On the other hand if you do have lots of previous Altium Designer experience, you might get frustrated with some of the differences between hotkey layouts, menue locations, and other user interface differences between Designer and CircuitMaker.
  • Internet Required – A good, active connection to the Internet is required to even USE the software due to the cloud and community features. This means that there is no ability to work offline.
  • The community features – CircuitMaker lets you store 2 projects in a private sandbox and publicly shares the rest of your work in the CircuitMaker online community. This could be an issue if you don’t want to share your work publicly.
  • Cloud Storage – CircuitMaker stores your projects on Altium’s servers. And only on Altium’s servers. There is no way to make a local copy of your work. If at some point Altium decides to stop providing this free software and service you may lose any work you’ve done with CircuitMaker with no way to use if in the future.

CircuitMaker can be a big step up from other free tools. I’d recommend giving it a shot and evaluating whether any of the negative factors are a deal breaker for you. If the software allowed for local storage and backup, CircuitMaker would almost be a no-brainer. Hopefully Altium will offer a free or low cost way to do so to reduce the massive risk of losing all of your work if Altium decides to stop supporting CircuitMaker and its storage cloud.