As the hardware is at the point of initial release, but the firmware and GUI aren't quite there yet, I decided that it would be prudent to split off the firmware and GUI components into their own GIT repositories. Tracking all files in the same repository was convenient through the initial stages of project development, but splitting them allows for more targeted releases and will likely make contributions easier. For instance, if someone wished to write a Java client, then they could simply fork the GUI repository and not worry about the hardware and firmware repositories.
As it stands, there are three repositories:
- hardware – dedicated to the KiCAD, gerber and BOM files
- firmware – dedicated to the C files that comprise the firmware of the microcontroller
- GUI – dedicated to the GUI (currently Python)
We have released v1.0 of the hardware! This release supports:
- Your choice of visualization, Oscilloscope or Desktop
- Use of XY mode available on most oscilloscopes
- Maximum of +/-5.0V on the probe outputs
- Gate voltage application of up to 5.0V
- Transistor base current of up to 10mA
- Uses USB for the power supply (connects as Virtual COM Port)
Once the firmware and GUI catch up wit the hardware in maturity, we will create a curve tracer page in the references to get you up and running quickly!
Minor improvements and functionality have been added to the firmware. Specifically, two XY outputs were added to support the oscilloscope XY mode. These are simply PWM outputs that reflect the measured component voltage and current. There have been some small bug-fixes and improvements, but the firmware has been working well for some time now and is nearing that ‘v1.0' milestone.
Client GUI Progress
The Client has shown the most progress in recent weeks. We can save a live plot as a CSV file, recall that plot, and erase it. We can also ‘run' and ‘pause' the live plot as needed.
We have also filled out the menus for ‘file', ‘edit', and ‘help', which contains all of the functionality of the shortcut bar, plus a couple of extra less-used features. Oh, and take a look at the status bar! Lots of new display features there, continually updated by the hardware.
In short, the GUI is already quite useful for live plotting and is getting features added as time goes on.
I have encountered an issue that I'm unsure of how to deal with. I am experiencing an optimization problem during plotting that I have described on StackOverflow. It seems that plotting each point is taking more time than I thought it might. I don't see a quick and easy fix for this at the moment, particularly since it is working well, but I am hoping that someone else might have some insight into how to make this process a bit more efficient.
Evolution of the Visualization
I must admit that it was quite exciting to get the initial plots to the screen, but looking back a bit, it is even more exciting to see where we have been on the hardware and software as it has evolved. I would like to take a moment to look back on the screenshots from the time that we got to the first visualizations until the present moment.
The first visualizations were crude, at best. In this first version, we found that we didn't even have all of the points displayed on the screen, but we could see that the hardware was basically working, just not very well:
For More Details: Project curve tracer – progress update