Jump to content
43oh

Fmilburn

Members
  • Content Count

    618
  • Joined

  • Last visited

  • Days Won

    81

Posts posted by Fmilburn

  1. 3 hours ago, chicken said:

    That's a nice mock-up. Took me a while to realize that the keypad and display just sit on top of a tin box.

    I plan on going ahead and fitting it all together - it is the quickest way for me to put something together that won't fall apart and demonstrate the concept. 

  2. Receiver Prototype Working

    After some stop and start I am back on this project and making progress.  Here is the latest iteration:

    Working_Receiver_Prototype.thumb.jpg.59987fc9126468f855b2bb63fa9dacbf.jpg

    The wearable IR receiver and WS2812 controller at bottom runs off of a single 2032 battery.  With only one LED lit at a time it is capable of easily running for an hour since current is  down in the 10-15 mA range.  It also transmits and receives with high reliability at 10 meters with two IR LEDs as shown. The transmitter is battery driven at the moment. I have a large number of IR LEDs on order so as to build a transmitter with a larger array of LEDs.

    It uses 2400 Baud UART for transmission.  The transmitter code was written with CCS and is done in software with two timers.  One timer maintains 2400 baud. To transmit a 1 bit the second timer is turned on and outputs a 38 KHz square wave over the IR LEDs until time for the next bit.  For a 0 bit nothing is transmitted.  The LEDs are rated for 100 mA each continuous but are being driven here at about 70 mA each with a NPN transistor hidden behind the jumper wires on the breadboard. 

    On the receiver side the IR receiver turns the transmission into input that can be directly input into the UART peripheral on the MSP430G2553.  A single byte is used to select the color and display mode of the WS2812 LEDs.  The driver for the WS2812s uses the SPI method which I have posted elsewhere.  There are some areas for improvement in the receiver PCB which I will incorporate in the next board spin but everything is working.

    A feature of this approach is that the receiver uses Energia with no tricks and even works on an Arduino Uno without modification other than pin changes.

    For the transmitter, I am still thinking about how best to implement.  One approach would be to continue using a microcontroller such as the MSP430F5529 I am currently using with a keypad and display.  Something like this mock-up:

    Mockup_Transmitter.thumb.jpg.4ac15baff3830cd7091c2d63c7372966.jpg

    Alternatively, I could use something like a Raspberry Pi 3 and use Python to give Bluetooth LE access control over a phone.

  3. Mine is Rev 1.6 but I should point out that RX,TX only ceased working when I accidently applied 5 volts to a pin - it worked fine before that.  I have several F5529 LaunchPads and all were working on receipt  

    Why use a F5529?   The LaunchPad itself Costs $3 more but it is faster, has more memory, more and better peripherals (eg faster UART and higher resolution ADC), has USB, etc.   It is easy to use if you are familiar with the G2553 and need the features.

     

  4. bad_rx_tx.jpg.580e120ead62a8a7c3c9da13ecf68780.jpg

    A while back I damaged two pins on this board and dutifully marked it on the back.  Unfortunately it was only visible from the back.  Some time later I picked it up and was trying to use it unsuccessfully. After tearing my hair out for a while I eventually turned it over and noticed the markings.  Now it is marked front and back.

  5. PUSH is not a variable in the example / library that I suggested above so you must  not be following the suggestion.  In your first post it is not defined.  It needs something like #define PUSH xxx where xxx is a pin number / designation.

    Doing a search for "DHT does not name a type" on the internet will give multiple hits and solutions to the problem so you apparently did not do the search as suggested.  The library is probably installed incorrectly.

  6. As stated above, I tried the library that I linked above with a TM4C123 / DHT22 the same day I made the post and it worked.  Use the example code that comes with the library.  I was probably using Energia V17.  Do a search with google with the error message text if you want to understand what it means. 

  7. @energia

    I just tried compiling the nRF24L01 library in V18 and got the following error:

    In file included from C:\Users\Frank\Documents\Energia\MSP-EXP430F5529\Enrf24_RXdemo\Enrf24_RXdemo.ino:16:0:
    
    C:\Users\Frank\Documents\Energia\libraries\Enrf24/Enrf24.h:32:17: fatal error: SPI.h: No such file or directory
    
    compilation terminated.
    
    exit status 1
    Error compiling for board MSP-EXP430G2553LP.

    @ghjkl67

    You should not have to add SPI.  Try using Energia V17 as I suggested above.  You will find it here under previous releases:  http://energia.nu/download/  Energia V18 still seems to have some bugs. I just flashed the sample code on two G2553s with nRF24L01s using Energia V17 and they are working fine.

    EDIT:  I would remove the old versions of Energia before loading a new V17.

  8. How do you know it works as a receiver if you don't have anything working as a transmitter - what are you receiving without a transmission?  Have you gone back and double checked that one of my suggestions isn't the cause?  I can assure you that the library works when connected properly with the nRF24L01+ modules I have and a G2553 LaunchPad.

    The datasheet for the nRF24L01+ has all the details and can be found with a google search - it uses SPI.  SPI keeps the chip select pin high until it is ready to transmit and then pulls it low.  It then returns to high following transmission.  The code for the library is in Enrf24.cpp.  Look inside at the code, e.g.

    void Enrf24::_writeReg(uint8_t addr, uint8_t val)
    {
      digitalWrite(_csnPin, LOW);
      rf_status = SPI.transfer(RF24_W_REGISTER | addr);
      SPI.transfer(val);
      digitalWrite(_csnPin, HIGH);
    }

    It pulls it low before transmitting then returns to high.

    One more suggestion - if you do a search on the internet you will find various people have found this helps:  https://forum.arduino.cc/index.php?topic=376068.0  I include a decoupling capacitor in my designs and normally power the radio from a battery.  Nonetheless, I have also had success powering off of the LaunchPad.

  9. I have used this library with both custom MSP430G2553 boards and the LaunchPad.  Hardware setup is the same whether receiver or transmitter.  Among the possible problems and solutions are the following:

    • Bad nRF24 - the very first one I bought was bad
    • damaged pin on MSP430 - don't apply 5V to a pin - this is a 3V3 device
    • nRF24 wired wrong or wrong pin in software - easy to do
    • poor transmission between modules - too far apart, object in between, or even too close together.
    • modules set on different channel or other incompatibility in way software is set up

    In general though, I  have found the library easy to use and reliable.  I suggest you concentrate on getting the examples working first without any modification.  I haven't tried it with Energia V18, you might try Energia V17.  The following are the pins I normally use:

      nRF pin  pin#    Std color   F5529LP pin   G2553 pin
      -------  ----    ---------   -----------   ---------
      Vcc         1    Red         3V3           3V3      
      GND        20    Black       GND           GND      
      CSN         9    Yellow      P4.2          P2_1     
      CE          8    Green       P2.7          P2_0     
      MOSI       15    White       P3.0          P1_7      
      SCK         7    Orange      P3.2          P1_5      
      IRQ        10    Brown       P4.1          P2_2      
      MISO       14    Purple      P3.1          P1_6     

    I use the same wire color every time to ease checking that the connection is correct.

    If CE is not going high then try setting up a simple pin toggling program (e.g. the "hello world" pin wiggling and check with multimeter) to see if it works without the library.  This will tell you if the CE pin on the MSP430 has been damaged.  If so, changing to a different pin will fix it until you get a new $2 chip.

    EDIT:  Some multimeters can be quite slow to update.  When toggling pins to see if they are reaching a full on state, keep the toggling frequency to 1 Hz so the meter can keep up.  For monitoring an application like the one above an oscilloscope or logic analyzer is a better tool.

  10. 15 hours ago, Dipendra said:

    I want to interface DHT22 with TIVAC (tm4c123). Can anyone help me with the code.My code is not working.

    DHT22_energia.ino

    You haven't provided enough information to get help....  Most importantly you have not stated what about the code is not working.  Is it failing to compile?  Is it giving bad results?  Is it failing to print?  You haven't stated which library you are using, etc...  So, anyone attempting to answer your problem would just be guessing.

    Try using the Adafruit library without changing anything and have it print directly to the serial monitor: https://github.com/adafruit/DHT-sensor-library  Use pin 2 (PB5) on the LaunchPad.  I just tried it on my TM4C123 and it worked.  Once that is working, try adding in the code for the LCD.

  11. Hi @jBrizzle and welcome to 43oh...

    Maybe use a little module?  Depending on your needs in terms of recording length and number of recordings that might work.

    I have used these although not from this vendor:  https://www.amazon.com/Sound-Voice-Recording-Playback-module/dp/B018Q6TAEQ/ref=sr_1_2?ie=UTF8&qid=1489447073&sr=8-2&keywords=isd1820

    They are cheap and work for a single recording but the amplification and quality isn't great.  They can be controlled with a microcontroller.

    Maybe this:  http://processors.wiki.ti.com/index.php/Audio_Capacitive_Touch_BoosterPack_Hardware

    I don't have experience with it but it looks interesting.  I usually have a look at what Sparkfun and Adafruit are doing as well, even if I decide to make it myself.

  12. You appear to have taken on a project which is beyond your current capabilities.  If you are a student, consider going to your professor/instructor for help or getting a simpler project.  There are too many problems with your code as it stands to offer help in this forum - at least for me to offer help.

  13. Hi @@osmanfish and welcome to 43oh,

     

    Irritating isn't it?  It can be caused by several things.  It can happen with the MSP430G2 and Energia if you are using serial print and close the serial monitor down while the sketch is printing.  This does not seem to happen with other LaunchPads.  Try unplugging the LaunchPad at the computer and then plug it back in.  You may have to try uploading one or more times to get it working again.  Also, avoid shutting down the serial window.  Flash (upload) the target chip without shutting the serial monitor.

     

    If this does not seem to be your problem then google "Could not find MSP-FET430UIF on specified COM port (error = 57)" and you will find a number of other possible causes.  Look on the TI e2e site.

  14. Hi @@SheldonMaciel,

     

    I don't have a working CC3200, but I do have a CC3100.  I tried it just now with a F5529 using Energia V18 and the SimpleWebServerWifi example - it worked fine.  You can try the following:

    • make sure the jumper is in place as shown on the pin map for Energia
    • revert back to the former version of Energia and/or CCS and try what worked before
  15.  

    There is already a sticky on the Energia forums asking for these very specific details

    I suppose this is asking for quite a bit  :rolleyes: .  But for those who really are interested in learning and getting a response to questions the following is a good link that also applies here:  https://e2e.ti.com/group/helpcentral/b/weblog/archive/2015/07/17/5-tips-for-getting-quick-help-on-e2e

     

    It might be this can only be accessed if you are a member of e2e - not sure.

  16. I modified the code in the link above a bit and wrote a new example to demonstrate retrieval of the date and time as well as a few other features. It was not extensively tested.  To use, post all of the files into a folder called RTC_F5529 where Energia can reach it.  It is posted here:  https://github.com/fmilburn3/RTC_F5529

     

    Real credit for the work belongs to the original author.

  17. Have a look at this post:  http://forum.43oh.com/topic/5421-energia-library-rtc-a/

     

    I haven't used it in a project, but the post states that it runs with the F5529.  It is not clear what your final objective is and whether you are trying any of this code yourself - try to get it working yourself first.  If you have specific problems then post your objective, the code and the issue / error message you are getting.  The original author may be willing to help and I will help as time permits.  I may try running it myself this evening.

  18. I seem to remember someone posting a RTC example for the F5529 in Energia on 43oh a while back.  In any event, as Terje says, the F5529 has a RTC module and there is driverlib support which can also be included in Energia.  See these examples, one of which has the RTC module:  https://github.com/fmilburn3/MSP430F5529_driverlib_examples

     

    The advantage of an external clock like the one Terje linked to is that they have a coin cell.  Arduino code is usually easily ported.  For that matter, MSP430 code like that linked by chicken is pretty easy to port between variants.

  19.  

    Has anybody else with an MSP430 (even better still the FR5969 variant) managed to get serial at 9600 baud to be read successfully by the device?

    Yes, of course.  When you ask for advice, always specify the compiler/version you are using as well as the LaunchPad.  Also, describe or post a photo of the circuit where it makes sense. Fully describe the problem and where possible give sufficient information for others to duplicate the problem.  There is a button below posts in 43oh where you can thank others when you get help.

     

    The following was done in Energia V17.  First, set up a source for Serial1.  I used a F5529.  TX for Serial1 is on pin 4.  Here is the code, it outputs the 255 characters  on one line and then starts over:

    void setup()
    {
      Serial1.begin(9600);
    }
    
    void loop()
    {
      int i;
      for(i=0; i<255; i++){
        Serial1.write(i);
        delay(100);
      }
    }
    

    Second, set up a receiver, in this case a FR5969.  RX for Serial1 is on pin3 and it is attached to pin 4 (TX) on the F5529.  I am powering both LaunchPads off of the FR5969.  Be sure to place a ground wire between the two LaunchPads.

    post-45284-0-38357200-1487886429_thumb.jpg

     

    Here is the code for the receiver:

    void setup() {
      // initialize both serial ports:
      Serial.begin(9600);
      Serial.println("Started...");
      Serial1.begin(9600);
      
    }
    
    void loop() {
        if (Serial1.available()) {
          int inByte = Serial1.read();
          Serial.write(inByte); 
        }
    }
    

    Run and the output will look something like this....

    post-45284-0-17824500-1487886079_thumb.jpg

     

×
×
  • Create New...