Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Reputation Activity

  1. Like
    veryalive got a reaction from igor in How fast does this execute?   
    actually, the sound card scope is a great idea.
    i should really use it more often for low frequency stuff.
    here's the one i use, v1.4.1  (i have no affiliations, but take my hat off to herr zeitnitz):

  2. Like
    veryalive got a reaction from abecedarian in How fast does this execute?   
    good to know about pulseIn    !
    i didn't use it at that narrow a pulse width (200 uS)
       glad to hear that you checked the source code as a bonus
    ---->>   as an alternative,  perhaps the Energia   'microcseconds' function   micros(),   with a call at the rising edge, a second call at the falling edge, then a subtraction.
  3. Like
    veryalive got a reaction from abecedarian in How fast does this execute?   
    .... i'll throw my hat into the ring here ....
    if the question still is     :    'how fast does this execute' 
         ------>  and additionally:
          - you'd like it to be easy to set up
          - you have an additional Launchpad and serial port (or spare LCD) available
          - you are satisfied with +- 10 / 20 uSec resolutions
          - you don't want / need a scope or logic analyzer
    then, in the spirit of 'rapid prototyping', here's an idea.
    please note I haven't done this, but i've used these energia routines myself.
    I use Energia and a bunch of handy, jumperized, IO devices for quickie measurement projects.
    your existing LP#1 is your 'simulator', already described.     The LP#2 just measures and displays a pulse width.
    LAUNCHPAD#1          -------> PULSE OUT PER LOOP  --->     LAUNCHPAD#2
    TO BE TIMED                    (2 wires)                   MEASURING  ----> DISPLAY
    (SW added to toggle a pin                                  THE PULSE        (SERIAL or LCD)
    a pulse at top of loop)
    - for the loop timing to be measured (ie: how fast does this execute)  LP#1 has a spare IO bit set for output which
    toggles at the top of the loop (XOR). The resulting high pulse is wired over to LP#2 to be measured and displayed by a
    quick-'n-dirty Energia script.
    LP#1     - you know how to do this.    and you've wired 1 output bit + ground to LP#2 input bit of your choice.
    LP#2     - i think you've worked with Energia. Key is the pulseIn() function.  So here's some example code:
    int pin = 7;
    unsigned long duration;
    void setup()
      pinMode(pin, INPUT);
    void loop()
      duration = pulseIn(pin, HIGH);
    -------------------------------->    then display 'duration' to the device of your choice
  4. Like
    veryalive got a reaction from abecedarian in Oversampling, averaging and getting confused.   
    think of 'averaging' as a low pass filter in this case.
    if you use the 16-sample-then-average (window size 16), then one noise spike in that batch of samples gets strongly reduced.
    in the other case, where you take the last sample added to the running average (window size 2, sort of), if the last sample is a noise spike, it will come through distinctly.
    (EDIT 1 - in fact, it's a convolution - a time-domain rendition of a low pass filter - which can lead to some very interesting filtering in a 430 with the hardware multiplier.   A  FIR, if you're a DSP guy.
    Block averaging being a 'rectangular' window.  Other shapes are handy, like sin x / x  or  triangle,  and correspond to the filter's frequency response expressed as the time-domain impulse response.)
    (EDIT 2  -  and to your question on 'oversampling', this means the sample rate (ADC rate) compared to the highest signal frequency of interest (eg: the change in temperature of a room).   
    In many uController apps, our sample rate is much higher than the signal's rate of change  ----   eg:   Ksamples/sec vs Degrees C per second    --- and this is an example of oversampling.  You can throw away samples (decimation) if you want to reduce computation / memory array size / etc  without significantly reducing the fidelity.  Note, FIR filters have a delay.
    Much of this is equally - or better - handled in the frequency domain.)
  5. Like
    veryalive reacted to pabigot in New BoosterPacks - CC3100 & CC3200   
    Or not.
    I think there's going to be too much functionality on this device that's locked down in the no-source-provided ROM interface to allow development of any real advanced applications.
    For example, the CC3000 is useless in low power solutions: I get maybe 1500 one-shot UDP transmissions with CC3000 shutdown and LPM3 between them before two AAs drain on a EXP430F5529LP+CC3000 demo. Somewhere TI claimed the CC3100 could run for a year on two AA batteries, which means they must have done a whole lot of enhancements. If you read the CC3100/CC3200 Wi-Fi Network Processor Subsystem guide swru368.pdf section 4.6.1, the details on exactly what behavior is promised when in low power mode are lacking: "Long Sleep Interval" is clearly related to the IEEE 802.11 FCS Power Management bit, but some of the effects they describe are "extra" features TI's apparently chosen to enforce unnecessarily; and "Low latency power" is completely uninformative as to its behavior.
    I think this is supporting evidence for @@jpnorair's observation that nobody's making money on IoT yet, and that this explains why everybody's trying to lock down everything in their solutions in hope that their magic beans are the ones that will hatch the goose that lays the golden egg (to abuse some metaphors). Personally, I think that's absolutely the wrong approach, but I have this non-entrepreneurial focus on providing long-term value rather than snatching at short-term profit.
    But yes, at this point it's pretty much all speculation. If the CC3200 LP is still available cheap in mid July when I might have a chance to play with one maybe I'll buy one. I probably won't invest in much CC3100 technology, since TI has not demonstrated an ability to make the CC3000 work. When I read the last couple paragraphs of this post carefully I conclude that the CC3000 is EOL, having served its purpose of getting external users to spend the necessary tens of thousands of hours required to beta-test everything. My last hope is the final firmware release 1.14 for the CC3000 will make the thing robust enough to deploy. That hope is pretty slim.
  6. Like
    veryalive got a reaction from chicken in SHARP Memory Display Booster Pack   
    hi and thank you for your test routines for the sharp 96x96 booster pack.
    I was looking at the cpp file, mainly checking what's available and how to drive that LCD from a memory-limited '2553.....
    ?????>>>  could it be that your display ON / OFF routines need a fix ??? <<<<<<
    referring to this part of your code in    SHARPMemLCDTxt.cpp     (comments with <<<... are mine) :
    void SHARPMemLCDTxt::on()
    digitalWrite(m_pinDISP, HIGH);            <<<<<<<<<<<<<<<<<< for 'ON'     set HIGH.......
    void SHARPMemLCDTxt::off()
    digitalWrite(m_pinDISP, HIGH);            <<<<<<<<<<<<<<<<<<  for 'OFF'    .... and again, HIGH ......   ??
    I like digging into to other folk's driver code to see how they do it, always want to learn new stuff, so that's when I saw this and thought to ask...
  7. Like
    veryalive got a reaction from joro1881 in MSP430 university project   
    @fred   :
    no, not harsh; quite sage in fact.
    'give a man a fish, he eats for a day; teach him to fish, he eats for life'
    energia is very useful for developing code that works well.     but, we still don't know what that project should accomplish.
  8. Like
    veryalive reacted to yosh in PCB Give Away   
    EDIT: All PCBs found a new home - thanks :-)
    I have some spare PCBs I would like to give away for free. I will send three kits (each containing six PCBs, see attached image) for free inside the European Union.
    The green PCBs are stackable, 45x45 mm. One PCB is for the MCU, and the other two are proto boards. You could power the board by a CR2032 battery or use a LDO voltage regulator (MCP1702-3302). The header rows left and right are for stacking the boards, the lower one is for a Nokia 5110 LCD breakout.
    The black PCBs in the middle (35x35 mm) are stackable too. The lower header is for the I2C SSD1306 OLED (http://imall.iteadstudio.com/display/graphic-lcm/im130625003.html)

  9. Like
    veryalive got a reaction from elpaso in mspgcc right shift question (energia)   
    i don't know about the compiler, but here's how 2's complenent arithmetic would work:
    it means we interpret the byte quantity as a 2's complement number, not as a bit pattern.
    other machine instructions can interpret the byte 'logically' and fill from the left with zero, the carry bit, etc.
    so, in 2's compl arith........................      this can be called 'sign extending'  where the msb is the + or - sign bit.
    80 hex byte      =          -128 (decimal)
    right shift -128 (arithmetically, ie divide by 2)    =   -64 (decimal)
    -64 (decimal)        =      C0  hex byte
                                =  1100 0000     binary
    (!!!!!!!   note that the msb is a 'one',  this a nice property of right shifting 2's complement numbers   !!!!!!!)
       (it is very standard)
    now, even in a larger bit machine; such as 16, 32, or even 64 bits;   all those extra 'ones' on the left STILL make the same negative number !
    so, the decimal number -64 can be
    1100 0000                      binary byte
    C0                                   hex byte
    1111 1111 1100 0000    16-bit binary word
       FFC0                            hex word
  10. Like
    veryalive got a reaction from jpnorair in Brutal Wire Cutters Needed   
    you may want to check out a music shop for piano / guitar string cutters.  
    these type usually, but not always, shear the wire (like scissors) rather than 'pinch' the wire (like diagonal cutters).
    i've also used tough scissors for cutting thin steel wires (to about 0.010 inch dia).
    a little loop at the sharp end, formed with needle-nosed pliers, makes that end safer.
    (edit - yep, i read your link referring to 'piano wire', i was referring to where to buy such 'shearing' cutters)
  11. Like
    veryalive reacted to jpnorair in Arduino TRE   
    No, that was a good move because XScale was dead-end technology, so selling it was good business.
    Embedded is a tougher market than desktop & server.  You need to sell a lot more chips to make the same revenue, and since the barrier-to-entry is low, there is more competition and thus lower profit.  So Intel isn't likely to put in the effort to do something meaningful in embedded markets -- they've tried a few times in the past, and it has never really worked-out.  
    That's what I mean by "mailing it in."  The the Quark is just recycled Atom technology, and the Atom is recycled Pentium-1 technology.  Intel will never spend money on embedded R&D, because they don't believe they can win at it.  The market for Quark is niche, which Intel knows and they are fine with it.  ARM Cortex-A is going to deliver better performance at lower price and lower power.  Intel knows.  So, as an engineer it pisses me off that Intel -- who has the ability to do something great -- is just happy to address a niche with a mediocre product.  On the other hand, if they are able to make good money in their integrated cellular baseband IC business (which they assembled recently), this is an area where we might see some real innovation from them.
  12. Like
    veryalive reacted to spirilis in TI Back to School Promotion   
    As you go through the checkout process, pay attention to the right side of the screen--like 1 or 2 screens in you'll see "Enter coupon code:" on the right side, put SA_BTS in there as the code.
  13. Like
    veryalive got a reaction from dannyboy in MOSFET failures I can't explain   
    i do understand your desire to do the job by yourself      = >  persistance.
    - sounds like your wiring is ok, but the mosfets need higher drive voltage than the 430 output provides
    - if you have bipolar transistors available, you can drive their base via a resistor (1 to 2 K ohm) from the 430, ground the emitters, LEDs to the collectors.  they only need about one volt at the base to turn on the collector current.
    - in this case, a medium power NPN, darlington if you have them.   (there any many low cost options,  one is BD139)
    - sticking with bipolar, due to the lower turn-on voltage, think of the uln2003 driver family. 
    multiple drivers in one package for your stated 'compact size' requirement.
    you may have to invert the logic level in your IO pin-driving software.
    again, there's lots of similar drivers out there.
  14. Like
    veryalive got a reaction from dannyboy in 8-bit 2-to-1 multiplexer IC   
    if you wish to minimize hand wiring & are using veroboad or single sided pcb.....
    a pair of 'hc541.  one on the left, one on the right.
    BUT the one on the right is upside down; why? 
    so that you can do straight-through wiring on the output lines
        (so  left p18 to right p11.    left p17 to right p12.   ..etc..   left p11 to right p18)
     and then select via the output enables on pins 1 and 19.
             | o |
    8 inputs |   |   8 outputs   |   |
             |   |    3-state    |   |  8 inputs
                                 | o |
  15. Like
    veryalive got a reaction from JWoodrell in 8-bit 2-to-1 multiplexer IC   
    if you wish to minimize hand wiring & are using veroboad or single sided pcb.....
    a pair of 'hc541.  one on the left, one on the right.
    BUT the one on the right is upside down; why? 
    so that you can do straight-through wiring on the output lines
        (so  left p18 to right p11.    left p17 to right p12.   ..etc..   left p11 to right p18)
     and then select via the output enables on pins 1 and 19.
             | o |
    8 inputs |   |   8 outputs   |   |
             |   |    3-state    |   |  8 inputs
                                 | o |
  16. Like
    veryalive got a reaction from oPossum in 8-bit 2-to-1 multiplexer IC   
    if you wish to minimize hand wiring & are using veroboad or single sided pcb.....
    a pair of 'hc541.  one on the left, one on the right.
    BUT the one on the right is upside down; why? 
    so that you can do straight-through wiring on the output lines
        (so  left p18 to right p11.    left p17 to right p12.   ..etc..   left p11 to right p18)
     and then select via the output enables on pins 1 and 19.
             | o |
    8 inputs |   |   8 outputs   |   |
             |   |    3-state    |   |  8 inputs
                                 | o |
  17. Like
    veryalive reacted to hmjswt in Dutch lanquage LaunchPad Forum   
    For all you Dutch LaunchPad People: Now there is a Dutch Language LaunchPad Forum on:
    Voor alle Nederlandstalige LauchPad gebruikers:
    Is voortgekomen uit het Nederlandstalige Arduino Forum.
    Henk Siewert
  18. Like
    veryalive 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.
    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.
  19. Like
    veryalive got a reaction from waynewec in Basic Serial Program Printing Inconsistent Data   
    Hi - as a newbie myself, I tried your code.
    As RR84 suggested buffer sizes, I experimented, as total 400 bytes (in+out each 200) seemed a lot for the 512 byte RAM on the 2553. And I don't know what Energia needs for its own buffers in addition to that 400.  I noticed that the original code crashed after 10 lines in, and at about 21 characters per line, that gets over the 200 byte limit of the output buffer - and where is THAT in memory?
    So, I changed the INPUT buffer length to 20, down from 200. And it works.
    I don't think the code is busting the buffer due to concatenation, though. It could be just too little RAM in the chip for the compilation and Enegia doesn't let us know about it.  Just my own guess.
    >> So, here is your code, it delivers all 180 samples to the serial port. And it stops cycling after each 180 if your type STOP.
    I put in some debug lines to check out things.   I found out that \n checking is actuially checking foir LINEFEED (ctrl-J), not CR as I guessed.  I like the serial event command but have no idea where you found out about it !
    **  Simple program designed to simulate pushing 180 degrees of 10 meter scan times
    **  for testing of VB.NET GUI
    String inputString = "";
    boolean run = false;
    String outString = "";
    int i = 0;
    void setup() {
      inputString.reserve(20);  //DEBUG       <<<<<<<<<<<<<<<<<<<<<<<<<<<<<  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    void loop() {
      if (run) {
        for (i = 0; i < 179; i++) //Print 10 meter ping times for each scan angle
          outString += i;
          outString += String("$932944#932944#932944#"); //Test data to simulate 10 meter distance
          outString = "";
          delay (50);                                                            // debug, slow it down ********************************
    void serialEvent() {
      while (Serial.available()) {
        char inChar = (char)Serial.read();
        Serial.print(inChar);    // echo DEBUG   **************************************************
        if (inChar == '\n' && inputString == "START")
          run = true;
          Serial.println("run flag true");     //   ***************************************
          inputString = "";
        else if (inChar == '\n' && inputString == "STOP")
          run = false;
          Serial.println("run flag flase");     //   *************************************
          inputString = "";
        else if (inChar == '\n')
          Serial.println("Please use valid command: START | STOP");
          inputString = "";
        inputString += inChar;
        Serial.print("\t");            //DEBUG ************************
        Serial.println(inputString);   // echo up till now DEBUG  ************************
  20. Like
    veryalive reacted to roadrunner84 in Social Network Accounts of Users ^_^   
    I try to avoid social media as much as possible
    My name is Roadrunner84 on a buch of forums, my youtube channel (with only 1 video on it right now) is EmbeddedRoadrunner84.
    ... I just googled my screennname... wikipedia just started to creep me out :shock:
  21. Like
    veryalive reacted to energia in "LaunchPad- Why Male Headers?" - video moved   
    As far as I know this is 250k msp430 LaunchPads.
    Energia has been downloaded 25.000 times in total with 12.000 downloads of the latest release in the past 2 months alone (release data was 12/06/2012)
    So, there is a lot more people with LP's that probably are not aware of Energia. Anything you can do to help spread the word would be appreciated!
  22. Like
    veryalive reacted to jpnorair in TI's memory of choice   
    Are you a TI employee?  Go with the best solution for your app.  I have a project with ST and TI components on the same board... the universe did not collapse.
    Also, as I'm sure you know, MSP430 has no external memory bus option.  IMHO EEPROM is normally your best choice as an external memory, apart from FRAM or MRAM.  If you need more SRAM in an MSP430 project, really you need to upgrade your MSP430.
  23. Like
    veryalive reacted to RobG in Dumping MSP430G's memory content   
    Thanks, exactly what I was looking for, plug'n play with LaunchPad.
  24. Like
    veryalive got a reaction from RobG in Dumping MSP430G's memory content   
    Hi - here's a tool I mentioned in another thread...     Hope you find it to be relevant....
    Posted 14 January 2013 - 12:21 PM
    yavinbase, on 14 Jan 2013 - 06:44, said:
    Hi Yavin,
    I am trying this approach myself - copying the application in Flash (I do not call it EEPROM) of the 2553 on the Launchpad into my PC, then into a target 2553 via Spy By Wire (SBW).
    I found a free tool at: http://www.elprotron...m/download.html - then scroll to the bottom of the page.
    It is called FET-Pro430 Lite Software. The user interface is pretty easy.
    I in fact used this tool to copy / save / reprogam the firmware initially delivered with the 430 LP.
    Hope this is of use to you.
  25. Like
    veryalive reacted to RichardVowles in Considering Video Tutorials for Energia   
    I'm considering recording some video tutorials and writing some tutorials to be available in PDF, Mobi and Epub formats for Energia.
    I've got some ideas for topics around the basic Arduino introduction things, does anyone have any suggestions?
    I have a Zoom H4n for voice, Camtasia for Mac, Final Cut Pro for video.
    Although I intend to make it clear you can do coding the "Arduino way", I also want to make it clear that this only works for "always on" projects, and cover the alternatives. 
    I intend to work through the year on it as my year long project so ideas for topics, etc are helpful
    Not intending to charge for it, and happy to give credit!
  • Create New...