Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


zeke last won the day on June 15

zeke had the most liked content!

About zeke

  • Rank
    Electron Wrangler

Contact Methods

  • Website URL

Profile Information

  • Gender
    Not Telling
  • Location
    Calgary, Canada

Recent Profile Visitors

1,906 profile views
  1. As mentioned in your other post, yes, it appears that the APA107 is a drop in replacement for the APA102 LED. APA107_RGB.pdf
  2. zeke

    APA102 - simple to drive RGB leds

    @pololu The communication scheme, the physical footprint, and the pinout all appear to be exactly like the APA102 so it looks like the APA107 is a drop in replacement. APA107_RGB.pdf
  3. zeke

    Bosch Sensortech BME280

    @mph Thank you for sharing this with us. 👍
  4. zeke

    MSP430G2553 Workshop

    @Markers Excellent! I am glad that you found a solution! Yes, putting the msp430 into low power mode is a great way to complete the processing of the infinite while loop in main(). Is this what your main() function looks like now?
  5. zeke

    MSP430G2553 Workshop

    @Markers Excellent! I am glad that you found a solution! Yes, putting the msp430 into low power mode is a great way to complete the processing of the infinite while loop in main(). Is this what your main() function looks like now?
  6. zeke

    MSP430G2553 Workshop

    @Markers I have taken a quick look at your code and the first thing that I can see is the many function calls inside of the interrupt routines. They will upset the accuracy of your timers. Especially, that FlashLED() function call. Yikes! What you can do is use two flags to keep track of servicing that interrupt. The first flag will indicate the interrupt has fired eg: "T1_Fired". The second flag will tell the main while loop that it has or hasn't been serviced eg: "T1_Serviced". Inside the ISR, set the T1_Fired flag instead of making a function call. Then, in the main while loop, test for each of those flags. If that flag is set and it hasn't been serviced then call that function to react. For example: main { ... while(1) { if( (TRUE == T1_Fired) && (FALSE == T1_Serviced) ) { FlashLED(); T1_Serviced = TRUE; } if( (TRUE == P2_Fired) && (FALSE == P2_Serviced) ) { StartTimer_Or_Whatever(); P2_Serviced = TRUE; } ... } } Make sure to get the printf's out of the ISR's as well. They can crash your program if you exhaust the stack inside of the ISR. Again, use a flag to tell the main while loop to print out stuff. Does that help?
  7. zeke

    Detect if bluetooth is paired or not

    @biza For us to help you, you have to provide a lot more information. What processor are you using? What programming environment are you using? What software tests have you performed? Can you show us some software that you are testing? What specific question(s) are you asking us?
  8. zeke

    MSP430FR6989: Serial port monitor is not working

    @Salibensuleiman Thank you for sharing your solution with us!
  9. Could this be a utf-8 font issue?
  10. My gut instinct would be to add an additional condition (a timer) to that while loop. I don't work with that processor so I am not sure of the implementation but here's my pseudo code: while ( (pcb != NULL) && (thisTimer <= ARBITRARY_MAX_WAIT_TIME) ) { ... } I don't know if that makes any sense to do it that way, but that is how I am thinking. Add in a second variable that *you* have control over. Then you can have a measure of sanity of something goes off the rails. YMMV
  11. zeke

    One Wire Controller booster

    Yeah, I built that. I was inspired by something similar a friend of mine created about ten years ago. I also found the book Programming Embedded Systems in C and C++ by Michael Barr to be exceptionally helpful. Chapter nine specifically. So, back when I discovered the loss of my marquee clock code, I went on a rampage to re-write the lost code. The first thing I did was figure out how to write a command line interface parser equal to or better than my friend's cli. Initially, for some reason, I wrote an AT command parser for the marquee clock. But, I found it to be unfriendly. So, I re-wrote it as a human friendly variant. I pulled that cli into this data logger when I decided to go on a sprint to develop this code. Now I am on a rampage learning how to program in PyQt5. I am hoping to have a proof of concept SCADA program. Hopefully, I will have something to demonstrate when I meet up with some friends at the end of the month.
  12. zeke

    One Wire Controller booster

    If anyone is curious, I have been developing the edge router app in pyqt5 on linux. Here is one of the better tutorials that I have found on learning PyQt5. Apparently, there are two different sources to get PyQt5 from: PyQt5 from Riverbank Computing, and Qt for Python from Qt.com, which was originally called PySide(2) PyQt5 is a bit of a mind bender at the start, but it gets better as you climb the learning curve.
  13. zeke

    One Wire Controller booster

    I have been working on the software for the edge router for my data logger. Here is a short video of the various help menus in the system. OneWireDatalogger-HelpScreens.mp4
  14. zeke

    What is your Backup Process?

    Well, I spent $10 tonight. I purchased a perpetual license for BitBucket. I was fearful that I might lose my source code. I chose to host it on my own hardware. That's why it was only $10. I have barely had a chance to use it but I am pleased with the user interface so far. In addition, I installed the nemo-rabbitvcs plugins to my linux mint installation. That way I can integrate git functionality into my file browser (nemo). I used that to do the initial setup of the local git repo.
  15. zeke

    One Wire Controller booster

    IT'S ALIVE!!!! I have 104 ds18b20 sensors wired into my board and it is reading them all. I am celebrating! WOO HOO! Now it's time to crush an mqtt server!