Hi, Thanks for your help!
After thinking about it, in the end I would probably end up copying every function in Java anyways to update the Libraries. So I will simply transcode my micro controller functions in Java as you said. I started slowly to do so, but I see some errors about incompatible IOIO version in my LogCat...? I get the same error message as in the following post https://groups.google.com/forum/#!msg/ioio-users/5rziYMOYouc/kVK_lic10qMJ except I have a different IOIO bootloader version. I think it's because I'm using the most recent version of the IOIOLib for Android with an older version of the bootloader. To fix the problem I need compatible bootloader files to compile in MPLab which I can't find on the IOIO page. Is it possible to get them? Here is the LogCat error message I get: 02-02 16:32:13.558: I/IncomingState(25002): IOIO Connection established. Hardware ID: SPRK0016 Bootloader ID: IOIO0306 Firmware ID: IOIO0326 02-02 16:32:13.558: V/IOIOImpl(25002): Querying for required interface ID 02-02 16:32:13.598: E/IOIOImpl(25002): Required interface ID is not supported 02-02 16:32:13.598: E/IOIOBaseApplicationHelper(25002): Incompatible IOIO firmware 02-02 16:32:13.598: E/IOIOBaseApplicationHelper(25002): ioio.lib.api.exception.IncompatibilityException: IOIO firmware does not support required firmware: IOIO0005 02-02 16:32:13.598: E/IOIOBaseApplicationHelper(25002): at ioio.lib.impl.IOIOImpl.checkInterfaceVersion(IOIOImpl.java:208) 02-02 16:32:13.598: E/IOIOBaseApplicationHelper(25002): at ioio.lib.impl.IOIOImpl.waitForConnect(IOIOImpl.java:135) 02-02 16:32:13.598: E/IOIOBaseApplicationHelper(25002): at ioio.lib.util.IOIOBaseApplicationHelper$IOIOThread.run(IOIOBaseApplicationHelper.java:58) Thanks again! Vincent Le dimanche 1 février 2015 07:22:55 UTC+1, Ytai a écrit : > > If you want my honest opinion, I have a good guess that converting your > code to Java would be way easier than the way you're approaching it. It > will also have the benefit of being able to upgrade the firmware and > IOIOLib very easily in the future without having to port the code. > > If you're insisting on doing it the hard way, what I would do is: > > 1. Make sure you are able to build and install the standard firmware > on the IOIO. > 2. Read both firmware protocol.c file and the software > IOIOProtocol.java file and make sure you understand how the protocol works > and then what is the overall sequence of how a Java call on the Android > eventually gets to the proper function on the IOIO and how functions on > the > IOIO can send data that eventually shows up on the Android. > 3. Add your custom functions to the standard firmware and plumb them > through in a similar fashion. Make sure you don't collide with the > standard > firmware on resources, such as the I2C buses, etc. > > > > On Thu, Jan 29, 2015 at 3:43 AM, Vincent Nadon <[email protected] > <javascript:>> wrote: > >> I am aware that I am using the IOIO pic (PIC24) in a different way from >> it's intended usage. What I do specifically with the PIC24 is as follows: >> >> 1) I program some DSPs during bootup. To do so I use I2C protocol between >> the Pic and the DSPs. >> >> 2) I have created some functions on the Pic to control the DSPs. >> >> 3) I have a rotary switch to control the Pic and start some of the >> functions I created and therefore controlling the DSPs through I2C. >> >> 4) We have an Android App that one of my colleague started based on the >> IOIO libraries. The colleague is now working abroad and I need to customize >> everything for my needs in my project. Mainly what I want to do is control >> my DSPs through the IOIO (PIC24) with Bluetooth or USB and gather the data >> that I read with the Pic send it to the Android App so that I am able to >> see it as a Graph. >> >> We already have some functions in the Android App that can control the >> DSPs through the Pic, but they are not very practical since I would need to >> copy every function I created in the Pic into the Android App. So I instead >> I want to simply use the functions I already programmed in the Pic through >> the Android App. I would like to still be able to control the Pic with my >> rotary switch if possible. >> >> The main problem that I have now is to make the communication from the >> Android App to the PIC24 work using the IOIO libraries, without >> interrupting the functionnality of I2C to initialize the DSPs (program >> them). >> >> I am attacking this next week, it is quite a challenge for me. >> >> Le mercredi 28 janvier 2015 18:30:38 UTC+1, Ytai a écrit : >>> >>> Are you aware of the fact that you're using the IOIO in a way that is >>> very different from its intended usage? If this is unintentional, better >>> read the wiki. Otherwise, in order to help you I need some context and >>> specifically, what you're trying to do, how you were thinking about doing >>> it and why you need custom firmware as opposed to using the standard one. >>> >>> On Wed, Jan 28, 2015 at 9:04 AM, Vincent Nadon <[email protected]> >>> wrote: >>> >>>> Using another Android App my colleagues and I created (based on IOIO >>>> examples) makes also the I2C crash. It seems that the Android Apps are >>>> trying to take the I2C connexion over and therefore shut downs everything >>>> else. It even reboots the micro controller in order to obtain the >>>> bluetooth >>>> connexion. >>>> >>>> Maybe I don't put the following code in the right place? ( it is placed >>>> in my main function in main.c before my other function calls) >>>> >>>> >>>> while(1){ >>>> /************Bluetooth Communication***********/ >>>> >>>> >>>> BOOL connected = ConnectionTasks(); >>>> if (!connected >>>> && state > STATE_OPEN_CHANNEL) { >>>> // just got disconnected >>>> log_printf("Disconnected"); >>>> SoftReset(); >>>> state = STATE_INIT; >>>> } >>>> switch (state) { >>>> case STATE_INIT: >>>> handle = INVALID_CHANNEL_HANDLE; >>>> state = STATE_OPEN_CHANNEL; >>>> //_LATD3 = 0; >>>> break; >>>> >>>> case STATE_OPEN_CHANNEL: >>>> if ((handle = OpenAvailableChannel()) != >>>> INVALID_CHANNEL_HANDLE) { >>>> log_printf("Connected"); >>>> state = STATE_WAIT_CHANNEL_OPEN; >>>> } >>>> //_LATD3 = 0; >>>> break; >>>> >>>> case STATE_WAIT_CHANNEL_OPEN: >>>> if (ConnectionCanSend(handle)) { >>>> log_printf("Channel open"); >>>> AppProtocolInit(handle); >>>> state = STATE_CONNECTED; >>>> } >>>> //_LATD3 = 0; >>>> break; >>>> >>>> case STATE_CONNECTED: >>>> AppProtocolTasks(handle); >>>> break; >>>> >>>> case STATE_ERROR: >>>> ConnectionCloseChannel(handle); >>>> SoftReset(); >>>> state = STATE_INIT; >>>> // _LATD3 = 0; >>>> break; >>>> } >>>> /************ END Bluetooth Communication***********/ >>>> >>>> >>>> Le dimanche 25 janvier 2015 21:13:06 UTC+1, Ytai a écrit : >>>>> >>>>> This app is not related to the official IOIO codebase. You better >>>>> contact the author with this question. >>>>> On Jan 22, 2015 1:02 PM, "Vincent Nadon" <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> I have a problem with Bluetooth communication using Hardware tester >>>>>> app. It crashes I2C communication with other devices attached to IOIO >>>>>> microcontroler. Is this normal? >>>>>> >>>>>> Thanks for your help! >>>>>> >>>>>> Vincent >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "ioio-users" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To post to this group, send email to [email protected]. >>>>>> Visit this group at http://groups.google.com/group/ioio-users. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "ioio-users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at http://groups.google.com/group/ioio-users. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "ioio-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at http://groups.google.com/group/ioio-users. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "ioio-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/ioio-users. For more options, visit https://groups.google.com/d/optout.
