├── Makefile ├── README.txt ├── defs.h ├── i2c.h ├── main.c ├── main.hex ├── types.h └── ~OLD.zip /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitsmashed/SparkFun-9DOF-Razor-IMU-Test-Firmware/bdc372c3c3de3e786f95b0987d32bda7d778d2bf/Makefile -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | All files are released under the Open Source Hardware Definition: http://freedomdefined.org/OSHW -------------------------------------------------------------------------------- /defs.h: -------------------------------------------------------------------------------- 1 | /*! \file avrlibdefs.h \brief AVRlib global defines and macros. */ 2 | //***************************************************************************** 3 | // 4 | // File Name : 'avrlibdefs.h' 5 | // Title : AVRlib global defines and macros include file 6 | // Author : Pascal Stang 7 | // Created : 7/12/2001 8 | // Revised : 9/30/2002 9 | // Version : 1.1 10 | // Target MCU : Atmel AVR series 11 | // Editor Tabs : 4 12 | // 13 | // Description : This include file is designed to contain items useful to all 14 | // code files and projects, regardless of specific implementation. 15 | // 16 | // This code is distributed under the GNU Public License 17 | // which can be found at http://www.gnu.org/licenses/gpl.txt 18 | // 19 | //***************************************************************************** 20 | 21 | 22 | #ifndef AVRLIBDEFS_H 23 | #define AVRLIBDEFS_H 24 | 25 | //#define F_CPU 4000000 26 | #define MEM_TYPE 1 27 | 28 | // Code compatibility to new AVR-libc 29 | // outb(), inb(), inw(), outw(), BV(), sbi(), cbi(), sei(), cli() 30 | #ifndef outb 31 | #define outb(addr, data) addr = (data) 32 | #endif 33 | #ifndef inb 34 | #define inb(addr) (addr) 35 | #endif 36 | #ifndef outw 37 | #define outw(addr, data) addr = (data) 38 | #endif 39 | #ifndef inw 40 | #define inw(addr) (addr) 41 | #endif 42 | #ifndef BV 43 | #define BV(bit) (1<<(bit)) 44 | #endif 45 | //#ifndef cbi 46 | // #define cbi(reg,bit) reg &= ~(BV(bit)) 47 | //#endif 48 | //#ifndef sbi 49 | // #define sbi(reg,bit) reg |= (BV(bit)) 50 | //#endif 51 | #ifndef cli 52 | #define cli() __asm__ __volatile__ ("cli" ::) 53 | #endif 54 | #ifndef sei 55 | #define sei() __asm__ __volatile__ ("sei" ::) 56 | #endif 57 | 58 | // support for individual port pin naming in the mega128 59 | // see port128.h for details 60 | #ifdef __AVR_ATmega128__ 61 | // not currently necessary due to inclusion 62 | // of these defines in newest AVR-GCC 63 | // do a quick test to see if include is needed 64 | #ifndef PD0 65 | //#include "port128.h" 66 | #endif 67 | #endif 68 | 69 | // use this for packed structures 70 | // (this is seldom necessary on an 8-bit architecture like AVR, 71 | // but can assist in code portability to AVR) 72 | #define GNUC_PACKED __attribute__((packed)) 73 | 74 | // port address helpers 75 | #define DDR(x) ((x)-1) // address of data direction register of port x 76 | #define PIN(x) ((x)-2) // address of input register of port x 77 | 78 | // MIN/MAX/ABS macros 79 | #define MIN(a,b) ((ab)?(a):(b)) 81 | #define ABS(x) ((x>0)?(x):(-x)) 82 | 83 | // constants 84 | #define PI 3.14159265359 85 | 86 | #endif 87 | -------------------------------------------------------------------------------- /i2c.h: -------------------------------------------------------------------------------- 1 | // This library provides the high-level functions needed to use the I2C 2 | // serial interface supported by the hardware of several AVR processors. 3 | #include 4 | #include 5 | #include "types.h" 6 | #include "defs.h" 7 | 8 | // TWSR values (not bits) 9 | // (taken from avr-libc twi.h - thank you Marek Michalkiewicz) 10 | // Master 11 | #define TW_START 0x08 12 | #define TW_REP_START 0x10 13 | // Master Transmitter 14 | #define TW_MT_SLA_ACK 0x18 15 | #define TW_MT_SLA_NACK 0x20 16 | #define TW_MT_DATA_ACK 0x28 17 | #define TW_MT_DATA_NACK 0x30 18 | #define TW_MT_ARB_LOST 0x38 19 | // Master Receiver 20 | #define TW_MR_ARB_LOST 0x38 21 | #define TW_MR_SLA_ACK 0x40 22 | #define TW_MR_SLA_NACK 0x48 23 | #define TW_MR_DATA_ACK 0x50 24 | #define TW_MR_DATA_NACK 0x58 25 | // Slave Transmitter 26 | #define TW_ST_SLA_ACK 0xA8 27 | #define TW_ST_ARB_LOST_SLA_ACK 0xB0 28 | #define TW_ST_DATA_ACK 0xB8 29 | #define TW_ST_DATA_NACK 0xC0 30 | #define TW_ST_LAST_DATA 0xC8 31 | // Slave Receiver 32 | #define TW_SR_SLA_ACK 0x60 33 | #define TW_SR_ARB_LOST_SLA_ACK 0x68 34 | #define TW_SR_GCALL_ACK 0x70 35 | #define TW_SR_ARB_LOST_GCALL_ACK 0x78 36 | #define TW_SR_DATA_ACK 0x80 37 | #define TW_SR_DATA_NACK 0x88 38 | #define TW_SR_GCALL_DATA_ACK 0x90 39 | #define TW_SR_GCALL_DATA_NACK 0x98 40 | #define TW_SR_STOP 0xA0 41 | // Misc 42 | #define TW_NO_INFO 0xF8 43 | #define TW_BUS_ERROR 0x00 44 | 45 | // defines and constants 46 | #define TWCR_CMD_MASK 0x0F 47 | #define TWSR_STATUS_MASK 0xF8 48 | 49 | // return values 50 | #define I2C_OK 0x00 51 | #define I2C_ERROR_NODEV 0x01 52 | 53 | #define sbi(var, mask) ((var) |= (uint8_t)(1 << mask)) 54 | #define cbi(var, mask) ((var) &= (uint8_t)~(1 << mask)) 55 | 56 | #define WRITE_sda() DDRC = DDRC | 0b00010000 //SDA must be output when writing 57 | #define READ_sda() DDRC = DDRC & 0b11101111 //SDA must be input when reading - don't forget the resistor on SDA!! 58 | 59 | // functions 60 | 61 | //! Initialize I2C (TWI) interface 62 | void i2cInit(void); 63 | 64 | //! Set the I2C transaction bitrate (in KHz) 65 | void i2cSetBitrate(unsigned short bitrateKHz); 66 | 67 | // Low-level I2C transaction commands 68 | //! Send an I2C start condition in Master mode 69 | void i2cSendStart(void); 70 | //! Send an I2C stop condition in Master mode 71 | void i2cSendStop(void); 72 | //! Wait for current I2C operation to complete 73 | void i2cWaitForComplete(void); 74 | //! Send an (address|R/W) combination or a data byte over I2C 75 | void i2cSendByte(unsigned char data); 76 | //! Receive a data byte over I2C 77 | // ackFlag = TRUE if recevied data should be ACK'ed 78 | // ackFlag = FALSE if recevied data should be NACK'ed 79 | void i2cReceiveByte(unsigned char ackFlag); 80 | //! Pick up the data that was received with i2cReceiveByte() 81 | unsigned char i2cGetReceivedByte(void); 82 | //! Get current I2c bus status from TWSR 83 | unsigned char i2cGetStatus(void); 84 | void delay_ms(uint16_t x); 85 | 86 | // high-level I2C transaction commands 87 | 88 | //! send I2C data to a device on the bus (non-interrupt based) 89 | unsigned char i2cMasterSendNI(unsigned char deviceAddr, unsigned char length, unsigned char* data); 90 | //! receive I2C data from a device on the bus (non-interrupt based) 91 | unsigned char i2cMasterReceiveNI(unsigned char deviceAddr, unsigned char length, unsigned char *data); 92 | 93 | /********************* 94 | ****I2C Functions**** 95 | *********************/ 96 | 97 | void i2cInit(void) 98 | { 99 | // set i2c bit rate to 40KHz 100 | i2cSetBitrate(40); 101 | // enable TWI (two-wire interface) 102 | sbi(TWCR, TWEN); // Enable TWI 103 | } 104 | 105 | void i2cSetBitrate(unsigned short bitrateKHz) 106 | { 107 | unsigned char bitrate_div; 108 | // set i2c bitrate 109 | // SCL freq = F_CPU/(16+2*TWBR)) 110 | cbi(TWSR, TWPS0); 111 | cbi(TWSR, TWPS1); 112 | 113 | //calculate bitrate division 114 | bitrate_div = ((F_CPU/4000l)/bitrateKHz); 115 | if(bitrate_div >= 16) 116 | bitrate_div = (bitrate_div-16)/2; 117 | outb(TWBR, bitrate_div); 118 | } 119 | 120 | void i2cSendStart(void) 121 | { 122 | WRITE_sda(); 123 | // send start condition 124 | TWCR = (1< 0 ; x--){ 184 | for ( y = 0 ; y < 90 ; y++){ 185 | for ( z = 0 ; z < 6 ; z++){ 186 | asm volatile ("nop"); 187 | } 188 | } 189 | } 190 | } -------------------------------------------------------------------------------- /main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitsmashed/SparkFun-9DOF-Razor-IMU-Test-Firmware/bdc372c3c3de3e786f95b0987d32bda7d778d2bf/main.c -------------------------------------------------------------------------------- /main.hex: -------------------------------------------------------------------------------- 1 | :100000000C949E000C94BB000C94BB000C94BB00A1 2 | :100010000C94BB000C94BB000C94BB000C94BB0074 3 | :100020000C94BB000C94BB000C94BB000C94BB0064 4 | :100030000C94BB000C94BB000C94BB000C94BB0054 5 | :100040000C94BB000C94BB000C94BB000C94BB0044 6 | :100050000C94BB000C94BB000C94BB000C94BB0034 7 | :100060000C94BB000C94BB000A0A0D39444F462087 8 | :10007000494D55204669726D77617265207632323E 9 | :10008000200A0D3D3D3D3D3D3D3D3D3D3D3D3D3D20 10 | :100090003D3D3D3D3D3D3D3D3D3D3D3D3D000A0D30 11 | :1000A0005B315D416363656C65726F6D657465722C 12 | :1000B0003A204144584C333435200A0D005B325D00 13 | :1000C0004D61676E65746F6D657465723A20484D59 14 | :1000D0004335383833200A0D005B335D4779726F42 15 | :1000E00073636F70653A204954472D3332303020A6 16 | :1000F0000A0D005B345D526177204F757470757422 17 | :100100000A0D005B355D4368616E6765204261756D 18 | :100110006420526174653A20005B4374726C2B7AE0 19 | :100120005D546F67676C65204175746F72756E0AF8 20 | :100130000D005B3F5D48656C700A0D0011241FBE09 21 | :10014000CFEFD8E0DEBFCDBF15E0A0E0B1E0E8E53D 22 | :10015000FDE102C005900D92AE35B107D9F715E06B 23 | :10016000AEE5B5E001C01D92AE36B107E1F70E94E1 24 | :10017000890B0C94AA0E0C9400001F93182F8A3040 25 | :1001800019F48DE00E94BD008091C00085FFFCCF76 26 | :100190001093C60080E090E01F910895BC0180910B 27 | :1001A000B9008E7F8093B9008091B9008D7F8093D4 28 | :1001B000B90080ED97E00E94990B603128F070E063 29 | :1001C00060517040759567956093B800089588E216 30 | :1001D00090E00E94CE00ECEBF0E0808184608083B0 31 | :1001E00008953C9A84EA8093BC00089584E9809342 32 | :1001F000BC00089580E090E001C001962091BC0011 33 | :1002000027FD03C08A359105C1F70895882329F099 34 | :100210008091BC008F70806C04C08091BC008F7096 35 | :1002200080688093BC0008958091BB000895809100 36 | :10023000B90008950AC02AE500000000000000008F 37 | :10024000000000002150C1F701970097A1F7089521 38 | :100250001F93182F81E090E00E941A013C9A10939E 39 | :10026000BB0084E88093BC001F9108951F93CF9337 40 | :10027000DF930E94F1000E94FA0086EA0E942801A2 41 | :100280000E94FA008DE20E9428010E94FA0088E094 42 | :100290000E9428010E94FA00CCEBD0E014E91883F8 43 | :1002A0000E94F1000E94FA0086EA0E9428010E9442 44 | :1002B000FA0081E30E9428010E94FA0088E00E946F 45 | :1002C00028010E94FA001883DF91CF911F910895B1 46 | :1002D0001F93CF93DF930E94F1000E94FA0080EDFC 47 | :1002E0000E9428010E94FA008EE30E9428010E94C9 48 | :1002F000FA0080E80E9428010E94FA00CCEBD0E0CE 49 | :1003000014E918838AE090E00E941A010E94F1002B 50 | :100310000E94FA0080ED0E9428010E94FA0086E106 51 | :100320000E9428010E94FA0088E10E9428010E9490 52 | :10033000FA0018838AE090E00E941A010E94F100FE 53 | :100340000E94FA0080ED0E9428010E94FA008EE3CC 54 | :100350000E9428010E94FA0080E00E9428010E9469 55 | :10036000FA001883DF91CF911F91089500D080E0AB 56 | :1003700091E0EDB7FEB7928381830E94D90B8CE0A8 57 | :1003800091E0EDB7FEB7928381830E94D90B8BE693 58 | :1003900091E0EDB7FEB7928381830E94D90B89EC7F 59 | :1003A00091E0EDB7FEB7928381830E94D90B84E27E 60 | :1003B00092E0EDB7FEB7928381830E94D90B85E866 61 | :1003C00092E0EDB7FEB7928381830E94D90B8FEC48 62 | :1003D00092E0EDB7FEB7928381830E94D90B8DE442 63 | :1003E00093E0EDB7FEB7928381830E94D90B89E831 64 | :1003F00093E0EDB7FEB7928381830E94D90B0F90F3 65 | :100400000F9008951F93CF93DF930E94F1000E94F5 66 | :10041000FA008CE30E9428010E94FA0080E00E940A 67 | :1004200028010E94FA0080E70E9428010E94FA0039 68 | :10043000CCEBD0E014E918830E94F1000E94FA008E 69 | :100440008CE30E9428010E94FA0081E00E942801AA 70 | :100450000E94FA0080EA0E9428010E94FA00188394 71 | :100460000E94F1000E94FA008CE30E9428010E9481 72 | :10047000FA0082E00E9428010E94FA0080E00E94B7 73 | :1004800028010E94FA001883DF91CF911F910895EF 74 | :100490000F931F93CF93DF930E9402020E94F100FB 75 | :1004A0000E94FA008DE30E9428010E94FA008FEF5B 76 | :1004B0000E9406010E94FA00CBEBD0E018810E9456 77 | :1004C000FA008FEF0E9406010E94FA0008810E9444 78 | :1004D000FA00312F20E0802F90E0822B932B909315 79 | :1004E0006705809366058FEF0E9406010E94FA005F 80 | :1004F00018810E94FA008FEF0E9406010E94FA0004 81 | :1005000008810E94FA00312F20E0802F90E0822B9A 82 | :10051000932B90936305809362058FEF0E940601F1 83 | :100520000E94FA0018810E94FA008FEF0E940601D3 84 | :100530000E94FA0008810E94FA00312F20E0802FEB 85 | :1005400090E0822B932B90936505809364058DE357 86 | :100550000E9428010E94FA0084E98093BC00DF9188 87 | :10056000CF911F910F9108950E94480200D000D0B2 88 | :1005700082ED93E0EDB7FEB79283818380916605AB 89 | :1005800090916705948383830E94D90B8AED93E051 90 | :10059000EDB7FEB7928381838091640590916505E4 91 | :1005A000948383830E94D90B82EE93E0EDB7FEB76C 92 | :1005B0009283818380916205909163059483838304 93 | :1005C0000E94D90B0F900F900F900F900895EF920B 94 | :1005D000FF920F931F93CF93DF93CCEBD0E08881F2 95 | :1005E0008B7F88838881846088830E94F1000E94C9 96 | :1005F000FA0080ED0E9428010E94FA008DE10E941D 97 | :1006000028010E94FA000E94F10081ED0E94280159 98 | :100610000E94FA0080E00E9406010E94FA000BEBA3 99 | :1006200010E0F801E0800E94FA0094E9F92EF882C7 100 | :1006300088818B7F88838881846088830E94F10011 101 | :100640000E94FA0080ED0E9428010E94FA008EE1CB 102 | :100650000E9428010E94FA000E94F10081ED0E9490 103 | :1006600028010E94FA0080E00E9406010E94FA0020 104 | :10067000F80100810E94FA00F88288818B7F8883CC 105 | :100680008881846088839E2D80E0202F30E0282B95 106 | :10069000392BC901DF91CF911F910F91FF90EF90FE 107 | :1006A0000895EF92FF920F931F93CF93DF93CCEBBC 108 | :1006B000D0E088818B7F88838881846088830E94D2 109 | :1006C000F1000E94FA0080ED0E9428010E94FA00C9 110 | :1006D0008FE10E9428010E94FA000E94F10081ED42 111 | :1006E0000E9428010E94FA0080E00E9406010E94F8 112 | :1006F000FA000BEB10E0F801E0800E94FA0024E918 113 | :10070000F22EF88288818B7F888388818460888339 114 | :100710000E94F1000E94FA0080ED0E9428010E94D0 115 | :10072000FA0080E20E9428010E94FA000E94F10073 116 | :1007300081ED0E9428010E94FA0080E00E940601DB 117 | :100740000E94FA00F80100810E94FA00F882888174 118 | :100750008B7F88838881846088839E2D80E0202F12 119 | :1007600030E0282B392BC901DF91CF911F910F91D8 120 | :10077000FF90EF900895EF92FF920F931F93CF9306 121 | :10078000DF93CCEBD0E088818B7F88838881846085 122 | :1007900088830E94F1000E94FA0080ED0E942801E7 123 | :1007A0000E94FA0081E20E9428010E94FA000E9441 124 | :1007B000F10081ED0E9428010E94FA0080E00E9471 125 | :1007C00006010E94FA000BEB10E0F801E0800E94A5 126 | :1007D000FA0034E9F32EF88288818B7F8883888140 127 | :1007E000846088830E94F1000E94FA0080ED0E94DC 128 | :1007F00028010E94FA0082E20E9428010E94FA0069 129 | :100800000E94F10081ED0E9428010E94FA0080E020 130 | :100810000E9406010E94FA00F80100810E94FA007D 131 | :10082000F88288818B7F88838881846088839E2D6D 132 | :1008300080E0202F30E0282B392BC901DF91CF91A8 133 | :100840001F910F91FF90EF9008950E94E70200D052 134 | :1008500000D029EE33E0EDB7FEB7328321839483D5 135 | :1008600083830E94D90B0F900F900F900F900E94DE 136 | :10087000510300D000D022EF33E0EDB7FEB7328352 137 | :100880002183948383830E94D90B0F900F900F9044 138 | :100890000F900E94BB0300D000D02BEF33E0EDB7E8 139 | :1008A000FEB732832183948383830E94D90B0F90F8 140 | :1008B0000F900F900F9084E190E00E941A0108952C 141 | :1008C000DF92EF92FF920F931F93CF93DF930E94DB 142 | :1008D000F1000E94FA0086EA0E9428010E94FA00B4 143 | :1008E00082E30E9428010E94FA00CCEBD0E044E9A8 144 | :1008F000F42EF8820E94F1000E94FA0087EA0E941A 145 | :1009000028010E94FA008FEF0E9406010E94FA005F 146 | :100910000BEB10E0F801E0800E94FA0080E00E94FA 147 | :1009200006010E94FA00F80180810E94FA00F88214 148 | :100930000E94F1000E94FA0086EA0E9428010E94AB 149 | :10094000FA0083E30E9428010E94FA00F8820E94C4 150 | :10095000F1000E94FA0087EA0E9428010E94FA0032 151 | :100960008FEF0E9406010E94FA00F801D0800E94D9 152 | :10097000FA0080E00E9406010E94FA00F8018081DE 153 | :100980000E94FA00F8829D2D80E02E2D30E0282B69 154 | :10099000392BC901DF91CF911F910F91FF90EF90FB 155 | :1009A000DF900895DF92EF92FF920F931F93CF9302 156 | :1009B000DF930E94F1000E94FA0086EA0E9428015B 157 | :1009C0000E94FA0084E30E9428010E94FA00CCEB06 158 | :1009D000D0E054E9F52EF8820E94F1000E94FA005E 159 | :1009E00087EA0E9428010E94FA008FEF0E94060108 160 | :1009F0000E94FA000BEB10E0F801E0800E94FA0080 161 | :100A000080E00E9406010E94FA00F80180810E94A5 162 | :100A1000FA00F8820E94F1000E94FA0086EA0E9421 163 | :100A200028010E94FA0085E30E9428010E94FA0032 164 | :100A3000F8820E94F1000E94FA0087EA0E942801D1 165 | :100A40000E94FA008FEF0E9406010E94FA00F8014E 166 | :100A5000D0800E94FA0080E00E9406010E94FA0005 167 | :100A6000F80180810E94FA00F8829D2D80E02E2DF1 168 | :100A700030E0282B392BC901DF91CF911F910F91C5 169 | :100A8000FF90EF90DF900895DF92EF92FF920F9327 170 | :100A90001F93CF93DF930E94F1000E94FA0086EA31 171 | :100AA0000E9428010E94FA0086E30E9428010E9409 172 | :100AB000FA00CCEBD0E064E9F62EF8820E94F10057 173 | :100AC0000E94FA0087EA0E9428010E94FA008FEF34 174 | :100AD0000E9406010E94FA000BEB10E0F801E08092 175 | :100AE0000E94FA0080E00E9406010E94FA00F801CC 176 | :100AF00080810E94FA00F8820E94F1000E94FA00B0 177 | :100B000086EA0E9428010E94FA0087E30E942801D9 178 | :100B10000E94FA00F8820E94F1000E94FA0087EA1F 179 | :100B20000E9428010E94FA008FEF0E9406010E9495 180 | :100B3000FA00F801D0800E94FA0080E00E940601CD 181 | :100B40000E94FA00F80180810E94FA00F8829D2D2F 182 | :100B500080E02E2D30E0282B392BC901DF91CF9179 183 | :100B60001F910F91FF90EF90DF900895CF93DF9347 184 | :100B700084E290E00E94110C0E94600400D000D03A 185 | :100B8000C4E0D4E0EDB7FEB7D283C18394838383FE 186 | :100B90000E94D90B0F900F900F900F900E94D204DB 187 | :100BA00000D000D0EDB7FEB7D283C1839483838396 188 | :100BB0000E94D90B0F900F900F900F900E94440548 189 | :100BC00000D000D0EDB7FEB7D283C1839483838376 190 | :100BD0000E94D90B0F900F900F900F900E94E70288 191 | :100BE00000D000D0EDB7FEB7D283C1839483838356 192 | :100BF0000E94D90B0F900F900F900F900E945103FD 193 | :100C000000D000D0EDB7FEB7D283C1839483838335 194 | :100C10000E94D90B0F900F900F900F900E94BB0372 195 | :100C200000D000D0EDB7FEB7D283C1839483838315 196 | :100C30000E94D90B0F900F900F900F900E944802C6 197 | :100C400000D000D0EDB7FEB7D283C1838091660596 198 | :100C500090916705948383830E94D90BEDB7FEB70B 199 | :100C6000D283C183809164059091650594838383C9 200 | :100C70000E94D90B88E094E0EDB7FEB792838183A0 201 | :100C80008091620590916305948383830E94D90BC0 202 | :100C90000F900F908BE094E0EDB7FEB792838183C5 203 | :100CA0000E94D90B0F900F908EE591E00E941A01DF 204 | :100CB000DF91CF9108950E94600400D000D022ED12 205 | :100CC00033E0EDB7FEB732832183948383830E94A0 206 | :100CD000D90B0F900F900F900F900E94D20400D06C 207 | :100CE00000D02AED33E0EDB7FEB732832183948341 208 | :100CF00083830E94D90B0F900F900F900F900E944A 209 | :100D0000440500D000D02FE034E0EDB7FEB73283C9 210 | :100D10002183948383830E94D90B0F900F900F90AF 211 | :100D20000F9084E190E00E941A010895492F552701 212 | :100D300047FD5A954093C5008093C40022E020935C 213 | :100D4000C00028E12093C10026E02093C2002FE4D8 214 | :100D500035E030936B0520936A0508958091C000BB 215 | :100D600087FFFCCF8091C6000895F999FECF92BD10 216 | :100D700081BD60BDFA9AF99A0895F999FECF92BDA6 217 | :100D800081BDF89A80B508951F9381E090E00E949C 218 | :100D9000BD06803309F46AC00E94AE06182F609128 219 | :100DA0006A0570916B058AE090E00E94AD0B60913E 220 | :100DB0006A0570916B058DE090E00E94AD0B1133D8 221 | :100DC00041F402C00E945B068091C00087FFFACF09 222 | :100DD0000DC0123371F406C00E94B4028EE591E09A 223 | :100DE0000E941A018091C00087FFF6CF0E943A0747 224 | :100DF0001DC0133319F009C00E9425048091C00062 225 | :100E000087FFFACF0E943A0716C0143319F009C0C1 226 | :100E10000E94B6058091C00087FFFACF0E943A0772 227 | :100E20001FC0153319F40E94CD0817C0103119F4F2 228 | :100E30000E94A007B1CF1A3141F481E090E060E355 229 | :100E40000E94B5060E941F0AA7CF1F3349F40E94D3 230 | :100E5000B6018091C00087FFFCCF0E943A079CCF6B 231 | :100E60001F3F09F099CF0E94C40696CF0E941F0A27 232 | :100E70001F9108950E94E7000E9436010E9402021D 233 | :100E800000D088E690E0EDB7FEB7928381830E94A0 234 | :100E9000EE0B8EE990E0EDB7FEB7928381830E945E 235 | :100EA000EE0B8DEB90E0EDB7FEB7928381830E944D 236 | :100EB000EE0B89ED90E0EDB7FEB7928381830E943F 237 | :100EC000EE0B83EF90E0EDB7FEB7928381830E9433 238 | :100ED000EE0B83E091E0EDB7FEB7928381830E9431 239 | :100EE000EE0B00D000D088E194E0EDB7FEB792831E 240 | :100EF000818380915E0590915F05A0916005B0911E 241 | :100F0000610583839483A583B6830E94D90B0F90D8 242 | :100F10000F900F900F9089E191E0EDB7FEB79283AB 243 | :100F200081830E94EE0B82E391E0EDB7FEB79283DE 244 | :100F300081830E94EE0B0F900F900E94C4060895CB 245 | :100F4000EF92FF920F931F93109267051092660520 246 | :100F50001092650510926405109263051092620567 247 | :100F60000E9402020E94F1000E94FA008DE30E949A 248 | :100F700028010E94FA008FEF0E9406010E94FA00E9 249 | :100F80001091BB000E94FA008FEF0E9406010E94A0 250 | :100F9000FA000091BB000E94FA00312F20E0802F60 251 | :100FA00090E0822B932B90936705809366058FEFDB 252 | :100FB0000E9406010E94FA001091BB000E94FA00F4 253 | :100FC0008FEF0E9406010E94FA000091BB000E9470 254 | :100FD000FA00312F20E0802F90E0822B932B90930A 255 | :100FE0006305809362058FEF0E9406010E94FA005C 256 | :100FF0001091BB000E94FA008FEF0E9406010E9430 257 | :10100000FA000091BB000E94FA00312F20E0802FEF 258 | :1010100090E0822B932B90936505809364058DE37C 259 | :101020000E9428010E94FA0084E98093BC0080910C 260 | :1010300066059091670520916405309165058217DA 261 | :10104000930739F420916205309163058217930765 262 | :1010500011F010E001C01FEF0E94F1000E94FA00A1 263 | :1010600086EA0E9428010E94FA0080E00E9428017E 264 | :101070000E94FA0004E90093BC000E94F1000E9463 265 | :10108000FA0087EA0E9428010E94FA008FEF0E946E 266 | :1010900006010E94FA00F090BB000E94FA0080E076 267 | :1010A0000E9406010E94FA008091BB000E94FA0093 268 | :1010B0000093BC008091BC008B7F8093BC0080912A 269 | :1010C000BC0084608093BC000E94F1000E94FA0082 270 | :1010D00080ED0E9428010E94FA0080E00E94280111 271 | :1010E0000E94FA000E94F10081ED0E9428010E94F6 272 | :1010F000FA0080E00E9406010E94FA00E090BB0026 273 | :101100000E94FA000093BC008091BC008B7F80930A 274 | :10111000BC008091BC0084608093BC008E2D893619 275 | :10112000A1F5112391F58F2D853E79F52D9A88EE45 276 | :1011300093E00E941A012D9888EE93E00E941A0114 277 | :101140002D9A88EE93E00E941A012D9888EE93E084 278 | :101150000E941A012D9A88EE93E00E941A012D98A0 279 | :1011600088EE93E00E941A012D9A88EE93E00E9487 280 | :101170001A012D9888EE93E00E941A012D9A88EEAC 281 | :1011800093E00E941A012D9801C02D9A0E943A07FF 282 | :101190001F910F91FF90EF9008951F9300D081E26F 283 | :1011A00094E0EDB7FEB7928381830E94D90B8BE365 284 | :1011B00094E0EDB7FEB7928381830E94D90B86E459 285 | :1011C00094E0EDB7FEB7928381830E94D90B81E54D 286 | :1011D00094E0EDB7FEB7928381830E94D90B8DE531 287 | :1011E00094E0EDB7FEB7928381830E94D90B89E624 288 | :1011F00094E0EDB7FEB7928381830E94D90B0F90E4 289 | :101200000F900E94AE06182F60916A0570916B05D1 290 | :101210008AE090E00E94AD0B60916A0570916B05C9 291 | :101220008DE090E00E94AD0B113391F582E090E0EB 292 | :1012300063E60E94B50684E090E060E00E94B50697 293 | :1012400085E090E060E00E94B50686E090E060E016 294 | :101250000E94B50687E090E060E00E94B50683E05A 295 | :1012600090E064E00E94B50600D085E794E0EDB719 296 | :10127000FEB7928381830E94D90B0F900F9082E377 297 | :1012800090E00E941A018FEC90E00E949606FFCF3A 298 | :10129000123391F582E090E063E60E94B50683E0A8 299 | :1012A00090E060E00E94B50685E090E060E00E947A 300 | :1012B000B50686E090E060E00E94B50687E090E029 301 | :1012C00060E00E94B50684E090E069E00E94B50607 302 | :1012D00000D080EA94E0EDB7FEB7928381830E944C 303 | :1012E000D90B0F900F9082E390E00E941A0187E6DD 304 | :1012F00090E00E949606FFCF133391F582E090E0D4 305 | :1013000063E60E94B50683E090E060E00E94B506C7 306 | :1013100084E090E060E00E94B50686E090E060E046 307 | :101320000E94B50687E090E060E00E94B50685E087 308 | :1013300090E063E10E94B50600D08BEC94E0EDB73D 309 | :10134000FEB7928381830E94D90B0F900F9082E3A6 310 | :1013500090E00E941A0183E390E00E949606FFCF7E 311 | :10136000143391F582E090E063E60E94B50683E0D5 312 | :1013700090E060E00E94B50684E090E060E00E94AA 313 | :10138000B50685E090E060E00E94B50687E090E059 314 | :1013900060E00E94B50686E090E066E20E94B50635 315 | :1013A00000D087EF94E0EDB7FEB7928381830E946F 316 | :1013B000D90B0F900F9082E390E00E941A0189E10F 317 | :1013C00090E00E949606FFCF153391F582E090E001 318 | :1013D00063E60E94B50683E090E060E00E94B506F7 319 | :1013E00084E090E060E00E94B50685E090E060E077 320 | :1013F0000E94B50686E090E060E00E94B50687E0B6 321 | :1014000090E069E30E94B50600D083E295E0EDB775 322 | :10141000FEB7928381830E94D90B0F900F9082E3D5 323 | :1014200090E00E941A0180E190E00E949606FFCFB2 324 | :101430001153153008F4E5CE0E943A07E2CEAF9280 325 | :10144000BF92CF92DF92EF92FF920F931F93CF93B1 326 | :10145000DF9300E010E0C4E0D4E0A4E1EA2EF12C38 327 | :10146000F8E0CF2EF4E0DF2EEBE0AE2EE4E0BE2E6F 328 | :10147000A5C084E290E00E94110C0E94600400D09C 329 | :1014800000D0EDB7FEB7D283C183948383830E94DB 330 | :10149000D90B0F900F900F900F900E94D20400D0A4 331 | :1014A00000D0EDB7FEB7D283C183948383830E94BB 332 | :1014B000D90B0F900F900F900F900E94440500D011 333 | :1014C00000D0EDB7FEB7D283C183948383830E949B 334 | :1014D000D90B0F900F900F900F900E94E70200D051 335 | :1014E00000D0EDB7FEB7D283C183948383830E947B 336 | :1014F000D90B0F900F900F900F900E94510300D0C6 337 | :1015000000D0EDB7FEB7D283C183948383830E945A 338 | :10151000D90B0F900F900F900F900E94BB0300D03B 339 | :1015200000D0EDB7FEB7D283C183948383830E943A 340 | :10153000D90BC801B7010E94990B0F5F1F4F0F9085 341 | :101540000F900F900F90009711F40E94480200D066 342 | :1015500000D0EDB7FEB7D283C1838091660590912C 343 | :101560006705948383830E94D90BEDB7FEB7D283BE 344 | :10157000C1838091640590916505948383830E9463 345 | :10158000D90BEDB7FEB7D282C182809162059091EE 346 | :101590006305948383830E94D90B0F900F90EDB75E 347 | :1015A000FEB7B282A1820E94D90B0F900F9084E106 348 | :1015B00090E00E941A0102C000E010E08091C0009B 349 | :1015C00087FF57CF0E94AE068A31B1F781E090E0E5 350 | :1015D00060E00E94B5060E943A07EECF82E090E0FC 351 | :1015E0000E94BD06833609F06FC083E090E00E9440 352 | :1015F000BD06843081F480EC92E1A0E0B0E08093FD 353 | :101600005E0590935F05A0936005B09361058FEC34 354 | :1016100090E00E94960684E090E00E94BD0689302A 355 | :1016200081F480E895E2A0E0B0E080935E059093BD 356 | :101630005F05A0936005B093610587E690E00E9486 357 | :10164000960685E090E00E94BD06833181F480E03B 358 | :101650009BE4A0E0B0E080935E0590935F05A093CB 359 | :101660006005B093610583E390E00E94960686E0F2 360 | :1016700090E00E94BD06863281F480E096E9A0E009 361 | :10168000B0E080935E0590935F05A0936005B093F2 362 | :10169000610589E190E00E94960687E090E00E9453 363 | :1016A000BD06893309F580E091EEA0E0B0E08093BB 364 | :1016B0005E0590935F05A0936005B093610580E19E 365 | :1016C00090E00E949606089580E190E00E949606C0 366 | :1016D00080E091EEA0E0B0E080935E0590935F051E 367 | :1016E000A0936005B0936105089580E684B980E118 368 | :1016F00087B982E08AB980E388B92D980E94E70013 369 | :101700000E9436010E9402020E9468010E94EE0AB5 370 | :1017100008950E94750B0E94A00781E090E00E944E 371 | :10172000BD06803319F40E94C406F7CF0E943A0721 372 | :10173000F4CFAA1BBB1B51E107C0AA1FBB1FA617F2 373 | :10174000B70710F0A61BB70B881F991F5A95A9F76A 374 | :1017500080959095BC01CD0108950F931F93CF9371 375 | :10176000DF938C01EB018B8181FF1BC082FF0DC0D9 376 | :101770002E813F818C819D812817390764F4E8818F 377 | :10178000F9810193F983E88306C0E885F985802F04 378 | :101790000995009731F48E819F8101969F838E83F6 379 | :1017A00002C00FEF1FEFC801DF91CF911F910F9182 380 | :1017B0000895A0E0B0E0EFEDFBE00C94830EFE0195 381 | :1017C00035966191719180916A0590916B05AF0199 382 | :1017D0000E94180C2096E2E00C949F0EA0E0B0E06E 383 | :1017E000E4EFFBE00C94830EFE013596619171915C 384 | :1017F00080916A0590916B05DC0113962C911397EB 385 | :10180000286013962C93AF010E94180CE0916A0592 386 | :10181000F0916B052381277F23832096E2E00C94CF 387 | :101820009F0E60916A0570916B050E94AD0B089543 388 | :10183000ACE0B0E0EEE1FCE00C94730E6C011B0137 389 | :101840008A01FC0117821682838181FFD1C12E019A 390 | :101850000894411C511CF6019381F10193FD85917F 391 | :1018600093FF81911F01882309F4BEC1853239F4A9 392 | :1018700093FD859193FF81911F01853229F490E0BA 393 | :10188000B6010E94AD0BE7CFEE24FF2420E020320A 394 | :10189000B0F48B3269F08C3228F4803251F083320C 395 | :1018A00071F40BC08D3239F0803349F421602CC0C3 396 | :1018B0002260246029C0286027C0206125C027FD40 397 | :1018C0002CC0382F30533A3098F426FF08C08E2DA4 398 | :1018D000880FE82EEE0CEE0CE80EE30E15C08F2DEF 399 | :1018E000880FF82EFF0CFF0CF80EF30E20620CC0D0 400 | :1018F0008E3221F426FD78C1206406C08C3611F4A6 401 | :10190000206802C0883649F4F10193FD859193FF68 402 | :1019100081911F01882309F0BACF982F95549330F5 403 | :1019200018F09052933028F40C5F1F4FFFE3F983B7 404 | :101930000DC0833631F0833771F0833509F060C014 405 | :1019400022C0F801808189830E5F1F4F420171E040 406 | :10195000A72EB12C16C062E0662E712C600E711E8F 407 | :10196000F8018080918026FF03C06E2D70E002C0D8 408 | :101970006FEF7FEFC4012C870E940A0E5C01830188 409 | :101980002C852F7717C052E0652E712C600E711ECA 410 | :10199000F8018080918026FF03C06E2D70E002C0A8 411 | :1019A0006FEF7FEFC4012C870E94FF0D5C012C8537 412 | :1019B0002068830123FD20C008C080E290E0B601CA 413 | :1019C0002C870E94AD0BFA942C858F2D90E0A816E1 414 | :1019D000B90698F311C0F40127FD859127FF819185 415 | :1019E0004F0190E0B6012C870E94AD0B2C85F110C1 416 | :1019F000FA940894A108B108A114B10461F7F1C0E8 417 | :101A0000843611F0893649F527FF08C0F801608156 418 | :101A10007181828193810C5F1F4F09C0F801608141 419 | :101A20007181882777FD8095982F0E5F1F4F4FE6B5 420 | :101A3000B42EB22297FF09C090958095709561955C 421 | :101A40007F4F8F4F9F4FF0E8BF2AA2012AE030E07E 422 | :101A50000E94150E782E741845C0853731F43FEE7C 423 | :101A6000B32EB2222AE030E025C099EFB92EB2227F 424 | :101A70008F36C1F0803720F4883509F0B5C00DC02D 425 | :101A8000803721F0883709F0AFC002C020E1B22AC8 426 | :101A9000B4FE0BC084E0B82A08C0B4FE09C0E6E07A 427 | :101AA000BE2A06C028E030E005C020E130E002C0D8 428 | :101AB00020E132E0B7FE08C0F801608171818281C7 429 | :101AC00093810C5F1F4F07C0F8016081718180E036 430 | :101AD00090E00E5F1F4FA2010E94150E782E741821 431 | :101AE000FFE7BF22B6FE0BC02EEFB2227E1438F401 432 | :101AF000B4FE07C0B2FC05C08FEEB82202C0A72C0E 433 | :101B000001C0AE2C8B2D90E0B4FE0DC0FE01E70DA0 434 | :101B1000F11D2081203319F4E9EEBE2209C0A394FF 435 | :101B2000B2FE06C004C086789070009709F0A394B6 436 | :101B30008B2C9924B3FC14C0B0FE0FC0AF1428F452 437 | :101B4000E72CEF0CEA18AF2C08C0E72C06C080E2A7 438 | :101B500090E0B6010E94AD0BA394AF14C0F304C093 439 | :101B6000AF1410F4FA1801C0FF2484FE0FC080E304 440 | :101B700090E0B6010E94AD0B82FE1FC081FE03C043 441 | :101B800088E590E010C088E790E00DC0C401867839 442 | :101B90009070009791F081FC02C080E201C08BE25E 443 | :101BA000B7FC8DE290E0B6010E94AD0B06C080E369 444 | :101BB00090E0B6010E94AD0BEA947E14C0F37A94D3 445 | :101BC000F201E70DF11D808190E0B6010E94AD0B9E 446 | :101BD0007720A9F706C080E290E0B6010E94AD0B25 447 | :101BE000FA94FF20C1F737CEF6012681378102C073 448 | :101BF0002FEF3FEFC9012C96E2E10C948F0EFC0110 449 | :101C00000590615070400110D8F7809590958E0F27 450 | :101C10009F1F0895FC016150704001900110D8F79A 451 | :101C2000809590958E0F9F1F0895FA01AA2728305E 452 | :101C300051F1203181F1E8946F936E7F6E5F7F4F99 453 | :101C40008F4F9F4FAF4FB1E03ED0B4E03CD0670F15 454 | :101C5000781F891F9A1FA11D680F791F8A1F911D68 455 | :101C6000A11D6A0F711D811D911DA11D20D009F4B8 456 | :101C700068943F912AE0269F11243019305D3193FA 457 | :101C8000DEF6CF010895462F4770405D4193B3E0E3 458 | :101C90000FD0C9F7F6CF462F4F70405D4A3318F08A 459 | :101CA000495D31FD4052419302D0A9F7EACFB4E03B 460 | :101CB000A6959795879577956795BA95C9F70097F3 461 | :101CC0006105710508959B01AC010A2E0694579594 462 | :101CD000479537952795BA95C9F7620F731F841FEB 463 | :101CE000951FA01D08952F923F924F925F926F9281 464 | :101CF0007F928F929F92AF92BF92CF92DF92EF929C 465 | :101D0000FF920F931F93CF93DF93CDB7DEB7CA1B1C 466 | :101D1000DB0B0FB6F894DEBF0FBECDBF09942A8847 467 | :101D2000398848885F846E847D848C849B84AA84EF 468 | :101D3000B984C884DF80EE80FD800C811B81AA817C 469 | :101D4000B981CE0FD11D0FB6F894DEBF0FBECDBF47 470 | :081D5000ED010895F894FFCFA6 471 | :101D580048454C50204D454E550A0D005B315D20DD 472 | :101D680073656E64206173636969203120746F2024 473 | :101D7800676574206F75747075742066726F6D2056 474 | :101D880074686520616363656C65726F6D65746501 475 | :101D98007228782C792C7A292E2048697420616E53 476 | :101DA80079206B657920746F2072657475726E2066 477 | :101DB800746F206D656E752E0A0D005B325D2073A1 478 | :101DC800656E64206173636969203220746F2067CF 479 | :101DD8006574206F75747075742066726F6D2074E9 480 | :101DE8006865206D61676E65746F6D6574657228CE 481 | :101DF800782C792C7A292E2048697420616E7920F4 482 | :101E08006B657920746F2072657475726E20746FBB 483 | :101E1800206D656E752E0A0D005B335D2073656E4F 484 | :101E280064206173636969203320746F2067657467 485 | :101E3800206F75747075742066726F6D2074686594 486 | :101E4800206779726F73636F706528782C792C7AA4 487 | :101E5800292E2048697420616E79206B6579207479 488 | :101E68006F2072657475726E20746F206D656E7563 489 | :101E78002E0A0D005B345D2073656E642061736308 490 | :101E88006969203420746F20676574207468652040 491 | :101E9800726177206F75747075742066726F6D202B 492 | :101EA800616C6C206F66207468652073656E736F53 493 | :101EB80072732E2048697420616E79206B657920D1 494 | :101EC800746F2072657475726E20746F206D656E04 495 | :101ED800752E0A0D002A2A2A2052617720666F7211 496 | :101EE8006D6174202724616363656C782C6163637A 497 | :101EF800656C792C616363656C7A2C6779726F788D 498 | :101F08002C6779726F792C6779726F7A2C6D61679B 499 | :101F1800782C6D6167792C6D61677A230A0D005BF7 500 | :101F2800355D2073656E64206173636969203520AF 501 | :101F3800746F206765742074686520352063686F46 502 | :101F48006963657320666F722062617564207261CF 503 | :101F58007465732E205265736574207465726D699B 504 | :101F68006E616C20616E6420626F617264206166CC 505 | :101F7800746572206368616E67652E2048697420F5 506 | :101F8800616E79206B657920746F20726574757243 507 | :101F98006E20746F206D656E752E0A0D005B63747C 508 | :101FA800726C2D705D206374726C2D702074657373 509 | :101FB80074732074686520616363656C65726F6D06 510 | :101FC8006574657220616E64206D61676E65746FFB 511 | :101FD8006D657465722E0A0D005B6374726C2D7AE0 512 | :101FE8005D206374726C2B7A20617420616E797441 513 | :101FF800696D652077696C6C20746F67676C652004 514 | :102008006265747765656E20726177206F7574708C 515 | :10201800757420616E6420746865206D656E750A3C 516 | :102028000D00783D2534642C2000793D2534642C3E 517 | :1020380020007A3D25640A0D00783D202534642C63 518 | :102048002000793D202534642C20007A3D20253459 519 | :10205800640A0D0025642C00256400230A0D007A0B 520 | :102068003D253464200A0D00256C646270730A0DE6 521 | :10207800000A0D4261756420526174652053656CD5 522 | :10208800656374204D656E750A0D005B315D203403 523 | :102098003830300A0D005B325D20393630300A0D99 524 | :1020A800005B335D2031393230300A0D005B345D1E 525 | :1020B8002033383430300A0D005B355D2035373633 526 | :1020C80030300A0D00216368616E676520626175B2 527 | :1020D80064207261746520746F2034383030627007 528 | :1020E800732C20726573657420626F6172642100BD 529 | :1020F800216368616E67652062617564207261742E 530 | :102108006520746F20393630306270732C20726508 531 | :1021180073657420626F6172642100216368616E67 532 | :1021280067652062617564207261746520746F2030 533 | :1021380031393230306270732C20726573657420C7 534 | :10214800626F6172642100216368616E6765206255 535 | :10215800617564207261746520746F20333834307F 536 | :10216800306270732C20726573657420626F6172BF 537 | :10217800642100216368616E67652062617564206F 538 | :102188007261746520746F20353736303062707331 539 | :102198002C20726573657420626F6172642100007F 540 | :0E21A80000000200000000BD0000000000006A 541 | :00000001FF 542 | -------------------------------------------------------------------------------- /types.h: -------------------------------------------------------------------------------- 1 | //useful things to include in code 2 | 3 | #ifndef TYPES_H 4 | #define TYPES_H 5 | 6 | #ifndef WIN32 7 | // true/false defines 8 | #define FALSE 0 9 | #define TRUE -1 10 | #endif 11 | 12 | // datatype definitions macros 13 | typedef unsigned char u08; 14 | typedef signed char s08; 15 | typedef unsigned short u16; 16 | typedef signed short s16; 17 | typedef unsigned long u32; 18 | typedef signed long s32; 19 | typedef unsigned long long u64; 20 | typedef signed long long s64; 21 | 22 | /* use inttypes.h instead 23 | // C99 standard integer type definitions 24 | typedef unsigned char uint8_t; 25 | typedef signed char int8_t; 26 | typedef unsigned short uint16_t; 27 | typedef signed short int16_t; 28 | typedef unsigned long uint32_t; 29 | typedef signed long int32_t; 30 | typedef unsigned long uint64_t; 31 | typedef signed long int64_t; 32 | */ 33 | // maximum value that can be held 34 | // by unsigned data types (8,16,32bits) 35 | #define MAX_U08 255 36 | #define MAX_U16 65535 37 | #define MAX_U32 4294967295 38 | 39 | // maximum values that can be held 40 | // by signed data types (8,16,32bits) 41 | #define MIN_S08 -128 42 | #define MAX_S08 127 43 | #define MIN_S16 -32768 44 | #define MAX_S16 32767 45 | #define MIN_S32 -2147483648 46 | #define MAX_S32 2147483647 47 | 48 | #ifndef WIN32 49 | // more type redefinitions 50 | typedef unsigned char BOOL; 51 | typedef unsigned char BYTE; 52 | typedef unsigned int WORD; 53 | typedef unsigned long DWORD; 54 | 55 | typedef unsigned char UCHAR; 56 | typedef unsigned int UINT; 57 | typedef unsigned short USHORT; 58 | typedef unsigned long ULONG; 59 | 60 | typedef char CHAR; 61 | typedef int INT; 62 | typedef long LONG; 63 | #endif 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /~OLD.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitsmashed/SparkFun-9DOF-Razor-IMU-Test-Firmware/bdc372c3c3de3e786f95b0987d32bda7d778d2bf/~OLD.zip --------------------------------------------------------------------------------