Loopy Pro: Create music, your way.

What is Loopy Pro?Loopy Pro is a powerful, flexible, and intuitive live looper, sampler, clip launcher and DAW for iPhone and iPad. At its core, it allows you to record and layer sounds in real-time to create complex musical arrangements. But it doesn’t stop there—Loopy Pro offers advanced tools to customize your workflow, build dynamic performance setups, and create a seamless connection between instruments, effects, and external gear.

Use it for live looping, sequencing, arranging, mixing, and much more. Whether you're a live performer, a producer, or just experimenting with sound, Loopy Pro helps you take control of your creative process.

Download on the App Store

Loopy Pro is your all-in-one musical toolkit. Try it for free today.

How hard is it to hack ( reverse engineer) an audio interface?

Hi guys, hope you are all doing well.
So since Apogee seems to have abandoned fixing Apogee One and iPad Pros usb c versions issue, i was wondering if it would be possible to hack the audio interface to work as a normal audio interface ( to show it’s inputs to the iPad or computers without the need of Apogee Maestro).

I know the best solution is to buy an other interface.
i do own others but would love to have the One working with iPad again, mainly because of it’s built-in microphone and good converters.

How hard would it be to do?

I opened the interface and found the chip and pins for EEPROM flash.
I also used Wireshark to read more about the interface.

P.S.
I know almost nothing about coding, but since I’ve had this idea, I’ve been watching videos on how to reverse engineer firmware. What would be the best way to start learning?


