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?)
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.

