Aspect Prototype V

Design Iteration Goals

IconElec.png IconCode.png

The goals for this design iteration are:

  1. Prototype a shield using the Spark Core
    But: retain the ability to interface to an Arduino Uno
  2. Improve the touch interface
    Eliminate crosstalk with the haptic feedback vibration motor


The shield design was modified to accommodate the Spark Core. It can still be used with an Arduino Uno by simply using jumper wires in the Spark Core socket to connect to the Arduino control pins. Design files are on the Aspect Github repository under ‘Shield’.

As before, then shield prototype was fabricated on a Shopbot with an engraving bit using a layout generated in Kicad. A jig was created for PCB milling using MDF. A shallow pocket (0.040″) was milled to ensure the PCB (mounted with double-side tape) was truly perpendicular the the Shopbot Z-axis.
A 5 mil engraving bit was used to route around the PCB traces (separating them from the ground plane). The routing opening widths were increased which made soldering and hand clean-up of traces much, much easier than in the last prototype


Aspect shield p5.jpg



As before, this is a single-sided board with components mounted on the non-copper side of the board. One important layout change was associating pairs of LEDs with a corner rather than a side. This was a nicer look and actually simplified the layout.
Here is the first board being assembled:

Aspect shield assm p5.jpg


Aspect shield assm2 p5.jpg


Aspect Shield Test1 p5.jpg


Aspect Shield Test2 p5.jpg

The Spark Core has a handy mobile app called Tinker that let’s you control pins from your smartphone without writing any code. This was very useful for debugging the assembly (LEDs and vibration motor).

Aspect Shield Installed p5.jpg

The board design incorporates connection of the touch sensor line to the connecting bolt, eliminating the need for wiring. A right angle USB connector (6′ length) provides both power and a serial port when debugging. A cable clamp can be attached using the bottom plate mounting holes for cable stress relief.

Aspect Assembly Partial p5.jpg

Here’s the entire enclosure stack just before adding the cap.


The standard Arduino Capacitive Sense library has not been ported to the Spark Core platform, so custom touch sensor code needed to be created. The code used the interupts on the Spark platform to sense the arrival time of a pulse (which is dependent on capacitive loading under touch conditions). Details on the touch sense code can be found here.

Two projects were created using this prototype to demonstrate the capabilities of the platform:

  • Pomodoro Timer is a timer for the famous Poomodoro method that also logs activity to a Google Drive spreadsheet using the combination of a simple server PHP script and IFTTT
  • Internet┬áCandle reads local wind speeds and simulates the flicker response of a virtual candle. The touch interface can be used to turn the candle on and off.


Prototype Lessons

  1. Accommodating the Spark Core is an excellent addition to Aspect enclosure
    The Spark Core packs a lot of functionality in a small footprint (processor + WiFi) and is supported by a great cloud platform.
  2. Moving the control of pairs of LEDs from a side to a corner works well
    It looks very good and actually simplifies the shield layout.
  3. The touch sensor works much better
    Some work is still required to optimize the performance when connected to various power supplies
  4. It is time to move to a commercially fabricated PCB
  5. The holes in the bottom plate need a chamfer to seat the head of the connecting bolts properly
  6. Need a better solution for placement of rubber feet on the bottom
    The ideal spot is right where the connecting bolt heads are located. Offsetting the rubber feet leads to some stability issues when the touch sensor is tapped too enthusiastically.
  7. The Aspect shield functions need to be captured in a library to simplify their use