4 Balazs Nagy (js@lsc.hu)
5 Marcin Wiacek (Marcin-Wiacek@TOPNET.PL)
6 Jens Bennfors <jens.bennfors@ing.hj.se>
7 Michael Hund <michael@drhund.de>
8 Jay Bertrand <jay.bertrand@libertysurf.fr>
9 Gabriele Zappi <gzappi@inwind.it>
10 Markus Plail <plail@web.de>
11 ... and other members of gnokii mailing list
12 and authors of some WWW pages.
14 The data provided is for information purposes only.
15 Some of the frames might be hazardous to your phone. Be careful!!!
16 We do not take any responsibility or liability for damages, etc.
18 NOTE: this information isn't (and can't be) complete. If you know anything
19 about features not listed here or you noticed a bug in this list, please
20 notify us via e-mail. Thank you.
22 Document describing frames used in
23 GSM Nokia 6210 and derivatives (7110)
24 Correct format is FBUS version 2/Infrared/MBUS version 2
25 (see nokia.txt for protocol details):
29 0x00: Connect to NBS port ?
30 r Set ringtone {+0x7c,0x01,0x00,0x0d,0x06[6],0x78,ringtone packed according to SM2.0}
31 Seems not to work in MBUS!
32 0x01: Communication Status
33 ? r Call msg { 0x0002 }
34 ? r Call in progress { 0x0003, seqnr }
35 ? r Remote end hang up { 0x0004, seqnr, ?, error (like in netmon in 39) }
36 ? r incoming call alert { 0x0005, seqnr, numlen, "number", namelen, "name" }
37 ? r answered call { 0x0007, seqnr }
38 ? r terminated call { 0x0009, seqnr }
39 ? r call msg { 0x000a, seqnr }
40 Note: in 6210 4.27 all msg from 0x01 seems to be unavailable
42 s Send SMS message { 0x0001, 0x02, 0x00 (SEND REQUEST), ... }
43 r Message sent { 0x0002 }
44 r Send failed { 0x0003, ?, ?, error (like in netmon in 65)}
45 r SMS message received { 0x0010, ...... } (whole message)
46 s Set CellBroadcast { 0x0020, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01 }
47 for enable cell broadcast ?
48 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
49 for disable cell broadcast ?
50 r Set CellBroadcast OK { 0x0021, 0x01 }
51 r Read CellBroadcast { 0x0023, ?, ?, ?, channel, ?, message... } ?
52 s Set SMS center { 0x0030, 0x64, priority, checksum?, format,
53 validity[2], {DefaultRecipient no.}[12],
54 {SMScenter no.}[12], {SMSC name}, 0x00}
55 where tel.no.[12]: {len, type, {number(BCD)}}
57 0x91: + (international)
66 validity: 0x000b: 1 hour
72 r Set SMS center OK { 0x0031 }
73 r Set SMS center error { 0x0032, reason }
74 s Get SMS center { 0x0033, 0x64, priority }
75 r SMS center received { 0x0034, priority, checksum?, type,
76 validity[2], {DefaultRecipient no.}[12],
77 {SMScenter no.}[12], {SMSC name}, 0x00 }
78 where priority, checksum, type, validity,
79 tel.no.[12]: see 0x02/0x0030
80 r SMS center error recv { 0x0035, reason }
82 r?? { 0x0075, 0xFF, 0x11, 0x98}
85 0x03: Phonebook functions
86 s Get memory status { 0x0103, 0x02, memory type }
87 where: memory type - see 0x03/0x0107
88 r Get memory status { 0x0104, 0x00, xL, 0x00[2], y1H, y1L, 0x10,
89 0x00[2], z?, ymaxH, ymaxL, y2H, y2L,
90 0x0d?, xH?, 0x00[2]? }
91 where y1: location (lowermost)
93 ymax: maximum location no.
94 s Read memory { 0x0107, 0x01, 0x01, 0x00, 0x01, xH, xL,
97 0x01: (256) Dialled numbers
98 0x02: (512) Missed calls
99 0x03: (768) Received calls
100 0x05: (500) telephone phonebook
101 0x06: (160) SIM phonebook
104 0x09: (4) voice mailbox
105 0x0e: (10) speed dials
106 0x10: (5) caller groups
108 r Read memory { 0x0108, 0x00, 0x01,
109 code,0x00, 0x00, z, xH, xL, yH, yL, 0x00, 0x00, 0x00, no.of blocks, { block } * }
110 where if code==0x0f && xH==0x34 - phonebook location not found
112 z: generic block size
113 block: {id, 0, 0, blocksize, block no.,
115 id: 0x04 pointer to another memory location { 0xff?, yH, yL, xL,0x00[3] }
116 0x07 name {len, (unicode)},
119 0x0a note {len, (unicode)}
120 0x0b number {type, 0x00[3], len, (unicode)}
121 0x0c ringtone {ringtone no., 0, 0}
122 0x13 date for a called list (DC, RC, etc.)
123 0x1b caller group graphic {width, height, 0, 0 {bitmap}}
124 0x1c caller group graphic on? {(1: yes, 0: no), 0, 0}
125 0x1e caller group number {number, 0, 0}
127 0x03: Mobile (office ?),
130 0x02: Home (mobile ?)
131 s Set mem location { 0x010b, 0x00, 0x01, 0x01, 0x00, 0x00, z,
132 xH, xL, yH, yL, 0x00, 0x00, 0x00,
133 no.of blocks, { block }[no.of blocks] }
134 r Set mem location { 0x010c, 0?, 1?, code, 0?, 0?, z?, 0?, 0?,
137 0x3d - wrong entry type
138 0x3e - too much entries
140 s get used network { 0x0070 }
141 r get used network { 0x0071, available,?,?,length,netstatus,netsel,cellIDH,
142 cellIDL,lacH,lacL,MCC+MNC[3],{Opstr}, 4?,
143 len, xlen(78), ylen(21), 0, {bitmap} }
144 where {Opstr}: namelen, {operator name(unicode)}
145 len: {xlen, ylen, 0, {bitmap} + 2
146 {bitmap}: bitmaplen, 0, 0, {OTA bitmap}
147 available: 0x02 if the logo following is valid,
148 0x01 for no operator logo following
149 s get network status { 0x0081 }
150 r get network status { 0x0082, network%, 0x14? }
151 s set operator logo { 0x01a3 0x01, oplogo?, MCC+MNC[3], 0?,4?,len,
152 xlen(78),ylen(21), 0 (frames?),
153 {bitmap}*?, 0x00(padding) }
154 where len, {bitmap}: see 0x0a/0x0071
155 r set operator logo OK { 0x01a4 }
157 s Add meeting note { 0x0001, body like in subtype 0x001a...}
158 r Add meeting note { 0x0002, location (2 bytes), status (2 bytes)}
159 s Add call note { 0x0003, body like in subtype 0x001a...}
160 r Add call note { 0x0004, location (2 bytes), status (2 bytes)}
161 s Add birthday note { 0x0005, body like in subtype 0x001a...}
162 r Add birthday note { 0x0006, location (2 bytes), status (2 bytes)}
163 s Add reminder note { 0x0007, body like in subtype 0x001a...}
164 r Add reminder note { 0x0008, location (2 bytes), status (2 bytes)}
165 s Delete calendar note { 0x000b, location (2 bytes) }
166 r Delete calendar note { 0x000c, location (2 bytes), ?, ?, ?, ? }
167 s Get calendar note { 0x0019, location (2 bytes) }
168 r Calendar note recvd { 0x001a, location (2 bytes), entry type, 0x00, year (2 bytes), Month, Day, block}
169 where: entry type - 0x01 - Meeting, 0x02 - Call, 0x04 - Birthday, 0x08 - Reminder
170 block: for Meeting:{hour,minute,alarm (two bytes),recurrance (two bytes),len,0x00,string(unicode)}
171 where alarm=Number of minutes before the time of the meeting
172 that the alarm should be triggered:
173 For meetings with "No alarm"=0xFFFF (-1).
175 half an hour=0x001E, and so on.
176 Recurrance=in hours, between future occurances of this meeting.
177 If there is no repeat, this value is 0x0000. The special value 0xffff
179 for Call:{Hour,Minute,Alarm (as above),Recurrance (as above),namelen,numberlen,
180 name(unicode),number(unicode)}
181 for Reminder:{Recurrance (as above),len,0x00,string(unicode)}
182 for Birthday:{byte1,byte2,alarm(4 bytes),yearofbirth,alarmtype,len,string(unicode)}
183 byte1 and byte2 may vary (???). Usually are 0x00 both (but not always)
184 In Birthday, the Year in the common part, usually contains a strange year.
185 So, don't consider it as Year of note, neither year of BirthDay (for Year of
186 Birthday use the value described below).
187 where alarm=32-bit integer that is the number of seconds between the desired
188 alarm time and 11:59:58pm on the birthday.For "No Alarm", the value is
190 YearOfBirth=used instead of the one in the common part of the entry (see above)
191 but only when reading birthday entries. For storing entries, this field does
193 AlarmType: 0x00 - Tone, 0x01 - Silent
195 ? r??? { 0x0022, 0x5A, 0x00 }
197 ? r??? { 0x0026, 0x04, 0x00 }
199 ? r { 0x002A, 0x04, 0x00 }
200 s Get first free pos { 0x0031 }
201 r Get first free pos { 0x0032, location (2bytes) }
202 s Get notes info { 0x003a, 0xFF, 0xFE}
203 r Get notes info { 0x003b, how many notes used (2 bytes), 0x01, 0x07, { two bytes with location for each note} *}
204 ? s Get calendar note?? { 0x003E, location (2 bytes) }
205 ? r Get calendar note?? { 0x003F, location (2bytes), ... }
207 s Get Picture Image { 0x0007, location, number[2 bytes], 0x00, 0x64 }
208 where location: 0x21 (always ?)
209 r Get Picture Image { 0x0008, 0x07, location, number[2 bytes], 0x07, ??[38],
210 width, height, lenH, lenL, {bitmap}}
211 where location: 0x21 (always ?)
212 s Set Picture Image { 0x0050, 0x07, location, number[2 bytes], 0x07, ??[38],
213 width, height, lenH, lenL, {bitmap}}
215 where location: 0x21 (always ?)
216 r Set Picture Image { 0x0051, location, number[2 bytes], 0x07 }
217 where location: 0x21 (always ?)
219 s List Picture Images { 0x0096, FolderID, 0x0f, 0x07 }
220 where: FolderID - see 0x14/0x017B
221 r List Picture Images { 0x0097, number of pictures[2 bytes], number1[2 bytes], number2[2 bytes], ..., }
223 s Get SMS from folder { 0x0107, folderID, 0x00, location, 0x01, 0x65, 0x01}
224 where: folderID - see 0x14/0x017B
225 r Get SMS from folder { 0x0108, status, folderID, 0x00, location, type, sender number,...}
227 where: status=0x01 - reveived/read
228 0x03 - received/unread
230 0x07 - stored/not sent
232 where: folderID - see 0x14/0x017B
234 where: type=0x00 - received SMS
235 0x01 - delivery report
237 0x07 - picture message
238 s Get folder status { 0x016b, folderID, 0x0F, 0x01}
239 where: folderID - see 0x14/0x017B
240 r Get folder status { 0x016c, number of entries (2 bytes), entry1number (2 bytes), entry2number(2 bytes), ....}
241 s Get folder names { 0x017A, 0x00, 0x00}
242 r Get folder names { 0x017B, number of strings, folderID, name1, 0x00, folderID, name2, 0x00, name3, 0x00,...}
243 where: folderID=0x08 - Inbox
247 0x29 - first "My folders"
248 0x31 - second "My folders"
252 s Get Battery info { 0x0002 }
253 r Get Battery info { 0x0003, 0x0b, batt%, 0x14?, 0x01? }
255 ? s Get date time ? { 0x0062 }
256 ? r Get date time ? { 0x0063, 0x01, 0x01, 0x01, 0x07, 0x07,0xD1(year==2001) 0x05(month?) 0x02(day?) 0x00,0x1D,0x0D(hour:minute:second?)
258 ? s Get alarm ? { 0x006D }
259 ? r Get alarm ? { 0x006E 0x01, 0x01, 0x20, 0x03, 0x01, 0x0B, 0x14 }
261 ? s ?? { 0x0083, id }
262 ? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x00, 0x00 }
263 ? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x00, 0x01 }
264 ? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x01, 0x00 }
265 where: id=0x27,0x2a,0x32,0x28,0x40
267 s Get IMEI { 0x0001 }
268 r Get IMEI { 0x0002, {IMEI(ASCII)}, 0x00 }
269 s get HW&SW version { 0x0003, 0x01, 0x32 }
270 r get HW&SW version { 0x0004, "V " "firmware\n" "firmware date\n"
271 "model\n" "(c) NMP." 0x00 0xff[14] }
273 s ??? { 0x0010, 0x02, 0x00, 0xff, 0xff }
274 r ??? { 0x0011, length, 0x00, {block}[length] }
275 where block: { unicode letter[2], 0x0000,
277 s Set ringtone { 0x011f, 0x00, location, 0x00, name(Unicode),
278 ringtone(format the same to 0x40/0x019e and 0x40/0x01a0) }
279 where: location: 0x87 to 0x8b on N6210
281 ? s Get ringtone { 0x0122, 0x00, location}
282 ? r Get ringtone { 0x0123, 0x00, location, name(Unicode), 0x00,...,0x00, 0x02,0xFC,0x09(ringtone contenst)}
284 s get profile feature ? { 0x0101, 0x01, 0x01, 0x01, number1, number2}
285 where number1: from 0x00 to 0x07 (for each profile ?)
286 number2: 0x00 - 0x09, 0x0A, 0x16 - 0x19, 0x1a - 0x1f, 0x20 - 0x29, 0x2a - 0x2c, 0xff
287 r get profile feature ? { 0x0102, 0x01, number1, number2, block...}
288 for number2==0xff: block: 0x01, 0x01, length, name(Unicode), 0x00, 0x00
290 s ??? { 0x0101, 0x04, 0x01, 0x01, 0xff, 0x03 }
291 r ??? { 0x0102, 0x01, 0x02, 0x03, 0x01, 0x01, 0x01, 0x85/0x087 }
294 r ? { 0x0106, 0x01, 0x04}
300 s Get WAP bookmark { 0x0006, 0x00, location}
301 where location: 0 - 14
302 r Get WAP bookmark { 0x0007, 0x00, name_len, name(unicode),
303 url_len, url(unicode), 0x01,0x80,0x00[7]}
304 r Get WAP bookmark err { 0x0008, error }
306 0x00 invalid position
307 0x02 no more bookmark stored
308 s Set WAP bookmark { 0x0009, 0xff, 0xff, name_len, name(unicode),
309 url_len, url(unicode), 0x01,0x80,0x00[7] }
310 Note: bookmark is added to the first free location.
312 ? r Set WAP bookmark err {+0x01, 0x36, 0x0b, error }
314 0x04 - memory is full
315 0x01 - we are in the bookmark menu
316 0x00 - unknown reason for now ;(
317 ? r Set WAP bookmark OK {+0x01, 0x36, 0x00, block }
319 0x0a, location_of_just_written_bookmark(?),
320 0x00, next_free_location(?)
322 s Delete WAP bookmark { 0x000c, 0x00, location }
323 where: location = 0-14
324 r Delete WAR bookmark OK{ 0x000d }
325 r Delete WAPbookmark err{ 0x000e, 0x02 }
328 s Get WAP settings { 0x0015, location}
329 where location: 0x00 - 0x05
330 r Get WAP settings OK { 0x0016, location }
331 r Get WAP settings err { 0x0017, error }
332 s ??? { 0x001b, location}
333 where location: 0x00 - 0x1d
335 r ??? err { 0x001d,error}
337 0x40: Security commands
338 ? s ???(N6150) { 0x08, 0x00 }
339 ? r ???(N6150) { 0x08 }
340 s Enable extended cmds { 0x64, cmd }
343 0x03: reset (doesn't ask for PIN again)
344 0x04: reset (PIN is requested)
345 In 5110 makes reset without PIN
346 0x06: CONTACT SERVICE!!! Don't try it!
348 r Get IMEI { 0x66, 0x01, IMEI, 0x00}
349 s (ACD Readings)?(N6150 { 0x68 }
350 r (ACD Readings)?(N6150 { 0x68, ... }
351 s Get Product Profile
353 r Get Product Profile
354 Settings { 0x6a, 4bytes with Product Profile Settings }
355 s Set Product Profile
356 Settings { 0x6b, 4bytes with Product Profile Settings }
357 r Set Product Profile
358 Settings OK ? { 0x6b }
359 s Get code { 0x6e, code }
360 where code: see 0x08/0x0004 (no allowed code !)
361 r Get code { 0x6e, code, allowed, allowed? (sec code (text)) }
362 where code: see 0x08/0x0004
366 ? Counters (nm->test36) { 0x74, 0x01, 0x01, 0x0e }
368 ? Counters (nm->test36) { 0x74 }
369 s Call commands { 0x7c, block }
370 where where: command, (values)
372 values: number(ASCII), 0x00 - makes voice call
373 command: 0x02 - answer call
374 command: 0x03 - release call
375 r Call commands { 0x7c, command }
376 s Netmonitor { 0x7e, field }
377 where: field: 00: next
382 s Get simlock info { 0x8a, 0x00}
383 r Get simlock info { 0x8a, 0x00, 0x01, lockstype, locksclosed, 0x00, 0x00, locksinfo(lock1,4,2,3), counter1,counter2,counter4,counter4,0x00 }
384 where: lockstype: bit1,bit2,bit3,bit4 - if set, selected lock is user lock
385 locksclosed: bit1,bit2,bit3,bit4 - if set, selected lock is closed
386 counter1 - counter4: counters for locks
387 s Buzzer pitch { 0x8f, volume, hzLO, hzHI }
388 if volume and hz is 0, it's off
389 r Buzzer pitch { 0x8f}
390 s ACD Readings ? { 0x91, parameter?(0x02,0x03,0x04,0x05,0x07) }
391 r ACD Readings ? { 0x91, parameter?, value? }
392 ? s ???(N6150) { 0x98, 0x00 }
393 ? r ???(N6150) { 0x98, 0x00, 0x04 }
394 s Get bin ringtone { 0x9e, location }
395 where: location=0,1,etc.
396 r Get bin ringtone { 0x9e, location, error, contents... }
397 where location=0,1,etc.
398 error=0x0a, ringtone NOT available
400 s Set bin ringtone { 0xa0, location, 0x00, contenst... }
401 where: location=0,1,etc.
402 r Set bin ringtone { 0xa0, location, error }
403 where location=0,1,etc.
404 error=0x0a, ringtone NOT set
405 0x00, ringtone set OK
406 ? r Get MSid { 0xb5, 0x01, 0x2f, msid, 0x25 }
407 s Get info about phone { 0xc8, 0x01 }
408 r Get info about phone { 0xc8, 0x01, 0x00, "V ", "firmware", 0x0a, "firmware date", 0x0a, "model", 0x0a, "(c) NMP.", 0x00 }
409 s Get MCU SW Checksum { 0xc8, 0x02 }
410 r Get MCU SW Checksum { 0xc8, 0x02, 0x00, checksum (4 bytes),0x00 }
411 s DPS External SW { 0xc7, 0x03 }
412 r DSP External SW { 0xc7, 0x03, 0x00, string,0x00 }
413 s Get HW { 0xc8, 0x05 }
414 r Get HW { 0xc8, 0x05, 0x00, HW version (4 bytes), 0x00 }
415 s Get "Made" Date { 0xc8, 0x05 }
416 r Get "Made" Date { 0xc8, 0x05, 0x00, date(4 bytes), 0x00 }
417 s Get DSP Internal SW { 0xc8, 0x09 }
418 r Get DSP Internal SW { 0xc8, 0x09, 0x00, version (1 bytes), 0x00 }
419 s Get PCI version { 0xc8, 0x0b }
420 r Get PCI version { 0xc8, 0x0b, 0x00, version, 0x00 }
421 s Get system ASIC { 0xc8, 0x0c }
422 r Get system ASIC { 0xc8, 0x0c, 0x00, string, 0x00 }
423 s Get COBBA { 0xc8, 0x0d }
424 r Get COBBA { 0xc8, 0x0d, 0x00, string, 0x00 }
425 s Get PLUSSA { 0xc8, 0x0e }
426 r Get PLUSSA { 0xc8, 0x0e, available, 0x00 }
427 where available: 0x01: not available
428 s Get CCONT { 0xc8, 0x0f }
429 r Get CCONT { 0xc8, 0x0f, available, 0x00 }
430 where available: 0x01: not available
431 s Get PPM version { 0xc8, 0x10 }
432 r Get PPM version { 0xc8, 0x10, 0x00, "V ", "firmware", 0x0a, "firmware date", 0x0a, "model", 0x0a, "(c) NMP.", 0x00 }
433 s Get PPM info { 0xc8, 0x12 }
434 r Get PPM info { 0xc8, 0x12, 0x00, PPM version ("B", "C", etc.), 0x00 }
435 s Set HW version { 0xc9, 0x05, version, 0x00 }
436 s Get Product Code { 0xca, 0x01 }
437 r Get Product Code { 0xca, 0x01, 0x00, number, 0x00 }
438 s Get Order Number { 0xca, 0x02 }
439 r Get Order Number { 0xca, 0x02, 0x00, string, 0x00 }
440 s Get Prod.Ser.Number { 0xca, 0x03 }
441 r Get Prod.Ser.Number { 0xca, 0x03, 0x00, number, 0x00 }
442 s Get Basic Prod.Code { 0xca, 0x04 }
443 r Get Basic Prod.Code { 0xca, 0x04, 0x00, number, 0x00 }
444 s Set Product Code { 0xcb, 0x01, product code, 0x00 }
445 s Set Order Number { 0xcb, 0x02, number, 0x00 }
446 s Set Prod.Ser.Number { 0xcb, 0x03, number, 0x00 }
447 s Get (original ?)IMEI { 0xcc, 0x01 }
448 r Get (original ?)IMEI { 0xcc, 0x01, IMEI, 0x00 }
449 s Get Manufacture Month { 0xcc, 0x02 }
450 r Get Manufacture Month { 0xcc, 0x02, 0x00, string, 0x00 }
451 s Get Purchare date { 0xcc, 0x04 }
452 r Get Purchare date { 0xcc, 0x04, 0x00, string, 0x00 }
453 s Set "Made" date { 0xcd, 0x02, string, 0x00 }
454 s Make "all" phone tests{ 0xce,0x1d,0xfe,0x23,0x00,0x00}
455 s Make one phone test { 0xce,0x1d,num1,num2,num3,num4}
456 Where num1-num4: 0x02,0x00,0x00,0x00;
465 0x00,0x04,0x00,0x00; - "Power off"
466 No test for "Security data"
474 s Result of phone tests { 0xcf }
475 r Result of phone tests { 0xcf, number of tests, results of next tests }
477 ? r ???(N5110) { 0xd1, 0x00, 0x1d, 0x00, 0x01, 0x08, 0x00 }
478 s LCD Test { 0xd3, value }
479 where value: 0x03, 0x02 - 1'st test
480 0x03, 0x01 - 2'nd test
481 0x02, 0x03 - clears screen
482 s ACD Readings(N6150)? { 0xd4, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x01}
483 r ACD Readings(N6150)? { 0xd4, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x01, ?}
484 r Function of { 0xff, 0x8c }
488 s Status confirm { 0x0201, 0x03 }
489 r Incoming call seq1 { 0x0102 0x0e 0x03 }
490 r Incoming call seq2 { 0x0102 0x7e 0x01 }
492 s CarKit enable { 0x0201 0x01 0x62 0x00 }
493 r CarKit enabled { 0x0201 0x02 0x06 0x00 "V " {version} "\nHFU"
496 r Set setting { 0x01eb, number, 0x00 }
497 s Set setting { 0x01ec, number, contents }
499 0x15 (startup logo) : 0x00, 0x00, 0x00, 0x04,
500 0xc0, 0x02, 0x00, height, 0xc0, 0x03, 0x00, width,
501 0xc0, 0x04, 0x03, 0x00, {bitmap} }
502 where width, height, {bitmap}: see 0x7a/0x01ed 0x15
503 s Get setting { 0x01ee, number}
504 where number: 0x01 - 0x1e
507 r Get setting { 0x01ed,number, 0x00, contents}
509 0x15 (startup logo) : 0x00, 0x00, 0x00, 0x04,
510 0xc0, 0x02, 0x00, height, 0xc0, 0x03, 0x00, width,
511 0xc0, 0x04, 0x03, 0x00, {bitmap} }
512 where height: 60 (0x3c) or 65
514 {bitmap}: like other bitmaps but pixels
516 0x1c (security code): {code(ascii)}, 0x00
517 0x7f: Acknowledge(FBUS/IRDA){+type, seq }
520 s Power on message seq1 {+04 }
521 r Power on message seq1 {+05 }
523 s Get HW&SW version { 0x0003, 0x00 }
525 r Get HW&SW version { 0x0003 "V " "firmware\n" "firmware date\n"
526 "model\n" "(c) NMP." }
527 0xf4: Power on message seq 2