User Tools

Site Tools


pic32

This is an old revision of the document!


PIC32

- the pic32 programming connector (labeled PIC32) matches the PICkit pinout exactly - readback protection is off :) firmware can be trivially extracted.

iMX to PIC comms

Watchdog initialization and feeding: kibble.sal

Stopping the watchdog (with NxExe watchdog 0): euthasol.sal

Stopping is as simple as

echo -ne "\xBC\x01\0\x04\0\x04H@\x03\0\0" > /dev/ttymxc2

Communication uses the same IPP protocol as cVEND.

IPP message types

msgType dir name description
0x02 ValueRead accepts a 2-byte key, returns a variable-length value
0x03 ValueReadReply
0x04 ValueWrite accepts a 2-byte key followed by a variable-length value, assigns value to key
0x05 ValueWriteReply
0x0a 10000000000080 reads external EEPROM, 18000000000080 reads internal EEPROM
0x0c empty payload immediately powers the device off
0x0e empty payload immediately powers the device off
0x12 SetLogLevel 0000 enables some kind of logging behavior, 8000 disables it

→ - iMX to PIC
← - PIC to iMX

Types 0x80-0xff mirror 0x00-0x7f, but with CRC32 enabled.

nx strings also suggest the existence of:

  • ValueAttribRead
  • ValueAttribWrite
  • DeviceRead (0x0a?)
  • DeviceWrite
  • DeviceIoCtl
  • AppRequest

Keys

id type description
03fb u8 ignition state (0/1)
4003 u16 watchdog timeout (seconds), 0 to disable
500b u16 ambient light sensor
5040 u16 input voltage (mV)
c000 string pic32 version
c001 string bootloader version
pic32.1772579159.txt.gz · Last modified: by doof