Jump to content

ILAMtitan

Members
  • Content Count

    56
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by ILAMtitan

  1. ILAMtitan

    43oh-TI Secret Santa - 2014

    Came home to a new package at my apartment today. I was expecting some screws for another project I'm working on, but was surprised by a much bigger box. Inside was a surprising new alarm clock, which is actually a lot cooler than it sounds! Really jazzes up my workbench. I decided that Vader needed to hop on his ride. Just kidding, he's joined me in at his right full place by my side, on my nightstand. We'll see how long he stays intact before his power is extended. Thanks Cubeberg!
  2. ILAMtitan

    MSP430 Nixie Clock

    @@RobG, that looks great! I'm absolutely picking up a kit for my cube here at TI.
  3. ILAMtitan

    MSP430i2x?

    It sure does perform as advertised. The new MSP430i20xx family is initially targeted for low cost embedded e-metering applications, and other industrial markets where high precision analog is a must. We already have a few TIDesigns posted regarding its usage: http://www.ti.com/tool/TIDM-SERVER-PWR-MON and http://www.ti.com/tool/TIDC-SMARTPLUG-WIFI In e-meter applications you must sample the voltage and current signals simultaneous, or else you will inject an artificial phase delay that has to be compensated in software. To accomplish this, all of our meteorology devices have multiple dedicated SD converters. Obviously you can use the high precision analog in other applications as well, but I'll leave that as an exercise for the reader.
  4. ILAMtitan

    Mailbag

    That shouldn't be a problem. Our next meeting is Tuesday, so I'll make sure to bring my good camera and get some shots of the team.
  5. ILAMtitan

    AC power usage Booster Pack

    I've tossed around the idea of making an e-meter booster pack, but the Launchpads just don't have the proper analog to do the TI energy metering solutions justice. We did just release a new TIDesign for a branch cirucit monitor that can measure up to 7 current channels: http://www.ti.com/tool/TIDA-00222 That might be a decent starting point if you want to make one of these yourself. Hopefully it goes without saying though, mains voltage is super dangerous, and make sure you play it safe.
  6. ILAMtitan

    Mailbag

    My apartment complex sent me a message that I had a new package delivery! Thanks USPS!! Luckily everything inside was intact. 30 RocketBadges from @@cubeberg! I'll be using these to teach some high school kids where I volunteer as a robotics mentor how to solder. Hopefully I'll be back later with photos from the lessons.
  7. Ya, I just looked up the WS2811 lib on the Stellaristi forum, and it's SPI based. Someone with more experience would have to make a new one for the CC3200 since the devices don't share a serial coms peripheral. It would be really cool to have WiFi controlled LED strips though. I might just have to get a CC3200LP and start working on this anyway.
  8. @@MORA99 - This lib is very MSP430 asm dependent. The CC3200 uses an M4, so there is no chance of a direct port. You might have some luck looking into a Tiva WS2811 library since it's the same core, but I doubt it would be a simple port. Once I get my hands on a CC3200 LP I'll probably try to make a compatible WS2811 library for it, or expand this one to work with it as well.
  9. ILAMtitan

    MSP430 Nixie Clock

    That looks awesome. I would love to hang one in my cube here at work. (I already have a nixie clock at home) Something that you might consider is adding some blue led back lights to the tubes. I built one for my brother that had them and they look really slick.
  10. ILAMtitan

    GrownUp LA Gears

    So, a few tests later, and I have a few things to report if anyone is going to try and make these. 1. The mechanical connections are critical. I wore them for a day, and by the end the LED strips were rather flaky. I need to go in an resolder some connections now. 2. The LED strips don't like the flex. One of them has a break in the DIO line that I had to track down and rebridge. 3. NiMh batteries are far superior to alkaline. Three Alkalines will dip below the dropout voltage of the LDO at around 60-70% life, while NIMhs will stay strong will close to 90%, with a bit extra capacity. I have a new board out to fab that will have support for an external LiPo with a proper boost converter to power the LEDs at 5V, and provide more robust connections. Once I get that put together, I'll do a night run for you @@bluehash. (Even though I'm not a runner, and the chucks aren't really running shoes).
  11. ILAMtitan

    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.
  12. I'm just standing on the shoulders of giant's here. There sadly aren't many photos of the shoes during the build process so far, but I'll probably still do a project post about them when they are done.
  13. Hey guys, I haven't been around much lately, but a recent project brought me back here and using this WS2811 library. I'm trying to enable more people to use the LaunchPad in some of my volunteer work (FIRST robotics) and flashing LEDs is a good eye catching way to do it. To help facilitate people who are already using Arduino and the venerable AdaFruit NeoPixels, I ported over almost all of her functionality to work in Energia. https://github.com/ILAMtitan/WS2811Driver With this, any project using the NeoPixel library will be near 100% compatible. I also took some time and worked out support for 25MHz on the 5529 LP (although it's a bit crude). My assembly knowledge is also only enough to get me so far. I haven't been able to work out the best way to enable PORT2 to be used since it's a #def in the assembly. If any of you guys can help work that out, it would be awesome. I know y'all are also really good at finding problems with code, so feel free to do some QA for me I've tested the timings up to 120 LEDs at 25MHz, but it might fail beyond that (I only had two strips to play with). And here's a little preview of the first project I'm working on with it:
  14. ILAMtitan

    Vetinari's Clock

    I figured you guys might be interested in some of my tinkering with the Launchpad. Hopefully by putting a few of my projects up here it will also keep me accountable for finishing them. This is one a cobbled together a few months ago. It's been up on the MCU projects page on E2E, so you might have already seen it: http://e2e.ti.com/group/microcontrollerprojects/m/msp430microcontrollerprojects/664670.aspx PROJECT OVERVIEW The Vetinari clock is from a book series known as Discworld, where Lord Verinari has a clock in his waiting room which has an irregular tick. The idea of the clock is to add a sense of unease and anxiety to anyone in the waiting room since their brain doesn't filter out the ticks like a normal clock. Here's a video to get a better idea of the result. The tick is actually a lot louder in person. SOFTWARE DESIGN To accomplish this task on a 430, we create an array of possible time frames to tick the clock, and parse through it at 4Hz. The array is 32 entries long, so it equates to 32 seconds in the real world. By randomly setting 32 of the elements high, we create a timing sequence. A high element will generate a tick of the clock. This means a second on the clock can be as little as 250ms, or as long as 24 seconds, and still keep accurate time. Check the attached software too see how it's all done; I did my best to comment it up. main.c HARDWARE DESIGN The clock coil is driven via an alternating polarity pulse. The easiest way to change a load's polarity with an MCU is using an h-bridge. The schematic shown is a simple implementation using two NPN and two PNP transistors. I had the transistors and drive resistors laying around, so this part was easy to cobble together (along with the half used battery holder). It would be easy to use a single IO pin per side of the bridge, but the transistors fit better onto the launchpad, as shown in the image. To add the driving resistors in series, I cut a small gap in the traces, scrapped off the solder mask on either side to make pads, and put down a small SMA resistor. It's not pretty, but it works. In the clock mechanism, there is a small control board with a crystal and epoxy glob IC that normally runs the clock. I just ripped that out and directly attached the coil to the h-bridge. The resulting clock is actually more maddening than I expected in a quiet environment. By using 3V rather than the 1.5V that the original movement used, the ticks are much more pronounced and do an excellent job of ruining a person's calm.
  15. ILAMtitan

    3D printed G2LP and 5529LP bumpers/cases

    I was able to extract the cover from Garrett's STL file and extend it a bit to fit the TRF-7970 NFC BoosterPack. I added 6mm to it as you can see here: It should be able to fit with many other Boosters as well, but I haven't really tested it out. It sits only a few mm off of the Booster PCB so that the NFC tag is close to it. And here's the file for you guys to play with. 7970_5529Top.zip
  16. ILAMtitan

    3D printed G2LP and 5529LP bumpers/cases

    I'm very interested in getting the STLs. We just got a 3D printer in the MSP430 lab!
  17. ILAMtitan

    43oh Secret Santa - 2013

    I received a message from my apartment complex on Thursday that a package had arrived, and thinking it was some coffee I ordered I actually put off getting it from the office. When I picked it up, it was a clearly marked ThinkGeek box, and not my coffee at all. Inside was a Build-On Brick Mug!! Oddly perfect since I'm the guy in the office with the Legos in his cube,and I almost bought one a month ago. https://www.thinkgeek.com/product/ee3c/?srp=1 I decide to christen it with a quick light saber duel since I didn't have any coffee; still waiting on that package. Thanks @@spirilis !!
  18. ILAMtitan

    43oh Secret Santa - 2013

    Dung, I expect a full redesign of the control box to include a CC3000 and MSP so that the lights can be controlled from my phone via WiFi.
  19. I'm not sure what the accuracy of using delayMicroseconds will be, but it looks like there might be some jitter in it due to how it process the number of cycles to actually wait. There is also some delay with the digital writes that will lengthen the time that you actually see the toggle. Regardless, I don't trust it. A better method to validate clock accuracy would be to output a clock directly to a pin and measure that. SMCLK on P2.2 would be a good choice since it's brought out on the headers. If your scope can't measure the full 16 or 25MHz, you can just set a divider for SMCLK as well.
  20. ILAMtitan

    Vetinari's Clock

    Hmmm, that hadn't even crossed my mind. I'm not a huge fan of tri-state implementations due to their complexity, but I would love to see an example. Do you of any on the 430 (my googling has failed me)?
  21. ILAMtitan

    Vetinari's Clock

    This project uses a solenoid driven clock, not a motor driven one, so the code will be significantly different. You'll have to generate a steady PWM value, and then vary it depending on the speed you want the clock to run. I'd love to see it if you get it working. I used the transistors as a method to get bidirectional drive on the solenoid, not really as a current delivery mechanism. I don't really see any issue with using multiple pins to fan the current load out, I just don't see a good way to get around the directional driving for a clock mechanism. if you set both bits in PnOUT at the same time, it should propagate to the pins at the same time (please don't quote me on this though). I like the idea of a digital one too. Maybe I'll integrate this into one of my other clock designs that are in the works too.
  22. ILAMtitan

    First actual fried MSP430

    It's the application control card for the system shown in the video: https://www.youtube.com/watch?v=cv9PRXx4cYs That whole board runs on mains, and mistakes happen during development.
  23. ILAMtitan

    First actual fried MSP430

    One more fried board, courtesy of a colleague of mine. I know it's not an MSP, but the LM3S parts make some pretty patterns when you hit with mains voltage. Just another reminder to always triple check when working with HV.
  24. ILAMtitan

    First actual fried MSP430

    There are a couple options out there. Inline USB Isolation: http://www.bb-elec.com/Products/USB-Connectivity/USB-Isolators/USB-Isolators.aspx Isolated USB Hubs: http://www.sealevel.com/store/hub7i-optically-isolated-7-port-usb-hub.html Isolated FET: https://www.olimex.com/Products/MSP430/JTAG/MSP430-JTAG-ISO-MK2/
  25. ILAMtitan

    First actual fried MSP430

    You got off easy. I do a lot of work with mains voltage, and learned my lesson about debugging without an isolated interface early on. THis one blew out my laptop's dock as well in the process.
×