Protocol Analyser Tool - GENI & ModBus

Protocol Parser & Analyser

A commandline tool for analyzing the following protocols:

  • GENIBus        Grundfos A/S – pumps and controllers.
  • ModBus         
  • GateWay         My own brew.
  • SPI/I2C           serial protocol to typ. Mem chips and I/O expanders.

Input:  at the moment only log files - various formats and w/wo timestamps.
Future will be live from a uart. 

Output:      binary, Wireshark or human readable flat text formats.

Analyser output:

  • Msg count,
  • first, typical, call interval for unit and registers
  • Verifies csum, and tgm structure

 

It is a small attempt on a generic protocol analyzer, where new modules for other protocols easily can be added within the current structure. Utilizing existing features and processing.

 

The tool will look at the validity on the messages and translate these to more readable information’s

Like     Reading register or writing eg class-4, id-4 in device $33

 

 

 

 

Download

Downloads is to be found here

 

Article Images: protocolparseroverview.png

GeniBus_version      = 01.03
ModBus_version       = 01.01
Parser_Version         = 00.00.04
GateWay_Version     = ??.??
I2CSPI_Version        = ??.??
WireShark_Version    = ??.??

Comming soon ... CAN, CANOpen and LIN ... :-)

 

GENIBus - Grundfos standard

GENIBus is a Grundfos specified protocol format. It is applied on most of their pumps and controller.

This protocol interpreter is made on an very old protocol specification. Still missing some of  the newest stuff they have applied.

 

ModBus Standard

ModBus: is like GENIBus a protocol running on RS485 for communication between various devices and controllers in industrial world.

 

GateWay

Gateway is a protocol spec of my own. Se here for more!

 

I2C & SPI

I2C & SPI are to chip-2-device communication protocol specification just using a couple of pins.

 

 

The tool will look at the validity on the messages and translate these to more readable information’s, and place these in a file. Output could be raw binary, it could be for importing in WireShark as well as you can get more or less advanced output for 'flat text'.

Like     Reading register or writing class-4, id-4

 

Statistics

All messages to a slave will be registered an plot in a chart counting numbers of access.

Per device, per class, per id/reg – as well as if it’s a master or a slave.

 


Configuration

Configuration is easily found from the commandline - constantly changing.

The various settings in the configuration file will provide a viriaty of information at different levels - some for my debugging others for applying additional output. Some handling timedate stamps, other processing the separators between each byt. Some handles preceding '0x', others ...

The actual setting are to be put in the settings.ini

(you will find many diff examples on various setup to use for different protocols, diff formatting and so forth…)

GENIBus Setup

CNF_INFO_DISABLED                         //[ CNF_INFO_DISABLED | CNF_INFO_ENABLED ] - info while processing configuration file (put in first line :-))  

/DETTE er EN TEST  - example on a flat  test information - as long as it dont contain any reserved words it ok!

ALL_INFO_ENABLED                          //[ ALL_INFO_DISABLED | ALL_INFO_ENABLED ] - processing ALL (typ main loop)

TGM_INFO_ENABLED                         //[ TGM_INFO_DISABLED | TGM_INFO_ENABLED ] - processing each tgm (in modbus, GENIBUS,...)

WIRESHARK_INFO_DISABLED         //[ TGM_INFO_DISABLED | TGM_INFO_ENABLED ] - processing each tgm (wireshark)

DEBUG_INFO_DISABLED                   //[ DEBUG_INFO_DISABLED | DEBUG_INFO_ENABLED ] - output for debugging

 

PROJECTNAME -This-is-my-project-name_dont_use_spaces              /projectname (may not contain spaces/tabs)

LoG_filename .\example_geni_tgm_tsa.log             /input from a log file            [LOG_FILENAME filename]

pcap_filename .\output_geni.pcap           /pcap output file for wireshark   [PCAP_FILENAME filename]

bin_FileName .\output_geni.bin                              /tgm binary output                [BIN_FILENAME filename]

 

