Jump to content

JWoodrell

Members
  • Content Count

    445
  • Joined

  • Last visited

  • Days Won

    17

Reputation Activity

  1. Like
    JWoodrell got a reaction from GeekDoc in ? Launchpad V1.0   
    hey I was playing around after reading the Tiny Circuits website about their tiny arduino platform...
     
    and I decided to see what could be done with a micro launchpad concept.
     
    here is my ?-Launchpad v1.0    14mm x 14mm  with full 10 pin header on each side to mount the ?-Boosters to.
    the small size makes the boards stupid cheap at OSH...  they are $1.50 for 3 boards.
     
     
    12mm spacing between headers, .050 mil headers.  I'm not sure what kind of boosterpack you could build at 14mm  but I got the USB interface and the MSP430 in there so it should be fun to see.

     
    I threw together a LED micro booster  it is a 4 x 8 grid of 0402 LEDs  driven directly from the MSP430 pins through resistors with 2 sets of 16.  one in forward bias, one in reverse bias so you can drive the whole matrix with 8 pins.

    although in thinking about it, If i were to make it, I would change to SMD female headers, so I could spread the LEDs out more on the top surface.
     
    as a comparison to see how small it is, here is a launchpad next to my micro SNES board which is 12x12mm 

  2. Like
    JWoodrell got a reaction from chicken in ? Launchpad V1.0   
    hey I was playing around after reading the Tiny Circuits website about their tiny arduino platform...
     
    and I decided to see what could be done with a micro launchpad concept.
     
    here is my ?-Launchpad v1.0    14mm x 14mm  with full 10 pin header on each side to mount the ?-Boosters to.
    the small size makes the boards stupid cheap at OSH...  they are $1.50 for 3 boards.
     
     
    12mm spacing between headers, .050 mil headers.  I'm not sure what kind of boosterpack you could build at 14mm  but I got the USB interface and the MSP430 in there so it should be fun to see.

     
    I threw together a LED micro booster  it is a 4 x 8 grid of 0402 LEDs  driven directly from the MSP430 pins through resistors with 2 sets of 16.  one in forward bias, one in reverse bias so you can drive the whole matrix with 8 pins.

    although in thinking about it, If i were to make it, I would change to SMD female headers, so I could spread the LEDs out more on the top surface.
     
    as a comparison to see how small it is, here is a launchpad next to my micro SNES board which is 12x12mm 

  3. Like
    JWoodrell got a reaction from larsie in USB Problem   
    what is the purpose of the 1 Meg the resistor going to ground... .
     
    if its a low volume board, you could move the connector to the back of the board, and take both signals through with vias so they wouldn't have to cross
     
    also the soldering on those QFN is notorious for bad connections, try more flux, and reflow?
     
    if windows is throwing the error message then atleast it is seeing the pullup resistor,  do you have an oscilloscope to look at the waveforms with?
  4. Like
    JWoodrell reacted to RobG in Maker Faire NC 2013   
    This was my first MF and it was a lot of fun.
    I will definately do that again and I am now considering attending MF Norfolk and possibly next year's SF event.
     
    Lessons learned:
    1. Plan early. I wasn't sure if my application will be accepted or not, so I did not prepare as I wanted to.
    2. Lights, lights, and more lights. People respond to lights, especially blinking ones. I really have to finish my POV RGB globe and make sure all of my LED BPs are powered
    3. Moving objects. People like to see things move. Although I did have couple of servos, they did not grab people's attention. For next event, I will get more servos and assembe a small bot. It will really show off what my servo controller can do.
    4. Too many things, too little information. I will cut down on the number of display items, group them by function, space them, and add labels with short explanation. Many visitors, especially those that don't know much about electronics, were affraid to ask questions or didn't know what to ask.
    5. Better LaunchPad display. Next time, I will display my LPs with printed specification list (including the price.) The most common response to $10 price tag was "wow!" Think about all those people that didn't ask any questions. I hope next time, we can have wow-o-palooza.
    6. Need to rally more troops. We were outnumbered by groups like Hackerspace Charlotte.
    7. More printed materials. I ran out of my 100 home made business cards fairly quickly and I didn't bring any printed information about LPs or my BPs. Big mistakes.
    8. Create a web page with all important links (and update my blog, it's been a year since the last entry.) I had several URLs listed, so people had to scan QR codes multiple times.
    9. Small giveaway kits. It cost money, but kids love to collect things. big kids too.
    10. Bring few LPs to give away, for example one every hour raffle style, @@cubeberg's idea.
    11. Hands-on things. I am thinking a big wall mounted RGB matrix and 2 joysticks (one for hue and one for xy axis control) with gradient painter software or a simple game of pong.
    12. Power supply. I have to make one supply to power them all, multiple 5V, 12V, and USB outputs with standard connectors. This way I can avoid custom wiring, wire messes, shorts, blow-ups, demo code overwrites, etc.
    13. Bring ear plugs. I hope this was the only time I was located next to guitar maker.
    14. Display case. @@cubeberg's suggestion to create a portable display that could be shipped around. We could mount 43oh's most popular BPs and send them around the country.
    15. Video Presentation, a nice way to demonstrate LP's (Tiva or Stellaris) capabilities. Playing demo video on LCD BP. @@JWoodrell's idea.
  5. Like
    JWoodrell got a reaction from RobG in Maker Faire NC 2013   
    Blinky, flashy, moving yeah people are drawn in. We also would have benefited from a running video loop people could watch about what launchpad is about so we dont have repeat the same speech over and over
     
    We almost need a standard display we can ship around to whoever is gonna be at whatever event is goin on
  6. Like
    JWoodrell got a reaction from bluehash in Maker Faire NC 2013   
    @@RobG is on the right, I'm in the middle, and @@cubeberg is on the left
  7. Like
    JWoodrell got a reaction from spirilis in Maker Faire NC 2013   
    Checked in at the ramada here, dont know if any of the other 43oh people are here in this hotel but its swarming with nerds... Ahh my people
  8. Like
    JWoodrell got a reaction from RobG in Maker Faire NC 2013   
    Checked in at the ramada here, dont know if any of the other 43oh people are here in this hotel but its swarming with nerds... Ahh my people
  9. Like
    JWoodrell got a reaction from bluehash in Red Wrenchers! Look inside   
    I got my poster, thanks BH
  10. Like
    JWoodrell got a reaction from GeekDoc in Maker Faire NC 2013   
    STELLARIS is attacking a target in the reentry phase,  launchpad is the defensive anti missile missile?
  11. Like
    JWoodrell reacted to oPossum in RGB Aquarium Light   
    16 channel software PWM: http://forum.43oh.com/topic/1723-16-channel-software-pwm-using-a-single-timer/
     
    8 channel software PWM:  http://forum.43oh.com/topic/1770-8-channel-pwm-with-a-single-timer-low-ram-usage/
  12. Like
    JWoodrell got a reaction from Yuri in Developing software for MSP430!   
    that tells me that the "Haptics_SendWaveform(erm_rampup);" is not a latching command.  if it is called continuously it will run the motor, but when its only called once (when its in the if loop) it does a single "pulse" to the motor then stops.   I may try to dig through your code to see what can be done to make the command latch for the duration of the waveform profile, but I don't have time right now
  13. Like
    JWoodrell got a reaction from Yuri in Developing software for MSP430!   
    I think I got it...  maybe.
     
     
    as soon as a something is recieved, you set "character" to that.
    #pragma vector=USCIAB0RX_VECTOR __interrupt void USCI0RX_ISR(void) {     character = UCA0RXBUF; // <--- here } since it is not sleeping your main loop is continuously running when not iN an interrupt.  you are saying if "character" is NOT "/R" then echo it out the TX...  however you never clear the "character" after you echo it out, so it just keeps spewing out the most recently recieved character in the main loop.   while(1) { __bis_SR_register(GIE); //__low_power_mode_0(); // Interrupts enabled if(character != '\r') // <--- this is the problem { write(character); //echo // <--- never clears "character" afterward if(character != '\b') { buffer[iterator] = character; iterator++; } } } I would add a line after the  "write(character); //echo" line that sets character back to "/r"
    if(character != '\r') { write(character); //echo character = '\r'; // <--- here or to "0" and change the outer if loop
    if(character && character != '\r') // <--- here { write(character); //echo character = 0x00; // <--- here but that is what I see as causing your new issue
    you will need to work with where put it depending on what other functionality you want (the '/b' section in the main loop)  but you can figure it out from there
  14. Like
    JWoodrell got a reaction from GeekDoc in NEX - hybris NES +VAUS controller project.   
    so here is the update so far.  It works and fits well, I had to trim a few bits here and there, but the updates are made into the next version files I'm gonna send up.  The level shifter was a bust because the txb0104 can't drive and ammount of capacitance (the cable between the controller and the NES) it just goes off the reservation oscillating at high speed because its confused.  but since I don't really needs bidirectional shifter I am changing over to straight 5v tolerant buffers, because the signals are always either outgoing or incoming, a given line is set.  I built the prototype up with 1k resistors tying the signals straight to the MSP430, and even though the NES is a 5V system, the output levels sent to the controller is only 4V?  so it works but I'm not happy with it because I don't know that ALL NES systems run at 4V on the controller signals.  I have two systems in house and they both behave like that.  you can see the USB p




    (sorry the board is messy and kinda beat up but it has been unsoldered and resoldered and reworked and fiddled with for almost a week now, but that is the life of a prototype board i guess)  
    the Dial has more resistance to spinning that I would like because the "feet" that run on the upper ring are basically flat on the top.  I am changing it over to nubs so there will be less surface area to generate friction, should be smoother. you can see the nubs on each foot here.


     
    the D-Pad contacts work... umm they work too well.  it is Hyper sensitive to reading a diagonal input signal (2 directions at once)  this is because in the original design the contact pads were separated by a line that meant the dpad had to be pressed further toward that pad before it would register, whereas my spiral pads are super easy to make contact, so if you even think about pressing not "fully" in one direction, it reads the diagonal.  the spiral pads work well for the "buttons" though so they will stay, but the d'pad pads are being updated to a bar gap configuration like the original NES, I am even going to match their .040" spacing between pad halves.  (its almost like they knew what they were doing ;P)


     
    the mag sensor chip works a treat, I am going to use the PWM signal from it into a capture/compare register on Timer 1 (Timer 0 is the DCO auto adust timer from the 32.768 crystal for the USB side)
     
    the controller autodetects on power up which mode to run in either USB, or NES because on this version the 3 lines for the USB ("Pullup, D+ and D-) are also used for the NES interface. so I have the chip set the "pullup" line as an input and listen for the clock signal from the NES, which it usually sends between 60ms, and 200ms depending on the game. different games take longer to boot and start polling the controller at different times.  interestingly they poll it in different patterns also,  most games just fire latch once and pulse the clock  8 times to get the data from the shift register in the controller, but Super Mario Brothers 3, fires the Latch signal waits around 100us, fires it again, waits another 100us, fires it a third time, pulses the clock 8 times to read the controller, then fires latch a fourth time, and pulses the clock again 8 times at each 60hz read point.  I don't know what the logic behind this multiple latch and double read scheme is, but it caught me off guard. maybe it is more accurate? 
     
    I may change the name of the project once I start selling these on EBAY, because there was a knockoff NES clone back in 2005 that was called the "generation nex"  which looked very pretty and nicely built it was the same hardware inside that the other NES clones used so it had the same compatibility problems and issues.  it faded quickly, and the company hasn't existed for around 5 years. I will just wait and see.

  15. Like
    JWoodrell got a reaction from swampdonkeykami in Hydraulic anti-jam control   
    get eagle lite, its free and very usefull for boards at or under 80 x 100mm
  16. Like
    JWoodrell got a reaction from swampdonkeykami in Hydraulic anti-jam control   
    You can eliminate the jumper wire (im assuming blue) by taking the signal down through r5&r6 go up under d2 and around to the point
  17. Like
    JWoodrell reacted to RobG in RGB Aquarium Light   
    Here's a simple 3ch PWM example using 2 timers.
    P2.6 is red, P2.2 is green, and P2.4 is blue.
    #include "msp430g2553.h" /* * main.c */ typedef unsigned char u_char; // RGB pins #define R_PIN BIT6 // TA0.1 - P2.6 #define G_PIN BIT2 // TA1.1 - P2.2 #define B_PIN BIT4 // TA1.2 - P2.4 u_char red = 0; // 0-255 u_char green = 0; u_char blue = 0; void updateLEDs(); int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer BCSCTL1 = CALBC1_16MHZ; // 16MHz clock DCOCTL = CALDCO_16MHZ; // P2.6 & P2.7 GPIO P2SEL &= ~(BIT6 + BIT7); // setup outputs P2DIR |= R_PIN + G_PIN + B_PIN; P2SEL |= R_PIN + G_PIN + B_PIN; // timer TA0 TA0CCR0 = 255; // full cycle TA0CCTL1 = OUTMOD_7; // CCR1 set/reset TA0CCR1 = 0; // CCR1 default 0 TA0CTL = TASSEL_2 + MC_1 + ID_3; // SMCLK/8, upmode // timer TA1 TA1CCR0 = 255; // full cycle TA1CCTL1 = OUTMOD_7; // CCR1 set/reset TA1CCR1 = 0; // CCR1 default 0 TA1CCTL2 = OUTMOD_7; // CCR1 set/reset TA1CCR2 = 0; // CCR1 default 0 TA1CTL = TASSEL_2 + MC_1 + ID_3; // SMCLK/8, upmode updateLEDs(); // done with the setup, go to sleep or loop // go to sleep, then use ISR to update rgb //_bis_SR_register(LPM0_bits); // or loop while(1) { // this is a test, _delay_cycles(160000); red++; green -=3; blue += 5; updateLEDs(); } } void updateLEDs() { TA0CCR1 = red; TA1CCR1 = green; TA1CCR2 = blue; }
  18. Like
    JWoodrell got a reaction from GeekDoc in First etch & surface mount!   
    hey @@TheDirty what chemical / process steps do you use, your boards look nice and sharp.  I would like to be able to prototype y own boards just because waiting 2 to 3 weeks for turn around is kinda annoying.
     
    my trick with solder paste is in realizing it is just too thick in its base form from the syringe, it is designed to stick and stay in its cutout shape in the stencil.  but since were applying it by hand, we need to change that behavior.  I use a hard plastic disc and dot my flux pen a few times on it to get a pool of flux (not too much) and then syringe some solderpaste into that pool.  I use the tip of an exacto knife to mix the two around until it is a nice smooth mixture and more flowing than the paste it started at.  you have to play a balancing act between diluting it down for workability, and too much where there isn't enough solder per volume to be usefull.
     
    I take my exacto and get a small ball of the thinner paste on the tip, and "dot" the pads with it, you get a nice controlled small application of solder paste, and its very quick to just dot dot dot dot down the line then get another bit on the knife and dot dot dot ...   it works well for me
     
    it takes a bit to get the feel for it, but I find it very usefull in doing the 0402 SMD things i work with mostly now.  
  19. Like
    JWoodrell reacted to TheDirty in First etch & surface mount!   
    I've helped a lot of people with this and all I can say once you get a method down you are golden, but even with the exact steps it takes experimentation and time to get it so it's quick and easy.  You may have to modify the steps to get things to work for you.  I started many years ago and got my process down.  For some people now it may not be worth it to go through the learning curve, but if I want to experiment with a board or just need a little add on, I can get a board from Eagle to etched and drilled in a couple hours when waiting for Seeed can take a month or more for 10 boards were I don't need 9 of them.
     
    For my steps I use:
    HP1012 printer and I still have the old Staples Glossy Photo paper that they don't sell anymore.
    I use a clothes iron to iron on the resist.
     
    My steps are:
    I'll print out the design on a regular piece of paper and cut it out. I use the cut out to cut a piece of copper clad to size.  File the edges down. I cut out a piece of the glossy paper just bigger than the design and tape it on a regular piece of paper. Print the design onto the glossy paper. Iron the design onto the board.  I use high heat.  Pressure and duration need to be experimented with.  I use a paper towel on the top to help make sure I don't get heat and pressure spots.  I don't know how to describe.  I use decent pressure and put it on for a minute or two.  Rub around and turn the board a few times while doing it to make sure you are doing the pressure evenly. Then need to scrub the paper off.  Let it soak first and then I use a toothbrush and my thumbs to get the paper off. Etch with warmed ferric chloride.  I just use the plastic sandwich boxes and drop the board in.  I rock it back and warm it over a desk light I have.  The light shines through and you can see the etching process and when all the copper has been removed because you can see through the board. Drill using a drill press I have.  You can get PCB sized drill bits from e-bay for cheap. Clean using acetone. ??? Profit I took pictures once when I was experimenting with the fab-in-a-box paper.  This paper does a total release of the laser toner and doesn't work as well for me.  The toner on its own doesn't make a great resist.  They sell a green film that you can use after to seal the toner better for a better etch, but I never got it to work properly.  They recommend a laminator to put it on though and I've never gone through the trouble of getting a laminator.
    http://higginstribe.com/uc/Stellaris/LM3S811/
     
    Modifications:
    The paper you use is the biggest variable.  The paper I use isn't available anymore and I don't know of any good replacements.  Many people use glossy magazine paper.  The super glossy and stiff kind you get in higher end magazines.
    Many people swear by the laminators.  I haven't needed one, but they are available cheap on e-bay and there are some recommended ones if you google around.
    Like I said before, I've had bad experiences with everything other than ferric chloride.  FC seems to be the most forgiving on resist.
     
    I use Eagle to design the board.  If you put all your tracks on the top layer (red) you will need to 'mirror' the board when printing.  If you put all your tracks on the bottom layer (blue) you don't mirror the board when printing.
  20. Like
    JWoodrell got a reaction from tripwire in First etch & surface mount!   
    hey @@TheDirty what chemical / process steps do you use, your boards look nice and sharp.  I would like to be able to prototype y own boards just because waiting 2 to 3 weeks for turn around is kinda annoying.
     
    my trick with solder paste is in realizing it is just too thick in its base form from the syringe, it is designed to stick and stay in its cutout shape in the stencil.  but since were applying it by hand, we need to change that behavior.  I use a hard plastic disc and dot my flux pen a few times on it to get a pool of flux (not too much) and then syringe some solderpaste into that pool.  I use the tip of an exacto knife to mix the two around until it is a nice smooth mixture and more flowing than the paste it started at.  you have to play a balancing act between diluting it down for workability, and too much where there isn't enough solder per volume to be usefull.
     
    I take my exacto and get a small ball of the thinner paste on the tip, and "dot" the pads with it, you get a nice controlled small application of solder paste, and its very quick to just dot dot dot dot down the line then get another bit on the knife and dot dot dot ...   it works well for me
     
    it takes a bit to get the feel for it, but I find it very usefull in doing the 0402 SMD things i work with mostly now.  
  21. Like
    JWoodrell reacted to spirilis in Developing software for MSP430!   
    Sounds straightforward enough, your firmware will have the very basics of an RTOS with a timer tick and scheduler (an overgrown while (1) loop with lots of if () statements checking flags to determine what work needs to be done) but with some kind of command interpreter and the serial port ISRs set up to cooperate (stuffing a buffer with incoming bytes and setting a flag indicating a command is ready for the main loop to act upon).

    Fwiw, if you look for my Charcoal grill monitor project on this forum, in the basestation subdirectory in my code (I attached it to one of the posts--I'd provide a link but I'm typing from my phone atm) you'll see an example implementation of a Command Line Interface. I still use it to this day and I've extended its featureset to support new radio-based gadgets I've designed. It connects to my Linux server so I can SSH in from anywhere and play with it.

    I recommend a similar app architecture, the husk of an RTOS with some type of serial command interpreter (menu is doable too).

    Your biggest limitation will be the available flash memory for the code. As you add more and more features the code bloat will bump you up against the limits of the chip. Keep it simple.

    Sent from my Galaxy Note II with Tapatalk
     
    edit: Here's my last post in that thread, with the current code posted- http://forum.43oh.com/topic/2857-charcoal-grill-smoker-monitor/?p=35535
  22. Like
    JWoodrell reacted to cubeberg in Button not working on TI Launchpad (beginner)   
    You need to set BIT3 on P1OUT (P1OUT |= BIT3).  This connects the pin to a pull-up resistor (your code has it connected to a pull-down).  That way - it'll register as a "1" value until the button is pushed - connecting it to GND - making it a "0" value.  Your logic for P1IN will need to flip (or it'll just operate inverse to the comments).  
    Early Launchpads (V1.4 - you probably have a V1.5) had the pin connected through an external pull-up, but that meant people couldn't use the pin for anything else.  
  23. Like
    JWoodrell got a reaction from cubeberg in NEX - hybris NES +VAUS controller project.   
    so here is the update so far.  It works and fits well, I had to trim a few bits here and there, but the updates are made into the next version files I'm gonna send up.  The level shifter was a bust because the txb0104 can't drive and ammount of capacitance (the cable between the controller and the NES) it just goes off the reservation oscillating at high speed because its confused.  but since I don't really needs bidirectional shifter I am changing over to straight 5v tolerant buffers, because the signals are always either outgoing or incoming, a given line is set.  I built the prototype up with 1k resistors tying the signals straight to the MSP430, and even though the NES is a 5V system, the output levels sent to the controller is only 4V?  so it works but I'm not happy with it because I don't know that ALL NES systems run at 4V on the controller signals.  I have two systems in house and they both behave like that.  you can see the USB p




    (sorry the board is messy and kinda beat up but it has been unsoldered and resoldered and reworked and fiddled with for almost a week now, but that is the life of a prototype board i guess)  
    the Dial has more resistance to spinning that I would like because the "feet" that run on the upper ring are basically flat on the top.  I am changing it over to nubs so there will be less surface area to generate friction, should be smoother. you can see the nubs on each foot here.


     
    the D-Pad contacts work... umm they work too well.  it is Hyper sensitive to reading a diagonal input signal (2 directions at once)  this is because in the original design the contact pads were separated by a line that meant the dpad had to be pressed further toward that pad before it would register, whereas my spiral pads are super easy to make contact, so if you even think about pressing not "fully" in one direction, it reads the diagonal.  the spiral pads work well for the "buttons" though so they will stay, but the d'pad pads are being updated to a bar gap configuration like the original NES, I am even going to match their .040" spacing between pad halves.  (its almost like they knew what they were doing ;P)


     
    the mag sensor chip works a treat, I am going to use the PWM signal from it into a capture/compare register on Timer 1 (Timer 0 is the DCO auto adust timer from the 32.768 crystal for the USB side)
     
    the controller autodetects on power up which mode to run in either USB, or NES because on this version the 3 lines for the USB ("Pullup, D+ and D-) are also used for the NES interface. so I have the chip set the "pullup" line as an input and listen for the clock signal from the NES, which it usually sends between 60ms, and 200ms depending on the game. different games take longer to boot and start polling the controller at different times.  interestingly they poll it in different patterns also,  most games just fire latch once and pulse the clock  8 times to get the data from the shift register in the controller, but Super Mario Brothers 3, fires the Latch signal waits around 100us, fires it again, waits another 100us, fires it a third time, pulses the clock 8 times to read the controller, then fires latch a fourth time, and pulses the clock again 8 times at each 60hz read point.  I don't know what the logic behind this multiple latch and double read scheme is, but it caught me off guard. maybe it is more accurate? 
     
    I may change the name of the project once I start selling these on EBAY, because there was a knockoff NES clone back in 2005 that was called the "generation nex"  which looked very pretty and nicely built it was the same hardware inside that the other NES clones used so it had the same compatibility problems and issues.  it faded quickly, and the company hasn't existed for around 5 years. I will just wait and see.

  24. Like
    JWoodrell reacted to RobG in MSP430G2xx3 based servo controller boards   
    I have 3 new servo controller boards:
     
    1. 8 channel, 3.3V LDO (it can be powered from master or servo power,) SPI or UART input, 1.27mm programming header, 20 pin MSP430G2xx3, 1.6" x 0.7"
    2. 4 channel, SPI or UART input, 1.27mm programming header, 28 pin MSP430G2xx3 (4 timer output pins are used,) powered from master, 1.6" x 0.4"
    3. same as #2 but with 3.3V LDO (powered from servo,) 1.6" x 0.4"
     
     
  25. Like
    JWoodrell got a reaction from RobG in Maker Faire NC 2013   
    I will definitely try to attend this one it will be me my birthday weekend (june 16th) so I will have it free I know.
     
    now I have to try and get something interesting to bring and show put together and finished.  I know I will bring my NEX controller, but I will try to wrap up the LED mouse display thing i put on hold.
×
×
  • Create New...