Thread: Your latest projects

  1. #1
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413

    Your latest projects

    I know I've already done a thread like this recently, but it's gone now so I'll start another one.

    Just a thread to share what you're working on currently (at home, work, don't care) or will be working on soon.

    My biggest programming-related project recently has been making a scalable Modbus data logger for work. For those of you unfamiliar, Modbus is a data exchange protocol traditionally used over serial and ethernet connections. Made a GUI for the user to input all the parameters for a certain connection (either IP and port or serial port and settings), and then the devices on that connection (Modbus serial allows for multi-drop, can have up to 247 devices on one pair of lines). The register maps are predefined by manufacturer and model code so that once the logging begins, the program can then display what each data register is (i.e. flow rate, temperature) in a neatly displayed table. The project was pretty straightforward since I already know about Modbus and what I wanted it to do was pretty well-defined, but it was a good learning experience because I got some more experience with IPC (I spawned additional processes for each connection). For whatever reason, I seem to enjoy writing programs that involve serial comms or sockets too, so.

    New home project is to pair up a spare wifi router with an Arduino and relay board to intelligently control my sprinklers. Going to load OpenWrt on the router and write a program to get the weather forecast, water right before sunrise, scale timings based on temperatures, etc. The Arduino itself will just be for the digital I/O, not doing any local sensors (although I'm sure it'd work better with some, more interested in seeing how well it can work without sensors).

    Also, guess I'm starting to drink more Maker Kool-aid, going to fool around with an ESP8266 board to see what I can accomplish with it in terms of connectivity.

  2. #2
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    I'm starting -- and hopefully finish -- an Hex editor with support for templates, for Linux. I'm appalled at the sorry state of hex editors in linux. And in particular the lack of an hex editor with support for user written templates that can present data in a structured manner.

    The project is entirely written in Python. I'm starting with a curses interface after which I will open source it and develop the Qt interface.
    Last edited by Mario F.; 06-07-2016 at 04:49 AM.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  3. #3
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Very nice, surprising there isn't a decent one out there already.

  4. #4
    Registered User
    Join Date
    Jun 2011
    Posts
    4,508
    Interesting - I also recently created a data logger for a specific application at work, though much less sophisticated than yours. The hardware is basically a box with a microcontroller and analog voltage inputs, and is driven by a custom GUI I wrote. It uses gnuplot to plot the data, and data for a particular test can be coupled with a "reference" data plot for comparison. Assemblies are tested under extreme environment stress conditions, so comparing their output with a reference lets us know if any soft failures have occurred.

    My current work project is pretty ambitious. We have a circuit board that controls and monitors various aspects of a system, as well as other high level functions (serial comm, digital display, etc). All of the monitoring is done via analog circuits, e.g. charging caps, comparators, potentiometers, etc. I am attempting to design all of this functionality (including all the monitoring) into code for a single microcontroller. This will not only make fault monitoring more precise and repeatable (instead of relying on pots), but will reduce the board size, component count, assembly time, and test time by more than 70%.

    At home, I think I've finally come up with a marketable invention idea that, as far as I have seen, does not yet exist. While it will rely somewhat on electronics, its main function utilizes a discipline I am unfamiliar with, so I am currently on a learning curve.

    I am also wrapping up a simple project, a "mister". Basically, I installed garden water misters in a PVC pipe to help keep cool during hot summer days. I'm mounting it on 6' wooden legs so I can sit beneath it and beat the heat this summer.

  5. #5
    Registered User
    Join Date
    Jun 2015
    Posts
    1,643
    For a home project I'm designing an evolution simulator. In a 2D world, the shapes and actions of the animals will evolve. Some will be herbivores, some carnivores, some a combination. The shapes and motions of their limbs will evolve as would their overall patterns of movement. The herbivores will probably just eat dots that are scattered every now and then. When I get that working I may add some senses.

    I want to do it in C++, which I don't know very well, and SDL.

  6. #6
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Quote Originally Posted by Epy View Post
    Very nice, surprising there isn't a decent one out there already.
    The 010 Editor works great. They have a Linux build (and the Windows license key will work on Linux too!). I have bought this editor some years ago and it is still my favorite. But as far as free open source versions are concerned, none, nada, nient, zilch, void, a complete blank. Boo!
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  7. #7
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Quote Originally Posted by Matticus View Post
    Interesting - I also recently created a data logger for a specific application at work, though much less sophisticated than yours. The hardware is basically a box with a microcontroller and analog voltage inputs, and is driven by a custom GUI I wrote. It uses gnuplot to plot the data, and data for a particular test can be coupled with a "reference" data plot for comparison. Assemblies are tested under extreme environment stress conditions, so comparing their output with a reference lets us know if any soft failures have occurred.

    My current work project is pretty ambitious. We have a circuit board that controls and monitors various aspects of a system, as well as other high level functions (serial comm, digital display, etc). All of the monitoring is done via analog circuits, e.g. charging caps, comparators, potentiometers, etc. I am attempting to design all of this functionality (including all the monitoring) into code for a single microcontroller. This will not only make fault monitoring more precise and repeatable (instead of relying on pots), but will reduce the board size, component count, assembly time, and test time by more than 70%.

    At home, I think I've finally come up with a marketable invention idea that, as far as I have seen, does not yet exist. While it will rely somewhat on electronics, its main function utilizes a discipline I am unfamiliar with, so I am currently on a learning curve.

    I am also wrapping up a simple project, a "mister". Basically, I installed garden water misters in a PVC pipe to help keep cool during hot summer days. I'm mounting it on 6' wooden legs so I can sit beneath it and beat the heat this summer.
    Nice. Interested in what MCU you're using for this. I recently did some looking into how we could make an RTU to aggregate our instrumentation signals, and found that at least for cheaper MCUs, their built-in analogs varied too much as other signals (digitals etc) changed around them. Then again, I'm naive mostly to noise considerations. I was looking into using separate chips via SPI to do all the 4-20mA signals.

  8. #8
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Quote Originally Posted by algorism View Post
    For a home project I'm designing an evolution simulator. In a 2D world, the shapes and actions of the animals will evolve. Some will be herbivores, some carnivores, some a combination. The shapes and motions of their limbs will evolve as would their overall patterns of movement. The herbivores will probably just eat dots that are scattered every now and then. When I get that working I may add some senses.

    I want to do it in C++, which I don't know very well, and SDL.
    Sounds fun. Reminds me of when I took my first C class in college. Extra credit assignment was to implement Conway's game of life (10 x 10 grid).

  9. #9
    Registered User
    Join Date
    Jun 2011
    Posts
    4,508
    Quote Originally Posted by Epy View Post
    Nice. Interested in what MCU you're using for this. I recently did some looking into how we could make an RTU to aggregate our instrumentation signals, and found that at least for cheaper MCUs, their built-in analogs varied too much as other signals (digitals etc) changed around them. Then again, I'm naive mostly to noise considerations. I was looking into using separate chips via SPI to do all the 4-20mA signals.
    That particular application used Silicon Labs C8051F124.

    Separating analog and digital ground usually help reduce noise on the analog lines, as well as routing power lines, digital lines, and analog lines away from each other. Separating ground planes is not something I'm very studied in, since PCB layout is up to our Drafting department, but I have found some good white papers on the net.

    I've seen digital pulse signals cause currents that wreaked havoc on ground before. Earlier on in my career, I buffered a control pulse to eight separate outputs, and the resulting noise as each pulse dropped low was bad enough to throw other circuitry out of whack. Using a DC-to-DC isolator helped mitigate this by isolating the power/ground lines between key points in the circuit.

  10. #10
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Quote Originally Posted by Matticus View Post
    That particular application used Silicon Labs C8051F124.

    Separating analog and digital ground usually help reduce noise on the analog lines, as well as routing power lines, digital lines, and analog lines away from each other. Separating ground planes is not something I'm very studied in, since PCB layout is up to our Drafting department, but I have found some good white papers on the net.

    I've seen digital pulse signals cause currents that wreaked havoc on ground before. Earlier on in my career, I buffered a control pulse to eight separate outputs, and the resulting noise as each pulse dropped low was bad enough to throw other circuitry out of whack. Using a DC-to-DC isolator helped mitigate this by isolating the power/ground lines between key points in the circuit.
    Gotcha. I was using the Arduino Due (feel like a tool admitting that), the ARM chip on it has comparable specs as far as the ADCs go. Speaking of which, just looked at their site and they just (as in today or yesterday) retired the Due and Yun.

  11. #11
    Registered User
    Join Date
    Jun 2015
    Posts
    1,643
    Quote Originally Posted by Epy View Post
    Sounds fun. Reminds me of when I took my first C class in college. Extra credit assignment was to implement Conway's game of life (10 x 10 grid).
    It's a lot more complicated than the Game of Life! I could code that in 15 minutes.
    Even an initial basic version of this project will probably take me at least 15 hours.
    I'll try to motivate myself to code something up so you can see the basic idea.

  12. #12
    Registered User
    Join Date
    Oct 2006
    Posts
    3,445
    Quote Originally Posted by Matticus View Post
    PCB layout is up to our Drafting department
    Hopefully, they have some electronics engineering background. Poor PCB design can lead to noise, oscillation, cancellation, and plenty of other problems, when there's analog audio or RF in play.
    What can this strange device be?
    When I touch it, it gives forth a sound
    It's got wires that vibrate and give music
    What can this thing be that I found?

  13. #13
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Quote Originally Posted by Elkvis View Post
    Hopefully, they have some electronics engineering background. Poor PCB design can lead to noise, oscillation, cancellation, and plenty of other problems, when there's analog audio or RF in play.
    Don't even need analog or RF to get these kinds of problems, I had enough trouble with just SPI communication because I didn't know about connection length considerations (my mind is a blur, inductance of the connection length between MCU and peripheral chip; inherent capacitance of the pin involved, something like that).

    Edit: things like this are why my in-house efforts to develop an RTU stopped. I had everything working (digital I/O, analog I/O, RS485 comms, LCD display), but schematic level was as far as I dared go alone without an electrical engineer's help. Didn't have the funds to buy an oscilloscope which crapped on my SPI debugging efforts too. Even at schematic level, I'm sure a real electrical engineer might've done the circuit protection differently, or chosen different chips, etc.
    Last edited by Epy; 06-08-2016 at 11:59 AM.

  14. #14
    Registered User
    Join Date
    Oct 2006
    Posts
    3,445
    Quote Originally Posted by Epy View Post
    Don't even need analog or RF to get these kinds of problems
    Digital logic switching transients often reach well into the RF range.
    What can this strange device be?
    When I touch it, it gives forth a sound
    It's got wires that vibrate and give music
    What can this thing be that I found?

  15. #15
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Quote Originally Posted by Elkvis View Post
    Digital logic switching transients often reach well into the RF range.
    Sure, but you explicitly mentioned "RF", which typically refers to radio circuitry, not the presence of radio frequency oscillations.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. My Latest Project
    By CrazyNorman in forum A Brief History of Cprogramming.com
    Replies: 3
    Last Post: 05-29-2007, 09:38 PM
  2. Replies: 11
    Last Post: 05-25-2007, 04:39 PM
  3. Replies: 17
    Last Post: 05-07-2006, 06:11 PM
  4. Replies: 2
    Last Post: 09-09-2004, 12:57 PM
  5. Latest gdb anyone?
    By MovingFulcrum in forum C++ Programming
    Replies: 2
    Last Post: 05-12-2002, 03:12 AM

Tags for this Thread