/SHOW_LOG_LINES_SKIPPED             /info for skipped log lines      [SHOW_LOG_LINES_SKIPPED]

/SHOW_TGM_STREAM                         /show the complete tgm byte-by-byte being processed            [SHOW_TGM_STREAM]

ACCEPT_CRC_ERRORS                      //accept crc errors - convert if possible [ACCEPT_CRC_ERRORS]

                                                                // run completely silent [ SILENT_MODE ]

STATS_ON                                             /Statisctics informations     [STATS_ON | STATS_OFF]

PROTOCOL_GENI                               /protocol to read-in          [PROTOCOL_GENI | PROTOCOL_MODBUS | PROTOCOL_GATEWAY | PROTOCOL_GLOWPAN | ]

LOG_FORMAT_ASCII_HEX                  /log format       [LOG_FORMAT_ASCII_HEX | LOG_FORMAT_ASCII_HEX_0X | LOG_FORMAT_ASCII_DEC]

TS_CUSTOM_A                     /TimeStamp preceeding the log info's   [TS_CUSTOM_NO_TIMING | TS_ CUSTOM_A | TS_ CUSTOM_B | TS_ CUSTOM_C | ]

                                                                /TS_ CUSTOM_ NO_TIMING    no timing 'translation' from log --> output's

                                                                /TS_ CUSTOM _A --> 19:40:13.345 : 28 03 nn

                                                                /TS_ CUSTOM _B --> OUT 19:40:13.345 : 28 03 nn

                                                                /TS_ CUSTOM _C --> unixtime(32bit) + microsec(32bit)

! Case does not mather   - lines without 'valid keymatch' will be indicated during processing

 

ModBus setup

CNF_INFO_DISABLED     //[ CNF_INFO_DISABLED | CNF_INFO_ENABLED ] - info while processing configuration file (put in first line :-))  

/DETTE er EN TEST  - example on a flat test information - as long as it dont contain any reserved words it ok!

ALL_INFO_ENABLED                      //[ ALL_INFO_DISABLED | ALL_INFO_ENABLED ] - processing ALL (typ main loop)

TGM_INFO_ENABLED                     //[ TGM_INFO_DISABLED | TGM_INFO_ENABLED ] - processing each tgm (in modbus, GENIBUS,...)

WIRESHARK_INFO_DISABLED   //[ TGM_INFO_DISABLED | TGM_INFO_ENABLED ] - processing each tgm (wireshark)

DEBUG_INFO_ENABLED                                //[ DEBUG_INFO_DISABLED | DEBUG_INFO_ENABLED ] - output for debugging

PROJECTNAME -This-is-my-project-name_dont_use_spaces           /projectname (may not contain spaces/tabs)

LoG_filename .\example_modbus_3.log               /input from a log file            [LOG_FILENAME filename]

pcap_filename .\output_modbus.pcap                   /pcap output file for wireshark   [PCAP_FILENAME filename]

bin_FileName .\output_modbus.bin       /tgm binary output                [BIN_FILENAME filename]

/SHOW_LOG_LINES_SKIPPED                                         /info for skipped log lines      [SHOW_LOG_LINES_SKIPPED]

/SHOW_TGM_STREAM                                                      /show the complete tgm byte-by-byte being processed           [SHOW_TGM_STREAM]

ACCEPT_CRC_ERRORS                                                                 //accept crc errors - convert if possible [ACCEPT_CRC_ERRORS]

                                                                                                                                // run completely silent [ SILENT_MODE ]

STATS_ON                           /Statisctics informations     [STATS_ON | STATS_OFF]

PROTOCOL_MODBUS /protocol to read-in [PROTOCOL_GENI|PROTOCOL_MODBUS| PROTOCOL_GATEWAY| PROTOCOL_GLOWPAN]

LOG_FORMAT_ASCII_HEX /log format   [LOG_FORMAT_ASCII_HEX | LOG_FORMAT_ASCII_HEX_0X | LOG_FORMAT_ASCII_DEC]

