Boron / Xenon / Argon Carrier for Outdoor Applications

I have started some code already and have found an I2C library I like that is simple and supports callback for onRequest() and onReceive(). I am also using the EEPROM to store the set values with a magic byte so that on startup it has its last values or defaults if its the first time.

1 Like

@all,

I have started to build the next revision of the carrier board. Physical build went ver well:

  • I like the Qwiic style JST connectors - very dense
  • The new switch is eminently switchable - unlike my last choice
  • I think I can add more connections - perhaps a SPI header?

The holes on the Boron align exactly with the holes in the carrier. Too bad I cannot find an 18mm M2.5 nylon screw to put in. It is not my fault but, the Boron physical design does not give enough space between the pins and the mounting holes on the Boron to use a standard 15mm standoff - bummer.

Getting close to that first MacroFab run which I will open to anyone interested.

Thanks,

Chip

4 Likes

I used these 12mm ones and just fitted ok with enough to hold the module into the sockets really well (only used 2 per board and seemed perfect)

Don't know why I didn't think of this earlier - seeing as the switch will be seldom used (If I understand your use case correctly) - then you could use a 3 pin header and bridging link something like
image
Pretty cheap and very deliberate action to switch so cannot switch in transit or when setting the system up.

1 Like

@shanevanj,

Excellent suggestion. My use case requires park rangers to operate this switch (albeit infrequently / ideally only once) so, I need something simple with no prospect of losing parts. If I was doing the installs, I would certainly consider the jumper idea.

Thank you,

Chip

@all,

Happy New Year!

Update on testing the board.

  1. The board passes all the tests in the automated test sketch (i2c bus, FRAM, RTC, User Switch, Temperature, Alarm functionality, RTC triggered Power down sleep)
  2. I did make a mistake in the schematics above that cost me a FRAM chip. My Programmer (Sparkfun AVR Pocket Programmer) provides only 5V power which is above the absolute max the FRAM chip can stand (4V). So, I made a slight change to move the ATTINY Vcc on the output of the diode. That way, no matter what devices you may chose to put on the board, they will not see 5V.
  3. I was able to load the TinyWireS library on the ATTINY and validate that it is showing up as an i2c device for the Boron. I have not yet started writing the new watchdog code with programmability but will work on this while the board is being manufactured.
  4. I spent some time working on the IO connectors and came to a few realizations which I wanted to share:
  • Seeeeeeeed Studios Grove is not a standard JST socket - so they are out.
  • JST SRT series 1mm pitch connectors are remarkably robust and save a lot of space on the board.
  • There are a number of sources for JST SR/SH pre-crimped cables and kits so the fact that the crimping tool costs SEVENTEEN HUNDRED DOLLARS!!! is not as big a deal as I thought. I will share more on this in a separate thread.
  • Pre-made cables are easier to find in 4-pin and 6-pin configurations so I standardized on them.
  • Qwiic cables and board to board cables need to be “Reversed” I almost fried a new Sparkfun TOF board with this mistake.
  • There is absolutely no agreement on pinouts for standard headers (serial, SPI, Analog IO, i2c with interrupt pins) except for Grove (see above) and Qwiic. So, I put a Qwiic port on the board and followed their convention for the other headers. This means I had to put Vcc next to ground but I held my nose and did it for consistency.

Next steps:

  1. I plan to send this board to MacroFab for a small run ~20 in the next day. These boards will be expensive $65 because it is low volume. I will then field these boards (assuming the Boron Solar fix works).
  2. You can order bare PCB boards from OSHPark here.
  3. Once I validate the next batch, I will do a much larger run to bring the board costs down to about $30 and would be happy to include others in that run to help increase the volume and lower everyone’s costs. I am not trying to make money on carrier boards so, I am opening this for the mutual benefit of a larger run for the community.
  4. I will share everything including the EAGLE files so you can take this project and make the changes that best suit your needs.

Please take a look and let me know if you have any comments. After this first production run, I think I might start a few new threads (higher volume community run, JST SR/SH Qwic cables, Watchdog Timer).


Thank you as always for your help and support.

Chip

6 Likes

@chipmc thank you very much for your hard work and your wiliness to document it well and share!

@Backpacker87,

Thank you for taking a look. I do this work in the open because I benefit greatly from interaction with the community.

One thing, I still have one feature to test and will come back to this thread (likely on Friday) to share the final tested schematics. I may have an issue with the circuit I (mis?)implemented from @rickkas7 . Should have a final result on the "Enable Sleep" then.

BTW, having an external Real Time Clock means that the Boron sleep environment is more complicated than for the Electron. I am working through these issues in this post:

