Page 1 of 1

Remote Programming I/F

Posted: Sun Dec 20, 2015 3:52 pm
by danlee58
I have built several boxes using a Coridium Pro Plus or Super Pro board. A point of difficulty has always been when I need to reprogram the board. It's not too bad, if I am in the development stage, but once the unit is in situ, it means nearly complete disassembly.

I would like to add a connector to the end panel of the box, and use a plugin cable that connects at the other end to a FTDI dongle. That FTDI dongle could be a stand alone unit or housed in another small box. The USB cable would plug into the FTDI dongle. The remote unit would also house a toggle switch, that supplies the ground connection to the programming pin on the Coridium board.

A panel mount Ethernet connector and a common Ethernet cable should do the job.

Has anyone done anything along this line?

Re: Remote Programming I/F

Posted: Tue Dec 22, 2015 7:53 pm
by basicchip
This is quite easy in BASIC, your program only has to END and it is ready to download a new program. The BASIC firmware has a bootloader that reads a modified Intel hex file and programs the Flash. You can use BASICtools to create a new program or the program link included below to load a pre-compiled BASIC program.

http://www.coridium.us/files/BASICloaders.zip

You can do this a number of ways in C. It mostly depends on how you want to accomplish the download. If you run 5 pins out (the serial lines and 2 controls and GND), you can do a normal ISP download. If you want to just run 2 out, then you will have to write a bootloader or call the ISP from C (which can be launched with an IAP call).

Re: Remote Programming I/F

Posted: Thu Dec 24, 2015 7:47 pm
by danlee58
I have decided to use mating DB9 connectors. I won't need a cable. I'll plug the programming box into the host. I can also eliminate the toggle switch, if I just ground the Boot pin in the programmer.

Re: Remote Programming I/F

Posted: Sun Dec 27, 2015 12:51 pm
by danlee58
I built it, and it works. I included a toggle switch to short the Load pin on the Super Pro board to ground. I might need to open that connection to reset the board, or for any PRINTF statements in the code. Here is the pinout that I used on the DB9 connectors.

1 - 5 Volts
2 - RXD
3 - TXD
4 - DTR
5 - GND
6 - GND (for LOAD pin)
7 - LOAD (Boot)
8 - CTS
9 - unused

The USB to serial I/F that I used is a CP2104 USB-to-Serial Adapter Carrier. It has a DTR pin available. I didn't jumper DTR to RTS, I just wired the DB9-4 pin directly to the DTR pin, and bypassed RTS. I used a separate Ground for the LOAD pin, because it made my wiring of the toggle switch easier.

Re: Remote Programming I/F

Posted: Wed Dec 30, 2015 12:03 pm
by danlee58
I intend to use this device as a direct plug-in to my Coridium based controller. I could also use a DB9 straight cable, or by swapping TX & RX pins, I could use a Null Modem Cable, since I kept the RS232 pinout for TX, & RX.