I’ve posted before about a little application I wrote for the Wakespeed regulator. It is a great piece of equipment, however the user interface is the source of much derision, harking back to teletype terminals and command line interfaces. Nothing wrong with that, it just needs to be buried under a modern UI. There are a couple available, I have one or two but didn’t like them for one reason or another.
My efforts of last year’s trip just logged the data, and allowed some programmability. This year in my spare moments between piloting and ogling the scenery I’ve improved it a little. I’l post the completed app after a little more refinement, I’m posting here to see if there are some useful features that ought to be included that I haven’t thought of. Not everything is easy to do or can be done of course, but if you have any ideas, please share and I’ll consider. I may be the only one here geeky enough to find this stuff interesting, but just in case, here goes.
It uses the serial interface of the WS500, requiring a cable (USB-B I think on the WS500 end, and USB-A or C on your laptop end as needed). I have one permanently strung up to the pilothouse nav table where my laptop sits, normally running OpenCPN. You launch the app, plug in the cable, and it should automatically connect and begin logging. If it picks the wrong serial port you can pull down the menu and pick the right one, the click the Connect button. The log screen looks like this:
This is the raw data which Wakespeed calls “human readable” and technically it is, but it could be a little better . On the log tab, the latest data (sent by the WS500 once a second) is parsed and the more interesting parameters are displayed in the data boxes at the top. You can pause the scrolling and select a line and the selected line’s data will be displayed. The check boxes do what they say: Enable Debug forces the log to verbose with much more info, no definitions as to what they mean but Wakespeed may ask for the debug log if you have an in-depth problem. Force to Accept and Force to Float puts the regulator in those modes - note that it may immediately change back , depending on the regulator settings and current operating conditions. Most useful if it has made the jump to float early. Pause stops the scrolling for examination.
You can save the log as a text file at any time, and also read in a saved log file to examine it later using the OS menu bar Save and Read menus. There is an alternative mini view accessed from the menu bar View menu, which is a small window with just the data boxes, you can put this in a corner of the screen for monitoring without hogging all the screen space. The app will continue to run and log in the background until you quit it.
There is also a window to view the battery parameters of most interest, it will be populated when it sees the first data lines with this information, sent every minute or so. It is also accessed from the menu bar View menu. You can edit any of the values displayed to change the WS500 settings, then write them back to the regulator (this will cause a reboot, but seems to be safe to do underway). The reboot kills the serial port, the app attempts to reconnect after the reboot but you may find you have to do that manually. You will have to consult the Wakespeed literature for the parameter definitions, though a brief description is provided.
The biggest addition I made this year is the Graph tab in the main window. Clicking on this changes the display to a graph of the data, drawn in real time (or rendered from a saved log file) and is much more entertaining than the log file. It normally free runs and scrolls as new data is captured, the color coded data boxes at the bottom represent the last data line captured. However you can pause the scrolling, or by clicking anywhere on the graph, a cursor will appear and can be dragged where ever you like, now the data boxes will represent the cursor position. Also, as the cursor is dragged around, the selected line in the log tab is highlighted so you can examine the actual data if needed without having to search for it. Unchecking any of the data boxes removes that parameter from the graph. Time of day is the horizontal scale.
Here is a whole day’s run of several hours from the saved log, in it you can see pretty much every electrical event that happened on the boat that day. The amps charge into the house battery (in dark blue), and the field drive (in green) tell a lot of the story. The graphics look a bit sharper than this on the laptop, the forum software down samples the screen capture, making it fuzzy:
The graph can be zoomed in or out with the arrow controls to the left, and panned with the slider bar. Zooming in a little at the beginning of the day:
The large downward spikes in amps (dark blue) is the anchor windlass being operated intermittently while the chain was washed of sticky brown mud at about 9:32 AM. The field drive is maxed at 82% (I have that set as a maximum in the regulator). When the rpm drops from fast idle to idle at 9:36 (maneuvering to leave the narrow anchorage exit) the amps drops as the alternator has insufficient speed for max output, even though the field drive is maxed. The very large dip in amps (to -20) at 9:38 is the microwave running for a minute to warm breakfast. Then the rpm is slowly increased as the engine warms, reaching cruising rpm at 9:49. At about the same time, there are little momentary dips in the field drive (green), this is the regulator responding to the temperature slope of the alternator (in black) approaching the 100° C limit I have set in its parameters. These get deeper and more frequent to control temperature. (This is the reason I have the field limited to 82%, otherwise the approach to 100° is very steep and the field cutbacks are much more radical).
At about 10:01, it switches to Accept from Bulk, which can be seen by the field drive and amps beginning to slope downwards, while the voltage (in red) flattens at accept voltage. Some of the little dips and bumps in the amps are due to the refrigerator cycling or other small DC loads.
Toward the end of the day some different things can be seen:
At 10:25 the throttle is cut back to look at some whales. This lowers alternator RPM, to maintain regulation the field is bumped up again. Since the cooling fan drops capacity with rpm, the alternator temp is seen to climb. A bit later at 11:26, there are some sharp spikes in amps, field, and even voltage - this is the bread machine doing a kneading cycle which switches the motor on and off. It occurs again a few times. The machine doesn’t draw that much, what you are seeing is transient response as the regulator deals with the step in demand (this is obvious when zoomed in closer). At about 12:07, the throttle is cut to anchor for lunch, again the field comes up to maintain regulation, and the alternator temp climbs. Finally there is a large spike in field, this is the anchor windlass dropping the chain.
I have been capturing every day's run and saving it, keeping the graph view active for entertainment. If you are having a charging issue, this gives much easier visibility into what is actually going on over the whole charge cycle.
Would anyone but me find this useful? Am I missing a key feature? One thing I've thought of is the ability to write comments into the log, for later reference.
My efforts of last year’s trip just logged the data, and allowed some programmability. This year in my spare moments between piloting and ogling the scenery I’ve improved it a little. I’l post the completed app after a little more refinement, I’m posting here to see if there are some useful features that ought to be included that I haven’t thought of. Not everything is easy to do or can be done of course, but if you have any ideas, please share and I’ll consider. I may be the only one here geeky enough to find this stuff interesting, but just in case, here goes.
It uses the serial interface of the WS500, requiring a cable (USB-B I think on the WS500 end, and USB-A or C on your laptop end as needed). I have one permanently strung up to the pilothouse nav table where my laptop sits, normally running OpenCPN. You launch the app, plug in the cable, and it should automatically connect and begin logging. If it picks the wrong serial port you can pull down the menu and pick the right one, the click the Connect button. The log screen looks like this:
This is the raw data which Wakespeed calls “human readable” and technically it is, but it could be a little better . On the log tab, the latest data (sent by the WS500 once a second) is parsed and the more interesting parameters are displayed in the data boxes at the top. You can pause the scrolling and select a line and the selected line’s data will be displayed. The check boxes do what they say: Enable Debug forces the log to verbose with much more info, no definitions as to what they mean but Wakespeed may ask for the debug log if you have an in-depth problem. Force to Accept and Force to Float puts the regulator in those modes - note that it may immediately change back , depending on the regulator settings and current operating conditions. Most useful if it has made the jump to float early. Pause stops the scrolling for examination.
You can save the log as a text file at any time, and also read in a saved log file to examine it later using the OS menu bar Save and Read menus. There is an alternative mini view accessed from the menu bar View menu, which is a small window with just the data boxes, you can put this in a corner of the screen for monitoring without hogging all the screen space. The app will continue to run and log in the background until you quit it.
There is also a window to view the battery parameters of most interest, it will be populated when it sees the first data lines with this information, sent every minute or so. It is also accessed from the menu bar View menu. You can edit any of the values displayed to change the WS500 settings, then write them back to the regulator (this will cause a reboot, but seems to be safe to do underway). The reboot kills the serial port, the app attempts to reconnect after the reboot but you may find you have to do that manually. You will have to consult the Wakespeed literature for the parameter definitions, though a brief description is provided.
The biggest addition I made this year is the Graph tab in the main window. Clicking on this changes the display to a graph of the data, drawn in real time (or rendered from a saved log file) and is much more entertaining than the log file. It normally free runs and scrolls as new data is captured, the color coded data boxes at the bottom represent the last data line captured. However you can pause the scrolling, or by clicking anywhere on the graph, a cursor will appear and can be dragged where ever you like, now the data boxes will represent the cursor position. Also, as the cursor is dragged around, the selected line in the log tab is highlighted so you can examine the actual data if needed without having to search for it. Unchecking any of the data boxes removes that parameter from the graph. Time of day is the horizontal scale.
Here is a whole day’s run of several hours from the saved log, in it you can see pretty much every electrical event that happened on the boat that day. The amps charge into the house battery (in dark blue), and the field drive (in green) tell a lot of the story. The graphics look a bit sharper than this on the laptop, the forum software down samples the screen capture, making it fuzzy:
The graph can be zoomed in or out with the arrow controls to the left, and panned with the slider bar. Zooming in a little at the beginning of the day:
The large downward spikes in amps (dark blue) is the anchor windlass being operated intermittently while the chain was washed of sticky brown mud at about 9:32 AM. The field drive is maxed at 82% (I have that set as a maximum in the regulator). When the rpm drops from fast idle to idle at 9:36 (maneuvering to leave the narrow anchorage exit) the amps drops as the alternator has insufficient speed for max output, even though the field drive is maxed. The very large dip in amps (to -20) at 9:38 is the microwave running for a minute to warm breakfast. Then the rpm is slowly increased as the engine warms, reaching cruising rpm at 9:49. At about the same time, there are little momentary dips in the field drive (green), this is the regulator responding to the temperature slope of the alternator (in black) approaching the 100° C limit I have set in its parameters. These get deeper and more frequent to control temperature. (This is the reason I have the field limited to 82%, otherwise the approach to 100° is very steep and the field cutbacks are much more radical).
At about 10:01, it switches to Accept from Bulk, which can be seen by the field drive and amps beginning to slope downwards, while the voltage (in red) flattens at accept voltage. Some of the little dips and bumps in the amps are due to the refrigerator cycling or other small DC loads.
Toward the end of the day some different things can be seen:
At 10:25 the throttle is cut back to look at some whales. This lowers alternator RPM, to maintain regulation the field is bumped up again. Since the cooling fan drops capacity with rpm, the alternator temp is seen to climb. A bit later at 11:26, there are some sharp spikes in amps, field, and even voltage - this is the bread machine doing a kneading cycle which switches the motor on and off. It occurs again a few times. The machine doesn’t draw that much, what you are seeing is transient response as the regulator deals with the step in demand (this is obvious when zoomed in closer). At about 12:07, the throttle is cut to anchor for lunch, again the field comes up to maintain regulation, and the alternator temp climbs. Finally there is a large spike in field, this is the anchor windlass dropping the chain.
I have been capturing every day's run and saving it, keeping the graph view active for entertainment. If you are having a charging issue, this gives much easier visibility into what is actually going on over the whole charge cycle.
Would anyone but me find this useful? Am I missing a key feature? One thing I've thought of is the ability to write comments into the log, for later reference.