Jump to content
43oh

StupidPig

Members
  • Content Count

    15
  • Joined

  • Last visited

Reputation Activity

  1. Like
    StupidPig got a reaction from roadrunner84 in aiiiiiiiiiiii   
    Yup, my bad, erasing will get the bit as 1 rather than 0, and write will only able to get a bit become 0. When I type I just assuming "erase" means 0. Anyway, the whole point is about erase is needed before write.
  2. Like
    StupidPig reacted to cde in APA102 - simple to drive RGB leds   
    You might have better luck running the msp430 at 3.6V. That tends to near the typical VIH of a 5V ttl device (VCC * 0.7).
  3. Like
    StupidPig got a reaction from GeekDoc in 2.2" Color LCD Booster Pack with Touch   
    @@PTB, Yeah this screen is great. It is strange that I just use the same (195,1859) range as the original lib y axis range for the x axis, and it works great, let me try the (156,1874) range tonight. And I think I just take it one step further by supporting the touch with all 4 screen orientation.
     
    BTW, here is what I used the screen with...... So many threads about making the MSP430 reflow oven kit, but almost none of them available for purchase, so I just got to make my own.
     

  4. Like
    StupidPig reacted to Blurred Talon in MSP430/TLC5940 Based LED Sequencer   
    I'm in the process of making some LED tail lights for my car. I'd like to use an MSP430/TLC5940NT combo to control not only PWM brightness but also some interesting sequencing for show purposes.
    I'll will do my best to explain everything. I'm not sure where to start in designing what I want so I hope posting this will get someone interested in helping me out.
     
    I already have some MSP430G2331s and a ton of TLC5940NTs for this project.
    The LED strings already have an inline resistor and will be powered by a voltage regulator (Sharp 9V LDO).
    Car has seperate brake/turn signals on the rear so the rear signals do not need PWM brightness control.
     
    First let's start with the brake lights.
    Here's a picture of the tail light boards, I'm still working on finalizing the final board so there is 5 in total.

     
    Back of a board.

     
    There's 3 LEDs per string, so I was thinking of having each of these being 1 channel on the sequencer. I could however tie two (on above the other) together with a jumper if it will make things easer.
    Using my current idea for the channels I'm looking at this for a channel break down.
    Board 1 - 34 Channels
    Board 2 - 18 Channels
    Board 3 - 16 Channels
    Board 4 - 10 Channels
    Board 5 - 16 Channels
     
    Total of 94 channels so 6 TLC5940s per side.
     
    There is also a center section which I want to light up, I'm in the process of redesigning the boards for this part.
    Here's a picture of my previous design of the boards to give you an idea.

     
    Channel break down for this.
    Board 1 - 12
    Board 2 - 9
    Board 3 - 5
    Board 4 - 5
    Board 5 - 5
    Board 6 - 9
    Board 7 - 12
     
    TLC5940NT count - 4
     
    Uc Functions for the Brake Lights
    - All uCs of the brake light must communicate with each other for the sequencing
    - Must take brake and marker signals from the OEM wiring.
    - PWM brightness control for the marker lights
    - Multiple show sequences (Cylon scan, Knight Rider, Strobe, etc)
    - Possible - G sensor for strobe before solid on under panic braking
    - Possible - Bluetooth connection to change between sequences
    - Some sort of display up front so I know what the tails are doing
     
    Rear Turn Signals
     

     
    Channel count
    Board 1 - 13
    Board 2 - 11
    Board 3 - 16
     
    Total of 40 channels, 3 TLC5940s.
     
    uC Functions for Rear Tails
    - must take turn signal input from OEM wiring
    - sequencial turn signals
    - No marker so they operate at full brightness
    - Multiple show funcntions
    - Possible - Bluetooth connection to change between sequences
    - Some sort of display up front so I know what the tails are doing
     
    Front Turn Signals/Markers (Headlight and bumper)
     
    Bumper markers

     
    Board 1 - 13 Channels
     
    1 TLC5940 per side
     
    Headlight boards

     
    Board 1 - 15 channels
     
    1 TLC5940 per side
     
    uC Functions for Front Markers/Turns
    - Must take turn and marker signals from the OEM wiring.
    - PWM brightness control for the marker lights
    - Multiple show sequences (Cylon scan, Knight Rider, Strobe, etc)
    - Possible - Bluetooth connection to change between sequences
    - Some sort of display up front so I know what the boards are doing
     
    Last set of boards
     
    Name Plate boards
     
    The car says the name across the back (Talon). I've made these boards to light up these letters.

     
    I want 1 board to be 1 channel, again inline resistors and powered by a seperate voltage regulator.
     
    uC functions for name plate boards
    - PWM brightness control
    - Take factory marker input
    - Fade on/off
    - Multiple Show functions (Spell name, Flicker before them come on, etc)
     
    I think that is it. I hope someone is able to help me out in figuring out/designing this, I realize it's quite the under taking but I want to make it work.
    Thanks in advance.
  5. Like
    StupidPig got a reaction from PTB in Yet another DIY reflow oven implementation   
    After using a hot air station for my smd work for about two years, I think it is time to upgrade my tools to increase my productivity, so I'm looking for adding a reflow oven to my workbench. I searched the web and found many threads about DIY reflow oven, and there are a couple kits looks pretty neat, but somehow all the kits are no longer available for purchase, so I just have to make my own.
     
    First is the oven. I brought a cheap one from Amazon. Well, it's cheap, but already better than the one I has in my kitchen.

     
    Then I start working on the controller. Originally I was planning to use Nokia 5110 LCD for the display, but just when I'm going to start the project, I received an email from the store stating that RobG's 2.2" Touch LCD is back in stock! What a prefect timing! So, my controller end up using a MSP430G2553 + RobG's 2.2" touch LCD.
     

     
    The board under the LCD is just simple contains the socket for the 2553, a 3.3v regulator, and headers for the LCD, relay, and thermocouple sensor breakout board. The power input is via a mini USB port, and there is also a NPN transistor to power the SSR relay using 5V instead of 3.3V, as I think I read from the web that the SSR i brought form ebay is not quite working with 3.3V trigger.
     
     
    The thermocouple breakout board is using MAX31855, brought from Adafruit. I brought the type K thermocouple from them too.
     

     
    Time to put everything together. the front panel of the oven control, the temperature selection knob, and the mode selection knob is removed. I keep the bottom timer knob and use it as the main power switch. The SSR is mounted onto a big heatsink, then put on the bottom of the oven. A hole is drilled to route the thermocouple into the oven chamber. A cheap USB charger is also put inside the oven to used as the power supply, but the temperature keep reporting error occasionally when using that charger, so it end up goes to the rubbish bin. No more error when I use my LG phone charger.
     

     

     
    I did my first run and so far looks good. The controller right now just sit on top of the oven, and I'll need to comes up with a way to mount it on the front of the oven panel area.
     
     


  6. Like
    StupidPig got a reaction from Automate in Yet another DIY reflow oven implementation   
    After using a hot air station for my smd work for about two years, I think it is time to upgrade my tools to increase my productivity, so I'm looking for adding a reflow oven to my workbench. I searched the web and found many threads about DIY reflow oven, and there are a couple kits looks pretty neat, but somehow all the kits are no longer available for purchase, so I just have to make my own.
     
    First is the oven. I brought a cheap one from Amazon. Well, it's cheap, but already better than the one I has in my kitchen.

     
    Then I start working on the controller. Originally I was planning to use Nokia 5110 LCD for the display, but just when I'm going to start the project, I received an email from the store stating that RobG's 2.2" Touch LCD is back in stock! What a prefect timing! So, my controller end up using a MSP430G2553 + RobG's 2.2" touch LCD.
     

     
    The board under the LCD is just simple contains the socket for the 2553, a 3.3v regulator, and headers for the LCD, relay, and thermocouple sensor breakout board. The power input is via a mini USB port, and there is also a NPN transistor to power the SSR relay using 5V instead of 3.3V, as I think I read from the web that the SSR i brought form ebay is not quite working with 3.3V trigger.
     
     
    The thermocouple breakout board is using MAX31855, brought from Adafruit. I brought the type K thermocouple from them too.
     

     
    Time to put everything together. the front panel of the oven control, the temperature selection knob, and the mode selection knob is removed. I keep the bottom timer knob and use it as the main power switch. The SSR is mounted onto a big heatsink, then put on the bottom of the oven. A hole is drilled to route the thermocouple into the oven chamber. A cheap USB charger is also put inside the oven to used as the power supply, but the temperature keep reporting error occasionally when using that charger, so it end up goes to the rubbish bin. No more error when I use my LG phone charger.
     

     

     
    I did my first run and so far looks good. The controller right now just sit on top of the oven, and I'll need to comes up with a way to mount it on the front of the oven panel area.
     
     


  7. Like
    StupidPig got a reaction from yosh in Yet another DIY reflow oven implementation   
    After using a hot air station for my smd work for about two years, I think it is time to upgrade my tools to increase my productivity, so I'm looking for adding a reflow oven to my workbench. I searched the web and found many threads about DIY reflow oven, and there are a couple kits looks pretty neat, but somehow all the kits are no longer available for purchase, so I just have to make my own.
     
    First is the oven. I brought a cheap one from Amazon. Well, it's cheap, but already better than the one I has in my kitchen.

     
    Then I start working on the controller. Originally I was planning to use Nokia 5110 LCD for the display, but just when I'm going to start the project, I received an email from the store stating that RobG's 2.2" Touch LCD is back in stock! What a prefect timing! So, my controller end up using a MSP430G2553 + RobG's 2.2" touch LCD.
     

     
    The board under the LCD is just simple contains the socket for the 2553, a 3.3v regulator, and headers for the LCD, relay, and thermocouple sensor breakout board. The power input is via a mini USB port, and there is also a NPN transistor to power the SSR relay using 5V instead of 3.3V, as I think I read from the web that the SSR i brought form ebay is not quite working with 3.3V trigger.
     
     
    The thermocouple breakout board is using MAX31855, brought from Adafruit. I brought the type K thermocouple from them too.
     

     
    Time to put everything together. the front panel of the oven control, the temperature selection knob, and the mode selection knob is removed. I keep the bottom timer knob and use it as the main power switch. The SSR is mounted onto a big heatsink, then put on the bottom of the oven. A hole is drilled to route the thermocouple into the oven chamber. A cheap USB charger is also put inside the oven to used as the power supply, but the temperature keep reporting error occasionally when using that charger, so it end up goes to the rubbish bin. No more error when I use my LG phone charger.
     

     

     
    I did my first run and so far looks good. The controller right now just sit on top of the oven, and I'll need to comes up with a way to mount it on the front of the oven panel area.
     
     


  8. Like
    StupidPig got a reaction from bluehash in Yet another DIY reflow oven implementation   
    After using a hot air station for my smd work for about two years, I think it is time to upgrade my tools to increase my productivity, so I'm looking for adding a reflow oven to my workbench. I searched the web and found many threads about DIY reflow oven, and there are a couple kits looks pretty neat, but somehow all the kits are no longer available for purchase, so I just have to make my own.
     
    First is the oven. I brought a cheap one from Amazon. Well, it's cheap, but already better than the one I has in my kitchen.

     
    Then I start working on the controller. Originally I was planning to use Nokia 5110 LCD for the display, but just when I'm going to start the project, I received an email from the store stating that RobG's 2.2" Touch LCD is back in stock! What a prefect timing! So, my controller end up using a MSP430G2553 + RobG's 2.2" touch LCD.
     

     
    The board under the LCD is just simple contains the socket for the 2553, a 3.3v regulator, and headers for the LCD, relay, and thermocouple sensor breakout board. The power input is via a mini USB port, and there is also a NPN transistor to power the SSR relay using 5V instead of 3.3V, as I think I read from the web that the SSR i brought form ebay is not quite working with 3.3V trigger.
     
     
    The thermocouple breakout board is using MAX31855, brought from Adafruit. I brought the type K thermocouple from them too.
     

     
    Time to put everything together. the front panel of the oven control, the temperature selection knob, and the mode selection knob is removed. I keep the bottom timer knob and use it as the main power switch. The SSR is mounted onto a big heatsink, then put on the bottom of the oven. A hole is drilled to route the thermocouple into the oven chamber. A cheap USB charger is also put inside the oven to used as the power supply, but the temperature keep reporting error occasionally when using that charger, so it end up goes to the rubbish bin. No more error when I use my LG phone charger.
     

     

     
    I did my first run and so far looks good. The controller right now just sit on top of the oven, and I'll need to comes up with a way to mount it on the front of the oven panel area.
     
     


  9. Like
    StupidPig got a reaction from bluehash in 2.2" Color LCD Booster Pack with Touch   
    @@PTB, Yeah this screen is great. It is strange that I just use the same (195,1859) range as the original lib y axis range for the x axis, and it works great, let me try the (156,1874) range tonight. And I think I just take it one step further by supporting the touch with all 4 screen orientation.
     
    BTW, here is what I used the screen with...... So many threads about making the MSP430 reflow oven kit, but almost none of them available for purchase, so I just got to make my own.
     

  10. Like
    StupidPig got a reaction from PTB in 2.2" Color LCD Booster Pack with Touch   
    @@PTB, Yeah this screen is great. It is strange that I just use the same (195,1859) range as the original lib y axis range for the x axis, and it works great, let me try the (156,1874) range tonight. And I think I just take it one step further by supporting the touch with all 4 screen orientation.
     
    BTW, here is what I used the screen with...... So many threads about making the MSP430 reflow oven kit, but almost none of them available for purchase, so I just got to make my own.
     

  11. Like
    StupidPig got a reaction from RobG in 2.2" Color LCD Booster Pack with Touch   
    @@PTB, Yeah this screen is great. It is strange that I just use the same (195,1859) range as the original lib y axis range for the x axis, and it works great, let me try the (156,1874) range tonight. And I think I just take it one step further by supporting the touch with all 4 screen orientation.
     
    BTW, here is what I used the screen with...... So many threads about making the MSP430 reflow oven kit, but almost none of them available for purchase, so I just got to make my own.
     

  12. Like
    StupidPig got a reaction from RobG in 2.2" Color LCD Booster Pack with Touch   
    OK, I made some change to the Energia lib to get my v4 board work as what I want. Not sure what's the best way to get the lib updated, but here is what I changed, and may be someone more experienced on make lib can include that to the lib.
     
    LCD22_Touch.h add the following:
      // orientation #define ORIENTATION_VERTICAL 0 #define ORIENTATION_HORIZONTAL 1 #define ORIENTATION_VERTICAL_ROTATED 2 #define ORIENTATION_HORIZONTAL_ROTATED 3   class LCD22_Touch { public:     void clear(uint8_t x1, uint8_t y1, uint8_t w, uint8_t h); }   LCD22_Touch.cpp add/change the following   void LCD22_Touch::setArea(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2) {     if(_orientation == 0 || _orientation == 2)      {         writeRegister(ILIGRAMHEA, x2 + LCD_OFFSET_WIDTH);         writeRegister(ILIGRAMHSA, x1 + LCD_OFFSET_WIDTH);              writeRegister(ILIGRAMVEA, y2 + LCD_OFFSET_HEIGHT);         writeRegister(ILIGRAMVSA, y1 + LCD_OFFSET_HEIGHT);              writeRegister(ILIGRAMADDRX, x1 + LCD_OFFSET_WIDTH);         writeRegister(ILIGRAMADDRY, y1 + LCD_OFFSET_HEIGHT);      write(_commandLCD, ILIWRDATA);     }     else     {         writeRegister(ILIGRAMHEA, y2 + LCD_OFFSET_WIDTH);         writeRegister(ILIGRAMHSA, y1 + LCD_OFFSET_WIDTH);              writeRegister(ILIGRAMVEA, x2 + LCD_OFFSET_HEIGHT);         writeRegister(ILIGRAMVSA, x1 + LCD_OFFSET_HEIGHT);              writeRegister(ILIGRAMADDRX, y1 + LCD_OFFSET_WIDTH);         writeRegister(ILIGRAMADDRY, x1 + LCD_OFFSET_HEIGHT);              write(_commandLCD, ILIWRDATA);     } }   void LCD22_Touch::clear() {     if(_orientation == 0 || _orientation == 2)          clear(0, 0, LCD_WIDTH, LCD_HEIGHT);     else         clear(0, 0, LCD_HEIGHT, LCD_WIDTH); }   void LCD22_Touch::clear(uint8_t x, uint8_t y, uint8_t w, uint8_t h) { setArea(x, y, x+w-1, y+h-1);          uint16_t total = w * h;     for (uint16_t k = 0; k < total; k++) {         write(_dataLCD, 0x00);         write(_dataLCD, 0x00);     } }   bool LCD22_Touch::getTouch(uint16_t &x, uint16_t &y, uint16_t &z) {   uint16_t x0, y0, z0, z1, z2;   uint8_t a, b;     // Need for cleaning screen SPI communication for LM4F #if defined(__LM4F120H5QR__)       point(0, 0); #endif     delay(10);   digitalWrite(_pinTouchChipSelect, LOW);   #ifdef HARDWARE_SPI   SPI.transfer(TOUCH_Z1 + 0x08);   // 8-bit   a = SPI.transfer(0x00);   b = SPI.transfer(0x00); #else   shiftOut(_pinSerialData, _pinSerialClock, MSBFIRST, TOUCH_Z1 + 0x08);   a = shiftIn(_pinSerialData, _pinSerialClock, MSBFIRST);   b = shiftIn(_pinSerialData, _pinSerialClock, MSBFIRST); #endif   z1 = a;    #ifdef HARDWARE_SPI   SPI.transfer(TOUCH_Z2 + 0x08);   // 8-bit   a = SPI.transfer(0x00);   b = SPI.transfer(0x00); #else   shiftOut(_pinSerialData, _pinSerialClock, MSBFIRST, TOUCH_Z2 + 0x08);   a = shiftIn(_pinSerialData, _pinSerialClock, MSBFIRST);   b = shiftIn(_pinSerialData, _pinSerialClock, MSBFIRST); #endif   z2 = 0x7f - a;     z0 = z1 + z2;   z = z0;   #ifdef HARDWARE_SPI   SPI.transfer(TOUCH_X + 0x00); // 12-bit   a = SPI.transfer(0x00) ;   b = SPI.transfer(0x00); #else   shiftOut(_pinSerialData, _pinSerialClock, MSBFIRST, TOUCH_X + 0x00);   a = shiftIn(_pinSerialData, _pinSerialClock, MSBFIRST);   b = shiftIn(_pinSerialData, _pinSerialClock, MSBFIRST); #endif   x0 = (a << 8 | >> 4;   #ifdef HARDWARE_SPI   SPI.transfer(TOUCH_Y + 0x00); // 12-bit   a = SPI.transfer(0x00) ;   b = SPI.transfer(0x00); #else   shiftOut(_pinSerialData, _pinSerialClock, MSBFIRST, TOUCH_Y + 0x00);   a = shiftIn(_pinSerialData, _pinSerialClock, MSBFIRST);   b = shiftIn(_pinSerialData, _pinSerialClock, MSBFIRST); #endif   y0 = 2047 - ((a << 8 | >> 4);     digitalWrite(_pinTouchChipSelect, HIGH);     if (z>TOUCH_TRIM) {     //x0 = check(x0, 311, 1632);     x0 = check(x0, 195, 1859);     y0 = check(y0, 195, 1859);       switch (_orientation)     {     case 1:       {         y = map(x0, 195, 1859, LCD_WIDTH, 0);         x = map(y0, 195, 1859, 0, LCD_HEIGHT);         break;       }     case 2:       {         x = map(x0, 195, 1859, LCD_WIDTH, 0);         y = map(y0, 195, 1859, LCD_HEIGHT, 0);         break;       }     case 3:       {         y = map(x0, 195, 1859, LCD_WIDTH, 0);         x = map(y0, 195, 1859, 0, LCD_HEIGHT);         break;       }     default:       {         //x = map(x0, 311, 1632, 0, LCD_WIDTH);         x = map(x0, 195, 1859, 0, LCD_WIDTH);         y = map(y0, 195, 1859, 0, LCD_HEIGHT);         break;       }     }     return true;   }   else {     return false;   } }   void LCD22_Touch::setOrientation(uint8_t orientation) {   switch (orientation) {   case 1:     writeRegister(0x01, 0x031C);     _orientation = 1;     break;   case 2:     writeRegister(0x01, 0x021C);     _orientation = 2;     break;   case 3:     writeRegister(0x01, 0x001C);     _orientation = 3;     break;   default:     writeRegister(0x01, 0x011C);     _orientation = 0;     break;   }     writeRegister(0x02, 0x0100);     switch (orientation) {   case 1:     writeRegister(0x03, 0x1038);     _orientation = 1;     break;   case 2:     writeRegister(0x03, 0x1040);     _orientation = 2;     break;   case 3:     writeRegister(0x03, 0x1048);     _orientation = 3;     break;   default:     writeRegister(0x03, 0x1030);     _orientation = 0;     break;   } }  
×
×
  • Create New...