Using Arduino as a PIC programmer-- Serial to Serial ICSP

Hi!

First post here and it’s a doozy: How could one use Arduino as a serial to serial programmer for microcontrollers, namely the 16 bit microcontroller, the dsPIC33FJ128GP804?

The final product, the programmer, will be a very custom solution for clients with no technical background. The pickit’s and ICD’s are out of the question. They are too slow and can only program one sensor at a time. We have thousands that need updating. The user will ideally just unplug the sensor and attach it to this proposed device, where a new .Hex file will be uploaded. Enter Arduino.

I will be very happy to share my findings as I develop this product. I only need just a little bit help from you!

So here are some starting details… and the first question:

I have a picture of the sensor that I took apart–(see attached)

You can see that at the bottom of the sensor the familiar 6 pin serial layout.

THE BIG QUESTION:
Using an Arduino, how does one put the sensor into programming mode from serial to serial?
Every tutorial I’ve seen talks about CLOCK and PDG/PDC, which does not apply to this unless the connections are dual purposed for ICSP programming. My suspicions lead me to believe this can be done 100% serial with bit-banged serial, no extra hardware needed. Just wires and a breadboard.

Ideally I would just do a connection on a breadboard (see attached) and send over a binary command to enter into ICSP mode. How can this be done?

This is the link to the programming spec for the dspic33 http://ww1.microchip.com/downloads/en/DeviceDoc/70152H.pdf

IMG_2550.JPG

IMG_2552.JPG

One just needs to write the code to send the commands the chip needs to load code hex code into memory locations like the AVR processors do, or however the memory is accessed on that device.

I have this card that writes code from SD card to the target processor's memory. Plug on the connector, select the file (from 00 to FF), press start, wait for the lights to stop flashing. That non-technical enough for your customers?

http://www.crossroadsfencing.com/BobuinoRev17/

I'm not a good enough programmer to write that code, but others certainly are.

CrossRoads:
One just needs to write the code to send the commands the chip needs to load code hex code into memory locations like the AVR processors do, or however the memory is accessed on that device.

That’s exactly what I’m looking for- a starting point, at least…

Thanks for sharing that info about your programmer…that tool you have is basically what I’m looking to build!