TS_CUSTOM_NO_TIMING              /TimeStamp preceeding the log info's[TS_CUSTOM_NO_TIMING| TS_ CUSTOM_A| TS_ CUSTOM_B| TS_ CUSTOM_C | ]

                                                                /TS_CUSTOM NO_TIMING    no timing 'translation' from log --> output's

                                                                /TS_CUSTOM_A --> 19:40:13.345 : 28 03 nn

                                                                /TS_CUSTOM_B --> OUT 19:40:13.345 : 28 03 nn

                                                                /TS_CUSTOM_C --> unixtime(32bit) + microsec(32bit)

                                                                /TS_CUSTOM_D -->

                                                                /TS_CUSTOM_E --> 08 13:04:23.429 G          2B 03 07 C8 00 16 43 44

! Case does not mather   - lines without 'valid keymatch' will be indicated during processing

 

Example log files (to test with)

Similar you will find a 15-20 different log files. Showing the various input the program accepts.

Example on a log

!!! LOG_FORMAT_ASCII_HEX_0X

0x26 0x02 0xFF 0x00 0x5E 0xFC

0x27 0x0F 0xFE 0x00 0x00 0x02 0x02 0x03 0x02 0x03 0x94 0x95 0x96 0x04 0x02 0x2E 0x2F 0xC6 0xDB

0x26       0x03       0xFF       0x00       0x5E      0xFC

0x26:0x04:0xFF:0x00:0x5E:0xFC   !comment

0x26 0x05 0xFF 0x00 0x5E 0xFC

 

> 0x26 0x02 0xFF 0x00 0x5E 0xFC

< 0x27 0x0F 0xFE 0x00 0x00 0x02 0x02 0x03 0x02 0x03 0x94 0x95 0x96 0x04 0x02 0x2E 0x2F 0xC6 0xDB

 

 

! example file for testing TimeStamp A - custom solution

! working with plane timestams a shown here     13:50:07.131 : <byte stream>

!  (including the colon)

! This is to support the CIM/CIU tools output

13:50:09.740 : 27 0C FF 01 02 08 F8 F9 FA FB FC FD FE FF 07 9C

13:50:09.772 : 24 0C 01 E7 02 08 00 00 00 00 00 00 00 FF 7D 4C

 

Modbus

! Modbus examples (some from cim/ciu tools, some from modbus protoco lspec., other just as examples)

28 03 00 02 00 03 a3 f1                    !modbus crc error - should be    A3 F2

28 03 06 00 00 00 00 00 00 d2 e4

 

! from a en cim/ciu .rtf log

28 03 07 CD 00 44 D2 8B

28 03 88 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 AA 00 00 40 00 00 00 30 63 00 05 00 02 00 05 00 16 00 05 00 00 00 00 01 41 00 00 01 41 00 00 01 41 00 00 00 09 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 96 00 82 00 00 00 00 00 FF 00 28 00 00 00 00 00 C3 00 14 00 78 00 14 00 00 00 00 30 63 73 60 00 03 00 00 00 00 00 00 F1 20

!line 10

! <src> <function code> <start Hi> <start Lo> <len-hi> <len-lo> <crc1> <crc2>

  28    03              07         CD         00        44       D2    8B

28 03 88 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 AA 00 00 40 00 00 00 30 63 00 05 00 02 00 05 00 16 00 05 00 00 00 00 01 41 00 00 01 41 00 00 01 41 00 00 00 09 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 96 00 82 00 00 00 00 00 FF 00 28 00 00 00 00 00 C3 00 14 00 78 00 14 00 00 00 00 30 63 73 60 00 03 00 00 00 00 00 00 F1 20

 

28 10 00 bf 00 0a 14 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0A 00 bc 39             /*write multiple reg - regs = 10 */

28 10 00 bf 00 0a 76 13 !responce

