...interesting. I've just realised that if you move or rename the Presets folder, then run the App and open a Song, it recreates it. So even though the Song XML doesn't contain these Modfier lists, that info is evidently floating around and being used.
Now I'm wondering if we could apply other chord voicing(s) on a Tilt Gesture as an example?!
@BJG145 said:
"If your theory about the lists of Modifier/Seeker values representing different gestures is correct, then maybe it's in the SeekerData for the entry corresponding to the bump gesture."
<ModifierList> <!-- tap [note] --> <ModifierEntry chainIndex="0" gestureUuid="4f36e6ea-9135-4163-b3ac-63ec98d9f7c7" modifierData="..." modifierUuid="1ec43ffb-15db-4708-b21b-cf2ce372e3fc" prioIndex="0" uuid="89930c9a9e51427d91fd15bb03f60c2a"/> <!-- tilt [cc1] --> <ModifierEntry chainIndex="0" gestureUuid="4620991b-b32e-4150-a35d-2d54b9501a75" modifierData="..." modifierUuid="1ec43ffb-15db-4708-b21b-cf2ce372e3fc" prioIndex="0" uuid="a207ab4a68274bc18796031750ccd06f"/> <!-- vibrato [pitch wheel] --> <ModifierEntry chainIndex="0" gestureUuid="38ca5c83-e834-43fa-a549-0543cf578fc3" modifierData="..." modifierUuid="1ec43ffb-15db-4708-b21b-cf2ce372e3fc" prioIndex="0" uuid="eca7882cd43345c4b48bbb37cd31807e"/> <!-- spin [cc 112] --> <ModifierEntry chainIndex="0" gestureUuid="61f2d792-abb1-4b4c-867b-1223c81d778c" modifierData="..." modifierUuid="1ec43ffb-15db-4708-b21b-cf2ce372e3fc" prioIndex="0" uuid="0d0516f18bc74f3483d34606afa3716a"/> <!-- radiate [cc74] --> <ModifierEntry chainIndex="0" gestureUuid="78ee1f95-c038-4a25-bb09-ef2229ae30a1" modifierData="..." modifierUuid="1ec43ffb-15db-4708-b21b-cf2ce372e3fc" prioIndex="0" uuid="8f5196ee5add409798612be0c333e005"/> <!-- press [channel pressure] --> <ModifierEntry chainIndex="0" gestureUuid="b1831b9b-40c1-45fc-afb9-0e07beb83663" modifierData="..." modifierUuid="1ec43ffb-15db-4708-b21b-cf2ce372e3fc" prioIndex="0" uuid="9bda1c4b83454bc1bee3046d8bb7269a"/> <!-- shake note [note 69] --> <ModifierEntry chainIndex="0" gestureUuid="e0ae0484-10a1-44d6-8873-dcd6ae2cf70f" modifierData="..." modifierUuid="1ec43ffb-15db-4708-b21b-cf2ce372e3fc" prioIndex="0" uuid="dc13a7d2c19a4acfb9f435eff54f4ff5"/> <!-- shake cc [cc 2] --> <ModifierEntry chainIndex="0" gestureUuid="2a2a40b7-e73d-4b48-b959-bf196a0dc749" modifierData="..." modifierUuid="1ec43ffb-15db-4708-b21b-cf2ce372e3fc" prioIndex="0" uuid="133f78c514fd42b88eda7f4b9547b2a9"/> <!-- move cc [cc 113] --> <ModifierEntry chainIndex="0" gestureUuid="ea1d7a41-2175-4b9f-baf1-d6cfeb9913e7" modifierData="..." modifierUuid="1ec43ffb-15db-4708-b21b-cf2ce372e3fc" prioIndex="0" uuid="8432126dd86b4974a40506a6522995e2"/> <!-- bump [note 39] --> <ModifierEntry chainIndex="0" gestureUuid="aa95f4bc-a1ce-4eb6-a455-2e8353218620" modifierData="..." modifierUuid="1ec43ffb-15db-4708-b21b-cf2ce372e3fc" prioIndex="0" uuid="f0710a10ed704d36a95061859d9eb020"/> </ModifierList>
Don't know if this helps. I searched orba.exe. It appears Artiphon uses products/plugins by https://foleysfinest.com/.
In a previous post somewhere I think I mentioned that after finishing the alpha version of the Editor that my plan is to update the Fiddler to be completely generic. Since there is so many Base64 strings in these files, the idea is the user will paste any Base64 string into a Text Area and the Fiddler will create a table of the values it extracts. The user can then modify the numbers and the copy the Base64 string back to the clipboard and paste it into any file they want. The user will have to edit the file themselves and rename it to pick up the change, but I think this gives Orba Hackers more flexibility.
I think all modes support `Bump`. I believe it is hardcoded to the same note regardless of the mode. I've never come across a way to edit this value.. yet
Changing values 39 or 40 in the experimental data fiddler (chords preset) break it, whereas none of the other surrounding values seem to have any effect, so they might be connected with it; but I can't see how to alter it. If your theory about the lists of Modifier/Seeker values representing different gestures is correct, then maybe it's in the SeekerData for the entry corresponding to the bump gesture.
I also had a scour of the application itself and found lots of xml. Here is a sample:
<TuningList category="percussion" keySelection="false"> <TuningEntry name="All Kicks" /> <TuningEntry name="Drum Kit" /> <TuningEntry name="Electro Kit" /> </TuningList> <TuningList category="tonal" keySelection="true"> <TuningEntry name="Major" type="tonal" intervals="P1, M2, M3, P4, P5, M6, M7, P8" /> <TuningEntry name="Natural Minor" type="tonal" intervals="P1, M2, m3, P4, P5, m6, m7, P8" /> <TuningEntry name="Harmonic Minor" type="tonal" intervals="P1, M2, m3, P4, P5, m6, M7, P8" /> <TuningEntry name="Melodic Minor" type="tonal" intervals="P1, M2, m3, P4, P5, M6, M7, P8" /> <TuningEntry name="Major Pentatonic" type="tonal" intervals="P1, M2, M3, P5, M6, P8, M9, M10" /> <TuningEntry name="Minor Pentatonic" type="tonal" intervals="P1, m3, P4, P5, m7, P8, m10, P11" /> <!-- <TuningEntry name="Dorian" type="tonal" intervals="P1, M2, m3, P4, P5, M6, m7, P8" /> <TuningEntry name="Phrygian" type="tonal" intervals="P1, m2, m3, P4, P5, m6, m7, P8" /> <TuningEntry name="Lydian" type="tonal" intervals="P1, M2, M3, A4, P5, M6, M7, P8" /> <TuningEntry name="Mixolydian" type="tonal" intervals="P1, M2, M3, P4, P5, M6, m7, P8" /> <TuningEntry name="Locrian" type="tonal" intervals="P1, m2, m3, P4, d5, m6, m7, P8" /> --> </TuningList>
I also found lots of svg sources which I pasted into html docs. These are mostly UI elements but might lead to clues..
If you edit the Orba application in Notepad++ and search for text parameters from the XML like "RetainNotes", you can find alternatives that I haven't seen in the XML, like "RetainIntervals".
A typical tuning entry looks like this:
<TuningEntry key="C" name="Major Pentatonic" intervals="P1, M2, M3, P5, M6, P8, M9, M10"
midiOctave="3" transpositionType="RetainNotes" type="tonal" tuning="60, 62, 64, 67, 69, 72, 74, 76"/>
So far we haven't found any result from changing the "intervals" list, only the "tuning" values. I think that may be because the transpositionType is set to "RetainNotes", but if you change it to the alternative "RetainIntervals" value found in the App code, I reckon that's where the "intervals" string might start changing things.
I reckon it might be something to do with the way the chord sequence change when you change key in the App. I got some different result from it at one point, but couldn't then recreate it.
It might be worth scouring the code for other parameter values like this that we don't know about.
...actually, thinking about it, if quantisation isn't enabled in the App, the settings in the XML aren't going to have any effect. I guess we can forget about that, though it'll be interesting to see how it's implemented in v2.
I just Googled the inscription "Reply hazy, try again" on the motherboard; haven't come across it before. It's apparently from something called the Magic 8 Ball.
https://en.wikipedia.org/wiki/Magic_8_Ball
The currently available release is 0.15.13. Reading back through the changelog:
0.15.1 Disables quantization by default
0.15.0 Quantize on by default
0.14.19 Quantize on by default
0.14.18 - Quantization is turned on by default (constant length, snap to 1/16 notes) (PROD-2130)
etc
I don't suppose these earlier releases are still available, but maytbe some functionality is still there if the XML can turn it on.
...just flipping through some of the stuff in that downloadable firmware Orba_Fw_0.15.13_PreRelease zip file that Artiphon provides for recovery.
https://storage.googleapis.com/artiphon-web-content/Orba_Fw_0.15.13_PreRelease.zip
Interesting to see some of the comments in the "Changelog_Beta" file, like:
- Fixed issue where notes would disappear with quantize and cause a crash (PROD-2511, PROD-2528)
- Quantization is turned on by default (constant length, snap to 1/16 notes) (PROD-2130)
- Various bug fixes with quantization (PROD-2447, 2174)
As I mentioned, the XML in the song files contains some quantisation settings. This is from 1981.song.
<Mode name="Bass" quantizationMode="0" volume="200">
It sounds like there could possibly be some slightly broken quantisation features that might be accessible with some XML hacking.
...just some notes on attempts to boot/flash the Orba in a streamlined configuration.
The main PCB has three microswitches operated by the power/vol controls, and connections for:
1) Speaker
2) Power
3) Motor (vibration)
4) Sensor PCB
Unfortunately I've damaged these so I can't test fully.
In general, the Orba can get into four states:
1) Powers on normally
2) Unresponsive but can be automatically recovered by the App in DFU mode
3) Unresponsive but can be manually recovered by the App in DFU mode
4) Broken
The most signs of life from my PCB are with (3), described in Artiphon's notes on recovering an Orba from an unresponsive state by downloading a new copy of the firmware.
What happens is this:
1) Run the Orba App and navigate to Settings
2) Connect the PCB and boot into DFU mode
3) Drag firmware file to App as per the instructions
Either it's waiting for something that's not connected, or it's otherwise damaged.
As @Tony points out, the touch sensor PCB has its own IC which seems quite sophisticated. Perhaps the "capsense bootloader" file I mentioned gets sent to that.
It's not very clear how functions are divided up between the different ICs, and it would be difficult to try and figure out how to work with it. From Googling, it sounds like it may be in a configuration where the ESP32 is a "slave" and the STM32 is a "host MCU". I'm not sure if it's possible to talk to the ESP32 directly in this hardware or whether everything is relayed by the STM32.
I'm still curious about the kind of direct communication that takes place between the App and the Orba when changing key, but I don't know how to try and decipher that, or even which IC the App is talking to.
************************************************************
Firmware Upload log
15 Jun 2022 7:32:22pm - Downloading Update Info
15 Jun 2022 7:32:22pm - Downloading Updater Utilities
15 Jun 2022 7:32:22pm - Downloading Updater Util - Capsense Bootloader
15 Jun 2022 7:32:24pm - Downloading Updater Util - ESP32
15 Jun 2022 7:32:28pm - Downloading Updater Util - DFU
15 Jun 2022 7:32:31pm - Uploading Firmware
15 Jun 2022 7:32:31pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -l
15 Jun 2022 7:32:31pm - Orba already in DFU Mode
15 Jun 2022 7:32:31pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -l
15 Jun 2022 7:32:32pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -d 0483:df11 -a 1 -s 0x1fff0000:44:force -U C:\Users\admin\AppData\Local\Temp\temp_521aa190\firmware\option_bytes.bin
15 Jun 2022 7:32:34pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -d 0483:df11 -a 1 -s 0x1fff0000:will-reset:force -D C:\Users\admin\AppData\Local\Temp\temp_521aa190\firmware\option_bytes.bin
15 Jun 2022 7:32:37pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -d 0483:df11 -a 0 -s 0x20010000:force -D C:\Users\admin\AppData\Local\Temp\temp_521aa190\firmware\0x20010000.bin
15 Jun 2022 7:32:38pm - dfu-util 0.9-msvc
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Copyright 2010-2019 Tormod Volden and Stefan Schmidt
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - This program is Free Software and has ABSOLUTELY NO WARRANTY
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Invalid DFU suffix signature
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - A valid DFU suffix will be required in a future dfu-util release!!!
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Opening DFU capable USB device...
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - ID 0483:df11
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Run-time device DFU version 011a
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Claiming USB DFU Interface...
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Setting Alternate Setting #0 ...
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Determining device status: state = dfuERROR, status = 10
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - dfuERROR, clearing status
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Determining device status: state = dfuIDLE, status = 0
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - dfuIDLE, continuing
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - DFU mode device DFU version 011a
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Device returned transfer size 2048
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - DfuSe interface name: "Internal Flash "
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Downloading to address = 0x20010000, size = 125792
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm -
15 Jun 2022 7:32:38pm - Erase [ ] 0% 0 bytes
15 Jun 2022 7:32:38pm - Download [ ] 3% 4096 bytes
15 Jun 2022 7:32:45pm - Download [= ] 4% 6144 bytes
15 Jun 2022 7:32:45pm - Download [== ] 8% 10240 bytes
15 Jun 2022 7:32:45pm - Download [== ] 9% 12288 bytes
15 Jun 2022 7:32:45pm - Download [=== ] 13% 16384 bytes
15 Jun 2022 7:32:45pm - Download [==== ] 16% 20480 bytes
15 Jun 2022 7:32:45pm - Download [==== ] 17% 22528 bytes
15 Jun 2022 7:32:45pm - Download [===== ] 21% 26624 bytes
15 Jun 2022 7:32:45pm - Download [====== ] 24% 30720 bytes
15 Jun 2022 7:32:45pm - Download [======= ] 29% 36864 bytes
15 Jun 2022 7:32:45pm - Download [======== ] 32% 40960 bytes
15 Jun 2022 7:32:45pm - Download [========= ] 37% 47104 bytes
15 Jun 2022 7:32:45pm - Download [========= ] 39% 49152 bytes
15 Jun 2022 7:32:45pm - Download [========== ] 40% 51200 bytes
15 Jun 2022 7:32:45pm - Download [=========== ] 45% 57344 bytes
15 Jun 2022 7:32:45pm - Download [=========== ] 47% 59392 bytes
15 Jun 2022 7:32:45pm - Download [============ ] 48% 61440 bytes
15 Jun 2022 7:32:45pm - Download [============= ] 52% 65536 bytes
15 Jun 2022 7:32:51pm - Download [============= ] 53% 67584 bytes
15 Jun 2022 7:32:51pm - Download [============== ] 56% 71680 bytes
15 Jun 2022 7:32:51pm - Download [=============== ] 60% 75776 bytes
15 Jun 2022 7:32:51pm - Download [=============== ] 61% 77824 bytes
15 Jun 2022 7:32:51pm - Download [================ ] 65% 81920 bytes
15 Jun 2022 7:32:51pm - Download [================= ] 68% 86016 bytes
15 Jun 2022 7:32:51pm - Download [================== ] 73% 92160 bytes
15 Jun 2022 7:32:51pm - Download [=================== ] 76% 96256 bytes
15 Jun 2022 7:32:51pm - Download [==================== ] 81% 102400 bytes
15 Jun 2022 7:32:51pm - Download [==================== ] 83% 104448 bytes
15 Jun 2022 7:32:51pm - Download [===================== ] 84% 106496 bytes
15 Jun 2022 7:32:51pm - Download [====================== ] 89% 112640 bytes
15 Jun 2022 7:32:51pm - Download [====================== ] 91% 114688 bytes
15 Jun 2022 7:32:51pm - Download [======================= ] 92% 116736 bytes
15 Jun 2022 7:32:51pm - Download [======================== ] 96% 120832 bytes
15 Jun 2022 7:32:51pm - Download [======================== ] 97% 122880 bytes
15 Jun 2022 7:32:51pm - Download [=========================] 100% 125792 bytes
15 Jun 2022 7:32:51pm -
15 Jun 2022 7:32:51pm - Download done.
15 Jun 2022 7:32:51pm -
15 Jun 2022 7:32:51pm - File downloaded successfully
15 Jun 2022 7:32:51pm -
15 Jun 2022 7:32:51pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -d 0483:df11 -a 0 -s 0x8000000:force:leave -D C:\Users\admin\AppData\Local\Temp\temp_521aa190\firmware\0x8000000.bin
15 Jun 2022 7:32:52pm - dfu-util 0.9-msvc
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Copyright 2010-2019 Tormod Volden and Stefan Schmidt
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - This program is Free Software and has ABSOLUTELY NO WARRANTY
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Invalid DFU suffix signature
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - A valid DFU suffix will be required in a future dfu-util release!!!
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Opening DFU capable USB device...
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - ID 0483:df11
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Run-time device DFU version 011a
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Claiming USB DFU Interface...
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Setting Alternate Setting #0 ...
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Determining device status: state = dfuIDLE, status = 0
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - dfuIDLE, continuing
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - DFU mode device DFU version 011a
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Device returned transfer size 2048
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - DfuSe interface name: "Internal Flash "
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Downloading to address = 0x08000000, size = 65536
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm -
15 Jun 2022 7:32:52pm - Erase [ ] 0% 0 bytes
15 Jun 2022 7:32:52pm - Erase [ ] 0% 0 bytes
15 Jun 2022 7:32:52pm - Erase [= ] 6% 4096 bytes
15 Jun 2022 7:32:52pm - Erase [== ] 9% 6144 bytes
15 Jun 2022 7:32:53pm - Erase [=== ] 12% 8192 bytes
15 Jun 2022 7:32:53pm - Erase [==== ] 18% 12288 bytes
15 Jun 2022 7:32:53pm - Erase [===== ] 21% 14336 bytes
15 Jun 2022 7:32:53pm - Erase [====== ] 25% 16384 bytes
15 Jun 2022 7:32:53pm - Erase [======= ] 28% 18432 bytes
15 Jun 2022 7:32:53pm - Erase [======== ] 34% 22528 bytes
15 Jun 2022 7:32:53pm - Erase [========= ] 37% 24576 bytes
15 Jun 2022 7:32:53pm - Erase [========== ] 40% 26624 bytes
15 Jun 2022 7:32:53pm - Erase [=========== ] 46% 30720 bytes
15 Jun 2022 7:32:53pm - Erase [============ ] 50% 32768 bytes
15 Jun 2022 7:32:53pm - Erase [============= ] 53% 34816 bytes
15 Jun 2022 7:32:53pm - Erase [============== ] 56% 36864 bytes
15 Jun 2022 7:32:53pm - Erase [=============== ] 62% 40960 bytes
15 Jun 2022 7:32:53pm - Erase [================ ] 65% 43008 bytes
15 Jun 2022 7:32:53pm - Erase [================= ] 68% 45056 bytes
15 Jun 2022 7:32:53pm - Erase [================== ] 75% 49152 bytes
15 Jun 2022 7:32:53pm - Erase [=================== ] 78% 51200 bytes
15 Jun 2022 7:32:56pm - Erase [==================== ] 81% 53248 bytes
15 Jun 2022 7:32:56pm - Erase [===================== ] 84% 55296 bytes
15 Jun 2022 7:32:56pm - Erase [====================== ] 90% 59392 bytes
15 Jun 2022 7:32:56pm - Erase [======================= ] 93% 61440 bytes
15 Jun 2022 7:32:56pm - Erase [======================== ] 96% 63488 bytes
15 Jun 2022 7:32:56pm - Download [ ] 0% 0 bytes
15 Jun 2022 7:32:56pm - Download [= ] 6% 4096 bytes
15 Jun 2022 7:32:56pm - Download [== ] 9% 6144 bytes
15 Jun 2022 7:32:56pm - Download [=== ] 12% 8192 bytes
15 Jun 2022 7:32:56pm - Download [==== ] 18% 12288 bytes
15 Jun 2022 7:32:56pm - Download [===== ] 21% 14336 bytes
15 Jun 2022 7:32:56pm - Download [====== ] 25% 16384 bytes
15 Jun 2022 7:32:56pm - Download [======= ] 28% 18432 bytes
15 Jun 2022 7:32:56pm - Download [======== ] 34% 22528 bytes
15 Jun 2022 7:32:56pm - Download [========= ] 37% 24576 bytes
15 Jun 2022 7:32:56pm - Download [========== ] 40% 26624 bytes
15 Jun 2022 7:33:00pm - Download [=========== ] 46% 30720 bytes
15 Jun 2022 7:33:00pm - Download [============ ] 50% 32768 bytes
15 Jun 2022 7:33:00pm - Download [============= ] 53% 34816 bytes
15 Jun 2022 7:33:00pm - Download [============== ] 56% 36864 bytes
15 Jun 2022 7:33:00pm - Download [=============== ] 62% 40960 bytes
15 Jun 2022 7:33:00pm - Download [================ ] 65% 43008 bytes
15 Jun 2022 7:33:00pm - Download [================= ] 68% 45056 bytes
15 Jun 2022 7:33:00pm - Download [================== ] 75% 49152 bytes
15 Jun 2022 7:33:00pm - Download [=================== ] 78% 51200 bytes
15 Jun 2022 7:33:00pm - Download [==================== ] 81% 53248 bytes
15 Jun 2022 7:33:00pm - Download [===================== ] 84% 55296 bytes
15 Jun 2022 7:33:00pm - Download [====================== ] 90% 59392 bytes
15 Jun 2022 7:33:00pm - Download [======================= ] 93% 61440 bytes
15 Jun 2022 7:33:00pm - Download [======================== ] 96% 63488 bytes
15 Jun 2022 7:33:00pm - Download [=========================] 100% 65536 bytes
15 Jun 2022 7:33:00pm -
15 Jun 2022 7:33:00pm - Download done.
15 Jun 2022 7:33:00pm -
15 Jun 2022 7:33:00pm - File downloaded successfully
15 Jun 2022 7:33:00pm -
15 Jun 2022 7:33:00pm - Transitioning to dfuMANIFEST state
15 Jun 2022 7:33:00pm -
15 Jun 2022 7:33:00pm - Waiting for Orba to restart
15 Jun 2022 7:34:00pm - Unable to reconnect Orba
15 Jun 2022 7:34:00pm - Upload Failed
My hardware/firmware hacking will probably end here. I was curious about how the ESP32 would work in tandem with the STM32, but it seems to be a tried and tested configuration. From Googling it, I started hitting links to "ESP-AT".
https://docs.espressif.com/projects/esp-at/en/latest/esp32/Get_Started/What_is_ESP-AT.html
The general idea is that the ESP32 board acts as a "slave", with a "host" MCU. I think the Orba is probably configured with the ESP32-SOLO-1 as a slave, and the STM32 as the host.
You can Google references to other people using STM32/ESP32 chips together in presumably a similar way.
To add to the complexity, the sensor board has a CY8C chip which seems to be quite a sophisticated devioce in its own right. I think the "capsense bootloader" I mentioned is probably delivered to this chip, other stuff is perhaps delivered to the ESP32, maybe the STM32 handles other duties; who knows. It all looks extremely complex, and I won't attempt to understand any of it.
I'm still curious about certain basic things like how the App interacts directly with the Orba. Is it talking to the STM or the ESP...? Is it even possible to talk directly to the ESP in this configuration, or does it have to go via the STM...? What roles do the STM and the ESP play in general use...? But I don't know if we'll ever find answers to these questions.
The possibility I mentioned of uploading/downloading files in DFU mode which might possibly contain song data is probably irrelevant since this is only STM communication, and the heavy lifting is being done by the ESP.
The only other observation I have is the sequence of events when you try to flash it from the least responsive state; by dragging the firmware file into the Orba App.
I'll admit that I was a bit reckless in tearing this thing open the way I did. I didn't unplug the connections; they just got ripped off the board, and I doubt I'll bring it back to life now. C'est la vie; you live and learn.
I've always been fascinated by electronics although I've never understood it. The complexity of the circuitry, let alone the internal workings of ICs, blows me away. I tinker around with hobby chips like the Teensy LC that let you recreate a lot of the functionality of something like this with a YouTube tutorial and a few bits of wire, but when I open commercial products the PCBs are rocket science, like, "wow, I didn't imagine it would be so complicated". It puzzles me slightly. I guess the components here are far cheaper in mass production than something like a Teensy, they're smaller, and once you've designed the layout you can get some Chinese production line to stamp them out for peanuts. It's all amazing really.
I've been guilty of occasionally moaning at Artiphon about this and that, but actually I have huge respect for the skills that go into the production of something like the Orba. I've been slightly spoiled by getting involved in various open-source projects where volunteers adapt and improve systems for free in amazing ways, but the commercial world is a different world.
On a philosophical level I feel there's a weird disconnect between the unfathomable complexity of a human being and the difficulty they have in, eg, learning the alphabet backwards. And I feel a bit the same about the Orba; the complexity of the circuitry is mind-blowing, and you can't play a Dorian scale? (Well, at least you can now, thanks to @Subskybox.) But, it is what it is. It's intended for a specific purpose and produced by a company that has its own ideas and priorities. Fair enough.
Overall, I think the experience has brought me closer to the open-source outlook, though I can't deny the appeal of the hardware quality on offer in commercial products like this. We're talking considerable R&D, and why would they then start giving the results away. I'm waffling. I'm clearly conflicted.
Anyway. Probably my last post on the circuit/firmware side...
A USB connection to the main PCB. The most signs of life I can get out of this are as follows.
1) Run the Orba App and navigate to the Settings page.
2) Plug in the PCB and boot it in DFU mode. (I can still access the microswitches.)
3) Drag the Orba_Fw_0.15.13_PreRelease zip file to the "Firmware Update" section as per the instructions by Artiphon for reviving a dead Orba.
Evidentally the Orba refuses to restart. If I plug it into the computer and try to power on normally, it goes straight to red-flashing mode.
Either it's damaged, or it's waiting for one of the connections:
1) Battery
2) Speaker
3) Haptic motor
4) Sensor connection (still physically possible but perhaps damaged)
Since my method of opening the Orba involved ripping these off instead of unplugging them (oops), I can't test/progress from here. And since I can only talk to the organ grinder's monkey (the STM) instead of the organ grinder (the ESP), I give up at this point.
I'd be interested in taking an Orba 2 apart and see what's changed. I'm guessing the ESP-SOLO-1 will be upgraded but the other infrastructure will be similar.
It's not going to happen, because I won't find one for twenty quid, and I wouldn't demolish it if I did.
"Alas, poor Orba. I knew him, Horatio."
**************************************************************************************************************
Firmware upload log:
15 Jun 2022 6:28:07pm - Downloading Update Info
15 Jun 2022 6:28:07pm - Downloading Updater Utilities
15 Jun 2022 6:28:07pm - Downloading Updater Util - Capsense Bootloader
15 Jun 2022 6:28:09pm - Downloading Updater Util - ESP32
15 Jun 2022 6:28:13pm - Downloading Updater Util - DFU
15 Jun 2022 6:28:16pm - Uploading Firmware
15 Jun 2022 6:28:16pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -l
15 Jun 2022 6:28:16pm - Orba already in DFU Mode
15 Jun 2022 6:28:16pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -l
15 Jun 2022 6:28:17pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -d 0483:df11 -a 1 -s 0x1fff0000:44:force -U C:\Users\admin\AppData\Local\Temp\temp_87abb933\firmware\option_bytes.bin
15 Jun 2022 6:28:19pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -d 0483:df11 -a 1 -s 0x1fff0000:will-reset:force -D C:\Users\admin\AppData\Local\Temp\temp_87abb933\firmware\option_bytes.bin
15 Jun 2022 6:28:22pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -d 0483:df11 -a 0 -s 0x20010000:force -D C:\Users\admin\AppData\Local\Temp\temp_87abb933\firmware\0x20010000.bin
15 Jun 2022 6:28:23pm - dfu-util 0.9-msvc
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Copyright 2010-2019 Tormod Volden and Stefan Schmidt
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - This program is Free Software and has ABSOLUTELY NO WARRANTY
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Invalid DFU suffix signature
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - A valid DFU suffix will be required in a future dfu-util release!!!
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Opening DFU capable USB device...
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - ID 0483:df11
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Run-time device DFU version 011a
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Claiming USB DFU Interface...
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Setting Alternate Setting #0 ...
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Determining device status: state = dfuERROR, status = 10
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - dfuERROR, clearing status
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Determining device status: state = dfuIDLE, status = 0
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - dfuIDLE, continuing
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - DFU mode device DFU version 011a
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Device returned transfer size 2048
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - DfuSe interface name: "Internal Flash "
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Downloading to address = 0x20010000, size = 125792
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm -
15 Jun 2022 6:28:23pm - Erase [ ] 0% 0 bytes
15 Jun 2022 6:28:23pm - Download [ ] 3% 4096 bytes
15 Jun 2022 6:28:30pm - Download [= ] 4% 6144 bytes
15 Jun 2022 6:28:30pm - Download [== ] 8% 10240 bytes
15 Jun 2022 6:28:30pm - Download [== ] 9% 12288 bytes
15 Jun 2022 6:28:30pm - Download [=== ] 13% 16384 bytes
15 Jun 2022 6:28:30pm - Download [==== ] 16% 20480 bytes
15 Jun 2022 6:28:30pm - Download [==== ] 17% 22528 bytes
15 Jun 2022 6:28:30pm - Download [===== ] 21% 26624 bytes
15 Jun 2022 6:28:30pm - Download [====== ] 24% 30720 bytes
15 Jun 2022 6:28:30pm - Download [======= ] 29% 36864 bytes
15 Jun 2022 6:28:30pm - Download [======== ] 32% 40960 bytes
15 Jun 2022 6:28:30pm - Download [========= ] 37% 47104 bytes
15 Jun 2022 6:28:30pm - Download [========= ] 39% 49152 bytes
15 Jun 2022 6:28:30pm - Download [========== ] 40% 51200 bytes
15 Jun 2022 6:28:30pm - Download [=========== ] 45% 57344 bytes
15 Jun 2022 6:28:30pm - Download [=========== ] 47% 59392 bytes
15 Jun 2022 6:28:30pm - Download [============ ] 48% 61440 bytes
15 Jun 2022 6:28:30pm - Download [============= ] 52% 65536 bytes
15 Jun 2022 6:28:36pm - Download [============= ] 53% 67584 bytes
15 Jun 2022 6:28:36pm - Download [============== ] 56% 71680 bytes
15 Jun 2022 6:28:36pm - Download [=============== ] 60% 75776 bytes
15 Jun 2022 6:28:36pm - Download [=============== ] 61% 77824 bytes
15 Jun 2022 6:28:36pm - Download [================ ] 65% 81920 bytes
15 Jun 2022 6:28:36pm - Download [================= ] 68% 86016 bytes
15 Jun 2022 6:28:36pm - Download [================== ] 73% 92160 bytes
15 Jun 2022 6:28:36pm - Download [=================== ] 76% 96256 bytes
15 Jun 2022 6:28:36pm - Download [==================== ] 81% 102400 bytes
15 Jun 2022 6:28:36pm - Download [==================== ] 83% 104448 bytes
15 Jun 2022 6:28:36pm - Download [===================== ] 84% 106496 bytes
15 Jun 2022 6:28:36pm - Download [====================== ] 89% 112640 bytes
15 Jun 2022 6:28:36pm - Download [======================= ] 92% 116736 bytes
15 Jun 2022 6:28:36pm - Download [======================== ] 96% 120832 bytes
15 Jun 2022 6:28:36pm - Download [======================== ] 97% 122880 bytes
15 Jun 2022 6:28:36pm - Download [=========================] 100% 125792 bytes
15 Jun 2022 6:28:36pm -
15 Jun 2022 6:28:36pm - Download done.
15 Jun 2022 6:28:36pm -
15 Jun 2022 6:28:36pm - File downloaded successfully
15 Jun 2022 6:28:36pm -
15 Jun 2022 6:28:36pm - Executing: C:\Users\admin\AppData\Roaming\Artiphon\Orba\UpdateUtilities\dfu-util-win\dfu-util.exe -d 0483:df11 -a 0 -s 0x8000000:force:leave -D C:\Users\admin\AppData\Local\Temp\temp_87abb933\firmware\0x8000000.bin
15 Jun 2022 6:28:37pm - dfu-util 0.9-msvc
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Copyright 2010-2019 Tormod Volden and Stefan Schmidt
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - This program is Free Software and has ABSOLUTELY NO WARRANTY
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Invalid DFU suffix signature
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - A valid DFU suffix will be required in a future dfu-util release!!!
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Opening DFU capable USB device...
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - ID 0483:df11
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Run-time device DFU version 011a
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Claiming USB DFU Interface...
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Setting Alternate Setting #0 ...
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Determining device status: state = dfuIDLE, status = 0
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - dfuIDLE, continuing
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - DFU mode device DFU version 011a
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Device returned transfer size 2048
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - DfuSe interface name: "Internal Flash "
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Downloading to address = 0x08000000, size = 65536
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm -
15 Jun 2022 6:28:37pm - Erase [ ] 0% 0 bytes
15 Jun 2022 6:28:37pm - Erase [ ] 0% 0 bytes
15 Jun 2022 6:28:37pm - Erase [= ] 6% 4096 bytes
15 Jun 2022 6:28:37pm - Erase [== ] 9% 6144 bytes
15 Jun 2022 6:28:38pm - Erase [=== ] 12% 8192 bytes
15 Jun 2022 6:28:38pm - Erase [==== ] 18% 12288 bytes
15 Jun 2022 6:28:38pm - Erase [===== ] 21% 14336 bytes
15 Jun 2022 6:28:38pm - Erase [====== ] 25% 16384 bytes
15 Jun 2022 6:28:38pm - Erase [======= ] 28% 18432 bytes
15 Jun 2022 6:28:38pm - Erase [======== ] 34% 22528 bytes
15 Jun 2022 6:28:38pm - Erase [========= ] 37% 24576 bytes
15 Jun 2022 6:28:38pm - Erase [========== ] 40% 26624 bytes
15 Jun 2022 6:28:38pm - Erase [=========== ] 46% 30720 bytes
15 Jun 2022 6:28:38pm - Erase [============ ] 50% 32768 bytes
15 Jun 2022 6:28:38pm - Erase [============= ] 53% 34816 bytes
15 Jun 2022 6:28:38pm - Erase [============== ] 56% 36864 bytes
15 Jun 2022 6:28:38pm - Erase [=============== ] 62% 40960 bytes
15 Jun 2022 6:28:38pm - Erase [================ ] 65% 43008 bytes
15 Jun 2022 6:28:38pm - Erase [================= ] 68% 45056 bytes
15 Jun 2022 6:28:38pm - Erase [================== ] 75% 49152 bytes
15 Jun 2022 6:28:38pm - Erase [=================== ] 78% 51200 bytes
15 Jun 2022 6:28:41pm - Erase [==================== ] 81% 53248 bytes
15 Jun 2022 6:28:41pm - Erase [===================== ] 84% 55296 bytes
15 Jun 2022 6:28:41pm - Erase [====================== ] 90% 59392 bytes
15 Jun 2022 6:28:41pm - Erase [======================= ] 93% 61440 bytes
15 Jun 2022 6:28:41pm - Erase [======================== ] 96% 63488 bytes
15 Jun 2022 6:28:41pm - Download [ ] 0% 0 bytes
15 Jun 2022 6:28:41pm - Download [= ] 6% 4096 bytes
15 Jun 2022 6:28:41pm - Download [== ] 9% 6144 bytes
15 Jun 2022 6:28:41pm - Download [=== ] 12% 8192 bytes
15 Jun 2022 6:28:41pm - Download [==== ] 18% 12288 bytes
15 Jun 2022 6:28:41pm - Download [===== ] 21% 14336 bytes
15 Jun 2022 6:28:41pm - Download [====== ] 25% 16384 bytes
15 Jun 2022 6:28:41pm - Download [======= ] 28% 18432 bytes
15 Jun 2022 6:28:41pm - Download [======== ] 34% 22528 bytes
15 Jun 2022 6:28:41pm - Download [========= ] 37% 24576 bytes
15 Jun 2022 6:28:41pm - Download [========== ] 40% 26624 bytes
15 Jun 2022 6:28:45pm - Download [=========== ] 46% 30720 bytes
15 Jun 2022 6:28:45pm - Download [============ ] 50% 32768 bytes
15 Jun 2022 6:28:45pm - Download [============= ] 53% 34816 bytes
15 Jun 2022 6:28:45pm - Download [============== ] 56% 36864 bytes
15 Jun 2022 6:28:45pm - Download [=============== ] 62% 40960 bytes
15 Jun 2022 6:28:45pm - Download [================ ] 65% 43008 bytes
15 Jun 2022 6:28:45pm - Download [================= ] 68% 45056 bytes
15 Jun 2022 6:28:45pm - Download [================== ] 75% 49152 bytes
15 Jun 2022 6:28:45pm - Download [=================== ] 78% 51200 bytes
15 Jun 2022 6:28:45pm - Download [==================== ] 81% 53248 bytes
15 Jun 2022 6:28:45pm - Download [===================== ] 84% 55296 bytes
15 Jun 2022 6:28:45pm - Download [====================== ] 90% 59392 bytes
15 Jun 2022 6:28:45pm - Download [======================= ] 93% 61440 bytes
15 Jun 2022 6:28:45pm - Download [======================== ] 96% 63488 bytes
15 Jun 2022 6:28:45pm - Download [=========================] 100% 65536 bytes
15 Jun 2022 6:28:45pm -
15 Jun 2022 6:28:45pm - Download done.
15 Jun 2022 6:28:45pm -
15 Jun 2022 6:28:45pm - File downloaded successfully
15 Jun 2022 6:28:45pm -
15 Jun 2022 6:28:45pm - Transitioning to dfuMANIFEST state
15 Jun 2022 6:28:45pm -
15 Jun 2022 6:28:45pm - Waiting for Orba to restart
15 Jun 2022 6:29:45pm - Unable to reconnect Orba
15 Jun 2022 6:29:45pm - Upload Failed
Hey @BJG145 I feel bad cluttering up this thread.
I'm going to start another thread. :)
Andrea Mannocci
This thread is intended to gather the feedback of Orba tinkerers.
29 people like this idea