Comments

  • edited October 2021

    Firstly, well done for thinking this way.

    I would be looking at Reddit for a forum that may enable me to move closer to my goal. I think it's worth understanding exactly what that is. I guess you will have a better understanding once you know more. Please keep us updated.

    Also, it's almost impossible to do this without someone telling you that it cannot be done. They will know and for proof they will roll out their credentials. Ignore every one of these experts.

  • @ashh said:
    Firstly, well done for thinking this way.

    I would be looking at Reddit for a forum that may enable me to move closer to my goal. I think it's worth understanding exactly what that is. I guess you will have a better understanding once you know more. Please keep us updated.

    Also, it's almost impossible to do this without someone telling you that it cannot be done. They will know and for proof they will roll out their credentials. Ignore every one of these experts.

    Hi @ashh thanks for the positivity and suggestions.
    I already know the goal .
    Basically the interface does “work” out of the box ( you can use it as playback device and control iPads volume) but the mic (int and external) inputs are hidden.
    Which I want to change and also maybe add some code to the interface in a way to long tap the Knob to activate or deactivate phantom power for the external microphone.
    Let me start my Reddit search, thanks✌🏽.

  • @Paa89 said:

    @ashh said:
    Firstly, well done for thinking this way.

    I would be looking at Reddit for a forum that may enable me to move closer to my goal. I think it's worth understanding exactly what that is. I guess you will have a better understanding once you know more. Please keep us updated.

    Also, it's almost impossible to do this without someone telling you that it cannot be done. They will know and for proof they will roll out their credentials. Ignore every one of these experts.

    Hi @ashh thanks for the positivity and suggestions.
    I already know the goal .
    Basically the interface does “work” out of the box ( you can use it as playback device and control iPads volume) but the mic (int and external) inputs are hidden.
    Which I want to change and also maybe add some code to the interface in a way to long tap the Knob to activate or deactivate phantom power for the external microphone.
    Let me start my Reddit search, thanks✌🏽.

    Cool! So it’s software and hardware? Is it a hack or is it something you feel you’ll be doing which will require building new hardware or software from the gtround up? I’m guessing you’ll be hacking the hardware, at least? <Maybe adding the software code to whatever is there already?

  • @ashh said:

    @Paa89 said:

    @ashh said:
    Firstly, well done for thinking this way.

    I would be looking at Reddit for a forum that may enable me to move closer to my goal. I think it's worth understanding exactly what that is. I guess you will have a better understanding once you know more. Please keep us updated.

    Also, it's almost impossible to do this without someone telling you that it cannot be done. They will know and for proof they will roll out their credentials. Ignore every one of these experts.

    Hi @ashh thanks for the positivity and suggestions.
    I already know the goal .
    Basically the interface does “work” out of the box ( you can use it as playback device and control iPads volume) but the mic (int and external) inputs are hidden.
    Which I want to change and also maybe add some code to the interface in a way to long tap the Knob to activate or deactivate phantom power for the external microphone.
    Let me start my Reddit search, thanks✌🏽.

    Cool! So it’s software and hardware? Is it a hack or is it something you feel you’ll be doing which will require building new hardware or software from the gtround up? I’m guessing you’ll be hacking the hardware, at least? <Maybe adding the software code to whatever is there already?

    I think it’s more of a software issue.
    Apogee said Maestro can’t communicate with the interface because of a driver issue and on iOS it’s not possible to install drivers.
    So I believe changing something in the code could expose the inputs to iPad bypassing Maestro.
    Basically if you have a lightning port iPad, it does work because Apple gave Apogee the MFI permissions for lighting and since Apple doesn’t own USBc protocol Apogee can’t get permission from Apple.
    But it’s all strange since Apogee have released Duet 3 and Symphony Desktop and these both work on iPad USBC.
    This makes me think they ain’t that bothered with the One since it’s old and probably not making them money no more 😂.
    They could just release a firmware update which does what i have in mind.

  • edited October 2021

    @Paa89 Sorry to step in on the negative side, but this is likely impossible. Basically, the board is controlled by a small computer (microcontroller). The flash chip stores the program, or maybe only the configuration if there's other memory. The software will likely include a tiny operating system and the control program. That program was probably written in C and compiled to produce the binary machine code on the chip. Even if you could extract the code from the flash, it wouldn't make much sense. In order to modify it, you'd need to rewrite the C program by decoding the machine code and imagining the C statements that produced it. You could then modify the C program (easy once you understand it), compile the new code using an appropriate cross-compiler, and upload the result to the flash.

    The first steps on this very long road would be:
    1. Identify the processor being used.
    2. Find the pinout for the connector next to the flash.
    3. Get or make an interface that can read the flash using the connector.
    4. Extract the flash data to a computer.
    5. Determine whether it contains the program (megabytes) or just the config.
    6. Decide how to continue.

    A service manual for the unit might be of some help in this.

    Edit: Aha. The 32UC3A4 chip in your photo is the microcontroller, see https://ww1.microchip.com/downloads/en/DeviceDoc/doc32058.pdf. If there are some pins near the chip, they might be the connection for a JTAG debugger. If you can find that connector, you might be able to get into the processor.

  • @uncledave said:
    @Paa89 Sorry to step in on the negative side, but this is likely impossible. Basically, the board is controlled by a small computer (microcontroller). The flash chip stores the program, or maybe only the configuration if there's other memory. The software will likely include a tiny operating system and the control program. That program was probably written in C and compiled to produce the binary machine code on the chip. Even if you could extract the code from the flash, it wouldn't make much sense. In order to modify it, you'd need to rewrite the C program by decoding the machine code and imagining the C statements that produced it. You could then modify the C program (easy once you understand it), compile the new code using an appropriate cross-compiler, and upload the result to the flash.

    The first steps on this very long road would be:
    1. Identify the processor being used.
    2. Find the pinout for the connector next to the flash.
    3. Get or make an interface that can read the flash using the connector.
    4. Extract the flash data to a computer.
    5. Determine whether it contains the program (megabytes) or just the config.
    6. Decide how to continue.

    A service manual for the unit might be of some help in this.

    Edit: Aha. The 32UC3A4 chip in your photo is the microcontroller, see https://ww1.microchip.com/downloads/en/DeviceDoc/doc32058.pdf. If there are some pins near the chip, they might be the connection for a JTAG debugger. If you can find that connector, you might be able to get into the processor.

    Oh here comes the dream killer 😂😂.
    Thanks for the valuable information. Really appreciated.
    You have basically laid out the important steps needed and made my quest a bit easier now.
    if you also have a look at the first pic, I have circled in yellow what I believe to be the pins.
    What’s the best jTAG interface to use?

  • I've found it to be easiest to use a JTAG/Programmer Debugger from the manufacturer of the MCU. But, I've never owned a fancy expensive one either. So, maybe one of those would be better.

    Have you done any programming on MCU's? If not, then maybe the best place to start would be to pickup a dev board with as close as possible to the MCU on the device and start getting a feel for how this device is to program.

    This one is an SoC with the USB controllers, etc. on chip. I don't think it is going to be easy to extract the firmware and decompile it and then reverse engineer it. You're kind of into the realm that induced Stallman to invent the idea of the GPL. It's not easy to get a complex piece of hardware working with what you need once the manufacturer stops supporting it.

    Do you have more info on what the issue is with the interface and the iPad is?

  • I would absolutely forget about the Apogee, unless you had schematics and source code and experience, and a compelling reason other than saving money (like you’re developing a product). But diy programming is a fantastic thing to get into, in particular the world of Arduino, with the wide community and libraries that take a lot of the time consuming/high level work out of the equation. I’m personally interested in getting started with a DSP platform for making hardware music widgets, there’s a few that look like they’re set up nice for hobbyists. It didn’t use to be that way, you had to do all this development work on your own to make even simple MCU things. Now you can get inexpensive little circuit boards with all kinds of accessories, and copy and paste from other people’s code and call functions from libraries that you have no idea how they work, and get something without it being a major investment. Kind of the ultimate tool for the casual inventor.

  • Here’s an alternative…why not connect the Apogee to an older iPhone if you have one. I believe it’s lightning based, and should allow you to record audio with it.
    Not saying it’s impossible, but it’s an involved process. I still have flashbacks on how long it took me to setup an Altera FPGA board for our final design project.

  • edited November 2021

    @seonnthaproducer
    @ashh
    @NeonSilicon
    @Processaurus
    @uncledave

    https://youtube.com/shorts/w9xzpn55KX0?feature=share

    Hi guys thanks for the input an advice.
    I was able to let Apogee Maestro on iPad Pro 11 see the Apogee One.
    I was also able to change the various inputs via Apogee Maestro (+48v etc) but unfortunately no Audio App sees the Inputs yet.
    I’m not a software engineer, I just like messing about with things till I wreck them or make them useful in some way.
    In this case all I did was edit the XML file in the update directory with Visual Studio.
    I told the Firmware updater to load a different BIN file since there are two bin files for Apogee One in the update directory.
    When I connect USB cables that are not from Apogee, Maestro seems to detect the device till i disconnect but it doesn’t work with Apogees own cable.
    Is there a way to read EEPROM from usb without the JTAG?

  • Yes! N1. I love your can-do attitude.

    As for your question, no idea.

  • @ashh said:
    Yes! N1. I love your can-do attitude.

    Agreed 💯

    As for your question, no idea.

    Same here, but I’ll be watching this thread 👀

    I’d love to save the ONE from a landfill if it can be done. Battery powered interface with built in mic + option for external, and overall quality makes it a pretty cool little interface.

    Good luck!

  • @Paa89 said
    Is there a way to read EEPROM from usb without the JTAG?

    Probably not, since the USB is managed by the software, while the JTAG port is managed by hidden functionality in the processor.

    However, since you have a firmware update bin file, you probably already have a copy of the system image loaded by the device at boot time. That's basically what you'd get from the JTAG port. Still not much to go on, since you'd be decoding binary instructions. We old timers would jump on a hex memory dump, but that was for a machine with 32K (16-bit words) memory; sounds laughable now. You're looking at a much larger system.

  • You may check the .bin file with a text editor for ascii labels.
    If there aren‘t any (or rather no ascii) at 1st glance, the file may be compressed.
    Try a couple of uncompressors for tar, gzip, etc if they can expand the thing.
    Without labels you’d be completely lost in plain code.

  • edited November 2021

    @Telefunky said:
    You may check the .bin file with a text editor for ascii labels.
    If there aren‘t any (or rather no ascii) at 1st glance, the file may be compressed.
    Try a couple of uncompressors for tar, gzip, etc if they can expand the thing.
    Without labels you’d be completely lost in plain code.

    Hi, thanks for the input.

    @uncledave
    @ashh
    @NeonSilicon
    @ipadbeatmaking
    I have been unable to view the RAW Bin file with Ghidra.
    I can see functions etc.
    hopefully with a bit of Googling I may be able to reverse it one day.

  • @Paa89 said:

    @Telefunky said:
    You may check the .bin file with a text editor for ascii labels.
    If there aren‘t any (or rather no ascii) at 1st glance, the file may be compressed.
    Try a couple of uncompressors for tar, gzip, etc if they can expand the thing.
    Without labels you’d be completely lost in plain code.

    Hi, thanks for the input.

    @uncledave
    @ashh
    @NeonSilicon
    @ipadbeatmaking
    I have been unable to view the RAW Bin file with Ghidra.
    I can see functions etc.
    hopefully with a bit of Googling I may be able to reverse it one day.

    You're a lot closer than I expected. And I love the screen look, so appropriate for an old-school hacker.

Sign In or Register to comment.