author
6Instructables24,355Views22CommentsMacedon, NY, USAJoined April 15th, 2015
I am a retired Embedded Systems Engineer. I enjoy playing around with microcontrollers, SBCs, 3D printing and woodworking.

Achievements

10K+ Views Earned a bronze medal
  • BigjBehr commented on FlawedDesign's instructable Magnetic LED Hexagons3 months ago
    Magnetic LED Hexagons

    You did a fine job of explaining how to calculate the currentrequired for each hexagon. Then you displayed a lack of understandingof how PWM driving of LEDs works. If you measure the current drawwith an ammeter you are getting the average current, not the peakcurrent. When an LED is driven by PWM the LED will draw the full 20mAfor as long as it is powered on. PWM allows you to set how long theLED is on for in a fixed window of time. The longer the LED is on,the brighter it appears to the human eye. If you were to use opticalequipment to measure the brightness, you would see that the LED has aconstant brightness, no matter the PWM on time. PWM is a trick usedto fool the human eye into thinking that the LED is dimming.My main point hereis that no matter the perceived brightness, the LEDs...

    see more »

    You did a fine job of explaining how to calculate the currentrequired for each hexagon. Then you displayed a lack of understandingof how PWM driving of LEDs works. If you measure the current drawwith an ammeter you are getting the average current, not the peakcurrent. When an LED is driven by PWM the LED will draw the full 20mAfor as long as it is powered on. PWM allows you to set how long theLED is on for in a fixed window of time. The longer the LED is on,the brighter it appears to the human eye. If you were to use opticalequipment to measure the brightness, you would see that the LED has aconstant brightness, no matter the PWM on time. PWM is a trick usedto fool the human eye into thinking that the LED is dimming.My main point hereis that no matter the perceived brightness, the LEDs always draw thesame amount of current, just for a variable amount of time. Thereforeyour power supply should always be capable of supplying thecalculated current for all of the LEDs that you are using. If you donot then the 5V line will drop when the maximum current of the power supply is exceeded.This could cause random momentary errors.If you insist onusing an under powered power supply then add large bypass capacitorsto each hexagon. Something on the order of 500uf 10V electrolytic capor a 5V supercap should do it. Then the capacitors can supply theextra current when needed and charge when the PWM turns the LEDs off.You need to use anoscilloscope with a current probe to see the peak current draw whenthe PWM lights up the LEDs. Bottom line here is that your power supply and wiring should be capable of supplying the full calculated current or suffer the consequences.

    View Instructable »
  • BigjBehr commented on BigjBehr's instructable Raspberry Pi Scrolling Sign3 months ago
    Raspberry Pi Scrolling Sign

    You are welcome.I am glad to hear that you made a similar device and that you were able to figure out how to make the changes that you wanted to make.

    View Instructable »
  • BigjBehr commented on BigjBehr's instructable ESP32 Bluetooth BLE Remote Control3 months ago
    ESP32 Bluetooth BLE Remote Control

    You can comment out the line: #include controller.h.This project will no longer compile. The latest release of the Expressif SDK for the Arduino IDE no longer has the Bluetooth support files for this program.There is a new BLE_client example that uses Neil Kolban's class based Bluetooth library (which is built-in to the SDK). You will have to modifiy it to change the UUIDs of the service to connect to and the characteristic to use. This can be made to work. However, there is a bug in the Expressif Bluetooth stack that will crash the stack if you try to use more than one characteristic with a service. I have code somewhere that sort of works, only the joystick and trigger buttons work. Let me know if you would like this and I will look for it.

    View Instructable »
  • BigjBehr commented on BigjBehr's instructable ESP32 Bluetooth BLE Remote Control4 months ago
    ESP32 Bluetooth BLE Remote Control

    Your device looks a lot like mine. Are you sure that it is a Bluetooth BLE device ?Did you turn it on before trying yo scan for it ?Are you using a fresh battery ?On my device you press the power button and the blue LED starts blinking. Does yours do the same ?Some issues with my code have come up in the past few months. It seems that somewhere between when I wrote the code and posted it on Instructables, a new Arduino SDK for the ESP32 came out. The new SDK broke a few things and has a bug in it that prevents you from using more than one characteristic with a service. I have posted updated code that fixes some of the broken parts, but I cannot fix the issue with one characteristic per service. None of this matters if you cannot find your device and none of the issues had to do with fin...

    see more »

    Your device looks a lot like mine. Are you sure that it is a Bluetooth BLE device ?Did you turn it on before trying yo scan for it ?Are you using a fresh battery ?On my device you press the power button and the blue LED starts blinking. Does yours do the same ?Some issues with my code have come up in the past few months. It seems that somewhere between when I wrote the code and posted it on Instructables, a new Arduino SDK for the ESP32 came out. The new SDK broke a few things and has a bug in it that prevents you from using more than one characteristic with a service. I have posted updated code that fixes some of the broken parts, but I cannot fix the issue with one characteristic per service. None of this matters if you cannot find your device and none of the issues had to do with finding a device. Make sure your device is on when you start the ESP32 code running. There are come Android apps that can be run on an Android smartphone or tablet that provide information about Bluetooth devices. I suggest that you download and install one of these apps (look in the Google Play store) and see if they can find your device.Can you capture the debug messages that are output on the serial port when you are trying to find your device and post it here. Can you tell me the exact manufacturer's name and model number and where you bought it.I have talked with a fellow in Germany who bought a German version of the device. It was exactly the same, different color and branded different, but worked identically. His came in a different mode than mine. He could not get it to work until he tried a different mode. Modes are changed by holding down one button and pressing another. Check with you instruction booklet and try all the different modes.Hope this helps

    View Instructable »
  • More information please, what micro-controller are you planing on using ?What is the approximate interval between sound bursts, microseconds, milliseconds, seconds, days ?What are you offering for compensation ?I am a retired embedded systems engineer with over forty years experience designing with micro-controllers, designing software and coding micro-controllers.

    View Topic »
  • BigjBehr's instructable ESP32 Dual H Bridge Breakout Board's weekly stats: 7 months ago
    • ESP32 Dual H Bridge Breakout Board
      214 views
      2 favorites
      0 comments
  • BigjBehr commented on BigjBehr's instructable ESP32 Bluetooth BLE Remote Control7 months ago
    ESP32 Bluetooth BLE Remote Control

    John,I recently posted a new project on Instructables that you may be interested in. It is for an ESP32 breakout board with a built-in dual H bridge motor controller

    View Instructable »
  • BigjBehr entered ESP32 Dual H Bridge Breakout Board in the PCB Contest contest 7 months ago
  • BigjBehr commented on BigjBehr's instructable ESP32 Bluetooth BLE Remote Control8 months ago
    ESP32 Bluetooth BLE Remote Control

    John,Jim, not Ben.I posted the files for the ESP8266/ESP32 Breakout board to github.Use this link; https://github.com/BigJBehr/ESP-Breakout-Board

    View Instructable »
  • BigjBehr commented on BigjBehr's instructable ESP32 Bluetooth BLE Remote Control8 months ago
    ESP32 Bluetooth BLE Remote Control

    Cute robot. The controller in the picture, is it Bluetooth ?The board that you want is part of a three board set. The other two boards are an IR blaster and an HC-11 Bluetooth module breakout board. All three are together as one layout. When you get the boards you will have to cut them apart. I use a bandsaw with a metal cutting blade to separate the boards. A hacksaw will also work, but takes longer. There are no cut lines on the board, but it is fairly obvious where to cut them apart. Order the board as one layout. This will minimize the price.I will post all the files in a day or two. If you are adept at using Eagle, you can modify the schematic to remove the other two boards and then change the board outline. You would then have to make all new files. I could do this for you, but wi...

    see more »

    Cute robot. The controller in the picture, is it Bluetooth ?The board that you want is part of a three board set. The other two boards are an IR blaster and an HC-11 Bluetooth module breakout board. All three are together as one layout. When you get the boards you will have to cut them apart. I use a bandsaw with a metal cutting blade to separate the boards. A hacksaw will also work, but takes longer. There are no cut lines on the board, but it is fairly obvious where to cut them apart. Order the board as one layout. This will minimize the price.I will post all the files in a day or two. If you are adept at using Eagle, you can modify the schematic to remove the other two boards and then change the board outline. You would then have to make all new files. I could do this for you, but will not be able to do it quickly due to the Holidays coming up.I usually order the headers on ebay. I use so many that I keep them on hand. I buy the forty pin snap apart headers and then break them down to the size I need. Same with the female socket strips. However, you cannot cut the female socket strips between two pins. You have to burn a pin to cut them down. So a forty pin strip will yield a 20 pin strip and a 19 pin strip, not two 20 pin strips.Let me know if you want me to separate the boards for you.

    Hello John in the UK,Nice to hear from someone across the pond. The red board that you are asking about is one that I made myself. The board was designed in either Eagle or Kicad and manufactured for me in China. The bare bards are hand soldered by myself. If you are fairly good with a soldering iron then you should be able to solder the board yourself.I have designed several breakout boards for the ESP32 and ESP8266. The one you are asking about will accept ESP32 boards that have two rows of fifeteen pins that are 1.0 and 1.1 inch apart. The board has all the GPIO pins broken out to headers, a pushbutton switch, tri-color LED and a place for an IR sensor.I have other ESP32 breakout boards. All have headers for all of the GPIO pins and a tri-color LED. Some have places to connect a 5V H...

    see more »

    Hello John in the UK,Nice to hear from someone across the pond. The red board that you are asking about is one that I made myself. The board was designed in either Eagle or Kicad and manufactured for me in China. The bare bards are hand soldered by myself. If you are fairly good with a soldering iron then you should be able to solder the board yourself.I have designed several breakout boards for the ESP32 and ESP8266. The one you are asking about will accept ESP32 boards that have two rows of fifeteen pins that are 1.0 and 1.1 inch apart. The board has all the GPIO pins broken out to headers, a pushbutton switch, tri-color LED and a place for an IR sensor.I have other ESP32 breakout boards. All have headers for all of the GPIO pins and a tri-color LED. Some have places to connect a 5V HC-SR04 Sonar sensor with a voltage divider on the Echo signal to make it compatible with the ESP32. One has a place on board for a TB6612FNG Dual H bridge daughter board. Another is more of a universal breakout board that can accept ESP32, ESP8266, Arduino and STM32F103xx, LPC1768 and similar boards.If you tell me what features you are interested in, I will create a github entry for that board and post the link here. Then you can down load the files needed to have boards made. Once you have the files you can have the boards made in China by Seed Studio, AllPCB or any of the others manufacturers.

    View Instructable »
  • BigjBehr's instructable 3D Printed Tablet Holder's weekly stats: 9 months ago
    • 3D Printed Tablet Holder
      111 views
      1 favorites
      0 comments
  • BigjBehr entered 3D Printed Tablet Holder in the Plastics Contest contest 10 months ago
  • BigjBehr commented on BigjBehr's instructable ESP32 Bluetooth BLE Remote Control1 year ago
    ESP32 Bluetooth BLE Remote Control

    Martin,Bad news. I have been going over the problems caused by the new SDK from Expressif. I am unable to fix what the new SDK broke. After spending time searching the Internet, it seems that lots of people are having the same or similar issues with the changes Expressif made to the SDK. It looks like the only solution is to wait for Expressif to acknowledge and fix their problems. If you can somehow download and install the previous SDK the project will compile and function. To be clear, I have corrected the issue with the code not compiling. The current issue is that a runtime error is occurring that is causing the ESP32 to do a reset. I cannot tell exactly when the error occurs. The ESP32 finds the server, connects and then crashes sometime after that. Looks like it might be a watchd...

    see more »

    Martin,Bad news. I have been going over the problems caused by the new SDK from Expressif. I am unable to fix what the new SDK broke. After spending time searching the Internet, it seems that lots of people are having the same or similar issues with the changes Expressif made to the SDK. It looks like the only solution is to wait for Expressif to acknowledge and fix their problems. If you can somehow download and install the previous SDK the project will compile and function. To be clear, I have corrected the issue with the code not compiling. The current issue is that a runtime error is occurring that is causing the ESP32 to do a reset. I cannot tell exactly when the error occurs. The ESP32 finds the server, connects and then crashes sometime after that. Looks like it might be a watchdog timeout that causes it to reset.

    View Instructable »
  • BigjBehr commented on BigjBehr's instructable Cubic Art1 year ago
    Cubic Art

    You are correct, the spacers.stl file is incorrect. I have uploaded the correct file to the github repository. If you download it again you will have the correct file. The file LedCubJig.scad has the source code for the LEDCubeSpacers.stl file. If you install OpenSCAD and comment out line 20 and change the "70" in line 21 to "0", render the object and create an STL, you will have the LedCubeSpacers.stl file (you will have to change the file name when it goes to save the stl file).I am glad to hear that someone (you are the first as far as I know) is attempting to build one of these. It is quite fascinating to watch it go through its range of effects. Let me know if you have any problems with this. I am happy to help.

    View Instructable »
  • BigjBehr commented on BigjBehr's instructable ESP32 Bluetooth BLE Remote Control1 year ago
    ESP32 Bluetooth BLE Remote Control

    Martin,This is a little strange. The error you are having is due tothe ‘esp_ble_gattc_open’ function requiring four parameters and only beingpassed three. When I wrote this it only required three parameters. So it mustbe a library difference.The code was written for the Arduino IDE (ver 1.8.5) usingthe ESP32 add on library ver 0.0.0 (as far as I can tell). I was not awarethere was another release.Are you using the Arduino IDE ?

    Martin,I was able to compile without any errors. After I realized that this is a problem with the ESP32 SDK for the Arduino, I updated to the latest version and am now getting the same error that you are getting. I made a change to the code to fix the error. The code now compiles, but generates a run-time error. I am looking into fixing the run-time error. I do not know how long it will take me. Once I have everything working correctly I will update the code on github and let you know that the new code is there.

    View Instructable »
  • BigjBehr commented on BigjBehr's instructable Raspberry Pi Scrolling Sign1 year ago
    Raspberry Pi Scrolling Sign

    Mike,New RGB-32x64.py has been posted to GitHub. New version fixes issues with options.ini, using military time format and does weather forecasts. Enjoy

    Mike,I am glad that it is working for you. I had a thought thismorning, you may be having the problem because of the editor that you used toedit the options.ini file. Options.ini is a plain text (ASCII) file. It assumes thateach line of the file is terminated with a carriage return(0x0D) and a linefeed(0x0A). Most programming languages convert the CR/LF combo to what is referredto as a newline character (in ‘C’, ‘\n’ or linefeed only). When a text file isread the CR/lf is converted to newline and when written the newline characteris expanded to CR/LF.Editors like MS Word or WordPad do not do a proper job ofworking with plain text files. This is due to them being paragraph oriented andnot line oriented. They may display the text as lines, but the actual file doesn...

    see more »

    Mike,I am glad that it is working for you. I had a thought thismorning, you may be having the problem because of the editor that you used toedit the options.ini file. Options.ini is a plain text (ASCII) file. It assumes thateach line of the file is terminated with a carriage return(0x0D) and a linefeed(0x0A). Most programming languages convert the CR/LF combo to what is referredto as a newline character (in ‘C’, ‘\n’ or linefeed only). When a text file isread the CR/lf is converted to newline and when written the newline characteris expanded to CR/LF.Editors like MS Word or WordPad do not do a proper job ofworking with plain text files. This is due to them being paragraph oriented andnot line oriented. They may display the text as lines, but the actual file doesnot have CR/LF as line terminators.The Python script reads in the options.ini file and parsesit into an array of lines and then processes then line by line. When it parsesout the value variable, it assumes that there is a newline character at the endof the line and removes the last character in the line. If your editor did notput a proper plain text end of line at the end of the ‘military=t’ line thenthe last character would be the ‘t’ and not a newline character. Therefore the ‘t’was removed instead of the newline, resulting in the problem you are having.If you have some way to view the options.ini file as hexcharacters you can verify this. I suggest that you try using a differenteditor. Maybe Notepad or Notepad++. I use a free text editor named PSPad.Google it and try it out. It has the ability to display the options.ini file inhex mode or in text mode. It also has many features that make it a great editorfor programming. Or look into Visual Studio Code. It is also free and is a verynice editor for coders.I hope this helps.PS I have a newer version of the Python script for thescrolling sign. I was having some trouble with the Python library used withOpen Weather Map so I deleted it and wrote my own parser. A side effect of thisis that the scrolling sign can now do weather forecasts. I also made someimprovements to the jokes and headlines. I dropped the stock ticker out becausethe Python libraries were not working properly and I no longer needed it. Areyou interested in the updated code ?

    Mike,I took a look at what you said. The options.ini file asdownloaded from GitHub does indeed have the 0x0Ds missing from each line (onlythe 0x0A is present). I reposted the original file (with 0x0D & 0x0A) anddownloaded it again only to find that the 0x0Ds had been stripped out !!! Thismust be something that GitHub is doing. Very strange. If I download as a zip file from therepository the 0x0Ds are stripped out. If I push the repository to my computerusing GitHub Desktop the 0x0Ds are in the file.I am going to look into a proper fix for this issue and thenupload a new Python script. I will let you know when the new code is up.

    View Instructable »
  • BigjBehr commented on BigjBehr's instructable Raspberry Pi Scrolling Sign1 year ago
    Raspberry Pi Scrolling Sign

    I have attempted to reproduce the error you are seeing. Ichanged my options.ini file to have ‘military=t’. This ran without a problem. Ithen changed it to ‘military=’. This caused the exact error that you arehaving. Please check your options.ini file and make sure that you have at leastone character after the ‘=’.The problem is that the variable ‘value’ is ending up as anempty string. You can add the line; ‘print len(value)’ after the line ‘value =s[1][:len(s[1]) – 1’. If you see that value has a length of zero then yourissue is that options.ini does not have any characters after the equals sign inone of the true/false lines.You could change truefalse(str) to add a test for an emptystring.def truefalse(str): ...

    see more »

    I have attempted to reproduce the error you are seeing. Ichanged my options.ini file to have ‘military=t’. This ran without a problem. Ithen changed it to ‘military=’. This caused the exact error that you arehaving. Please check your options.ini file and make sure that you have at leastone character after the ‘=’.The problem is that the variable ‘value’ is ending up as anempty string. You can add the line; ‘print len(value)’ after the line ‘value =s[1][:len(s[1]) – 1’. If you see that value has a length of zero then yourissue is that options.ini does not have any characters after the equals sign inone of the true/false lines.You could change truefalse(str) to add a test for an emptystring.def truefalse(str): if len(s) > 0: s = str[0].lower() else: s = ‘t’ # or ‘f’ for default to false return ‘t’ == sThisdoes not fix the root cause of the problem you are having, but will effectivelyhide it. You will be able to run without crashing, but will always get thedefault value that you set.Abetter fix would be to trap the exception you are having and print the linethat caused it. After the lines ‘except IOError:’, print “Falure readingoptions file”’ add;wxceptIndexError: print ‘Error in options.ini: ‘ + lineLetme know if this helps.

    View Instructable »
  • BigjBehr's instructable ESP32 Bluetooth BLE Remote Control's weekly stats: 1 year ago
    • ESP32 Bluetooth BLE Remote Control
      175 views
      1 favorites
      0 comments
  • BigjBehr commented on BigjBehr's instructable Yet Another Weather Station (Y.A.W.S.)1 year ago
    Yet Another Weather Station (Y.A.W.S.)

    Sorry, I do not know anything about an 'aggressive mode' in the ESP8266. I do not believe that you can do what you described. If you could, then the system would be extremely vulnerable to attack.What you could try is to run the ESP8266 in station mode. That way it will be like a router with DHCP and allow you to log on to it to get the weather data. It would appear in the list of available WiFi networks. You could also try running in dual mode, station and AP (access point). Then it is part of your network and also its own network.As far as forecasts go, I know how to do that with openweathermap. I do not know how to get forecasts from other weather services.I hope this helps.

    View Instructable »
  • BigjBehr commented on BigjBehr's instructable Yet Another Weather Station (Y.A.W.S.)1 year ago
    Yet Another Weather Station (Y.A.W.S.)

    There are many display driver libraries for the OLED display. I used one that was specifically for the ESP8266/ESP32 and an SSD1306 based OLED display. There are some small ESP8266 boards that are about the same size as the OLED display. Look for a Witty ESP8266 or a WeMos D1. Banggood or AliExpress should have them. I found that the BME280s that I have were reading the temperature about five degrees Fahrenheit too high, so I adjusted for it in the code. Glad to hear that you made one. I recently figured out how to get forecasts from openweathermap.com. I added forecasting to my scrolling sign projects. If you are interested in adding forecasts let me know.

    View Instructable »
  • BigjBehr commented on BigjBehr's instructable Raspberry Pi Scrolling Sign1 year ago
    Raspberry Pi Scrolling Sign

    Xavier,It looks like you changed something in the options.ini file. You are trying to use something other than 't', 'T', 'f' or 'F' for a true/false entry.If you are still having issues, show me entire options.ini file.

    View Instructable »
  • BigjBehr's instructable Cubic Art's weekly stats: 1 year ago
    • Cubic Art
      314 views
      7 favorites
      0 comments
  • BigjBehr entered Cubic Art in the Epilog Challenge 9 contest 1 year ago
  • BigjBehr entered Cubic Art in the Arduino Contest 2017 contest 1 year ago
  • BigjBehr posted an instructable Cubic Art1 year ago
  • BigjBehr's instructable Raspberry Pi Scrolling Sign's weekly stats: 1 year ago
    • Raspberry Pi Scrolling Sign
      603 views
      15 favorites
      1 comments
  • BigjBehr entered Raspberry Pi Scrolling Sign in the LED Contest 2017 contest 1 year ago
  • BigjBehr's instructable Yet Another Weather Station (Y.A.W.S.)'s weekly stats: 1 year ago
    • Yet Another Weather Station (Y.A.W.S.)
      592 views
      13 favorites
      3 comments