Jump to content
43oh

abecedarian

Members
  • Content Count

    1,711
  • Joined

  • Last visited

  • Days Won

    23

Reputation Activity

  1. Like
    abecedarian got a reaction from Automate in Scan Interface Applications - Five Members Win A Target Board And An MSP-FET   
    @@Automate - I received one earlier today and the PZ100D comes with 2 FR6989, and a 32.768KHz crystal, as well as four 1x25 pin male and four 1x25 female headers. The chips were Rev C so there should be no issues with the latest MSP-FET interface / MSP Debug firmware.
     
    The kit has a YAMAICHI socket for 100LQFP, has through-hole vias for a reset switch and a user-function switch, the latter connected to P1.3 and requiring a 47K 0805 resistor be placed, and pads for LED's that would connect to P1.1 and P1.2 through unpopulated 330R 0805 resistors.
     
    The crystal pads, yes there are two, do not have capacitors or resistors in place- those pads are 0805, and the crystal supplied is the same as what comes with the G2 LaunchPad.
     
    Under CCS6, when the debug interface was set up, it did prompt me to update the firmware on the MSP-FET, so I would expect that to happen with anyone using the latest CCS release.
     
    slau278s, pages 123-125, has the schematic and BOM for the board.
     
     
    *edit to add, in case my rambling wasn't 'clear', the LEDs, crystals, switches, resistors and capacitors I mentioned above are not populated, and only the crystal, two FR6989 chips and male/female headers come with it. The MSP-FET comes with a USB cable and JTAG cable. Both come with the standard disclaimers regarding use in controlled environments and such for various countries, and code usage / license information. TI compiler with CCS and IAR code usage limits are not 'relaxed' so one should consider that when developing.
     
    The TI reference with optical detector code compiles to under 4KB, including using the LCD interface peripheral so there is some room to wiggle.
  2. Like
    abecedarian reacted to ILAMtitan in GrownUp LA Gears   
    As I teased a little bit in another post, here's my latest project: GrownUp LA Gears!
     
    For those of us who were growing up in the mid 90s, LA Gears were the  best thing you could strap to your feet.  They had LEDs in the heal that would flash when you walked.  I wasn't lucky enough to have a pair when I was a kid, so maybe this whole thing is just me living out a lost childhood fantasy.....
     
    Much like the WS2811 driver library this project is being used to demo, I also snagged the idea from AdaFruit: https://learn.adafruit.com/firewalker-led-sneakers/overview
    I recommend reading through the post, since they do a better job of explaining things than I will here.
     
    While their design is good, there are some improvements to be made.  Mainly, there isn't an MSP430 in it.
     
    Hardware
    I didn't want to strap a launchpad to my shoe, so I deadbuged a 430 with the minimal requirements to run it.  A small 3.3V LDO, pins broken out for input and programming, and a pullup on RST.  I don't have pictures of the final build, but you get the idea.  Once all the joints were made, they were encased in hot glue, the best strain-reliever and sealer known to man.
     
       
    For the shoe itself, the LEDs where mounted around the perimeter and glued in with RTV silicon adhesive (https://learn.adafruit.com/firewalker-led-sneakers/attach-neopixel-led-strip).  I ended up drilling some holes in the battery case and sewing it to the side of the shoes.  The Chucks worked well because they have handy vent holes on the sides to run wires through (they are also classy for every occasion).
     
     
    AdaFruit used a custom sensor made of velostat, a material which changes resistance when force is applied.  If you connect the sensor between ground and an analog input, then turn on an internal pullup for that IO, you can essentially make a simple voltage divider.  The problem here was that the velostat sensor I made went from 1kohm with no pressure, to 300 with pressure.  This in series with the internal 40k of the MSP was just too small a range to detect well.  I ended up using a force sensor from SparkFun that goes from 1Mohm down to 1kohm.  It saturate at 10kg, but it works well.  I may revisit the velostat for cost reasons, but I'm happy with this guy: https://www.sparkfun.com/products/9376
     
    I ended up just gaff taping it down inside the heal.
     
      With LEDs on, and sensor in place, it just has to be wired up.  Here's a quick block diagram and image of what it all looks like mounted.  You can see that I left TEST and RST on there for programming.  
       
      Software
    The main push behind these was that I had the modifications to Rickta59's WS2811 driver done, and needed a demo platform ( http://forum.43oh.com/topic/2882-energia-library-ws2811driver-led-controller-class/ ). 
    Since that lib does the hard part, the rest of the Energia project is pretty easy, and hopefully well documented in line.
    #include <WS2811Driver.h> #define N_LEDS 44 // TOTAL number of LEDs in strip #define SHOE_LEN_LEDS 23 // Number of LEDs down ONE SIDE of shoe #define SHOE_LED_BACK 8 // Index of REAR-MOST LED on shoe #define STEP_PIN 2 // Analog input for footstep #define LED_PIN 3 // NeoPixel strip is connected here #define MAXSTEPS 3 // Process (up to) this many concurrent steps #define STEP_TRIGGER 30 #define STEP_HYSTERESIS 200 WS2811Driver strip = WS2811Driver(N_LEDS, LED_PIN, NEO_GRB); //Globals, becouse lazy boolean stepping = true; // If set, step was triggered, waiting to release uint8_t dup[SHOE_LEN_LEDS]; // Inside/outside copy indexes uint16_t Filtered; uint8_t step_order = 1; void setup() { //Enable internal pullup for analog sensor pinMode(STEP_PIN, INPUT_PULLUP); //Setup the array to index the two sides of the shoe memset(dup, 255, sizeof(dup)); int8_t a, b; for(a=1 , b=SHOE_LED_BACK-1 ; b>=0 dup[a++] = b--; for(a=SHOE_LEN_LEDS-2, b=SHOE_LED_BACK+SHOE_LEN_LEDS; b<N_LEDS;) dup[a--] = b++; //Start the LEDStrip strip.begin(); //Max desired drightness strip.setBrightness(255); } void loop() { //Wait until a step is detected while (stepping == false) { pinMode(STEP_PIN, INPUT_PULLUP); Filtered = analogRead(STEP_PIN); if(Filtered < STEP_TRIGGER) stepping = true; } //A step has been detected, so play the desired pattern //Pulse a different color each step and then fade out switch(step_order){ case 1: colorWipe(strip.Color(0, 0, 255), 5); // Blue step_order = 2; break; case 2: colorWipe(strip.Color(255, 0, 0), 5); // Red step_order = 3; break; case 3: colorWipe(strip.Color(0, 255, 0), 5); // Green step_order = 1; break; } for(uint16_t i=0; i<128; i++) { strip.setBrightness(255-(2*i)); strip.show(); } colorWipe(strip.Color(0, 0, 0), 1); // blank strip.setBrightness(255); //Restore brightness for next pass //Simple back to front color wipe /* colorWipe(strip.Color(128, 0, 10), 5); // Redish colorWipe(strip.Color(255, 255, 255), 5); // White colorWipe(strip.Color(0, 0, 0), 5); // blank */ //Holdoff until the foot has been lifted while (stepping == true) { pinMode(STEP_PIN, INPUT_PULLUP); Filtered = analogRead(STEP_PIN); if(Filtered > STEP_HYSTERESIS) stepping = false; } } // Fill the dots one after the other with a color void colorWipe(uint32_t c, uint8_t wait) { uint8_t j; for(uint16_t i=0; i<strip.numPixels(); i++) { strip.setPixelColor(i+SHOE_LED_BACK, c); // Pixels along inside are funny... j = dup[i]; if(j < 255) strip.setPixelColor(j, c); strip.show(); delay(wait); } } Final Product
    And here it is!
     
    I wore then to a friend of mines baby gender reveal party, and the three AAAs lasted all night.  No idea what the actual battery life is yet, but I'll probably do a V2 with a LiPo system.
     
    The rainbow pattern is actually in the sample code I put with the library, I was just testing it here.

     
    The videos really show it off.  Just ignore my messy living room.  These are both out of the code I posted above, just comment out the different sections.
     

     








  3. Like
    abecedarian got a reaction from bluehash in Scan Interface Applications - Five Members Win A Target Board And An MSP-FET   
    In case anyone is looking for it, an Eagle part for the MSP430FR6989 has been posted by Dennis over on the E2E forums:
    http://e2e.ti.com/support/microcontrollers/msp430/f/166/p/368772/1297017.aspx#1297017
  4. Like
    abecedarian reacted to zeke in One Wire Controller booster   
    The FR5989 has 64 pins and 128KB of FRAM. That will do just fine!
     
    Thanks @@abecedarian!
  5. Like
    abecedarian got a reaction from zeke in One Wire Controller booster   
    @@zeke Would you settle for an FR5989?
    http://www.ti.com/product/msp430fr5989/samplebuy
  6. Like
    abecedarian reacted to Rickta59 in Programming the MSP430FR5969   
    I've used the G2 launchpad with the msp430f5529, so 20 bit stuff works fine. The problem is that the older g2 programmer doesn't know about the new devices. There was a thread a while back over on e2e talking about this:
     
    http://e2e.ti.com/support/microcontrollers/msp430/f/166/p/254008/897717.aspx#897717
     
     
    -rick
  7. Like
    abecedarian reacted to bluehash in Maker Faire NY 2014 Complimentary Tickets   
    Yes.. of course will take pictures.
  8. Like
    abecedarian reacted to L.R.A in Maker Faire NY 2014 Complimentary Tickets   
    Yay pictures 
  9. Like
    abecedarian got a reaction from Fred in ESI Project: Laser coolant monitor   
    Maybe take a look at http://www.ti.com/tool/flowesi-gui.
  10. Like
    abecedarian reacted to spirilis in TI and Temboo partner for IoT   
    Anyone else feel like they need to take a 2 week sabbatical from work to play with these new LaunchPad gadgets all day long?
     
    Sent from my Galaxy Note II with Tapatalk 4
  11. Like
    abecedarian reacted to pjkim in ESI Project: Servo motor controller   
    I have been interested in making a servo motor controller. I wanted a microcontroller with a hardware quadrature encoder so when TI had a call for projects utilizing the Extended Scan Interface of the MSP430FR6989, I thought this might be a good fit.
     
    Servo motors have several advantages over stepper motors including increased torque, lower power consumption, feedback control to eliminate missed steps. The problem is that servo motors are rather expensive compared to stepper motors. I obtained several surplus double-shafted, coreless DC motors with planetary gearboxes for $14. They turn easily with an old AA battery but can also be driven at 24V for increased speed and torque. I also purchased  slot photointerrupters to use as quadrature encoders.
     
    I cut an encoder wheel from a tin can, drilled a hole in the middle and cut out two 90 degree wedges. The wheel was mounted on a short nylon bolt that had a 1/16" hole drilled down the center and clamped between two nuts that were rounded to provide clearance against the photo-interrupters.

     
    The photo-interrupters were mounted 135 degrees from each other. To give a proper quadrate signal, the angle between the detectors needs to be an odd multiple of half the encoder disk wedge angle, i.e. n * 90/2 where n is an odd number. 45 degrees caused physical interference between the mounting lugs of the photo-interrupters so 135 degrees was chosen. This gives 8 pulses per rotation. I am not sure what the exact gear ratio is but somewhere around 80:1. This gives about 0.56 degree per step which is on the order of the gear backlash.

     
    Here is a picture of the entire servo motor assembly.

     
    Here is an oscilloscope trace of the quadrature signals.

     
    Hopefully I can have the MSP430FR6989s driving the servo motors and doing something interesting soon.
     
    Thanks once again to TI for sponsoring the contest.
  12. Like
    abecedarian reacted to cubeberg in Wireless security system + IoT   
    lol - no - The diagram is SQL Server Management Studio - but I'm doing Code-First Entity Framework in C# - the data model is created based on my objects.
  13. Like
    abecedarian reacted to cubeberg in Wireless security system + IoT   
    Got notification last night that the door sensor shipped.  Should have that later this week.  Working on database design for storing sensor data.

  14. Like
    abecedarian reacted to cubeberg in Wireless security system + IoT   
    So I've been meaning to work on something for this for quite some time, but I finally bit the bullet and started.  
     
    I'm designing a wireless security system - with the intention that it'll upload data to a personal API I'm developing.  It started out as purely a security system (door open/closed, motion detection) - but I threw in some sensors while I was developing the boards.  This isn't intended to replace a real security system - but it's a fun practice on many levels.  I'm working on learning the CC3200, setting up a node network, etc.  
     
    Wireless devices consist of MSP430's and a NRF24L01+ (cheap - had a few on hand).  
     
    Door sensors will probably be 2452's - they're very basic.  Run by a coin cell.  I purchased some cheap magnetic door/window sensors on ebay.

     
    Motion sensors will run a 2553 and contain several other sensors.  These will be run on 2xAA's.  
    I've added a temperature sensor (TMP102), light sensor (same as the one I used on the badge), and volume circuit (not to capture audio - just room volume levels - based on a sparkfun breakout).  
    It's designed to support a 20 pin DIP 2553 or a 28 pin TSSOP if extra IO are needed.
    Motion sensor is the cheap PIR sensor board from eBay - I'll be taking off the voltage converter because it runs at 3v levels
     

     
    I've got a ton of work ahead of me - here are just a few things off the top of my head
    Sensor unique identification (ideally I'd like the sensors to auto-id themselves) Set up the CC3200 as a hub Easily accessible web services (I'll be writing this in .NET most likely - although I may consider a local phant.io install) + a decent database Visualization of sensor output Alerts Security - not a huge concern (not sure who would hack it) but I want to consider it - likely a later phase One thing I'd like to add - RFID for arm/disarm of the system.  I've got some RFID boards on hand - should be able to whip up something.  
     
    Cases for the sensors will be 3D printed.  Should be pretty simple to do but it'll be a good exercise in designing nice & accessible cases.  I'll probably add an easily-accessible programming header for easy updates.
     
    I'll post the eagle files + gerbers later.  If you're really itching to see them - let me know.
  15. Like
    abecedarian got a reaction from Shortcircuit in Starting Off   
    @@Shortcircuit - Welcome to 43oh!
     
    There is no direct correlation between Arduino pins and MSP430 pins. What you have to determine is 'what' the Arduino pins are being used for, such as readling an analog sensor or toggling an LED or such, then select comparable pins on the MSP430 LaunchPad. There are diagrams of the various LP boards and pins over on http://energia.nu; look in the right hand column under "Board Instructions and Pin Mapping" for your board.
     
    Note that some Arduino sketches and libraries may not work correctly without some occasionally serious tweaks, and also note that many shields for Arduino use 5 volt signals, and these are not compatible with the MSP430 devices since those run at 3.3v on the LaunchPads so some sort of voltage level shifting / translation needs to be done for those to work.
     
    Do check out the Energia section here and feel free to ask any questions you'd like.
  16. Like
    abecedarian reacted to Fred in ESI Project: Laser coolant monitor   
    My ESI project entry should be a fairly simple one. The first sentence describing the ESI is as follows: "The Extended Scan Interface (ESI) peripheral automatically scans sensors and measures linear or
    rotational motion." Luckily that's exactly what I'll be doing. I won't be pushing the ESI to its limits or bending it to some cool new purpose. However that should mean that I'll be able to get a clear idea of what the ESI does and how to use it properly.   My project is to measure the flow and temperature of the coolant in my laser cutter. It's one of the cheap DC-K40 ones that you see all over eBay and as such it's very basic. It has an aquarium pump to push some coolant through the glass laser tube. This is entirely separate from the rest of the laser and seems almost like an afterthought. If you forget to switch it on before cutting - you'll quickly destroy the tube. If you let it get too hot - you'll quickly destroy the tube. If the pump fails or a tube falls off - you get the idea.   As this seemed like something I was bound to do sooner or later, I've actually already made version 1.0 of my coolant monitor. It uses a MSP430G2533 and Timer_A to count the pulses from a hall effect sensor. If there are less than a certain threshold over a fix period then the laser is disabled. There's also an LM35DZ temperature sensor. Exceeding a temperature threshold will also disable the laser. These are mounted where the water exits the laser tube. It's happily protecting me from my own stupidity. It's nothing particularly special but I did a quick write-up here: http://0xfred.wordpress.com/2014/06/03/laser-improvements-coolant-monitoring/   So why move over to using the ESI? To be honest - just to find out about something new. My G2533 based circuit does the job. If the manufacturer had bother to implement anything and was doing it as cheaply as possible it could probably be done with a comparator, some resistors and capacitors. One benefit of the ESI approach would be lower power - but I've got a 40W laser running anyway. Another would be offloading this task so the MSP430 can get on with something more interesting - that I might be able to use later.   For now though - I just want to find out about the ESI. Maybe I'll get some inspiration once I find out what it can do. The other burning question though... can I home etch and solder TQFP?
  17. Like
    abecedarian reacted to bobnova in ESI Project: Water Usage Monitoring   
    It seemed high to me too, it's on the high end of normal, but within the normal range.
    Under ~30PSI is frowned on, most systems aim for 40-60. There's some more data here: http://www.cpuc.ca.gov/NR/rdonlyres/A172EAE5-8520-468E-85D8-67E9BA3FC984/0/WaterSupplyRequirements.pdf page 7 gives some example numbers.
     
    If the generator is on the nozzle side of the valves rather than the mains side of the valves you're absolutely correct, it'll never see anything close.
    I was thinking of using it on the mains side of the valves, not sure why.
  18. Like
    abecedarian reacted to zeke in ESI Project: Water Usage Monitoring   
    Nah! The pressure can't be that high!
     
    Your water system should be blowing apart at 65 or 79PSI!
     
     
    If you inserted a decimal point then I would believe you ie: 7.9 or 6.5 PSI.
  19. Like
    abecedarian reacted to bobnova in ESI Project: Water Usage Monitoring   
    Check your water pressure first, it says it's rated for ~79PSI maximum and ~65PSI normal operating. That may be plenty, but my house is in the lowlands and runs 68-73PSI, pretty close to the maximum.
     
    Other than that it looks perfect, tons of current, plenty of volts.
  20. Like
    abecedarian reacted to greeeg in ESI Project: Fitness monitor   
    My entry into the ESI competition. http://forum.43oh.com/topic/5750-scan-interface-applications-five-members-win-a-target-board-and-an-msp-fet/#entry50156
     
     
    The ESI module in the new MSP430FR6969's allows excitation and monitoring of various raw sensor formats. My idea is to leverage this to create simple pressure sensors, The idea right now is to make these with an inductor and capacitor created from two aluminum strips attached to a foam shoe sole.
     
    Obviously alot can and will change over time with this project. Initially I would be happy with a shoe that acts like a pedometer.
    Future features could include
    Wireless to transmit readings, to a chronos watch for example. Energy harvesting to remove the need for any form of battery Some for of haptic feedback Ideally the entire circuit will be included in a shoe sole. This will add a bit of extra complexity, ensuring that components are protected from excessive force, heat, shock etc.
     
     
  21. Like
    abecedarian reacted to bobnova in ESI Project: Digital tachometer, speedometer, and intelligent shift light   
    Minor update, did some very preliminary work on getting a FRx9x9 (currently, 5969) set up and timers running for pulse width counting / display update intervals / etc.
    These things are far more complicated internally than the 2553s, that's for sure. It's been a bit of a headache, but I'm making headway.
    It doesn't help that I've been almost entirely using Energia up to this point. Using CCS-level code inside Energia is all well and good, but Energia still takes care of all the basic setup, so I've had to figure out how to get all that going.
    I think I've gotten most of it at least.
     
    I start a new job on Monday, so things may go slowly. I really want to have this for my car (as I think I mentioned, my car has no tach at all, which frustrates me), so it will get done!
  22. Like
    abecedarian got a reaction from rampadc in DIY PCB Cutting Jig   
    "I love the smell of burning fiberglass in the morning."
  23. Like
    abecedarian reacted to eelcor in Any news regarding the CC3200 launchpad?   
    just hack into my iCloud account...
  24. Like
    abecedarian got a reaction from greeeg in DIY PCB Cutting Jig   
    "I love the smell of burning fiberglass in the morning."
  25. Like
    abecedarian got a reaction from bluehash in Scan Interface Applications - Five Members Win A Target Board And An MSP-FET   
    Everybody has probably already come across these, but just in case, TI has reference designs for several sensor solutions using ESI:
    http://www.ti.com/product/MSP430FR6989/toolssoftware#TIDesigns
×
×
  • Create New...