author

btidey

38
Inbox View Profile
31Instructables127,308Views40Comments

Tell us about yourself!

Achievements

10K+ Views Earned a bronze medal
  • btidey commented on btidey's instructable ServoThermometer
    ServoThermometer

    It is a dilemma with deep sleep that you can't easily get to the web interface for maintenance. I have used a couple of techniques to work around without using the button method when that was awkward. First is to do the wake up fairly often and do the loop to check for web access. If this is done say every 10 seconds then the web browser will normally get in. It is good to use the fast connect support in WifiManager as this reduces the active time to under a second. A check every 10 seconds then reduces power by a factor of 10 and should give an average consumption of about 8mA. The second method is to check on wake up for a file on a server that is present when you need to disable the return to sleep. You can still do this check this check a bit more frequently than your once an hour.

    View Instructable »
  • ESP8266 DfPlayer Audio Player

    The player functionality was kept fairly basic (play folder) but can be extended fairly easily by changing the index.html file without having to change the firmware on the esp8266. The tool that can generate the folders list also produces a track list for each folder. If these are uploaded as well then the first enhancement to the html would be to display the track list whenever the playfolder command is run.The basic firmware is geared to run in Station mode but it would be easy to change it to run in AP mode. Currently the software uses WifiManager to automate the connection to a local router and reverts to AP mode for the purpose of entering wifi credentials for the first time or if the network has changed. The simplest change for a pure AP mode would be to change the wifiConnect funct…

    see more »

    The player functionality was kept fairly basic (play folder) but can be extended fairly easily by changing the index.html file without having to change the firmware on the esp8266. The tool that can generate the folders list also produces a track list for each folder. If these are uploaded as well then the first enhancement to the html would be to display the track list whenever the playfolder command is run.The basic firmware is geared to run in Station mode but it would be easy to change it to run in AP mode. Currently the software uses WifiManager to automate the connection to a local router and reverts to AP mode for the purpose of entering wifi credentials for the first time or if the network has changed. The simplest change for a pure AP mode would be to change the wifiConnect function in the BaseSupport.h library so that it just set up the AP mode.If you need any more help let me know.

    View Instructable »
  • ESP8266 DfPlayer Audio Player

    OK. Sounds like the main install worked Ok and it has a regular IP via your router of 192.168.2.105The last stage to get web access is to upload the web files as listed on the instructables.You should be able to browse to 192.168.2.105/upload This allows you to upload a single file. Use this repeatedly to upload the basic files edit.htm.gz, index.html, basic.htm, favicon*.png and graphs.js.gz You can then use 192.168.2.105 to get the main interface or you can use 192.168.2.105/edit to get access to the file system for further upload and download.

    View Instructable »
  • ESP8266 DfPlayer Audio Player

    I have just compiled this under Arduino without any errors.Please give details of some of the errors you see and also how you are compiling.I do not understand relay with 1 second delay. Please clarify.It should be fairly straightforward to port it to ESP32 but some of the libraries have different names so some changes would be needed.

    View Instructable »
  • btidey's instructable Fridge Thermometer's weekly stats:
    • Fridge Thermometer
      43 views
      0 favorites
      0 comments
    • Repairing DT71 Measurement Tweezers
      25 views
      0 favorites
      0 comments
  • ESP8266 DfPlayer Audio Player

    Note that you can download the external files then upload them to the es8266 filing system then change the curls in index page to get them from there.

    View Instructable »
    • Browser Controlled Signal Generator
      60 views
      1 favorites
      0 comments
  • btidey commented on btidey's instructable Car Battery Charger Adapter
    Car Battery Charger Adapter

    ADC nominally gives 1023 for 1.00V so 625 corresponds to 0.61V at the measurement point.Battery voltage is tapped down by 10K /470R resistor so the 0.61V corresponds to 0.61 * (10 + 0.47) / 0.47 = 13.58VHowever, this is a nominal value as the ADC reference of 1.00V will vary a bit from ATTiny to ATTiny.One way to adjust for this is to see what value value one used for CONV_VOLTS to get a good reading on the display and then scale VOLTS_THRESHOLD byCONV_VOLTS (actual) / CONV_VOLTS(default value)If you want to change the threshold from 13.58V to a different value then just scale the value of VOLTS_THRESHOLD by the ratio of the new threshold to the default of 13.58

    View Instructable »
  • btidey commented on btidey's instructable Car Battery Charger Adapter
    Car Battery Charger Adapter

    Yes. The AMP_THRESHOLD is the ADC value across the shunt. As you have a much lower shunt then this value should be correspondingly lower. 25 (25mV) was set for a threshold of 0.5 amp with 50mOhm, so to get the same with 10mOhm you would need a value of 5.Note that it can alternate between Hi and Lo when battery is getting full; that is normal.

    View Instructable »
  • btidey commented on btidey's instructable Car Battery Charger Adapter
    Car Battery Charger Adapter

    1 amp through 10 mOhm shunt should gives amps ADC reading of 10 (10mV)Multiplied by 100840 gives 1008400Display should regard 1000000 as 1A and display as 1.00 This all happens in the makeValString routine. What I suggest is checking the display part is working as expected by putting in a fixed value for amps rather than the measured value and making sure display is OK.So on about line 98 temporarily change makeValString((unsigned long)amps, CONV_AMPS);tomakeValString((unsigned long)15, CONV_AMPS);With your CONV_AMPS that should give a display of around 1.50If that is OK then revert the change and you then need to check why the voltage on the shunt is not as expected. As it is quite a low voltage then it is sensitive to any voltage offsets which can be caused by either the ADC itself or…

    see more »

    1 amp through 10 mOhm shunt should gives amps ADC reading of 10 (10mV)Multiplied by 100840 gives 1008400Display should regard 1000000 as 1A and display as 1.00 This all happens in the makeValString routine. What I suggest is checking the display part is working as expected by putting in a fixed value for amps rather than the measured value and making sure display is OK.So on about line 98 temporarily change makeValString((unsigned long)amps, CONV_AMPS);tomakeValString((unsigned long)15, CONV_AMPS);With your CONV_AMPS that should give a display of around 1.50If that is OK then revert the change and you then need to check why the voltage on the shunt is not as expected. As it is quite a low voltage then it is sensitive to any voltage offsets which can be caused by either the ADC itself or by the earth wiring.The AMPS_ZERO constant is used to compensate for any ADC offset. In the default code this was set to 3 but will vary from one ATTiny. It is supposed to be set to give close to 0.00 display when no current is being drawn.

    OK. I think I have found an issue when a CONV factor is greater than 65535 which is the case when you increased the value for your 10 milliOhm shunt.The makeValString function line needs to bevoid makeValString(unsigned long val, unsigned long conv) {I have updated github code

    So amps is not showing integer part. The 0.52 should probably be 1.52 and when you doubled the CONV_AMPS it should be 3.06.This is strange as the code for display is same as use for the volts which is showing integers.My units definitely show the correct values for amps including integers.Can you double check the makeValString code is the same as on github?I'll run a further test here to see if I can see any reason for this.

    View Instructable »
  • btidey commented on btidey's instructable Car Battery Charger Adapter
    Car Battery Charger Adapter

    The 8000 value sounds low, more like what I would expect from a 100mOhm resistor. It is important that the 0V for the cpu is close to one end of the shunt and the current measurement pick up point is close to the other end.Whatever value for CONV_AMPS you use then the CONV_CHARGE should be CONV_AMPS * interval / 3600So for a 6 second interval (6000mSec) then divide CONV_AMPS by 600

    The interval in the charge equation should be in seconds not miilisecondsHowever, the comment in the code was misleading as the charge calculation is performed every 8 intervalsSo the equation should be CONV_CHARGE = CONV_AMPS * 8 * Interval(seconds) / 3600I have corrected the comment.

    View Instructable »
  • btidey commented on btidey's instructable Car Battery Charger Adapter
    Car Battery Charger Adapter

    There are conversion constants at the top of the program.#define CONV_AMPS 20168ul#define CONV_CHARGE 333ulThese are set for the 50 milliOhm. The CONV_AMPS when multiplied by the ADC reading gives the microamps. So if shunt is 5 times lower then the CONV_AMPS should be 5 times higher (100840). Similarly CONV_CHARGE gives accumulating charge conversion should also be 5 times higher (1665). As the voltage across the shunt is lower it is definitely worthwhile calibrating the current by measuring the current with a multimeter and then adjusting those values a bit to get the reading right.

    That's correct. However, the 10 milliohm shunt value will be susceptible to any track resistance etc. so if you can measure the actual value with ammeter that would be good.

    View Instructable »
  • btidey commented on btidey's instructable Car Battery Charger Adapter
    Car Battery Charger Adapter

    The averaging is controlled by two constants at the top of the code which should be changed together.#define AVERAGING 4#define AVE_SHIFT 2This means 4 samples are averaged. To make it 8 use AVERAGING 8 and AVE_SHIFT 3; for 16 use AVERAGING 16 and AVE_SHIFT 4; and so on.

    View Instructable »
    • DIgital Controlled Bench Power Supply
      501 views
      6 favorites
      1 comments
  • btidey commented on btidey's instructable Car Battery Charger Adapter
    Car Battery Charger Adapter

    With a 12V lead acid battery the normal recommended terminal voltage is about 13.6V. At that point if the charger is set to 13.6V then the trickle current that will flow into the battery is small and safe and helps to maintain the charge.

    Thanks for pointing that out. The URL had got a full stop embedded on the end.Fixed now.

    View Instructable »
  • ESP8266 DfPlayer Audio Player

    Do you mean you want to use it on a separate network provided by the ESP8266 itself and then log on to that network from your phone or tablet?If so then the overall method is indicated in the reply to sergevn below (method a). I can try to add more detail on the changes needed if that is what you want..

    View Instructable »
  • btidey commented on btidey's instructable Car Battery Charger Adapter
    Car Battery Charger Adapter

    Sorry for late reply.I don't understand the question as 3.4V does not seem relevant to a 12V battery. Are you trying to use this to charge a different type of battery? It would be possible to adjust the charging current and the terminal voltage on the XL4015 converter but the values in the ATTiny firmware that control initial boost charge would need to be adjusted.

    View Instructable »
  • btidey's instructable Car Battery Charger Adapter's weekly stats:
    • Car Battery Charger Adapter
      55 views
      0 favorites
      2 comments
  • btidey commented on btidey's instructable RF433Analyser
    RF433Analyser

    I originally bought some from eBay (from China) but they were ones with a screening can. They worked OK. As I noted in the instructable some use different clone chips and a second batch I bought didn't work. The agc part did but it seemed to be the buffered output that was not functional in these clones. A third batch not using screening also worked OK and I noted the chip type in the instructable. It is possible to use the type with non-function buffer by using ones own buffer on the agc signal but that is more complicated.

    View Instructable »
  • Battery LED Strip With Magnetic Switch

    I mainly had the bits to hand, but I would estimate it would cost about about 5 UKP if the bits were being obtained from the cheapest outlets. The boost converters are very cheap, as are the battery boxes and the magnetic switches. The main variable is the LED strip which is just a piece cut out of a longer length.

    View Instructable »
  • ESP8266 DfPlayer Audio Player

    There is a branch of WifiManger called feature_fastconnect that does support the setFastConnectMode call. What this does is reduce the connect time to the wifi network from about 3 seconds to less than 1 second. The standard master branch doesn't have that in yet.If you want to use the standard wifiManager then just change comment out the #define FASTCONNECT in BaseConfig which will prevent that call being made.

    View Instructable »
  • ApproxFFT: Fastest FFT Function for Arduino

    Time test on esp8266 was for accuracy 5. As a library I made the accuracy dynamically configurable.The part I didn't understand that as the for(int i;i<128;i++)has no {} then only the next statement gets executed inside the for loop. That is the first if(data_mag>1024) {while(temp11>1024) {temp11=temp11>>1; scale=scale+1; } }I think the other 3 if compound statements get executed outside the for loop.

    View Instructable »
  • ApproxFFT: Fastest FFT Function for Arduino

    Thanks for this. It looks very useful.I have been recasting it so it is a library.The scaling part of the code puzzles me as there is no {} for its for loop (line 81) so only the first if condition is executed within the loop. It looks like the four if conditions should be part of the loop.I'm also testing it on a esp8266 where a 512 transform takes 20mSec (with all scaling parts in the loop) and executed at the standard 80MHz clock.

    View Instructable »
  • Voltage Boost Module Enhancement

    It is a bit confusing as what is not shown is that node 3 (the wiper) is also connected to the feedback point in the regulator. I'll try to make it clearer.

    View Instructable »
  • btidey's instructable Esp8266 Clock and Pulse Generator's weekly stats:
    • Esp8266 Clock and Pulse Generator
      39 views
      0 favorites
      0 comments
  • btidey's instructable ATTiny85 Capacitor Meter's weekly stats:
    • ATTiny85 Capacitor Meter
      60 views
      1 favorites
      0 comments
  • btidey's instructable 5 WAY Switch Interfacing's weekly stats:
    • 5 WAY Switch Interfacing
      50 views
      2 favorites
      0 comments
  • btidey's instructable Tiny 12V Monitor's weekly stats:
    • Tiny 12V Monitor
      90 views
      1 favorites
      0 comments
    • Reducing Sleep Current in ATTiny Digispark
      41 views
      2 favorites
      0 comments
  • btidey commented on btidey's instructable Rotary Encoder Button
    Rotary Encoder Button

    Should take about 3 seconds if it has been asleep. It stays awake for a configurable time so that follow on actions have no delay.It would be possible to shorten the wake up time by changing it to have a fixed ip address and skipping the dhcp phase which does add a couple of seconds. That doesn't bother me so I keep the dhcp in as I like to control ip addressing back at the router.

    View Instructable »
  • btidey's instructable ATTiny HV Programmer's weekly stats:
    • ATTiny HV Programmer
      80 views
      1 favorites
      0 comments
  • ESP8266 DfPlayer Audio Player

    There are 3 answers to this depending on what you want to do.a) If you want to always use this without a router but still use the browser interface then you need to change the way the wifi set up works so that it puts the ESP8266 into Access Point mode. That way you can access the device by connecting your browser device to the network set up by the player. To do this you need to change the call to the wifiConnect routine in set up to instead just put the device in AP mode. This is just a couple of simple instructions (search for ESP8266 AP mode).b) If you want to normally use this with a router but want to use the local buttons if the router is not available then remove the call to wifiConnect in the loop so that it only tries once to make the router connection in the call to wifiConnect…

    see more »

    There are 3 answers to this depending on what you want to do.a) If you want to always use this without a router but still use the browser interface then you need to change the way the wifi set up works so that it puts the ESP8266 into Access Point mode. That way you can access the device by connecting your browser device to the network set up by the player. To do this you need to change the call to the wifiConnect routine in set up to instead just put the device in AP mode. This is just a couple of simple instructions (search for ESP8266 AP mode).b) If you want to normally use this with a router but want to use the local buttons if the router is not available then remove the call to wifiConnect in the loop so that it only tries once to make the router connection in the call to wifiConnect from setup. You might want to reduce the timeout it spends allowing the AP to configure the network from its current 3 minutes.c) If you want to always use this from local buttons without a router then you can remove all calls to wifiConnect.

    View Instructable »
  • btidey's instructable Voltage Boost Module Enhancement's weekly stats:
    • Voltage Boost Module Enhancement
      24 views
      0 favorites
      0 comments
    • Browser Interface ATTiny Fuse Editor
      71 views
      1 favorites
      0 comments
  • ESP8266 DfPlayer Audio Player

    The dfplayer module expects folders to be numbered 00,01,02,... and tracks within the folder to be 001.mp3,002.mp3,003.mp3...So the script expects to start from a collection of folders (albums or equivalent) each of which contains a set of tracks (mp3 files). The name of each folder should name the 'album' and the track filenames should name the track.The script processes each folder and renames the tracks within it to be 001.mp3,002.mp3 etc. It also creates a tracks.txt within that folder listing the original names together with their new track number. Each folder is renamed to be 00,01 etc and a folders.txt file is produced containing the original name of the folder and its new number.The web site uses the folders.txt file to produce the list of 'albums' which may be played and when one…

    see more »

    The dfplayer module expects folders to be numbered 00,01,02,... and tracks within the folder to be 001.mp3,002.mp3,003.mp3...So the script expects to start from a collection of folders (albums or equivalent) each of which contains a set of tracks (mp3 files). The name of each folder should name the 'album' and the track filenames should name the track.The script processes each folder and renames the tracks within it to be 001.mp3,002.mp3 etc. It also creates a tracks.txt within that folder listing the original names together with their new track number. Each folder is renamed to be 00,01 etc and a folders.txt file is produced containing the original name of the folder and its new number.The web site uses the folders.txt file to produce the list of 'albums' which may be played and when one is selected then its folder number is used to select the correct one.There are host functions to play a particular track but the current client just plays folders and allows skipping tracks.

    View Instructable »
  • btidey's instructable UK Train Display's weekly stats:
    • UK Train Display
      68 views
      1 favorites
      0 comments
  • btidey's instructable RF433Analyser's weekly stats:
    • RF433Analyser
      323 views
      3 favorites
      0 comments
  • btidey commented on btidey's instructable Two Way Speaker Switch

    Yes. That is certainly possible.You would just feed the amp and speaker wires through the holes in the box rather than mount the speaker connectors.

    View Instructable »
  • btidey's instructable ILumos Remote Control's weekly stats:
    • ILumos Remote Control
      66 views
      1 favorites
      0 comments
  • The 12V battery as shown seems to be made up of LIPO cells (3 pairs in series). LIPO cells need to be charged carefully with circuitry that is LIPO aware and ensures there is no risk of overcharging.

    View Instructable »
  • btidey's instructable Rotary Encoder Button's weekly stats:
    • Rotary Encoder Button
      171 views
      2 favorites
      0 comments
  • The Github download contained a jpg of the schematic. I hav enow added the fritzing source file for this.

    View Instructable »
  • NodeMCU ESP8266 unit is good for development as it has built in usb serial connection for easy downloading of code. They can be used to run the real system but I use ESP-12F modules for that. They are smaller, cheaper and also have a lower deep sleep current when that is used in battery applications.A NodeMCU would draw a few mA even when sleeping which would drain a 18650 battery in about a month rather than the year for a ESP-12F. However, they do need soldering to use and you need a ESB to serial converter to initially program them. Once they have been programmed once they can then be updated over wifi.ESP8266 wifi range is very good. I don't think you will have a problem with that distance and wall.

    View Instructable »
  • btidey's instructable ServoThermometer's weekly stats:
    • ServoThermometer
      87 views
      2 favorites
      0 comments
  • btidey's instructable Battery Powered Plant Watering's weekly stats:
    • Battery Powered Plant Watering
      418 views
      8 favorites
      1 comments
  • Based on measurements over a month, I reckon I will get well over a year between charges

    View Instructable »
    • Battery LED Strip With Magnetic Switch
      139 views
      2 favorites
      0 comments
  • btidey's instructable ESP8266 DfPlayer Audio Player's weekly stats:
    • ESP8266 DfPlayer Audio Player
      143 views
      4 favorites
      0 comments
  • btidey's instructable Rainbow Dice's weekly stats:
    • Rainbow Dice
      264 views
      6 favorites
      2 comments
  • btidey commented on btidey's instructable Zero Security Camera

    That module is an SPI to Ethernet interface. It can't be used as a microUSB to lan converter as described. You can tie it into the SPI on the GPIO pins as described here. https://www.instructables.com/Super-Cheap-Ethernet-for-the-Raspberry-Pi/Once it is working the camera software would be fine with that.

    View Instructable »
  • btidey commented on btidey's instructable Zero Security Camera

    If you want it POE but are going to use wifi rather than the wired connection for the network connection then you need the buck converter but don't need the LAN USB adapter. The buck converter would just be used to convert the higher voltage on the POE cable to 5V to run the Pi.If the cable has the network wiring in it rather than just power then I think it is nicer to have a wired connection as described rather than wifi.

    View Instructable »
  • btidey commented on btidey's instructable Zero Security Camera

    If you are using usb power then you don't need the buck converter.The wired LAN version as described uses power over Ethernet. This uses a higher voltage supply (e.g. 12V) on the unused pairs in the cable and the buck converter is used to derive a 5V supply for the Pi. By using a higher voltage and a buck converter this way then the current in the ethernet cables is significantly reduced allowing much longer cable runs without voltage drop problems.

    View Instructable »
  • btidey commented on btidey's instructable Two Way Speaker Switch

    Yes. The 3 sided version suited my purpose. It would be easy to change this to a three by four stack in the SCAD. Making it a row of twelve makes it quite large. Let me know if that interests you and I could update the SCAD and STL.The A+B is slightly tricky as to do it with 1 switch as it would need a fairly special switch. One could do it more easily with 2 switches like I used where each enabled 1 output and if both were switched then you would get A+B.

    View Instructable »
  • btidey's instructable Ethernet Economiser's weekly stats:
    • Ethernet Economiser
      973 views
      9 favorites
      0 comments
  • btidey's instructable Two Way Speaker Switch's weekly stats:
    • Two Way Speaker Switch
      701 views
      11 favorites
      0 comments
  • btidey commented on btidey's instructable Zero Security Camera

    Here in UK the Zero (not ZeroW) has gone up to UKP4.80. Shipping in UK does add but is not so bad if one is buying other stuff as well. One can significantly lower the cost of the camera by getting the V1 type camera off eBay with Zero cable included. The V1 doesn't have the same still image resolution as the V2 but video is same and still resolution is still good.

    One can use the ZeroW instead if one wants to do it wirelessly and then you don't need the USB ethernet adapter. Personally I prefer to use a wired connection as one has to get power there anyway and using the power over ethernet gives a 1 cable neat solution.There are two main suppliers in UK (Pimoroni and PiHut). Both offer Europe shipping at reasonable cost and fast delivery. FOr example Pimoroni to Germany UKP 4 and it is by weight so you can get multiple items for 1 fee.

    View Instructable »
    • Door Bell Push and Temperature Sensor
      88 views
      3 favorites
      0 comments
  • btidey's instructable Security Panel Extender ESP-12F's weekly stats:
    • Security Panel Extender ESP-12F
      291 views
      12 favorites
      0 comments