Week 17: Moo 2.0 PCB Design [Finalizing] / ESWeek 2013 Slides

After going on break in the end of August, I have picked up work on the Moo 2.0 redesign.  I did not post last week so will try to summarize both in this week’s blog.

Before leaving for break,  I had begun the Moo 2.0 PCB design process using Altium 10 software (through virtual sites).  Leaving the board design in half-finished state, the first few days coming back were a struggle.  However, this extra time gave me a chance to reevaluate some of my initial design decisions and learn some new features of the software.  All of the CAEN computers have now upgraded their software with the latest PCB design software– Altium 2013.

The following design changes were made to the design in the last two weeks:

  • Replaced ADXL330 with ADXL362 Accelerometer: see earlier blog post for benefits
  • Replaced Seiko S-1000C20-I4T voltage detector (no longer made) with ON Semiconductor’s NCP300LSN20T1G
  • replaced variable capacitor / GKRP30066 (7 to 30pF)
  • routed remaining MCU/header connections
  • resolved All DRC errors

The new voltage detector has a very similar package and current consumption.  It has a 2.0V threshold and has a CMOS output.  The most notable change is the package (SOT-23), which has 5-pins instead of 4.  Also, it is slightly bigger in size.

The updated Schematic and PCB Image can be found here:

Schematic: Moo2.0

PCB Layout: Moo2.0_PCB_layout_091513

Next Steps

  • Finalize the BoM and order new parts (mostly from Digikey)
  • Generate gerber files and send to SierraExpress to get a quote (verify minimum annular ring of 3 mils can be manufactured)
  • Ask about Assembly process through SierraExpress


The “Moo and Cement Shoes: Future Directions of a Practical Sense-Control-Actuate Application” was accepted to the SEC 2013 TerraSwarm-sponsored workshop at ESWEEK 2013.  I will be giving a short 12-minute presentation on the concrete deployment process and benefits of the Moo 2.0.  I have begun making the slides for this venue and will hopefully give a practice talk sometime later this week.

Week 15: Moo 2.0 PCB Design

Last week, I met with Noah to review some last minute schematic changes that we had discussed before beginning the PCB design process.  He suggested that I move towards using the ADXL362 digital accelerometer in place of the analog ADXL330 on the current Moo. While the digital accelerometer may be slightly more complex to set-up in software, I would have to agree with Noah that this move is worth making.  Attached are the datasheets for both the ADXL330 and the ADXL362.

ADXL330 Datasheet

ADXL362 Datasheet

Pros of ADXL362:

  • nearly 100x reduction in active mode current consumption (~2uA at 2.0 V supply)
  • digital SPI interface.  Less susceptible to RF noise.  Our current Accel data is pretty noisy.
  • built-in digital temperature sensor
  • smaller package (3mm x 3.25mm x 1.25 mm)
  • user selectable measurement ranges (+/- 2g, 4g, 8g)
  • will be used on the Wisp 5.0 design.
  • avoids issue associated with 1.2V reference voltage for ADC on the MCU
  • motion-detection interrupts above a certain threshold

Cons of ADXL362:

  • never used before = requires new firmware development
  • Digital accelerometers are more complex than analog ones.  May be more prone to bugs in software.
  • one less serial communication bus available for external SPI peripherals
  • changing multiple components (MCU and accelerometer) can potentially increase the chance of error in new design.

Moo 2.0 PCB Design

I have begun laying out the PCB board with the Wolverine chip.  I moved some of the existing components on the board (e.g external Flash memory) to make the routing with the new MCU easier to manage.  The layout process was slow at first, requiring a good understanding of what had been done already, but has gotten easier as time progressed.  I currently have about half the connections set-up with the new MCU and will continue to work on the remaining connections this week.  If we do decide to switch to using the new accelerometer then I will need to make a schematic/PCB component and swap out the existing accelerometer.  This shouldn’t be too difficult because the new accelerometer uses a pretty straightforward SPI interface along with some separate connections for I/O Power (use GPIO), interrupts (may ignore for now or connect with 0 ohm resistors to MCU), and ground.