28 10 00 bf 00 02 DE AD BE EF 91 a9                          //

28 10 00 bf 00 02 77 D5 !response

!line 20

! examples from the modbus pdf document

28 01 00 20 00 13 7b f4                    !read request discrete output 20-38

28 01 03 cd 6b 05 44 87                    !   - responce

28 02 00 c4 00 16 bf c0                     ! read request discrete input 197-218

28 02 03 ac db 35 25 71                    !   - responce

!

11 06 00 0B 34 56 6c 66                   ! 0x00,0x0a reg; 0x34,0x56 = value

 

 

 

Example run

Configuration setup notification

File with Log tgm .\example_geni_tgm_3_0x.log

 

Input  file: .\example_geni_tgm_3_0x.log is open

Output file: .\output_geni.bin is open

Output file: .\output_geni.pcap is open

Protocol Selected                       : PROTOCOL_GENI

FileType of log for input conversion    : FT_ASCII_HEX_0X

LogTimeStampType                        : LOG_TS_CUSTOM_NO_TIMING

Flag_ShowByteStreamLogLines             : - set as (TRUE)

Flag_AcceptCRCErrors                    : - set as (TRUE)

Flag_DisplayStatistics                  : - set as (TRUE)

cnf_info_output_disabled                : - set as (FALSE)

ALL_info_output_disabled                : - set as (FALSE)

TGM_info_output_disabled                : - set as (FALSE)

TGM_info_output_disabled                : - set as (FALSE)

DEBUG_info_output_disabled              : - set as (FALSE)

WireShark_info_output_disabled          : - set as (TRUE)

============================================================================================

 

 Protocol is --> GENIBus (2012-nov) Ver: 01.03 developer version

TGM:   <Delimiter> <Length> <Destination> <Source> <APDU> <crc16>

TGM:

GENIBus Protocol consists of a CLASS and ID's structure .... 16 Class' and max 255 ID's product dependent (eg. Cl4[id185])

CL-0  debug           CL-5  Reference Values  CL-10  User Objs          CL-15 32bit config

CL-1  Bus data        CL-6  Test Data         CL-11  16bit measured     CL-16 32bit Reference

CL-2  Measured Data   CL-7  ASCII Strings     CL-12  16bit config

CL-3  Commands        CL-8  MemoryBlock       CL-13  16bit Reference

CL-4  Configuration   CL-9  Routing/Embed     CL-14  32bit measure

 

!OBS! UnSupported functionality:

  - Class9 (routing)

  - class10 (user def obj)

  - RFS

  - All Scaling & info. References: google for picflow, grundfos genibus ... or look at http://picflow.sourceforge.net/

 

 

Processing TGM’s

Read from log file

00001 Line No --------------------------------------------------------------------------------------------------------- tgm# 00000 ----

Got a line with 30 bytes -->  0x26 0x02 0xFF 0x00 0x5E 0xFC

Processing TimeStamp informations(if any) ...

Skipped Time&Date conversion (line:1)

Processing convert input2bin ... START--> bin(0x30) value=0   bytes_written=0    i=0

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  1    i=  1

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  2    i=  7

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  3    i= 13

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  4    i= 19

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  5    i= 25

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  6    i= 31

 

Processing put binaries to output file...

Processing WireShark informations(if any) ...

Processing bin-converted-tgm...

ProcessHeader--> len(  6)   LineNo(   1)   FrameCnt(   1)

 

Now to next TGM

00001 Line No --------------------------------------------------------------------------------------------------------- tgm# 00001 ----

MsgType [  0/0x00] --> Invalid  Len[ 0/0x00]   FROM[  0/0x00]   TO[  0/0x00] CRC16 = ERROR  CRC should be 0x33 0x63

CRC is not valid! No further processing of payload is done!

 

Read from input log file

00002 Line No --------------------------------------------------------------------------------------------------------- tgm# 00001 ----

