Pinguino Forum

Full Version: [SOLVED] Pinguino32-DIY: Bootloader
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Hello,
I've build a Pinguino32-DIY on a breadboard with a Pic32MX220F032B (the PDIP version). I've uploaded the bootloader PIC32-Pinguino_HIDBoot_MX220.hex found in the extra/bootloaders/32bit folder of the x4-easy package for windows. I assume, the LED should blink if I connect my board to USB but nothing happens.
The wiring of the board is OK, I've tested it with a little blink program in MPLAB X.
Is the PIC32-Pinguino_HIDBoot_MX220.hex the right bootloader for the Pic32MX220F032B-I/SP ?
Can I program the pic32 from the pinguino IDE with a pickit3?
If not, is it possible to do it manually (create a .hex file from the pinguino IDE, load it up with an external utility and an icsp programmer)?

I'm new to pinguino platform and pic µControllers. I have some experience with arduino (atmega and attiny controllers) and I've build the pinguino 26j50 DIY on a breadboard. It works like a charme! :-)

Thanks in advance.

Oliver
Have a look at the manuals for the similar Olimex board. You need to do the same with the buttons. Did you?

John
Hello John,
(16-06-2013, 11:25 PM)pingotg Wrote: [ -> ]Have a look at the manuals for the similar Olimex board. You need to do the same with the buttons. Did you?

yes, I did. But nothing happened. (Pinguino wiki says: "Press and hold down the user button BUT. Press and release the user button RST. Release the user button BUT")
Olimex uses on its MX220 board a MX220F032D chip (44-pin QDIP). On my board I'm using a F032B (28-pin PDIP). Also the schematics are totally different.
In the meantime I've found a blog post from may 2012 where Jean-Pierre wrote "[...] It is pin to pin compatible with the PIC32MX220F032B wich can be used with the same bootloader."
I have tried to upload the MX250 bootloader from the original package to my MX220 (found here) and now I can put the µC into bootloader mode (LED lights continously), but the board doesn't appear as usb device (OS: windows vista).

OK, one step forward :-)

Oliver
If the schematics result in buttons on different bits as seen by the bootloader then you'd need to rebuild the bootloader or rewire the buttons.

If the buttons are on the same bits then it should just work.

I think the changes in schematics likely are the clues.

Can't help with Vista as I'm on Linux. It has a very helpful
lsusb
command (and others such as dmesg).

John
(17-06-2013, 08:38 AM)pingotg Wrote: [ -> ]If the schematics result in buttons on different bits as seen by the bootloader then you'd need to rebuild the bootloader or rewire the buttons.

The user button is on a quite different Port (RB7 on the Olimex board, RA1 on the DIY board), Olimex board has two LED on RA10 and RB15, DIY board only has one LED on RA0).

Rebuild bootloader: Where I can get the source? It's not in the google code repository.

pingotg Wrote:I think the changes in schematics likely are the clues.

Yes, I think so, too.

Oliver
This seems to be the solution. The schematics of the Pinguino32-DIY board is wrong! VBUS must be connected to +5V line of the USB connector. I found this post Pinguino32 DIY Questions which answers the question.

I have corrected the schematics (Photoshop is your friend Wink ) but will first test it.

Oliver
Here is an abstract of what I've done to solve this problem:
Board: Pinguino32-DIY (on breadboard, 8 MHZ crystal), device GENERIC32MX220F032 in the Pinguino IDE
The right bootloader for the pinguino32-DIY is this one: PIC32MX250F128B_-_HID_Bootloader.hex
found in /extra/bootloaders/32bit or in the google code repository. You must program the .hex file with a PICKIT3 or something similar (Pic-Kit3 from Olimex for example).

I have attached the corrected schematics of the DIY board. VBUS is now connected with Pin 1 of the USB connector (+5V). The part with the 10µC and 10nF capacitor rounded with a dashed line is optional. Olimex has on the Pinguino 220 something similar and IMHO it makes sense.

To get into bootloader mode press and hold the user button, press and release reset and release the user button. If your board is connected to USB the LED is flashing, if not the LED lights continously.

If you are compiling a program in the pinguino IDE use GENERIC32MX220F032 as device. By the way, the LED is on D13, PWM pins are D1, D2, D6, D7, D8.

I should setup a wiki page... Documentation for this board is very, very poor.

Oliver

[attachment=305]
Help is always welcome, so ask regis or someone for wiki update access Smile

John
Hi, you said that for the Pinguino32-DIY with PIC32MX220F03B the right bootloader is the PIC32MX250F128B_-_HID_Bootloader.hex , but i wonder if pickit3 and the programmer will report a different target...

So far im using the olimex mx220 bootloader on PIC32MX220F032B and using a diferent pinmap. I have a board with jumpers to switch the bootloader led and button between mx220 and mx250 PDIP 28 pins.

Here's a pin match table.:

PIC32MX220F032B | PIC32MX250F128B
------------------ --------------------
LED_BOOT (D13) RB15 RA0
BUT_BOOT RB7 (D8) RA1 (D14)



(18-06-2013, 07:28 PM)pinguPlus Wrote: [ -> ]Here is an abstract of what I've done to solve this problem:
Board: Pinguino32-DIY (on breadboard, 8 MHZ crystal), device GENERIC32MX220F032 in the Pinguino IDE
The right bootloader for the pinguino32-DIY is this one: PIC32MX250F128B_-_HID_Bootloader.hex
found in /extra/bootloaders/32bit or in the google code repository. You must program the .hex file with a PICKIT3 or something similar (Pic-Kit3 from Olimex for example).

I have attached the corrected schematics of the DIY board. VBUS is now connected with Pin 1 of the USB connector (+5V). The part with the 10µC and 10nF capacitor rounded with a dashed line is optional. Olimex has on the Pinguino 220 something similar and IMHO it makes sense.

To get into bootloader mode press and hold the user button, press and release reset and release the user button. If your board is connected to USB the LED is flashing, if not the LED lights continously.

If you are compiling a program in the pinguino IDE use GENERIC32MX220F032 as device. By the way, the LED is on D13, PWM pins are D1, D2, D6, D7, D8.

I should setup a wiki page... Documentation for this board is very, very poor.

Oliver
Hi,
(19-06-2013, 11:23 AM)malagas Wrote: [ -> ]you said that for the Pinguino32-DIY with PIC32MX220F03B the right bootloader is the PIC32MX250F128B_-_HID_Bootloader.hex , but i wonder if pickit3 and the programmer will report a different target...

I'm using MPLAB IPE as programming application and the tool give no warning about a false target. It burned the .hex and said "Done." Smile

malagas Wrote:So far im using the olimex mx220 bootloader on PIC32MX220F032B and using a diferent pinmap. I have a board with jumpers to switch the bootloader led and button between mx220 and mx250 PDIP 28 pins.

That was my first idea to use this bootloader. But it didn't worked for me. But meantime I'm more experienced and I will give it another try.

Btw I've found a forum post with a link to an archive with the bootloader code. I had a look on it and I will try to compile some which use the internal clock. It seems to be possible for a dummy like me Smile

Oliver
Pages: 1 2