What’s an ESD? Sorry, I’m not familiar with that TLI.
Sorry, that should’ve been ESG. Typo.
So you’re saying you can only capture some format that ESG3 can’t generate?
No, there’s a different problem - discussed in another thread.
As requested, I have archived the project and source files in their existing states for Diver & Escher Sketch in the public facing repository here:
The next step for this repository would be to convert the projects to remove dependencies on VisualGDB and document a more open build toolchain. Additionally, instructions for debugger access to the hardware should be documented.
@csboling Time to get hacking!
Thank you Lars!
It’s officially a race now, who can get the next firmware update out first, Lars or the community?
With X amount of other firmwares priority in Lar’s queue before this one, my bet could be on community
Looking forward to future updates for Diver
Is this where we soon see someone playing Doom on a Diver?
Doom on Escher would actually be pretty amazing. stylus to aim, buttons to move, reload, shoot
Thank you Lars! This is awesome. I’m pretty happy with Diver as-is, but having a programmable experimentation platform that already outputs synchronized 1V video is transformative for the more software-minded DIYers out there.
Armed with some prior STM32 experience, I was able to set up the VisualGDB toolchain (with the 30-day trial), build the firmware, and flash it to the hardware successfully.
During this process I took some notes and screenshots. If it would be helpful, I’d be more than happy to edit those into a draft build guide and make a PR.
I’ve used VS Code + PlatformIO for some AVR and ESP32 projects, I believe their STM32 support is also good. If that is the kind of open build toolchain you had in mind, I don’t think it would be hard to get that conversion rolling.
Way to go Dewb! I’m in the same boat. I have two divers and use at least one in most patches. Diver is a really exciting platform and it’s capable of some serious fun above and beyond its current time-domain mutation task. Even relatively simple spins like assigning one of the scroll inputs to something like buffer stride are going to be a blast! I can’t wait to get a “devDiver” up and running! @Dewb I’d love to see your notes.
Nice work! The code is messy, but not too big – at least can get you started with a synchronous output buffer. A line buffer based rasterizer may be possible to implement, for real time graphics. I’ll try to provide more of a development kit style release after porting in more recent software library classes.
That sounds awesome!
When you get a chance could you share the pinout of the 6-pin connector? I assume there are JTAG and/or SWD pins on there (or somewhere else on the board?)
J8 Pin1(GND) as it corresponds to the actual board connections is the bottom most pad and is square
Awesome, thanks so much! <3
If you’ve got it building/uploading and just want to mess with the waveform generation, that’s all done on line 1029 of main.cpp:
void GenerateLUT(uint8_t waveform)
{
for (uint32_t i = 0; i < vres; i++)
{
float a = float(i) / float(vres);
float b = (a*a) * 1023.0;
float c = (a * 1023.0 * 2.0) - (b);
switch (waveform)
{
case 0: lut[i] = ((i*DAC_MAX_VALUE) / vres) & 1023; break;
case 1: lut[i] = uint16_t(c) & 1023; break;
case 2: lut[i] = uint16_t(b) & 1023; break;
case 3: lut[i] = ((i*DAC_MAX_VALUE) / vres) & 0b1111000000; break;
case 4: lut[i] = ((i*DAC_MAX_VALUE) / vres) & 0b1110000000; break;
case 5: lut[i] = ((i*DAC_MAX_VALUE) / vres) & 0b1100000000; break;
}
}
}
@CountFunkula Here are my draft notes on building with VisualGDB and building with PlatformIO, which is still a work in progress (the firmware builds and loads, but the GPIO controls don’t work yet.) which now works!
Later this afternoon (maybe 4:30 ET?) I’ll be on Discord working on getting a debugger running, and investigating what’s going on with the PlatformIO build, if anyone wants to follow along.
Debugging with a ST-Link V2 clone or an official V2-ISOL works!
A couple other folks have now successfully built, modified, and loaded Diver firmware with the PlatformIO branch, and I’ve fixed a few issues and updated the documentation a bit: BUILDING-PlatformIO.md
this is really dope but have no idea how to use it. have to dive into the documantion. did you already did some new modes or is this still a “open to play” programming thing (which is way over my capabilities)
Awesome! Y’all are getting me excited to open source TBC2 and other projects.