Open8055 on K8055N (moved from EDU05 forum)

this sounds very good :slight_smile: But don’t have K8055N pcb with DIP socket to test… :frowning:

because the manufacturing of K8055 board is discontinued, i think the modifying of K8055N to accept the 18F2550 (and the OpenSource) is hot (at last for me).[/quote]

It isn’t much of a “modification”. I simply exchanged the PIC, nothing else. The 18F2550 seems to run perfectly fine on 4MHz and 3.3V.

[quote=“k750”]i would like to try (as i get the pcb) the next config:

R15/R21 and R14/R20 seems to be voltage divider, and additionally loads OP AMP TLV274 output (possibly better stability on pic input (using of R21, R20 {probably ~3kOm} can be tested on 18F2550 too)

R20,R21 to remove, and R15, R14 to change to piece of wire
{RSS impedance of both pic’s seems to be identic (2kOm)}[/quote]

I don’t think anything needs to be modified there. On the K8055 and K8055N the supply voltage Vdd is used as the reference voltage for ADC. The K8055 uses 5V as Vdd directly from the USB while the K8055N runs on 3.3V. Those voltage dividers on the K8055N are there to lower the Analog input signal from 0 … 5V to 0 … 3.3V.

[quote=“k750”]D1,D2 to remove; D1 contact of SK5 to “earth”

C11 to remove[/quote]

Why try to change the whole board to be more like the old K8055? The K8055N board as it is can perfectly fine be handled with conditional code in the firmware.

The PIC18F24J50, used on the K8055N as well as the VM110N, lacks IO pin RA4. I think we need to support the 24J50 too because the one on the VM110N looks like the SMD version soldered onto the PCB. Replacing that is not an option.

What my (not published yet) Open8055 firmware does right now when it is compiled for a K8055N board is this:

During startup it uses pins RC1 and RC2 as digital inputs and RA2 as digital output set to 1. This allows to read the jumper settings for SK5/SK6 via RC1/RC2. The jumpers forward the RA2 output signal (1) through D1/D2 to the inputs RC1/RC2. When the card address is determined that way, RA2 is set to 0, which pulls the voltage behind R38 low. RC1/RC2 are then switched to output and (soon to be) used as PWM outputs.

[quote=“k750”]in firmware code pin RC7 and RC6 must be “swapped”
or
in dll code digital in 4 and digital in 5 must be “swapped”[/quote]

The Open8055 firmware sorts those bits correctly depending on the hardware it is compiled for. There is no swapping of bits in the DLL. The inputs I1 … I5 are bits 0 … 4 of the digital inputs byte in the HID report.

[quote=“k750”]i would like to eliminate SK6 from “bootloader mode” detection and address of card “hardprogram” into firmware

the involved hardware and firmware changes seems to me conditionally easy :smiley:
i hope, this is correct.[/quote]

I was thinking about something completely different. The “default” card address could be programmed hard into the firmware, as well as all the other “default” power on settings. However, the 18F2550 has 256 bytes of EEPROM that I haven’t played with yet. It should be possible to implement commands that change the card address (for next power up or reset) and “SAVE” all current output modes and settings as power on defaults.

As for the boot loader, it is possible to change the startup code so that it always jumps right to the firmware reset vector. Then have yet another firmware “command” that shuts down the firmware itself and activates the boot loader. So to load a new firmware one would have to connect the card (which will then first run the firmware), then run a special little program that sends this special command to the firmware which then turns on the boot loader.

There would of course then be the possibility to load a non-functional firmware (happens during development), which would also make it impossible to start the boot loader. If there is no hardware jumper to force boot loader mode, then the only way to recover from that is with a physical PIC programmer.

Another problem is again the 18F24J50. It doesn’t have any EEPROM. How about this: By default use SK5/SK6 to set the card address and use card #3 to force boot loader mode. In case of using a PIC with EEPROM have software commands that tell the firmware to override the jumper selected card address as well as a command that starts the boot loader.

BTW, the firmware can also be programmed directly with a hardware PIC programmer (via SK9). In that case there is no boot loader at all and card #3 is just a normal card address like on the original K8055/K8055N.

Regards,
Jan