summaryrefslogtreecommitdiff
path: root/README
blob: de690e710a76e2048b4888bac1eb4fbd84aee2bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Project: DS1992 memory iButton dumper

 * this project is designed for the USB AVR LAB board by ullihome
 * (http://www.ullihome.de/wiki/USBAVRLab/index)
 * That's a small Atmega8-powered board with software-USB and a small pinout
 * that looks like this:
 *  ____   ____         ____   ____
 * | . . . . . |       | o . . . . |
 * | . . . . . |  or   | x . . . . |
 * |___________|       |___________|
 *
 * hold the DS1992 token against the pins, so that the outer ring touches the
 * "x" pin, while the inner circle touches the "o" pin.
 *
 * How to use:
 * the dumping device has three modes of operation, which are shown by the blinking
 * speed of the blue LED.
 * 1. reading mode: normal blinking
 * 2. reading mode: slooow blinking (previous operation failed)
 * 3. writing mode: fast blinking
 *
 * in either mode, the red LED flashes periodically. This means that the device
 * probed for a DS1992, but couldn't find anything on the bus. If you hold you
 * DS1992 against the pins, the flashing will turn green instead. This means that
 * the token has been read into the device's RAM.
 * You can now use `pc/a.out read` to read the contents.
 * (If both green and red leds flash, this means you've a short circuit.)
 *
 * If you execute `pc/a.out write <page> <data>`, then the device will enter
 * writing mode. The flashing red LED has the same meaning as before. If you now
 * connect the token, the page <page> (1-indexed) will be written to with <data>,
 * whenever the LED flashes green the next time.
 * After that, the device enters reading mode again. If the LED blinks really slow,
 * then there was a write error. re-execute a.out write, reconnect the token and retry.
 * Additionally, after writing you can use `a.out read` again (without connecting the
 * token for reading previously). This will output you a lot of garbage, but the first
 * byte read tells you a more detailed error code:
 * 0x01: "reset/presence pulse" failed after scratchpad write
 * 0x02: scratchpad did not verify correctly
 * 0x03: "reset/presence pulse" failed after scratchpad readback + verify
 * 0xFF: probably successful
 *
 * Note that you should read back the data after writing, just to be sure.
 * Also note that while you can read the whole memory at once, you must execute the write
 * command, and also connect the token, four times for a full write (once for each page).


WARNING: This tool does not adhere to the 1-wire-specification and may damage your devices.
         see 1wire.{c,h} for details.

Author: Florian Jung (flo@windfisch.org)
Copyright: (c) 2015,2016 by Florian Jung. All rights reserved.
License: 3-clause BSD for avr/main.c; Note that different licensing applies for the V-USB library.