Note about the power supply requirement on ADXL362: “The ADXL362 does not require any particular startup transient characteristics, except that it must always be started up from 0V. When the device is in operation, any time power is removed from the ADXL362, or falls below the operating voltage range, the supplies (VS, VDD I/O, and any bypass capacitors) must be discharged completely before power is reapplied. To enable supply discharge, it is recommended to power the device from a microcontroller GPIO, connect a shutdown discharge switch to the supply (Figure 47), or use a voltage regulator with a shutdown discharge feature,such as the ADP160.” – ADXL362 datasheet pp. 37

Week 14: Moo 2.0 Schematic Design finalizing

Last week, I spent most of my time finalizing the Moo 2.0 schematic design.  I have finally made all of the corresponding connections with the rest of the circuit and have a design that I believe is ready to be laid out.  Attached is a copy of the current schematic design as of this writing.


I set-up a meeting on Friday to review the design with Ben Ransford, Jeremy Gummeson, and Noah Klugman.  They mostly agreed with the methodology and placement of the connections other than a few suggestions regarding the net name nomenclature and placement of the header board signals.  I plan on making some slight improvements to the design regarding these suggestions and reviewing the schematic with Noah Klugman one last time.  I am hoping to start the layout of the PCB board by Tuesday of this week and have most of it finished by the start of next week.

Notes/Suggestions from the Meeting

  • Change board dimensions (make shorter) to account for the reduced pin count of the headers and smaller size of the MCU.
  • Maybe move transmit_rfid farther away from the Accelerometer inputs to avoid any noise induced from the higher frequency transmit_rfid signal (640 KHz).
  • rearrange external header connections so that it is easier to attach daughter boards for additional sensors (e.g. piezo buzzer, solar panel, etc.)
  • consider replacing the analog accelerometer sensor with a more efficient digital sensor from Analog Devices (ADXL362).  This accelerometer has a built-in temperature sensor, as well, resulting in a more unified design with less components.  It is going to be used on the upcoming Wisp 5.0 design.  It will add some additional complexity to get it set-up in software but it may be worth looking into.  Since it communicates via SPI, I was think of possibly purchasing breakout board (Sparkfun?) that we can connect to the Moo to test its performance before committing to it.  I would like to keep the design changes incremental in case anything may go wrong.
  • Talk with Jeremy about the Program Header board.  It may have a hardware bug regarding the Vdd connection that will need to be addressed.
  • remove the NC (“No Connections”) on the ADXL330.  Some are inconsistently connected to ground or Vdd.  Verified this with the datasheet and Sparkfun’s breakout board.

Week 13: Last Moo deployed + TerraSwarm Abstract Submission

