Close

Android progress and BOM rethink

A project log for WEFT electrovibration demo board

This board is for prototyping electrotactile interactions - use an electronic signal to dynamically change the texture of a surface.

akaAKA 12/21/2015 at 15:477 Comments

I've made a fair amount of progress in the Android app over the last two weeks - nothing too exciting, but a steady stream of modest wins. You can check out the Github repo to see more, but the improvements are more frameworks-in-place for further development than they are new-features-to-try-out.

Meanwhile, a rough estimate of the BOM price was pretty eye-opening: the components (in single quantities, from Digikey) sum up to about $10, while the two microcontrollers I'm using sum to $36.

I've never spec'ed a project for any sort of scale manufacture, but this seems off to me. I always knew it was wasteful to use two micros, but kept with them for the convenience - there was a convenient separation of concerns that resulted from having the Teensy handle the PWM driving the boost converter (since Teensy's PWM frequency can be changed all the way up to ~400kHz) and its built-in hi-res DAC drive the high-voltage amplifier, while the RFduino just handles radio interactions.

Given that the next hardware change on my list is a big re-think of the boost converter circuit, now seems like a good moment to try to find a microcontroller that can do all the jobs I need:

...having a high-frequency PWM output seems like something I'd want on this list, but I found with the Teensy that it was easy to mess up the timing of the DAC output if I taxed other interrupt-driven stuff too much. As a result, this week I'll be trying to fit the boost converter stuff into a totally separate 555-based circuit that, hopefully, will be addressable by the microcontroller.

So far, I'm planning to work with RFduino for awhile and then migrate to Simblee, which is even smaller. But I'd love to hear anyone's two cents about the whole plan, as now is the time when the most variables are still undecided!

Discussions

K.C. Lee wrote 12/22/2015 at 01:01 point

Cypress makes BLE modules at $10 QTY 1 (at Mouser) with 48MHz Cortex M0 core that can be program from their IDE (comes with compiler etc) for Windows.  It probably need their own programmer to be able to program/debugged inside their environment. Cheapest SWD for their software is probably the new PSoC4 board for $10.
http://www.cypress.com/products/ez-ble-proc-module-bluetooth-smart

They also have a PSoC version of the module at slightly more.

  Are you sure? yes | no

AKA wrote 12/23/2015 at 15:44 point

Thanks for the tip! I will check out the ez-ble modules soon. For the next couple weeks I'm going to be focusing on making the boost part of the circuit do a better job (and hopefully get rid of that expensive/rare transformer).
My hope is that I can get the boost part working more or less independently of the microcontroller, making the whole project a little more modular and flexible (though for my own purposes I'll still be looking for low-cost BLE micros to run the board). Thanks again!

  Are you sure? yes | no

Alex Hiam wrote 12/21/2015 at 22:55 point

Hmm, it might be worth looking into the Laird BL600 - it's a Cortex-M0+, BLE chipset and RF frontend all on one small module for $13 in single qty. The one big catch is... you have to program it in BASIC. They spun their own BASIC interpreter with some great APIs for IO and BLE, and it's pretty well low-power optimized - I played with for a bit at one point and I actually really liked it. It doesn't have PWM or a DAC, but it does have SPI and I2C and there's some cheap serial DACs out there.

Also, if you want to go for separate MCU and BLE chipset, checkout the NXP LPC8xx series - they're Cortex-M0+ MCUs that are all in the $1-2 range in single qty. (I'm working on a board with one that I should hopefully get up on hackaday.io soon, I'm assembling prototypes now....)

  Are you sure? yes | no

AKA wrote 12/21/2015 at 19:48 point

I love the Attiny series! Especially once I got the hang of fuses and command-line hex uploading...but built-in BLE seems to be the main sticking-point here - right now I'm running with rfduino (and, potentially, simblee) because I've spent awhile looking through their stack on Github and I think I can get what I want done...the price is still quite expensive, though :-/

  Are you sure? yes | no

zakqwy wrote 12/21/2015 at 20:59 point

Hmmm.. maybe an Atmel SAMB11? Never used one personally, but it seems to tick all the boxes.. 

http://www.atmel.com/Images/Atmel-42426-SAM-B11-Ultra-Low-Power-BLE-4.1-SoC_Preliminary-Datasheet.pdf

edit: ahh, it says "coming soon". Ugh.

  Are you sure? yes | no

AKA wrote 12/23/2015 at 15:45 point

Yeah the SAMB11 looks pretty sweet, gonna check it out, thanks!

  Are you sure? yes | no

zakqwy wrote 12/21/2015 at 19:01 point

Wow, those transformers are spendy! 

I spent some time searching for low-cost microcontrollers for a project and ended up staying with the ATtiny line due to my limited requirements; however, I did some research into low-cost 32-bit options and found ST Microelectronics' F0 series to be quite compelling. Under a buck in quantity, doesn't need a ton of support components, 15-50 I/O lines, 12-bit ADC on-board... might be worth a look? You'll need to retool your dev environment a bit, unfortunately..

Not sure on the BLE side--maybe someone can weigh in on an all-in-one option?

  Are you sure? yes | no