The PICSimLab remote control interface supports TCP connections using telnet or nc (netcat).
The default port is 5000 and can be changed in configuration windows.
The 'rlwrap' command can be used for best command edition support in telnet or nc:
rlwrap nc 127.0.0.1 5000
The supported commands can be shown using the “help” command:
help List of supported commands: dumpe [a] [s]- dump internal EEPROM memory dumpf [a] [s]- dump Flash memory dumpr [a] [s]- dump RAM memory exit - shutdown PICSimLab get ob - get object value help - show this message info - show actual setup info and objects pins - show pins directions and values pinsl - show pins formated info quit - exit remote control interface reset - reset the board set ob vl - set object with value sync - wait to syncronize with timer event version - show PICSimLab version Ok
The “info” command show all available "objects" and values:
info Board: Arduino Uno Processor: atmega328p Frequency: 16000000 Hz Use Spare: 1 board.out[00] LD_L= 254 part[00]: LEDs part[00].out[08] LD_1= 254 part[00].out[09] LD_2= 30 part[00].out[10] LD_3= 254 part[00].out[11] LD_4= 254 part[00].out[12] LD_5 254 part[00].out[13] LD_6= 254 part[00].out[14] LD_7= 254 part[01]: Buzzer part[01].out[02] LD_1= 140 part[02]: Push buttons part[02].in[00] PB_1= 1 part[02].in[01] PB_2= 0 part[02].in[02] PB_3= 1 part[02].in[03] PB_4= 1 part[02].in[04] PB_5= 1 part[02].in[05] PB_6= 1 part[02].in[06] PB_7= 1 part[02].in[07] PB_8= 1 Ok
The “pins” command show all pins directions and digital values:
pins pin[01] ( PC6/RST) < 0 pin[15] ( PB1/~9) > 0 pin[02] ( PD0/0) < 1 pin[16] ( PB2/~10) > 0 pin[03] ( PD1/1) < 1 pin[17] ( PB3/~11) > 0 pin[04] ( PD2/2) < 1 pin[18] ( PB4/12) < 0 pin[05] ( PD3/~3) > 0 pin[19] ( PB5/13) > 0 pin[06] ( PD4/4) < 1 pin[20] ( +5V) < 1 pin[07] ( +5V) < 1 pin[21] ( AREF) < 0 pin[08] ( GND) < 0 pin[22] ( GND) < 0 pin[09] ( PB6/X1) < 0 pin[23] ( PC0/A0) < 0 pin[10] ( PB7/X2) < 0 pin[24] ( PC1/A1) < 0 pin[11] ( PD5/~5) < 1 pin[25] ( PC2/A2) < 0 pin[12] ( PD6/~6) < 1 pin[26] ( PC3/A3) < 0 pin[13] ( PD7/7) < 1 pin[27] ( PC4/A4) > 0 pin[14] ( PB0/8) > 0 pin[28] ( PC5/A5) > 0 Ok
The “pinsl” command show all pins info in text formatted output:
pinsl 28 pins [atmega328p]: pin[01] D I 0 000 0.000 "PC6/RST " pin[02] D I 1 200 0.000 "PD0/0 " pin[03] D I 1 200 0.000 "PD1/1 " pin[04] D I 1 200 0.000 "PD2/2 " pin[05] D O 0 007 0.000 "PD3/~3 " pin[06] D I 1 200 0.000 "PD4/4 " pin[07] P I 1 200 0.000 "+5V " pin[08] P I 0 000 0.000 "GND " pin[09] D I 0 000 0.000 "PB6/X1 " pin[10] D I 0 000 0.000 "PB7/X2 " pin[11] D I 1 200 0.000 "PD5/~5 " pin[12] D I 1 200 0.000 "PD6/~6 " pin[13] D I 1 200 0.000 "PD7/7 " pin[14] D O 0 000 0.000 "PB0/8 " pin[15] D O 0 000 0.000 "PB1/~9 " pin[16] D O 0 000 0.000 "PB2/~10 " pin[17] D O 0 006 0.000 "PB3/~11 " pin[18] D I 0 000 0.000 "PB4/12 " pin[19] D O 0 000 0.000 "PB5/13 " pin[20] P I 1 200 0.000 "+5V " pin[21] R I 0 000 0.000 "AREF " pin[22] P I 0 000 0.000 "GND " pin[23] A I 0 000 0.875 "PC0/A0 " pin[24] A I 0 000 1.925 "PC1/A1 " pin[25] A I 0 000 2.700 "PC2/A2 " pin[26] A I 0 000 4.275 "PC3/A3 " pin[27] D O 1 179 0.000 "PC4/A4 " pin[28] D O 1 186 0.000 "PC5/A5 " Ok
You can view one input/output state using the “get” command:
get board.out[00] get part[02].in[01]
Its possible use the “get” command to view individual pins state:
#digital state get pin[19] pin[19]= 0 Ok #digital mean value (0-200) get pinm[19] pin[18]= 100 Ok #analog state get apin[25] apin[25]= 2.700 Ok #all info get pinl[13] pin[13] D I 1 200 0.000 "PD7/7 " Ok
And set value of one input using the “set” command:
set part[02].in[01] 0 set part[02].in[01] 1
Or set value of one pin using the “set” command:
#digital set pin[10] 2 #analog set apin[20] 2.345
For windows users putty telnet client is a good option.