Jump to content

yosh

Members
  • Content Count

    207
  • Joined

  • Last visited

  • Days Won

    14

Reputation Activity

  1. Like
    yosh reacted to MalcolmMa in SensHub Sensor Data Acquisition,Filtering,and Fusion   
    Hi,guys!This is my first time here.This forum seems like a very active MSP430 community.Glad to find so many MSP430 lovers. I would like to share a project I did a month ago,which is about evaluating TI's Senshub board with MSP430F5529.Well this board has lots of sensors on it,such as BMP180,MPU9150,TMP006,SHT21,ISL29023.On TI









  2. Like
    yosh reacted to B@tto in [Energia Library] Very Basic Software Serial TX Only Library   
    Hi Rei,
     
    I just tested your library, I had to tune delays :
     
    #define DELAY_START_BIT 95///< start bit #define DELAY_SEND_BIT 93 ///< data bits #define DELAY_STOP_BIT 93 ///< stop bit */   Maybe because digitalWrite() is a little bit faster since you wrote this.   But note that my timing are just base on my experiment, I didn't any measure, just experiment different timings. This ones worked.
  3. Like
    yosh reacted to Fmilburn in [Energia Library] Rotary Encoder with Coarse / Fine Adustment   
    This is an Energia sketch designed to be used with a rotary encoder with push button.  The difference is that input can be made coarser or finer by pushing the button.
     
    The need came about because I wanted to be able to adjust a frequency generator between 1 and 40 MHz with fine adjustment on the order of 1 Hz with a simple interface on the board.  A potentiometer would not work due to low resolution and jitter.  Buttons or a simple encoder might work but it would take a lot of button pushing or knob turning to get from 10 Hz to 10 MHz.  I thought about a solution where the rate of turning the knob would determine the incremental increase or decrease but that seemed fiddly.  I could use multiple buttons but I liked the idea of a knob and in the end I only had one rotary encoder on hand.
     
    So my solution was to use the encoder push button to provide for coarse to fine adjustment.   For example, the encoder can be set to increase or decrease the value by 100 with a twist.  By pushing the button it can be made to improve fine control by say 1 value per click.  This allows the user to rapidly change values or achieve fine  control as desired.
       
    The sketch is here.
     
    A couple on additional points:
    Capacitors were used for hardware debouncing.  You may wish to modify the sketch or use a different encoder scheme with software debouncing. Interrupts were used for both encoder pins and the switch.  You may need to change the pins to a port with interrupt capability with different LaunchPads.  The sketch allows the minimum and maximum values to be set, as well as the change rate for coarseness. It seems to work pretty well although it is a cheap encoder and with a minimal effort I can now rapidly change the frequency on my AD9850 and see the results on the FR6989 LCD.
     

    I still need to put together a BoosterPack....  Tested with Energia V17 on the following LaunchPads:  MSP-EXP430FR6989, EK-TM4123GXL and MSP-EXP432P401R.
     
    UPDATE:  There is a 43oh post that shows the BoosterPack I created here:  http://forum.43oh.com/topic/9402-ad9850-frequency-generator-boosterpack/
  4. Like
    yosh reacted to 0xFFFF in Goofed BT Temp, Light, Humidity sensor...   
    PCB manufacturer is the very capable, fast and friendly team at Fusion PCB. I'll post a picture of the PCB tonight for your reference.
    Everything is within tolerances. I wanted to keep this design single-sided (I have no reason).
     
    I've designed plenty of boards in the past that have pushed beyond the tolerances of this particular PCB. 
  5. Like
    yosh reacted to solipso in TI-EStore New Year   
    Shipping to the Czech Republic is also $21. The difference between $7 to Germany and $21 to neighbouring CZ is insane. I can buy 7 pcs of STM32F103 devboards delivered from China for that $21, shipping included.
  6. Like
    yosh got a reaction from 0xFFFF in Goofed BT Temp, Light, Humidity sensor...   
    47k ... not 4k7 ;-)
     
    Out of curiosity - where were the PCBs manufactured and what is the trace width and minimum clearance. Looking at the picture you added some traces look very close to each other or close to pads/holes. Can you check if there could be a short somewhere ? For me the layout looks very tight at some places ... but maybe it is all OK and I am definitely not as expirienced as others here.
  7. Like
    yosh got a reaction from 0xFFFF in Goofed BT Temp, Light, Humidity sensor...   
    Hi
     
    maybe you can go a little bit more into detail what is working or not (on your PCB). Does the MSP power up, is the code running (= LED blinking every second). Does the BT module (which one? guessing HC05/06 from the pinout) power up (blinking, can you connect)?
     
    Kind regards
  8. Like
    yosh reacted to greeeg in GPS logger for a local Beagle club   
    Did some more work today.
     
    Wanted to check out the size of the buttons, so I printed half a profile to get a feel for button placement, I feel like I had designed these a bit too small.

     
    Took a closer look at the battery protection circuitry. unsoldered one and sanded it down to get good images of the copper. then worked the images in photoshop.


     
    These have been added to the schematic/pcb so I don't have to have the board soldered inline.
    Schematic has been done.

     
    PCB is routed too, and here it is in it's natural environment.


     
    (Kicad 3d export is still kind of dodgy, components changing colour etc :/ )
     
    Surprising how complicated a design can become, from such a simple idea.
    Off to the fab tomorrow.
  9. Like
    yosh reacted to dubnet in Quad Thermocouple BoosterPack (MAX31855)   
    @@spirilis You are posted on DP today.
  10. Like
    yosh got a reaction from bluehash in Quad Thermocouple BoosterPack (MAX31855)   
    Yeah, had the same problem some time ago when I made my Quad-TC PCB.
     

     
    Couldn't find any PCB solderable Type K jacks for a reasonable price in lower quantities. So I soldered the TC leads directly to the board. Anyway, it works without problems.
    Unfortunately I didn't use hardware SPI, so I can not try your library right now   Will do so for my next revision (8 MAX31855, but as "classic" booster pack for the launchpad).
  11. Like
    yosh got a reaction from spirilis in Quad Thermocouple BoosterPack (MAX31855)   
    Yeah, had the same problem some time ago when I made my Quad-TC PCB.
     

     
    Couldn't find any PCB solderable Type K jacks for a reasonable price in lower quantities. So I soldered the TC leads directly to the board. Anyway, it works without problems.
    Unfortunately I didn't use hardware SPI, so I can not try your library right now   Will do so for my next revision (8 MAX31855, but as "classic" booster pack for the launchpad).
  12. Like
    yosh reacted to spirilis in Quad Thermocouple BoosterPack (MAX31855)   
    Wrote a whole entire library to support the boosterpack with a user-friendly C++ interface..... and after a couple hours of coding it, I put it down last night to sleep and tried it out first thing this morning, it worked perfectly!  Sorry to gloat, that's just one of those nice things when you realize you've grokked the software/firmware side of things so well you write a library perfectly on first try ;-)
    (Ok, there was 1 compile bug but it was minor, was returning an integer error code when the return value for the method was an enum.)
     
    Now on the other hand, the MAX31855 isn't that complicated...
     
    Library - https://github.com/spirilis/QuadTC- implemented in C++ templates, the header has a single template argument "tc_count" so it only allocates enough buffers for the # of populated TC's it supports.  The code is in a ".tpp" file that is #include'd inside the header, so the template mechanism works right.  That's something I've never done before but it worked!
     
    Sketch-
    #include <SPI.h> #define QUADTC_DEBUG 1 #include <QuadTC.h> QuadTC<1> myTC; void setup() { // put your setup code here, to run once: Serial.begin(115200); SPI.begin(); myTC.begin(); } void loop() { // put your main code here, to run repeatedly: myTC.start(); delay(300); myTC.retrieve(); myTC.stop(); switch (myTC.getFault(1)) { case SHORT_VCC: Serial.print("Thermocouple fault: "); Serial.println("SHORT_VCC"); break; case SHORT_GND: Serial.print("Thermocouple fault: "); Serial.println("SHORT_GND"); break; case DISCONNECTED: Serial.print("Thermocouple fault: "); Serial.println("DISCONNECTED"); break; default: // Read thermocouple and print to terminal Serial.print("Thermocouple temp: "); Serial.print(myTC.getThermocoupleFahrenheit(1)); Serial.println(" F"); Serial.print("Cold-Junction temp: "); Serial.print(myTC.getAmbientFahrenheit(1)); Serial.println(" F"); } delay(10000); } Pics:

     

     
    The thermocouple featured has a bracket for securing it to a chimney / flue pipe.  Sourced from auber instruments - http://www.auberins.com/index.php?main_page=product_info&cPath=20_3&products_id=291- Odd though, mine is the 2" probe, but they don't offer it anymore, preferring the 4" probe so it's less influenced by the mounting site.  Don't think that'll be a big problem for me (a 4" probe would fit inside a 6" chimney flue pipe too).
     
    I noticed auber instruments carries a panel-mount mini K thermocouple jack for reasonably cheap, that's nice.  Would also be cool if they carried the PCB solderable ones... Omega builds them but you need a minimum order of 100 or something.  TI uses them in their thermocouple boosterpack.
     
    The essence of this QuadTC library is that it manages a positive-logic power domain switch along with SPI Chip Selects and interpretation of the data.  So it would work in a final project without the boosterpack, just gotta give it the correct pin#'s for the TC power switch and the SPI chip selects.
  13. Like
    yosh reacted to spirilis in Quad Thermocouple BoosterPack (MAX31855)   
    This was a project begun last winter in the hopes of having an array of thermocouples to monitor my old woodstove when operating it ... Well I never got around to finishing it, but I have a fancy new woodstove as of this fall, and I would love to monitor its temperature curves likewise!
     
    This BoosterPack is fancied as a baseboard plugging underneath the LaunchPad, with four holes for mounting studs in case I ever decide to fix it inside a permanent enclosure (probably one made of aluminum due to the heat).  I could have pushed the Thermocouple terminal blocks out a little further to fit more launchpads, as I feel this is a bit tight.  I chose a Tiva-C LP for my pics because it fits nicely but the BoosterPack is designed with low-power features, contrary to the MAX31855's own design.
     
    This BoosterPack features the Maxim MAX31855 thermocouple receiver chip; this is a precision IC with built-in ADC and digital logic which performs continuous conversions of the thermocouple data and exposes the latest data at the master MCU's demand over SPI.
     
    As the MAX31855 never really "shuts down", I have introduced logic to allow the MCU to switch on/off the entire thermocouple (MAX31855) power domain, utilizing a TI TXB0108 Level Shifter as a bus transceiver to disconnect all the SPI and four Chip Select lines from the MAX31855's to prevent parasitic power from the I/O lines from clandestinely powering the chips when they're not needed.  TI TPS27081A positive-logic PFET power switches are used to switch the Thermocouple power domain on/off and for slew-rate control of the TXB0108's OE pin.  (I bought a bunch of these for cheap from avnet a couple years ago, figured I should use them!)
     
    The BoosterPack features my own "remappable" design, where the 40-pins have breakout pads just inside the BoosterPack layout and each of the user-configurable circuit nets (TC power switch, TC#1, 2, 3, 4 SPI Chip Select) can have their default boosterpack pin assignments cut (cut solder-jumper) and a jumper wire soldered from the function's pad to a BoosterPack pad of choice.
     
    While this doesn't use any standard connector for the thermocouples, I have found dismantling a standard connector and snipping the terminals down to suitable width allows one to shove them into the terminal block without having to splice the thermocouple's wires or insulation.  I'll post a pic of that later on when I get a setup going with my woodstove.
     

     

     

     
     
    DipTrace Schematic (PDF): DipTrace_Schematic_-_Multi-Thermocouple-BPak.pdf
     
    DipTrace EDA files (schematic, PCB layout): Multi-Thermocouple-BPak_draft1_0.zip
     
    Elecrow 10x10 PCB Gerbers: Quad_Thermocouple_BoosterPack_v1_0_10x10.zip
     
    I don't plan to sell any of these at the moment, but if anyone's got a burning desire to have one I might be willing to have my arm twisted to buy more BOM and build some
     
    I haven't got a real thermocouple attached yet, but I was able to confirm that I can read what appears to be valid MAX31855 data from the one populated, including watching the "ambient temp" reading rise as I held my finger against the chip:
    Quad Thermocouple BoosterPack Test #1 TC#1 Result: 7FFD16F1 (sleep 2sec) TC#1 Result: 7FFD1701 (sleep 2sec) TC#1 Result: 7FFD1701 (sleep 2sec) TC#1 Result: 7FFD1701 (sleep 2sec) TC#1 Result: 7FFD1811 (sleep 2sec) TC#1 Result: 7FFD1A61 (sleep 2sec) TC#1 Result: 7FFD1B51 (sleep 2sec) TC#1 Result: 7FFD1BB1 (sleep 2sec) TC#1 Result: 7FFD1BF1 (sleep 2sec) TC#1 Result: 7FFD1C31 (sleep 2sec) TC#1 Result: 7FFD1B71 (sleep 2sec) TC#1 Result: 7FFD1A41 (sleep 2sec) TC#1 Result: 7FFD19A1 (sleep 2sec) Energia sketch:
    #include <SPI.h> static const int TC_POWER = 40; static const int TC1_CS = 39; void setup() { // put your setup code here, to run once: Serial.begin(115200); Serial.println("Quad Thermocouple BoosterPack Test #1"); SPI.begin(); SPI.setDataMode(SPI_MODE0); SPI.setClockDivider(SPI_CLOCK_DIV16); delay(2000); // Init TC#1 Chip Select high so it's not selected pinMode(TC1_CS, OUTPUT); digitalWrite(TC1_CS, HIGH); // Activate TC power domain pinMode(TC_POWER, OUTPUT); digitalWrite(TC_POWER, HIGH); } void loop() { // put your main code here, to run repeatedly: int i = 0; uint32_t res = 0; uint32_t b = 0; // Wait 300ms for TC#1 to do a conversion delay(300); // Select TC#1 and read its 32-bit contents. digitalWrite(TC1_CS, LOW); for (i=0; i < 4; i++) { b = SPI.transfer(0); b <<= 8 * (3-i); res |= b; } digitalWrite(TC1_CS, HIGH); Serial.print("TC#1 Result: "); Serial.println(res, HEX); Serial.println("(sleep 2sec)"); delay(2000); }
  14. Like
    yosh reacted to cde in Want to learn how to use an Oscilloscope? What if a Msp430 Launchpad was involved!   
    Stumbled upon this. Tektronix, a producer of various engineering test equipment, including Oscilloscopes, happens to have a free to use/download set of courses for learning how to use an Oscilloscope.
     
    The more important part is that it uses a standard MSP430 launchpad + Energia to do it.
     
    http://www.tek.com/lab-course/learning-oscilloscope-operation-using-msp430-launchpad-board
     
     
    The search shows about 20 of the courses:
    http://www.tek.com/courseware/search?body=msp430&field_courseware_categories_value=1902&field_courseware_keywords_value=All&field_course_language_value=&uid=
     
    It's a marketing tool, but it's generic enough for any scope. They also have *shudders* arduino versions as well.
     
  15. Like
    yosh reacted to Fred in 43oh wins TI Community Highlight Award   
    Too shy to tell us yourself, @@bluehash? Well, I'll have to do it then!
     
    It looks like 43oh has won TI's Community Highlight Award. Definitely well deserved. This place has always been a great source of help and inspiration. Probably the reason why I use TI stuff rather than anyone else's.
     
    Well done.
  16. Like
    yosh reacted to roadrunner84 in Redundant Microcontroller Programming   
    I once did a medical grade project, the designer chose to have very extensive redundancy.
    - Three different brand micro controllers were used
    - Code was written non-shared
    - Every task was handled by two controllers redundantly
    All of this to avoid silicon bugs, programming bugs, quality issues, etc.
     
    If you want to have a "spare" kind of redundancy - one fails, other takes over, replace first while online - you should still use an additional arbitrating control. Depending on where you can still afford redundancy.
    If you have a certain indicator LED that is vital for your function, consider putting in two LEDs; one to each controller.
    If you have some kind of actuator (e.g.: motor), have some majority voting in place. Or consider using open-drain control, so if either controller fails, the other still drives the line.
  17. Like
    yosh got a reaction from energia in recommendations on a light or an external temp sensor?   
    For light sensing you could give TI's OPT101 a try, see HERE
    Minimal setup would be the OPT101 itself, one resistor and a decoupling capacitor. You can then use the ADC to read the output voltage of the OPT101. Maybe it is possible to sample this IC at TI...
     
    For temperature sensing just search the forum, you will find lots of different well documented approaches (including libraries and Energia sketches) here, e.g. for LM35, TMP36, DS18B20, thermocouples, etc .
  18. Like
    yosh got a reaction from offbeatmammal in recommendations on a light or an external temp sensor?   
    For light sensing you could give TI's OPT101 a try, see HERE
    Minimal setup would be the OPT101 itself, one resistor and a decoupling capacitor. You can then use the ADC to read the output voltage of the OPT101. Maybe it is possible to sample this IC at TI...
     
    For temperature sensing just search the forum, you will find lots of different well documented approaches (including libraries and Energia sketches) here, e.g. for LM35, TMP36, DS18B20, thermocouples, etc .
  19. Like
    yosh reacted to Fmilburn in recommendations on a light or an external temp sensor?   
    @@offbeatmammal
     
    I successfully used the Adafruit TSL2591 Lux Sensor which is very light sensitive with high range on a F5529 LaunchPad (although not the CC3200) a while back.  I modified the Adafruit code to "autorange" and another guy posted a comment on my blog about how to get it to read very low light levels.  You can find my Energia write-up HERE.  If you want to sense light in a rough way you can do that easily with a cheap photo resistor.  Just be very careful not to exceed the voltage limits for analog on the CC3200.  My write-up for the TMP36 in Energia is HERE and as @@yosh says there is a lot on temperature sensors to be found here on 43oh.
     
    The blog I linked to above was started as an aid to beginners. I don't maintain it anymore but you might look around it.  I've also posted a link to more sensor code aimed at beginners HERE on 43oh.
  20. Like
    yosh got a reaction from bluehash in recommendations on a light or an external temp sensor?   
    For light sensing you could give TI's OPT101 a try, see HERE
    Minimal setup would be the OPT101 itself, one resistor and a decoupling capacitor. You can then use the ADC to read the output voltage of the OPT101. Maybe it is possible to sample this IC at TI...
     
    For temperature sensing just search the forum, you will find lots of different well documented approaches (including libraries and Energia sketches) here, e.g. for LM35, TMP36, DS18B20, thermocouples, etc .
  21. Like
    yosh got a reaction from Fmilburn in recommendations on a light or an external temp sensor?   
    For light sensing you could give TI's OPT101 a try, see HERE
    Minimal setup would be the OPT101 itself, one resistor and a decoupling capacitor. You can then use the ADC to read the output voltage of the OPT101. Maybe it is possible to sample this IC at TI...
     
    For temperature sensing just search the forum, you will find lots of different well documented approaches (including libraries and Energia sketches) here, e.g. for LM35, TMP36, DS18B20, thermocouples, etc .
  22. Like
    yosh got a reaction from TVG in Watchdog Timer for TIVA TM4C1294ncpdt   
    Just this code:
    void setup() { Serial.begin(9600); Serial.println("START"); } int i=0; void loop() { Serial.println(i++); delay(500); if(i==5) WDTCTL = 0 ; } First code segment (WDTCTL = 0) was just for information. So at least the code above should compile for G2553 ...
     
    Edit: You can have a look HERE too. The example is more TM4C specific ...
  23. Like
    yosh reacted to chicken in SHARP Memory Display Booster Pack   
    Toggling VCOM in hardware (part 3)

    As suggested by @@greeeg I tested the VCOM circuit with EnergyTrace.

    I compared two BoosterPacks. One with the TPL5100 based VCOM circuit, and one without. To maximize the impact, I display a static image while the MSP430G2553 is in LPM3. There's no software VCOM update in both scenarios.

    Theoretically that should give us something in the range of 2.5uA (2uA for the display, .5uA for the MSP430). EnergyTrace shows a mean current of 2.9uA (0.0029mA) for both scenarios, which seems close enough. The impact of the TPL5111 (37.4nA as measured previously) is smaller than the least significant digit that EnergyTrace displays (100nA resolution).

    EnergyTrace can compare a measurement to a previously saved profile. Here Reference was recorded with VCOM circuit, and Live is without:


    Results varied a bit over several runs, but the differences for total energy and battery life was always a negative impact of the VCOM circuit of 1.5% to 2.5%. Again pretty close to the theoretical impact of 2%.

    Displaying a static image for more than 8 years on a coin cell battery sounds pretty cool

    One last question remains: How do we know the hardware VCOM actually works?

    An interesting property of the SHARP displays is, that its circuit is visible on the glass and changes from light to dark gray based on voltage. Here three video i recorded with a USB microscope:

    1) VCOM toggling in software



    2) VCOM toggling in hardware


    3) No VCOM toggling


    I think we can declare this a win.
  24. Like
    yosh reacted to reaper7 in Porting Energia to MSP430G2755, 2855 and 2955?   
    @@BigVulcanDeal - please check my github https://github.com/reaper7/energia_msp430g2955_yoshpad
    This repo is for YoshPad board but You can easy adapt it for Your solution.
     
    Good luck!
  25. Like
    yosh got a reaction from reaper7 in Porting Energia to MSP430G2755, 2855 and 2955?   
    Hi
     
    Just search the forum, I only have tapatalk by hand, but porting for 2955 was already done for Energia. I (together with @@reaper7 ) e.g. used 2955s for some projects. Adaption for the other two should be straight forward.
     
    Kind regards
×
×
  • Create New...