Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by username

  1. One question about 433mhz band for ya since the FCC regs kinda confuse me on operating in 433. According to: 15.240 Operation in the band 433.5-434.5 MHz. (a) Operation under the provisions of this section is restricted to devices that use radio frequency energy to identify the contents of commercial shipping containers. Operations must be limited to commercial and industrial areas such as ports, rail terminals and warehouses. Two-way operation is permitted to interrogate and to load data into devices. Devices operated pursuant to the provisions of this section shall not be used for voice communications. Is 433 truly limited to just shipping container identification? I've seen plenty of US devices that use 433 for other purposes (b)The field strength of any emissions radiated within the specified frequency band shall not exceed 11,000 microvolts per meter measured at a distance of 3 meters. The emission limit in this paragraph is based on measurement instrumentation employing an average detector. The peak level of any emissions within the specified frequency band shall not exceed 55,000 microvolts per meter measured at a distance of 3 meters. Additionally, devices authorized under these provisions shall be provided with a means for automatically limiting operation so that the duration of each transmission shall not be greater than 60 seconds and be only permitted to reinitiate an interrogation in the case of a transmission error. Absent such a transmission error, the silent period between transmissions shall not be less than 10 seconds. I've likewise seen 433 mhz stuff in the USA transmit more frequently than once every 10 seconds, how does that work?
  2. As far as the low end market goes, just talked to a ST rep at work and it looks like there now gunning for the low end MCU market as well now with their M0s. Currently the higher end MSP430G series is perhaps slightly cheaper than the STM32F05 series. However, their newly released series, the STM32F03 will probably end up being cheaper than some of the G series at all quantities. =D There supposed goal is "a STM32 for 32 cents"... I'm curious though at what quantity is necessary for that price but it certainly sounds neat.
  3. beeeeautiful as always! Nice work robG
  4. Anyone know of any good available 433mhz cc430 dev boards? 433MHz is more ideal for range and global legality. Only "dev board" I can find available with it on it is the chronos watch which isn't exactly super handy for prototyping. Any chance you guys know of any?
  5. Woohoo, finally got my new rev in. Charge pump works flawlessly so new revs work perfectly. Built 3 of em up and tested and tested them. Works been kinda keeping me busy so I haven't been able to move as fast with getting these kits out as I would have hoped. Yup, connections of the op amp are the only little ip I retain in the project to prevent brainless cloning. If I ever get back the original investment I put into the project i'd be happy to share it. Its certainly nothing complex but it allows me to filter the thermocouple for about 20 cents total. Apart from the 3 fully assembled I should have 5 deluxe kits ready soon. Gotta re order 1 part from digikey then follow up on all my PMs.
  6. Unless i'm missing something, your code will create about a 10us pulse every 1 second. It will also sample the ec pin once every 1 second. Thats quite a ways away from what you need to do in order to get the module to work. Also, if your LED is burning, its probably not your software. Perhaps a resistor might help? Seems you need abit better understanding about how the module works and how code works in general. Code examples http://forum.43oh.com/topic/4027-hc-sr04-ultrasound-module-driver-code/ http://www.instructables.com/id/Simple-Arduino-and-HC-SR04-Example/
  7. Note.... TI made one rather interesting :crazy: memory controller that only works with a clk of 476khz to 257khz. See Section 7.3.1 of the G series usermanual. Basically your going to have to tweak the divider values of FCTL2 to get this to work consistently with your MCU as well as force block erases.
  8. Neat project & love the logo. One idea for this if you do another rev to make it smaller is to use ?crystals such as this guy: http://www.digikey.com/scripts/DKSearch/dksus.dll?Detail&itemSeq=128434587&uq=635088224022556686 Look forward to seeing it once its done =D
  9. Mybad, video should be online now hopefully. In my application, I never use my garage except for a few minutes in the morning to pull the car out and another few minutes during the evening to put it back in. Furthermore, being a hardware designer before being a software designer, at times I find it much simpler to implement power savings in hardware as opposed to software. So if you look at R3 in my schematic combined with Q1, that is a high-side switch that eliminates pretty much any power from being drawn when the room is dark and allows the voltage to pass through when there is ambient light. I don't do much if any optimizations during runtime to conserve power although I suppose I probably could in order to increase the power savings. Rough idea of my current calculations would be as follows My module would be active for 5mins per day & 10mA. Therefore the daily average current usage would be 10mA * 5mins / (60mins * 24) = 34uA. Then a 300mA-hr battery would ideally have 300mA-hr/34uA = ~360 days of operation assuming I used it 5 mins every day. I guess there is probably some room for improvement. However, I suppose instead I could use a 6V lantern battery that would have 5Ahr+ in order to get my years of operation.
  10. I explain that in my video.... sadly its about 2+ hours away from finally uploading... curse my new ISP =( . The answer is in the schematic, I use a photosensitive resistor to turn on and off power thats applied to the circuit. It will only power on when there is light inside my garage. I'll have to add in a timer feature as well in the event the garage door is left open.
  11. A Ultrasonic car stopper project I made for my garage to inform as to how far I should pull my car forward. This project uses a MSP430 launchpad and a HSC - 04 ultrasonic range module as well as a RGB LED and a photosensitive resistor. Youtube video: (uploading) Schematic here: garage_msp430.pdf Source here: (i'll clean it up in abit, was having trouble with my debugger hence all the globals) /* * Author: Nathan Zimmerman * Date: 6/22/13 * * Description: A simple program to turn on a LED with the HC-SR04 * module to turn on a LED if the module detects a object closer * than the trip point which is set by a pot * */ #include "msp430g2553.h" #include "stdint.h" //GPIO Pins #define trigger_pin BIT2 #define echo_input_pin BIT1 #define pot BIT0 #define bled BIT0 #define bled_setup P2DIR #define bled_output P2OUT #define bled_setup_on bled_setup |= bled #define bled_on bled_output |= bled #define bled_off bled_output &=~bled #define rled BIT1 #define rled_setup P2DIR #define rled_output P2OUT #define rled_setup_on rled_setup |= rled #define rled_on rled_output |= rled #define rled_off rled_output &=~rled #define gled BIT2 #define gled_setup P2DIR #define gled_output P2OUT #define gled_setup_on gled_setup |= gled #define gled_on gled_output |= gled #define gled_off gled_output &=~gled //Ultrasound parameters #define timer_period 62500 // 4 * 62500 = 250ms #define trigger_pulse (timer_period - 5) #define us_per_cm 58 #define time_to_trigger_us 450 #define distance_check 100 #define count_clk_divider 4 #define bad_measurement 40000 #define max_distance 400 //centimeters //Statics static uint16_t echo_pulse_counts = 0; static uint16_t distance_set_value =0; static uint16_t adc_val=0; static uint16_t distance=0; //Functions void clk_setup_1mhz(); void setup_trigger_pulse(); void setup_gpio_echo_interrupt(); void setup_adc_input(); uint16_t compare_distance_vs_threshold(); uint16_t get_adc_counts(); uint16_t get_distance_cm(); //Main void main(void) { clk_setup_1mhz(); setup_trigger_pulse(); setup_gpio_echo_interrupt(); setup_adc_input(); bled_setup_on; gled_setup_on; rled_setup_on; bled_off; gled_off; rled_off; while(1) { distance = get_distance_cm(); if(distance) //Check for out of range measurement { if(distance<compare_distance_vs_threshold()) { gled_off; rled_on; } else { gled_on; rled_off; } } } } } // End of main void clk_setup_1mhz() { BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; WDTCTL = WDTPW + WDTHOLD; } void setup_trigger_pulse() { P1DIR |= trigger_pin; P1OUT &= ~trigger_pin; P1SEL |= trigger_pin; CCR0 = timer_period; CCTL1 = OUTMOD_7; CCR1 = trigger_pulse; TACTL = TASSEL_2 + MC_1+ ID_2; __enable_interrupt(); } void setup_gpio_echo_interrupt() { P1DIR &= ~echo_input_pin; P1OUT &= ~echo_input_pin; P1IE |= echo_input_pin; P1IES |= echo_input_pin; P1IFG &= ~echo_input_pin; } void setup_adc_input() { ADC10CTL1 |= CONSEQ1; ADC10CTL0 |= ADC10SHT_2 + ADC10ON + MSC; ADC10AE0 |= pot; ADC10CTL0 |= ADC10SC + ENC; } uint16_t get_distance_cm() { if(echo_pulse_counts>bad_measurement) return 0; else return (echo_pulse_counts*count_clk_divider - (time_to_trigger_us))/ us_per_cm; } uint16_t get_adc_counts() { return ADC10MEM; } uint16_t compare_distance_vs_threshold() { uint32_t trip_threshold =0; adc_val=0; adc_val = get_adc_counts(); _delay_cycles(1); trip_threshold = ((unsigned long)0x190*((unsigned long)adc_val))>>10; _delay_cycles(1); return (uint16_t)(trip_threshold & 0xFFFF); } #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { echo_pulse_counts = TAR; P1IFG &= ~echo_input_pin; _delay_cycles(10); }
  12. Ya bum, you beat me to it! Very cool idea, what amp current are you hoping for? I assume this is for a quad copter ESC project? Lookin forward to seeing more and best of luck!
  13. Hey Kent, Here is what I did with the trig pin and the echo pin. The Vin pin was set to 5V on the module.
  14. Howdy all, I have a humble request for modifications to the image rules 43oh after some of my hosted images have been removed and after experiencing some quirks with our image system. My gripes with our image policy are the following: 1- Images can be reduced in quality significantly when uploaded to the forum to the point where in certain applications, they are no longer useful 2- Non users cannot see these images 3- Images are replaced by microscopic thumbnails 4- User hosted images are not allowed 1: For example, sometimes people prefer to display schematics with images for various reasons. For me personally, i'm not a fan of pdfs due to the fun viruses they can embed so I try to avoid promoting their use. Consequently, I use an image such as this (hosted via the site). Original image size: ~350kbs, new image size = ~100kbs As you can see, the values are no longer discernible even when fully zoomed in. Here is the original image: http://zallus.com/images/oven_sch.gif 2: A picture speaks a thousand words and is the heart of most projects. Allowing non users to see what were up to would be a great motivator for them to take part in this awesome community. =D right now, they don't know what they are missing out on. I try to show this site off at work but they give up as soon as they have to sign up for an account in order to see anything. 3: Understandably, thumbnails can be necessary or else certain images can stretch the form beyond its limits. Perhaps a thumbnail limit to 80% of the forums width limit would be an improvement over the current tiny thumbnails. Its nice not always having to click on the images in order to be able to view them in a decent size. Generally a 80% forum width thumbnail is more than enough. 4: I think allowing user images would be a nice compromise to the issues 1,2,3 since it doesn't cost the forum anything for users to host their own images. Granted, some images could be lost overtime. Anyhow, any consideration regarding this would be mucho appreciated!
  15. Hey timothynd28, Thanks for your interest! My new boards in the process of being shipped and will hopefully arrive in ~2weeks. Once I verify the new boards I'll be ready to ship. Should be able to easily reflow that project of yours. Once i'm ready i'll send you a PM for a paypal address. As far as stencils go, the use of stencils can be advantageous depending on your build quantity. Most of my projects have been low enough quantity that it proves easier and cheaper to simply apply the solder paste using a syringe. In which case, I would recommend the following: http://www.proto-advantage.com/store/product_info.php?products_id=1200005 . Note that both processes certainly take some practice before you can use them efficiently and without error. However, if your dead set on stencils, there are Chinese fab houses that will print stainless steel stencils for quite cheap. Never used one but if your interested in using one, i'd look there. In regards to the cheap Chinese ovens: I know it probably sounds like I have conflicting interests when I say this, but do not buy the cheap 300-400 USD T-962 ovens on ebay. I bought one for our school with funding and the thing was a piece of junk and would discolor silkscreen and burn soldermask. It was only good for about 2" by 2" boards and with anything larger, it would discolor the board in some places while not even re-flowing components that were a couple inches away. Also it has a noisy fan and took well over 10 minutes per board. Needless to say i'm not a fan of those and would recommend you build your own using an IR oven.
  16. Looks pretty neat, although i'd be quite surprised if they could manage 0.5mm pitch with that. Not quite sure 3D printing is the correct approach for stencils. I'd be pretty nice if someone made a nice cheap DIY laser etcher for stencils. =D
  17. Howdy all, Thanks for the interest in the booster pack. Regrettably I had to ship out for a new PCB because my lovely 3-32V relays are not quite.... 3-32V. They were more like 5V @ 10mA which becomes a problem when trying to power it a course with the launchpad. Consequently I created a cheap charge pump to boost the voltage such that the launchpad would work without an additional power supply. Those boards will probably be here in another 4 weeks. My apologies for the delay.
  18. Going to have to look into that.... I checked it on the my rigol 1052 and the pulse was there which is why I concluded it was the MSP430s fault. Granted, its no perfect square pulse nor is it rail to rail. Going to have to use a level shifter as opposed to a resistor divider and see if that fixes it. I'll have to try that out as well. According to the datasheets that i've seen, some of these are 5V only modules. Perhaps i'm wrong
  19. Interesting find, although not too surprising. For example, you can also apply over 450V to just about any 1210 ceramic cap and it will survive and "work" for quite awhile regardless of its voltage rating. Datasheet parameters are generally "typical" and "recommended" values. True failure points for components are generally not listed even in the "absolute max rating" sections of datasheets. Its all about reliability, accuracy, and performance over temperature. My question would be @ 16MHz & 2.2V, is the frequency truly 16MHz?
  20. Hey all, Heres some code I wrote for an upcoming project which uses an ultrasound range detector. It uses a GPIO falling edge interrupt to determine time of echo pulse and uses a capture/compare pin w/ timer 1A for a ~100us pin trigger. The module is 5V so I power that off a test point on the launchpad and I use a open drain configuration bjt to get my 5V GPIO output for the trigger pin, then I use a resistor divider for the echo input. Acouple drawbacks of using these modules: -Distance measurement is relative to the module you buy -Max sampling speed is relative to the module you buy Code drawback: -Apparently the MPS430G2553 GPIO falling edge interrupts can't detect short pulses so this doesn't work for super close proximity to the sensor. /* * Author: Nathan Zimmerman * Date: 6/22/13 * * Description: A simple program to turn on a LED with the HC-SR04 * module if the module detects a object closer than 100 centimeters * * */ #include "msp430g2553.h" #include "stdint.h" //GPIO Pins #define trigger_pin BIT1 #define echo_input_pin BIT3 #define led BIT0 //Ultrasound parameters #define timer_period 62500 // 4 * 62500 = 250ms #define trigger_pulse (timer_period - 10) #define us_per_cm 14.5 // Depends on module #define time_to_trigger_us 450 #define distance_check 100 //centimeters //Statics static uint16_t echo_pulse_counts = 0; //Functions void clk_setup_1mhz(); void setup_trigger_pulse(); void setup_gpio_echo_interrupt(); uint16_t get_distance_cm(); //Main void main(void) { clk_setup_1mhz(); setup_trigger_pulse(); setup_gpio_echo_interrupt(); P1DIR |= led; P1OUT &= ~led; while(1) { if (get_distance_cm() < distance_check) { P1OUT |= led; } else { P1OUT &= ~led; } } } // End of main void clk_setup_1mhz() { BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; WDTCTL = WDTPW + WDTHOLD; } void setup_trigger_pulse() { P2DIR |= trigger_pin; P2OUT &= ~trigger_pin; P2SEL |= trigger_pin; TA1CCR0 = timer_period; TA1CCTL1 = OUTMOD_7; TA1CCR1 = trigger_pulse; TA1CTL = TASSEL_2 + MC_1+ ID_2; __enable_interrupt(); } void setup_gpio_echo_interrupt() { P1DIR &= ~echo_input_pin; P1OUT &= ~echo_input_pin; P1IE |= echo_input_pin; P1IES |= echo_input_pin; P1IFG &= ~echo_input_pin; } uint16_t get_distance_cm() { return (echo_pulse_counts - time_to_trigger_us)/ us_per_cm; } #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { echo_pulse_counts = TA1R; P1IFG &= ~echo_input_pin; }
  21. Most certainly an IR oven if you can find one. The IR ovens I designed for NDSU used a "Black-Decker-FC300-Infrawave-Countertop-Oven". Its a nice IR oven with powerful elements. Not sure who to pick for a distributor but a google search yielded these: http://www.overstock.com/Home-Garden/Black-Decker-FC300-Infrawave-Countertop-Oven/3206156/product.html http://www.cheapgoodsz.com/black-decker-black-decker-fc300-toaster-oven-p-14097.html The walmart model that I bought appears to be no longer in stock anywhere. Sadly the IR ovens didn't quite have the commercial appeal to motivate alot of companies to make them. However, they are still darn useful.
  22. Hey all, thanks for the comments. Video added, source will be added later if any interest.
  23. Howdy L.R.A, In that case, I'd highly recommend learning about interrupts as soon as possible for they can greatly improve and simplify writing programs. Check it out on youtube and you will find some nice videos explaining the basics of interrupts. No assembly knowledge really needed (although it is certainly useful ), just C.
  • Create New...