author
2Instructables2,888Views16Comments

Tell us about yourself!

Achievements

  • DIY Professional 18650 Battery Pack

    If you are ALWAYS going to charge with your Imax B6, then yes you will be fine. That's basically how my model plane batteries work. LiPo 3S1P however, but no real difference. The BMS mentioned above will only balance between the S part, does not monitor every cell in the P (as seen in step 11, there is only 4 connected points on the circuit board). The BMS is a cheap insurance, just in case you somehow accidentally charge the pack with another means. Heck, it may not even be you that connects it up to another source ;)

    If you are ALWAYS going to charge with your Imax B6, then yes you will be fine. That's basically how my model plane batteries work. LiPo 3S1P however, but no real difference. The BMS mentioned above will only balance between the S part, does not monitor every cell in the P (as seen in step 11, there is only 4 connected points on the circuit board). The BMS is a cheap insurance, just in case you somehow accidentally charge the pack with another means. Heck, it may not even be you that connects it up to another source ;)

    If you are ALWAYS going to charge with your Imax B6, then yes you will be fine. That's basically how my model plane batteries work. LiPo 3S1P however, but no real difference. The BMS mentioned above will only balance between the S part, does not monitor every cell in the P (as seen in step 11, there is only 4 connected points on the circuit board). The BMS is a cheap insurance, just in case you somehow accidentally charge the pack with another means. Heck, it may not even be you that connects it up to another source ;)

    4.2 volts is the MAXIMUM you want to ever throw at a Lithium cell. So naturally, 4.2V x 3 (for the series) gives you 12.6V, this way you won't ever overcharge.

    View Instructable »
  • NODEMCU 1.0 (ESP8266)  CONTROLLED RELAY USING BLYNK (OVER THE WEB)

    No problem mate. There are a lot better ways of writing the code more efficiently, however it has worked fine in my garden sprinkler application for well over 18 months now. Cheaper than commercial offerings that's for certain! Happy learnings!

    View Instructable »
  • I did get it working, however Python would crash randomly. So I just used cron to call the script every 15 minutes and that seemed to work for me.

    View Instructable »
  • Hi Gyro,You made a typo in your instructable regarding the relay connection."One must be connected to the common pin(labeled COM) and the other to either the NC or NO pin. NC stands for normally closed and NO for normally open. I've used NC which means the printer is only on when the relay is energized."The last sentence should read "I've used NO which means the printer is only on when the relay is energized." NO - Normally Open: In the relaxed state, the relay switch is open circuit (off), when energized, the circuit is complete and engages the switch.NC - Normally Closed: In the relaxed state, the relay switch is closed circuit (on), when energized, this disengages the switch and renders the link open circuit.Other than that, great build. I did the exact thing toda…

    see more »

    Hi Gyro,You made a typo in your instructable regarding the relay connection."One must be connected to the common pin(labeled COM) and the other to either the NC or NO pin. NC stands for normally closed and NO for normally open. I've used NC which means the printer is only on when the relay is energized."The last sentence should read "I've used NO which means the printer is only on when the relay is energized." NO - Normally Open: In the relaxed state, the relay switch is open circuit (off), when energized, the circuit is complete and engages the switch.NC - Normally Closed: In the relaxed state, the relay switch is closed circuit (on), when energized, this disengages the switch and renders the link open circuit.Other than that, great build. I did the exact thing today with your tips. I did however use an ABS housing with female IEC and GPO outlets, with the relay mounted securely inside the housing with all connections covered with heatshrink tubing. This way, I can use the box later for other project ideas....maybe.

    View Instructable »
  • Not bad, but missing the essential part to mesh this all together. UBIDOTS!in the console, typepip install ubidots==1.6.6I'm currently editing your code so I can display just the basics on an 2x16 LCD and export the data to Ubidots. I'm hoping that being the 1st time playing with python will be successful.

    View Instructable »
    • Children's Flashlight LED Conversion
      13 views
      0 favorites
      0 comments
  • KegRaider followed educ8s
      • Arduino Wireless Weather Station
      • Art Deco Weather Forecast Display
      • Arduino Pong Game - OLED Display
  • Great project, it did take me a few hours to work out why my LCD would display with horizontal lines tearing through the display. I'm using a different board!! Do you think you can implement this code into your project, to help others identify the driver needed when opening the serial output? My driver ended up being 0x7783, and when I put it in your code, it then worked fine. Thanks for the learning experience! uint16_t identifier = tft.readID(); if(identifier == 0x9325) { Serial.println(F("Found ILI9325 LCD driver")); } else if(identifier == 0x9328) { Serial.println(F("Found ILI9328 LCD driver")); } else if(identifier == 0x4535) { Serial.println(F("Found LGDP4535 LCD driver")); }else if(identifier == 0x7575) { Serial.println(F("Fou…

    see more »

    Great project, it did take me a few hours to work out why my LCD would display with horizontal lines tearing through the display. I'm using a different board!! Do you think you can implement this code into your project, to help others identify the driver needed when opening the serial output? My driver ended up being 0x7783, and when I put it in your code, it then worked fine. Thanks for the learning experience! uint16_t identifier = tft.readID(); if(identifier == 0x9325) { Serial.println(F("Found ILI9325 LCD driver")); } else if(identifier == 0x9328) { Serial.println(F("Found ILI9328 LCD driver")); } else if(identifier == 0x4535) { Serial.println(F("Found LGDP4535 LCD driver")); }else if(identifier == 0x7575) { Serial.println(F("Found HX8347G LCD driver")); } else if(identifier == 0x9341) { Serial.println(F("Found ILI9341 LCD driver")); }else if(identifier == 0x7783) { Serial.println(F("Found ST7781 LCD driver")); }else if(identifier == 0x8230) { Serial.println(F("Found UC8230 LCD driver")); } else if(identifier == 0x8357) { Serial.println(F("Found HX8357D LCD driver")); } else if(identifier==0x0101) { identifier=0x9341; Serial.println(F("Found 0x9341 LCD driver")); }else { Serial.print(F("Unknown LCD driver chip: ")); Serial.println(identifier, HEX); Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:")); Serial.println(F(" #define USE_ADAFRUIT_SHIELD_PINOUT")); Serial.println(F("should appear in the library header (Adafruit_TFT.h).")); Serial.println(F("If using the breakout board, it should NOT be #defined!")); Serial.println(F("Also if using the breakout, double-check that all wiring")); Serial.println(F("matches the tutorial.")); identifier=0x9341; }

    View Instructable »
  • Hi MazharS5,I'm not sure if you have already worked it out, but here goes. I needed the exact same thing, but with my 8 channel relay board. The NodeMCU naturally brings the outputs high unless you are using pullup resistors. Now you can go and solder in some resistors, or do what I did and just modify the code a bit. Add this below the "Serial.begin" bit.[code]pinMode(D0,OUTPUT); // Relay 1pinMode(D1,OUTPUT); // Relay 2pinMode(D2,OUTPUT); // Relay 3pinMode(D3,OUTPUT); // Relay 4pinMode(D4,OUTPUT); // Relay 5pinMode(D5,OUTPUT); // Relay 6pinMode(D6,OUTPUT); // Relay 7pinMode(D7,OUTPUT); // Relay 8pinMode(D8,OUTPUT); // UnuseddigitalWrite(D0,HIGH); // Relay 1digitalWrite(D1,HIGH); // Relay 2digitalWrite(D2,HIGH); // Relay 3digitalWrite(D3,HIGH); // Relay 4digital…

    see more »

    Hi MazharS5,I'm not sure if you have already worked it out, but here goes. I needed the exact same thing, but with my 8 channel relay board. The NodeMCU naturally brings the outputs high unless you are using pullup resistors. Now you can go and solder in some resistors, or do what I did and just modify the code a bit. Add this below the "Serial.begin" bit.[code]pinMode(D0,OUTPUT); // Relay 1pinMode(D1,OUTPUT); // Relay 2pinMode(D2,OUTPUT); // Relay 3pinMode(D3,OUTPUT); // Relay 4pinMode(D4,OUTPUT); // Relay 5pinMode(D5,OUTPUT); // Relay 6pinMode(D6,OUTPUT); // Relay 7pinMode(D7,OUTPUT); // Relay 8pinMode(D8,OUTPUT); // UnuseddigitalWrite(D0,HIGH); // Relay 1digitalWrite(D1,HIGH); // Relay 2digitalWrite(D2,HIGH); // Relay 3digitalWrite(D3,HIGH); // Relay 4digitalWrite(D4,HIGH); // Relay 5digitalWrite(D5,HIGH); // Relay 6digitalWrite(D6,HIGH); // Relay 7digitalWrite(D7,HIGH); // Relay 8digitalWrite(D8,HIGH); // Unused[/code]Now, in your BLYNK code, the following mappings need to be in place:Relay1 = GP16Relay2 = GP5Relay3 = GP4Relay4 = GP0Relay5 = GP2Relay6 = GP14Relay7 = GP12Relay8 = GP13I have every button mapping set to "Switch" mode, and the output of every GP output as 1 in the first box, and 0 in the second.Upon rebooting or removing power to the NodeMCU, the next startup the relays all click for a microsecond, then are in the off state. You can use Blynk to turn them on at will then. Hope this helps you, and others.

    View Instructable »
  • Wow! Simply amazing! I was going to eventually do something like this for my "Particle Photon" arduino's, but this is a lot more involved than I was ever going to do. I have a spare NodeMCU sitting around, so I might just borrow most of your work. I do need to control 5 solinoid valves, and have no need for a pump at this stage.Again, fantastic design! Well done.

    View Instructable »
  • I can report back to anyone interested, that this pack is still working great. I still have the original 8 cells, with the two "el cheapo" ebay BMS modules. Tiffany runs around everyday from 7:30AM until almost 11AM. She is exactly the same as she always was, in terms of noise and erratic behavior, but has a lot more stamina! Approx 3.5Hours of runtime. Take note Mr Hoover, install Lithium cells in your robot vac, they're much better.I'm guessing they used brushed motors in her as well, and that will be the next thing to replace :)

    View Instructable »
    • Hoover Tiffany (5240) Robot Vac Lithium Battery Upgrade
      893 views
      12 favorites
      5 comments
  • Hi Mrygula,The Roomba may have been trying to draw more current than your cells could provide. You may have had one bad LiIon cell, that's what happens with laptop packs, one cell effectively kills the lot. Do you recall if they were hot? Did you use thick enough gauge wire? The 20AWG wire should be good for 11Amps, which is way more than I require.Also, what voltage requirement is the Roomba? Did you match it or get close enough to the original design?

    View Instructable »
  • Hi Jeff22,The ebay BMS manages the charge state of the batteries. The internals of the Hoover delivers charging power to the battery pack at about 17V, and the BMS takes over from there. I may revisit the solution if I find that the cells are failing or *gasp* exploding, but in the few weeks it's been operating, all has been fine.The only issue I have noticed since installing is, the "Full Go" option doesn't function, as it doesn't actually get full in it's eyes. A full NiMH pack will "Burp" to let it know it's done 14.4V. The LiION pack should not get overcharged due to it's higher voltage capacity of 16.8V. The most I have seen the pack charge to is 16.1V, which is well below the maximum of the lithium cells.

    View Instructable »
  • Quick Start to Nodemcu (ESP8266) on Arduino IDE

    Thanks! It's so frustrating trying to use Putty to get the thing to do anything! I bought a pretty cheap Amica one from Ebay ($4), and have been fiddling for a few hours trying to get the firmware right.Anyway, after that, following your quick tutorial, and changing the "pinMode(16, OUTPUT);" and for the other references to 13, it flashes the onboard blue LED just fine. Now to tinker some more :)h

    View Instructable »