IOIO bootloader and IOIO apps

I setup the IOIO bootloader on my board, its pretty straightforward change. the l1 board uses a crystal, ioio doesnt and the pin mapping is different

https://github.com/ytai/ioio you need this tree, MPLABX and C30, haven't tried it with XC yet.

I used RP7 as the LED , so you can put a connector on there and add a status led and a way to ground it, so it knows to enter the bootloader.
RP6 i setup for IOIO pin1 ground, its dual purpose in that it drives the led and reads the bootloader request.

load DeviceBootLoader, libadb, libbtstack,libconn, libusb and AppLayerV1 and Blink if you want to do more messing around with on adb as well.

build for the SPK0020 target, don't worry about the GB variant for now, and use that  for all the other projects.

libusb config as gb_cdc

in board.h  setup  (we could add a new board rev too )

#elif BOARD_VER >= BOARD_SPRK0020
#define led_init()       { _ODB7 = 1; _LATB7 = 1; _TRISB7 = 0; }
#define led_read()       _RB7
#define led              _LATB7
#define led_on()         led  = 0;
#define led_off()        led  = 1;
#define led_toggle()     led  = !led;

#define pin1_pullup   _CN24PUE
#define pin1_read()   _RB6

#else

in platform.h

change it too

#elif HARDWARE == HARDWARE_IOIO0004
#define led_init() do { _ODG7 = 1; _LATG7 = 1; _TRISG7 = 0; } while (0)
#define led_on()   do { _LATG7 = 0; } while (0)
#define led_off()  do { _LATG7 = 1; } while (0)
#else

download the devicebootlaoader app, short RP7, reset it and then remove the short , it'll enter the bootloader and the CDC port should start to enumerate.

for windows use this cdc inf file
https://github.com/ytai/ioio/blob/maste … r/ioio.inf

instructions for ioiodude
https://github.com/ytai/ioio/wiki/IOIO- … d-IOIODude

ioiodude --ports=COMnn versions
should list out

[C:\ioio\102]ioiodude.bat --port=COM25 versions
IOIO Bootloader detected.

Hardware version: SPRK0020
Bootloader version: IOIO0401
Platform version: IOIO0030

now you can upload ioio apps too, they have osx,linux and windows versions of ioiodude since java (hurr). its easy to change the bootloader for a timer, init the CDC wait for DCR on a timeout, if none boot the normal app.

if OscCalibrate()  gives issues, comment it out. (led just blinks)

added a L1DEMOBOARD option to the config, split off the led indicator and switch to RP7 and RP6, short RP6 to bootloader. attach LED to RP7 for status.