Last week, the contractors built-up the front wall of the basement and the final Moo (#13) was placed at the ninth course.  This marks the end of the two-month deployment process!  The placement of the Moos on the front wall can be found here: https://docs.google.com/a/umich.edu/drawings/d/1q02Q3-czy8DOJkogW27gtXUN2Q1CBVJklI0ARvrMgCk/edit

Remarks on the Front Wall Deployment

  • All Moos on front wall were placed with the signal antenna poking as far as possible into an empty cell.
  • Tin foil was used inside the empty cells to help aid backscattering of the signal on all Moos on the front wall.
  • Able to successfully read from the tested Moos on the front wall (#5 and #29) with max rate of 5 tags/sec.
  • repositioned the reader to read from Moo #29 instead of Moo #25 on the side wall (stopped responding when additional blocks were laid).

Picture of Moo #29 at third course of front wall:



  • bring additional (white square) antenna on-site so that we can collect from more of the newly placed Moos.
  • analyze current Moo data more thoroughly (Denis).

Re-flowing (Reviving) Non-working Moos in the lab

After testing the nonworking Moos from the lab, I was able to diagnose why some of them were not working.  I noticed that some of the Moos behaved better when adding a little pressure on certain parts of the circuit.  For example, some of the components did not seem to be completely seated on the PCB board and likely not fully connected.  I re-soldered the components in question and was able to get seven additional Moos working.

Observations from Tests

  • some Moos only work when JTAG is plugged in for power.  Will need to re-analyze why these are not generating enough power from the charge-pump circuit.
  • some Moos are able to generate 5.5V+ on Vout but still cannot communicate back to the reader.

TerraSwarm Submission

The remainder of the week was spent writing up a 1-2 page Abstract for the ESWeek terraSwarm workshop in September.  Mike and I collaborated on the submission and were able to finish two abstract submissions before the August 2nd deadline.  A sample of the two papers for ESWeek can be found in the google drive under Moo/Posters_Papers.

1st Abstract TitleThe Moo and Cement Shoes: Future Directions of a Practical Sense-Control-Actuate Application

2nd Abstract Title: An Attacker-Centric Threat Model for Actors in the Swarm

Next Steps

Picking up where I left off, I will try to have the Moo 2.0 schematic finished later this week so that I can start laying the new board out.

Week 12: Moo 2.0 Improvements, TerraSwarm Abstract Outline

Last week, I continued working on the new schematic design for Moo 2.0 and Mike and I made a rough outline for the TerraSwarm Abstract submission on August 2nd.  I spent the majority of my time reading through the MSP430 Microcontroller Basics book to learn more about how the Timers (Chpt. 8), Interrupts (Chpt. 6), and Communication (Chpt. 10) work on the MSP430 platform.  I documented my notes on the MSP430 book here.


After learning the basic functionality behind SPI, I2C, and UART, I routed the external flash (SST25WF040) on the board using the built-in connections for SPI.
Moo 1.1 Schematic                                                                          Moo 2.0 Schematic



ProblemEach of the Txx.0 (Timer_n Channel 0) pins are shared with at least one of the USCI data pins on the Wolverine chip.  Is it crucial to connect the Transmit_RFID signal to Channel 0 or can we get away with connecting it to a different pin?

Possible Sol #1: Connect Transmit_RFID pin to a higher channel # that is not shared with the USCI pins.  This may create an issue because Channel 0 has *special* functionality compared to other channels (i.e. higher priority interrupt, TACCR0 is reserved for modulus)

Possible Sol #2: Do not connect Tx_SIMO and RX_SOMI, and/or SDA_B/SCL connections on the MSP430 because they do not appear to have any special purpose on the current design.  What kinds of things were the TX_SIMO, RX_SOMI used for in the past? How important is it to keep them wired on the new board?

Next Steps:

  • TI Contact who can assist with general questions about Wolverine Chip
  • remove extra connections and place remaining components
  • start routing the PCB board

TerraSwarm Outline

Mike and I began working on the following google doc in preparation for the TerraSwarm 1-2 Page Abstract CFP deadline on August 2nd.


Week 11: Moo 2.0 Schematic Modifications (cont.)

Roughly half of last week was spent working on the Moo 2.0 Schematic modifications and the other half was spent either on-site or in the lab experimenting with ways to improve the tag rate in mortar.  I will first discuss the status update on the concrete deployment project and go into some detail about the Moo 2.0 modifications.

Concrete Deployment Update

Monday morning, Mike and I went over to the house to deploy two additional Moos inside the 3rd course of the sidewall (Moos #29 and #214).  Both Moos were placed with the signal antenna sticking slightly out of the cinder block.  We found that we were able to get a pretty good tag rate with #214 both before and after the remaining wall got built up.  However, we struggled to get a reading from #29 even before more cinder blocks were laid on top.  This motivated us to research ways in which we can improve the tag rate inside wet mortar.  After obtaining a sample of wet mortar from the construction site, Mike and I ran some additional experiments in the lab to see if you could improve the communication inside mortar.  The following google doc summarizes our findings and observations from this experiment: Tin Foil & mortar experiment

Summary of experiment:

  • placing tin foil behind the full submerged moo with 4 inch air-gap improved the tag rate from 0 (no reading) to 16 tags/sec (max).  First time getting a reading from a completely submerged moo inside wet mortar!
  • not able to get a reading when tin foil was placed directly on top of the moo (i.e. no air-gap separation)
  • experiment yielded similar results when performed outdoors (with added ambient noise)

This prompted Denis to place two additional (super-capped) moos with tin foil surrounding the inner walls of the two adjacent (non-filled) cinder blocks on the 6th course of the sidewall.

The following day, Mike and I performed some additional experiments outside of the lab using a cinder block filled with wet sand and a sheet of tin foil placed halfway through hole as well as on the two adjacent openings (see picture below).  In this orientation with one moo antenna sticking out, we were able to get a tag rate of 19.5 tags/sec.


Later that day, Mike, Denis, and I went back to the house to reposition the readers and map out the moo placement on the front wall.  While walking around with the reader and power cords inside my backpack (aka “Ghostbuster pack”) and my laptop in my hands, we were able to scan the moos one-by-one  inside the walls for signs of a tag rate.  We were able to successfully get a tag rate from the following moos

Rear wall: #23 (max rate of ~6), #17, #26

Note: we observed that the reader antennas performed best in certain orientations and at very specific positions against the wall.  Denis placed tape on the walls indicating their orientation.  Also, we noticed that certain antenna types worked best with certain moos.

Side wall: #25 (max ~40), #214 (max ~60), and #19 (stray moo)

We repositioned the readers to record #23, #25, and #214 with hopes of catching the curing process.

Update from Mike (on July 20, 2013 at around 1pm):

#214 had a reading of 1.2 tags/sec

#25 has no reading (last seen on 7/17 at 10:06pm)

#23 has a reading of 21.9


Moo 2.0 Improvements Update
For the rest of the week, I continued to read through the MSP430 Book, Wolverine Datasheet and user guide as well as the F2618 user guide and datasheet to better understand how the MCU functions. I have continued to make modifications to following google doc (Schematic Design Notes) tracking my notes for easier reference later on. Below is a screen capture of the schematic as of this writing.


I have placed the connections for power (AVss, DVss, gnd), the crystal oscillator (LFXIN and LFXOUT) along with their external load capacitors (see google doc), and the JTAG connections (TCK, TDO, TMS, TDI, RST, and TEST). Note: the TEST pin is used on the F5969 to enable the JTAG pins. This pin was not required on the F2618 because the MCU’s JTAG pins were dedicated (aka not shared with GPIO pins). We will have to modify the Program header board schematic to accommodate for this additional pin (see below).

As can be seen from the schematic, I still need to route the connections for Transmit, Receive from the RF circuit, ADC inputs (temp, accelerometer, etc.) and the supervisor interrupt.  I have begun contacting Jeremy Gummerson with questions regarding the old design as well as suggestions for the new one.


Week 10: Moo 2.0 PCB Modifications

Moo 2.0 Progress

This past week was devoted to mapping out the PCB board (and corresponding circuit schematic) modifications that will need to be made for the next generation Moo: Moo 2.0.  This began with making a component of the Wolverine MCU (MSP430FR5969) 48-pin QFN package.  I created a schematic symbol for the MCU from the datasheet and used the component wizard in Altium 10 (virtual connect to CAEN machine) to generate the corresponding footprint from the dimensions indicated in the datasheet.

After creating the component and swapping out the existing MSP430F2618 64-pin PM component from the schematic, I have begun slowly making the corresponding connections with the rest of the circuit board.  While some of the connections are trivial (Vss, Vdd, etc.), several of the pins are defined and placed differently on the new MCU (ADC ports, crystal, etc.).  It is worth noting the main differences between the two MCUs and what modifications we will need to make to the board. I believe that updating the schematic as well as the firmware to operate on the new platform will be far more challenging than rerouting the physical traces on the PCB board and is more prone to error, as well.  I have created the following (on-going) google doc to keep track of the design changes for the Wolverine chip on a pin-by-pin basis.


Next Steps for Moo 2.0

  • continue to read through Wolverine MCU user guide and datasheet and make appropriate modifications to PCB schematic
  • continue to read through MSP430 design basics for more info on how firmware/hardware works
  • Verify schematic operation with Denis, TI folks (?), and others
  • Begin placing and routing new MCU on board

Applications of current Moo 1.1

Detecting Human Motion via tag rate

One potential application for the current Moo devices is using the inherent drop in tag rate of the Moo devices in the presence of humans to detect motion in a room.  Essentially, if a human were to stand between the reader and Moo devices, the transmission rate would change (i.e. drop to zero), thus behaving almost as a binary sensor to determine whether a human being is present or not.  I ran a simple experiment to verify that the tag rate will indeed change (https://docs.google.com/a/umich.edu/document/d/1htijqlbp-M36Qd0hf9DxoLl7tm29m0e1s7DlHBi1jOA/edit) in the presence of a human.  Building on this idea, I also ran an experiment using multiple reader antennas and multiple Moos in a straight line to see if it is possible to track human movement in a particular direction.  This experiment was also documented (https://docs.google.com/a/umich.edu/document/d/1L3HcSI5A6K1BFru7CkutJnyPxbUT-ZbOi7nSuUgQATg/edit).  However, the results were less illuminating because it the multiple antennas made it difficult to isolate the attenuation from human presence).