Got a line with 95 bytes -->   0x27 0x0F 0xFE 0x00 0x00 0x02 0x02 0x03 0x02 0x03 0x94 0x95 0x96 0x04 0x02 0x2E 0x2F 0xC6 0xDB

 

 

Processing TimeStamp informations(if any) ...

Skipped Time&Date conversion (line:2)

Processing convert input2bin ... START--> bin(0x30) value=0   bytes_written=0    i=0

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  1    i=  1

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  2    i=  7

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  3    i= 13

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  4    i= 19

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  5    i= 25

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  6    i= 31

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  7    i= 37

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  8    i= 43

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  9    i= 49

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written= 10    i= 55

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written= 11    i= 61

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written= 12    i= 67

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written= 13    i= 73

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written= 14    i= 79

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written= 15    i= 85

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written= 16    i= 91

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written= 17    i= 97

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written= 18    i=103

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written= 19    i=109

 

Processing put binaries to output file...

Processing WireShark informations(if any) ...

Processing bin-converted-tgm...

ProcessHeader--> len( 19)   LineNo(   2)   FrameCnt(   2)

 

 

00002 Line No --------------------------------------------------------------------------------------------------------- tgm# 00002 ----

MsgType [  0/0x00] --> Invalid  Len[ 0/0x00]   FROM[  0/0x00]   TO[  0/0x00] CRC16 = ERROR  CRC should be 0x95 0xF5

CRC is not valid! No further processing of payload is done!

 

Read from input log file

00003 Line No --------------------------------------------------------------------------------------------------------- tgm# 00002 ----

Got a line with 29 bytes -->  0x26 0x03 0xFF 0x00 0x5E 0xFC

 

 

Processing TimeStamp informations(if any) ...

Skipped Time&Date conversion (line:3)

Processing convert input2bin ... START--> bin(0x30) value=0   bytes_written=0    i=0

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  1    i=  1

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  2    i=  7

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  3    i= 13

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  4    i= 19

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  5    i= 25

 FT_ASCII_HEX_0X --> bin(0x30)   bin_value=  0/0x00   bytes_written=  6    i= 31

 

Processing put binaries to output file...

Processing WireShark informations(if any) ...

Processing bin-converted-tgm...

ProcessHeader--> len(  6)   LineNo(   3)   FrameCnt(   3)

 

another run ...

 

00019 Line No --------------------------------------------------------------------------------------------------------- tgm# 00012 ----

MsgType [ 39/0x27] --> Req      Len[14/0x0E]   FROM[  1/0x01]   TO[254/0xFE]  (connection request) CRC16 = OK

 Class:0, APDU Len= 2 GET

 Class:4, APDU Len= 2 GET

 Class:2, APDU Len= 2 GET

 

00020 Line No --------------------------------------------------------------------------------------------------------- tgm# 00013 ----

MsgType [ 36/0x24] --> Reply    Len[14/0x0E]   FROM[ 32/0x20]   TO[  1/0x01] CRC16 = OK

 Class:0, APDU Len= 2 Reply   Ack OK    70/0x46  14/0x0E

 Class:4, APDU Len= 2 Reply   Ack OK    32/0x20 247/0xF7

 Class:2, APDU Len= 2 Reply   Ack OK     3/0x03   1/0x01

 

00024 Line No --------------------------------------------------------------------------------------------------------- tgm# 00014 ----

MsgType [ 39/0x27] --> Req      Len[ 9/0x09]   FROM[  1/0x01]   TO[255/0xFF]  (broadcast msg)      CRC16 = OK

 Class:9, APDU Len= 5 GET  Routing Adr:255/0xFF  ChannelSpecifier:GENIcom(2)

 

00025 Line No --------------------------------------------------------------------------------------------------------- tgm# 00015 ----

MsgType [ 36/0x24] --> Reply    Len[ 4/0x04]   FROM[ 32/0x20]   TO[  1/0x01] CRC16 = OK

 Class:9, APDU Len= 1 Reply   Ack OK   RoutingStatus: Ready

 