Also, I plan to kick off a separate thread on building the ultimate watchdog timer. Coming soon.

Thanks and please let me know if you have any questions.

Chip

2 Likes

@chipmc, looking forward to the upcoming update!

@Backpacker87,

OK, here is the latest mostly good some bad (since I spent a fair bit on a run of boards that will likely need to be scrapped).

Overall the board functions as expected passing all the tests but two.
I thought I could use an OR gate to support interrupts from both the RTC and the watchdog. This turned out not be be very easy as the RTC could “mask” the watchdog interrupts. I had hoped that Sleep 2.0 would fix things but the Boron does not have 5V tolerant pins like the Electron so I either need a dedicated 3.3V, a voltage divider or a MOSFET and none feel like a great solution. I will either have to dedicate another GPIO pin to the RTC or test some different approaches.

I will post an update once I have a proposed solution.

Thanks, Chip

Given the above update, does that mean I should wait before ordering the “Particle 3rd Generation Carrier Board” currently on OSHPark?

This project is excellent and I wanted to try making one of my own boards for remote flood detection. Thanks so much for sharing!

@phillycheeseman,

There are two issues with the board as it is currently laid out. One requires two traces to be cut and two “bodge” wires. The other issue can be “fixed” in software.

Still, I should have a revised layout ready by COB tomorrow.

Also, I ordered 20 of this first run from MacroFab so they are fully (except the throug hole headers) assembled. I would be willing to sell them at a significant discount if you wanted to start testing now. Send me a DM if interested.

Thanks and sorry for the delay.

Chip

@all,

Thank you for your patience. I have finally completed my testing and there are some changes to be made - I hope these are final.

  1. After testing Stop Mode sleep and Standby Sleep (DEEP_SLEEP_MODE) I have proven to myself that the difference between the two in power savings between the two is too small to make the complexity of supporting both worthwhile. So, this carrier board will support Stop Mode sleep which maintains an internal (inaccurate) clock and does not force a reboot upon waking. This eliminated the OR Gate and a lot of complexity on the routing. It is also easier for the code as your place of execution and variables are saved.

  2. The Real time clock will serve three functions in this design:
    First - It will keep accurate time and help prevent drift when there is a lot of stop mode sleep
    Second - It will be used to put the device into “Enable” sleep where the enable pin is pulled low and the carrier board power is brought to zero.
    Finally, it will be use to “reboot” the device to clear errors in the devices on the carrier, the Particle device and the cellular / wifi module.

  3. I have significantly simplified the power control circuitry, eliminating the flip-flop, the FETS and a bunch of related components. We now connect the RTC Multifunction Pin to the Enable pin so the RTC can control it directly. As a fail safe, there is a button that can pull the Enable pin high even when the device is in “Enable” sleep. Please take a look at the schematic below and let me know if I am missing anything.

Also, a big shout out to Shane Trent for his help on this.

Thanks,

Chip

6 Likes

Glad to help Chip!

Shane

4 Likes

Only thing I can see is that if its in enable sleep and you push the button to wake up - it may have to be held in until some code kicks in to reset the RTC?

@shanevanj, Yes, you have to hold it long enough for the device to connect (if it needs to) and make it through setup. I don’t see this being used often but, I know if I left this button off, I would be stuck with a device I could not wake.

BTW, I wanted to only have one switch which would wake the device no matter the sleep state. However, EVERY ONE of these little switches are Single Pole - even though they have four pins. Crazy!

Chip

How about this ... I know its PTH, but ...

TL2201OAYA6JGRY E-Switch | Switches | DigiKey

@shanevanj,

Yes, sorry trying to avoid through hole but, may end up giving up on that.

For now, I have made this super-klugey mod to my board to add the second switch.

And send a rush order to OSHPark for one more round of prototypes.

I will do some testing at local parks with my modified boards and hope to get this carrier out the door soon. This gives me a week or to to find the right switch.

Thanks, Chip

2 Likes

@All,

It is time to start to wind this thread down. I have just received 45 boards from MacroFab and will be deploying them to the parks starting today. The boards are testing well with the only manufacturing issue being incomplete coverage for a solder jumper which is easy to spot and fix when I solder on the headers. Please take a look. If I can get 20-30 out for a month or so, I will organize a larger buy (~100 which should bring the cost down below $40).

Please let me know what you think.

IMG_4815 IMG_4813

Here is the Github repo with the EAGLE files

Thanks,

Chip

4 Likes

The boards look great!

Now, please forgive me since I'm always unclear on what is included in the price (since I'm not familiar with the process) and I need to ask.

When you say:

$40 would be with the components mounted, or only the board, or something else?
Thank you,
Gustavo.