Start a new topic

Orba hacking knowledge base

This thread is intended to gather the feedback of Orba tinkerers.

28 people like this idea

I should have read Tony's original comment about this Winbond chip more carefully.

>"Winbond 25x40CL (not far from the AKM DAC) is a 4Mb (ie 512KB) serial flash memory."

I've been looking at "4Mb" and thinking, "four megabytes". But 4Mb is four megabits, which is only 512KB.

The ESP32-SOLO-1 has its own 4MB internal Flash as well (along with various blocks of RAM).

Auto-detected Flash size: 4MB

If the ESP32 has 4MB Flash, why add another 512KB Flash chip...?  

Winbond is physically closer to the STM than the ESP. I don't know if that's relevant. I'm currently not sure which of those two chips can access it...(maybe even both?)


I don't know why the ESP32 would be interested in an extra 512KB if it's already got 4MB, unless it's a performance thing; the Flash-starved STM32 with its 64KB would seem more in need of it. On the other hand, that might explain those two flash-from file writes at the same address (bootloader and delorean).

20 Jun 2022 9:29:59pm - Compressed 24848 bytes to 14805...

20 Jun 2022 9:29:59pm - Writing at 0x00001000

20 Jun 2022 9:30:36pm - Compressed 702032 bytes to 407879...

20 Jun 2022 9:30:36pm - Writing at 0x00010000

The log output doesn't show all the exact commands taking place behiond the scenes. With the dfu-util writes, we see all the parameters for the command, but with the writes, we don't. As well as an option for memory address, there might be an unseen option to identify the Flash storage device; either the ESP32's internal 4MB Flash or the Winbond's external 512K.

That leaves a couple more routes to explore:

1) Finding out how to read the Winbond Flash

2) Finding the real upper limit of the ESP32's 4MB Flash, as with the Winbond

>"...somehow this isn't working for me..."

...likewise, just tried:

1) Flash from file

2) Clear Songs/Presets and let the App rebuild

3) Mobile MIDI off, channel-per-part on

...but I haven't got this to work via USB MIDI. I haven't tried it with Bluetooth; don't know if you were using a Bluetooth connection when it worked...? 

>"With the dfu-util writes, we see all the parameters for the command, but with the writes, we don't."

I'm mainly interested in reading the Winbond chip now, and I haven't figured that out yet. However, I think I've extracted the esp.pytool parameters FWIW. 

I tried running running the artiphon_esp32_programmer command from the log while the Orba was already in programming mode. Usually it tries to do that itself, so I think it was surprised and reported some additional info.

I've attached the log, but the bit I was interestyed in was:

Programming attempt failed: CalledProcessError(2, ['D:\\orba\\fresh\\esptool.exe', '--chip', 'esp32', '--port', '\\\\.\\COM12', '--baud', '115200', '--before', 'no_reset', '--after', 'no_reset', 'write_flash', '-z', '--flash_mode', 'dio', '--flash_freq', '40m', '--flash_size', 'detect', '0x1000', 'C:\\Users\\admin\\AppData\\Local\\Temp\\tmp7snsjpvc\\bootloader.bin', '0x10000', 'C:\\Users\\admin\\AppData\\Local\\Temp\\tmp7snsjpvc\\delorean.bin', '0x8000', 'C:\\Users\\admin\\AppData\\Local\\Temp\\tmp7snsjpvc\\partitions_singleapp.bin'])

Usually it just says...

Programming files {'app': 'C:\\Users\\admin\\AppData\\Local\\Temp\\tmpg15gztml\\delorean.bin', 'bootloader': 'C:\\Users\\admin\\AppData\\Local\\Temp\\tmpg15gztml\\bootloader.bin', 'partitions': 'C:\\Users\\admin\\AppData\\Local\\Temp\\tmpg15gztml\\partitions_singleapp.bin'}

...but this different version shows the addresses and other parameters for the command. 

I've noticed a Windows version of this utility, esptool.exe, in one of the update folders, and I expect this is what flash-from-file uses.

I've realised that I was wrong about the consecutive writes to the same address for bootloader and delorean; I'd misread a zero. bootloader goes to 0x00001000, and delorean goes to 0x00010000.

There's some info on P29 of the ESP32 Technical Reference Manual about memory mapping for external flash (Winbond?), but I haven't managed to do anything with it. If I try pointing at one of the addresses there like 0x3F400000, it gives an error about how it can't handle over 16MB, so I'm not getting that right. 


@BJG145 Aha! I did read something about the ports. What program is that displaying the ports above? Is that Live? Also are you able to see the ports in the Settings on this site?

>" Also are you able to see the ports in the Settings on this site?"

Yep. (Haven't tested.)


CakeWalk! I used that 30 years ago!! Its still around :)

...yep, it's free now, and pretty good...:-)

...I wasn't aware of its history. I used it for years as Sonar by Cakewalk; they finally packed it in and it was released for free as "Cakewalk by Bandlab". But, yes, apparently "Sonar" started as "Cakewalk" by a company called "Twelve Tone" back in 1987, with the company eventually adopting that name. And, yeah, it's good; probably the best free DAW for Windows.

@ Subskybox

"I could build a MIDI => SONG converter in the future."

That would be something ... When Orba came out it could save songs to midi and even avi (be it not perfect so it was removed from the app).

I think I'll have to abandon the search for QuantStartSnap for now; the Orba's storage and memory structure seems quite complicated and I don't really understand it.

Everything I've read about the Orba's ESP32 indicates that it has 4MB of internal Flash, but in trying to find the exact upper limits of it, I've been doing some ridiculous Flash reads, up to nearly 16MB. I don't know what or where this block of storage is; it might be internal Flash, external Flash, or even RAM for all I know. I'd have thought that it would be the logical place to store performance data and maybe other settings, but I haven't been able to capture any changes apart from the "Bluetooth area" I mentioned before.

For instance, a couple of consecutive grabs following some changes inserted a few more of these "LE_LOCAL_KEY" commands into a block of them.


 There's also an adjacent block of data I'm suspicious of. At other times though, you think, "Surely something must have changed between these two Flash grabs"...and it hasn't. For instance, I just grabbed 16MB of this Flash area; the most I've been able to get hold of; then added a note, powered off and on to save any changes, grabbed it again...and the two files are identical. 




 Anyway, I've given in to temptation and ordered an Orba 2. It's not something I'd have purchased without the discoveries that have been made in this thread, but dissecting Orba 1 has made me more fond of it, and developments like Chord Fiddler have considerably enhanced it. Naturally I'll be interested to see what the changes are, and perhaps they'll shed more light on the Orba 1. I probably won't pullit apart though. ;-)

This Forum contains some information on where to get these utilities:

Orba Utilities

The Git repository explains how to download and use them.

Have fun! I'm not joining you. Playing with my new Akai MPK Mini PLAY mk3 :-) 

My Orba 2 has hardware issues. No tests until I have one that's working. It won't take a firmware update. I think the Bluetooth is faulty :( @BJG145 Isn't there a way to manually do firmware upgrade if you have the files?

Hi Subskybox, Can you upgrade by using the usb cable with your computer?


No it also fails with cable and the log files mention something about faulty BT in ESP32. Artiphon has reviewed the logs, agrees and should be replacing it.

Login or Signup to post a comment