00026 Line No --------------------------------------------------------------------------------------------------------- tgm# 00016 ----

MsgType [ 36/0x24] --> Reply    Len[ 4/0x04]   FROM[ 32/0x20]   TO[  1/0x01] CRC16 = OK

 Class:9, APDU Len= 1 Reply   Ack OK   RoutingStatus: Initiated

 

00027 Line No --------------------------------------------------------------------------------------------------------- tgm# 00017 ----

MsgType [ 36/0x24] --> Reply    Len[ 4/0x04]   FROM[ 32/0x20]   TO[  1/0x01] CRC16 = OK

 Class:9, APDU Len= 1 Reply   Ack OK   RoutingStatus: Busy

 

00028 Line No --------------------------------------------------------------------------------------------------------- tgm# 00018 ----

MsgType [ 36/0x24] --> Reply    Len[ 4/0x04]   FROM[ 32/0x20]   TO[  1/0x01] CRC16 = OK

 Class:9, APDU Len= 1 Reply   Ack OK   RoutingStatus: (not used)

 

00029 Line No --------------------------------------------------------------------------------------------------------- tgm# 00019 ----

MsgType [ 36/0x24] --> Reply    Len[ 4/0x04]   FROM[ 32/0x20]   TO[  1/0x01] CRC16 = OK

 Class:9, APDU Len= 1 Reply   Ack OK   RoutingStatus: failed

 

00031 Line No --------------------------------------------------------------------------------------------------------- tgm# 00020 ----

MsgType [ 36/0x24] --> Reply    Len[ 9/0x09]   FROM[ 32/0x20]   TO[  1/0x01] CRC16 = OK

 Class:9, APDU Len= 5 Reply   Ack OK   255/0xFF   2/0x02   2/0x02   1/0x01   0/0x00

---EOF---

 

End of processing will show statistics - first the slaves's

Article Images: prj_protocolparser_stats_slave.jpg

 

... and for the masters discovered

Article Images: prj_protocolparser_stats_master.jpg

 

And there is even more ... An brand new statistical analyser module has been added. This will analyse the data point (set up but user; as a triggers) so all access like read/write, which values, by whom, lowest and highest ... and much more. All recorded and presended nice and smoothly!

Comments

No Comments have been Posted.

Post Comment

Please Login to Post a Comment.

Articles Panel

  Article Posted By Date Reads
WCET - Worst Case Execution Timings Calculator
Tools
johnk
28-06-2015 19:2912413
Embedded-Tracer-System
Tools
johnk
16-03-2015 18:221894
NuttX - Step-By-Step
Tools
johnk
30-12-2013 17:185286
Tools used
Tools
johnk
27-10-2013 12:133049
List of my robots
My robots
johnk
19-07-2013 08:442801
JoKaBot - Home build from scratch
My robots
johnk
19-07-2013 08:045257
C-Sharp (references and projects)
Oldies
johnk
18-07-2013 19:193171
Home communications
Technology
johnk
18-07-2013 18:233401
Various links
My Collection
johnk
17-07-2013 09:046566
ARM - ARM7/9/11 + Cortex
Technology
johnk
17-07-2013 08:493382
AVR32
Technology
johnk
17-07-2013 08:413467
Raspberry PI
Technology
johnk
17-07-2013 08:368953
Robotics Links
Tools
johnk
17-07-2013 08:367126
Robotics in general
Robotics
johnk
17-07-2013 08:352693
Renesas processors (V850, RL78...)
Technology
johnk
17-07-2013 08:113261

Total Articles: 54 :: Total Article Categories: 16
 

Articles

My Collection (1) My robots (2)
Oldies (5)
Old Projects - very old
Process & Methods (7)
Projects (12) Robotics (1)
Technology (6) Testing (1)
Tools (12) Working on ... (7)
Projects Im currently working on
Render time: 0.03 seconds
668,866 unique visits