Skip to content

Instantly share code, notes, and snippets.

@vinayak-mehta
Created October 12, 2018 09:13
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vinayak-mehta/cf30a5560f1b8ab4c0b25e34e5c6121b to your computer and use it in GitHub Desktop.
Save vinayak-mehta/cf30a5560f1b8ab4c0b25e34e5c6121b to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The PDFs in this example were taken from the HN discussion here: https://news.ycombinator.com/item?id=18199708\n",
"- page-33 is from http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8351-MCU_Wireless-AT86RF233_Datasheet.pdf\n",
"- page-45 is from https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/bst-bmi160-ds000-07.pdf"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import camelot"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"tables = camelot.read_pdf('page-33.pdf', flavor='stream', table_area=['166,700,568,575'])"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<TableList n=1>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tables"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td></td>\n",
" <td>Figure 6-23. Register IRQ_MASK.</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Bit</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td></td>\n",
" <td>5</td>\n",
" <td>4</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0x0E</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>IRQ_MASK</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>IRQ_MASK</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Read/Write</td>\n",
" <td>R/W</td>\n",
" <td>R/W</td>\n",
" <td></td>\n",
" <td>R/W</td>\n",
" <td>R/W</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Reset value</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Bit</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td></td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0x0E</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>IRQ_MASK</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>IRQ_MASK</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Read/Write</td>\n",
" <td>R/W</td>\n",
" <td>R/W</td>\n",
" <td></td>\n",
" <td>R/W</td>\n",
" <td>R/W</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Reset value</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td></td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td></td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4 5 \\\n",
"0 Figure 6-23. Register IRQ_MASK. \n",
"1 Bit 7 6 5 4 \n",
"2 0x0E IRQ_MASK \n",
"3 Read/Write R/W R/W R/W R/W \n",
"4 Reset value 0 0 0 0 \n",
"5 Bit 3 2 1 0 \n",
"6 0x0E IRQ_MASK \n",
"7 Read/Write R/W R/W R/W R/W \n",
"8 Reset value 0 0 0 0 \n",
"\n",
" 6 \n",
"0 \n",
"1 \n",
"2 IRQ_MASK \n",
"3 \n",
"4 \n",
"5 \n",
"6 IRQ_MASK \n",
"7 \n",
"8 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tables[0].df"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"tables = camelot.read_pdf('page-45.pdf', line_size_scaling=60)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<TableList n=2>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tables"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>10</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Register Address</td>\n",
" <td>Register Name</td>\n",
" <td>Default Value</td>\n",
" <td>bit7</td>\n",
" <td>bit6</td>\n",
" <td>bit5</td>\n",
" <td>bit4</td>\n",
" <td>bit3</td>\n",
" <td>bit2</td>\n",
" <td>bit1</td>\n",
" <td>bit0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0x7E</td>\n",
" <td>CMD</td>\n",
" <td>0x00</td>\n",
" <td>cmd</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0x7D</td>\n",
" <td>-</td>\n",
" <td>-</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0x7C</td>\n",
" <td>-</td>\n",
" <td>-</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0x7B</td>\n",
" <td>STEP_CONF_1</td>\n",
" <td>0x03</td>\n",
" <td>reserved step_cnt_en</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>min_step_buf</td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0x7A</td>\n",
" <td>STEP_CONF_0</td>\n",
" <td>0x15</td>\n",
" <td>alpha min_threshold</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>steptime_min</td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0x79</td>\n",
" <td>STEP_CNT_1</td>\n",
" <td>0x00</td>\n",
" <td>step_cnt_15_8</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0x78</td>\n",
" <td>STEP_CNT_0</td>\n",
" <td>0x00</td>\n",
" <td>step_cnt_7_0</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0x77</td>\n",
" <td>OFFSET_6</td>\n",
" <td>0x00</td>\n",
" <td>gyr_off_en acc_off_en off_gyr_z_9_8 off_gyr_y_...</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0x76</td>\n",
" <td>OFFSET_5</td>\n",
" <td>0x00</td>\n",
" <td>off_gyr_z_7_0</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0x75</td>\n",
" <td>OFFSET_4</td>\n",
" <td>0x00</td>\n",
" <td>off_gyr_y_7_0</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0x74</td>\n",
" <td>OFFSET_3</td>\n",
" <td>0x00</td>\n",
" <td>off_gyr_x_7_0</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0x73</td>\n",
" <td>OFFSET_2</td>\n",
" <td>0x00</td>\n",
" <td>off_acc_z</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>0x72</td>\n",
" <td>OFFSET_1</td>\n",
" <td>0x00</td>\n",
" <td>off_acc_y</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>0x71</td>\n",
" <td>OFFSET_0</td>\n",
" <td>0x00</td>\n",
" <td>off_acc_x</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>0x70</td>\n",
" <td>NV_CONF</td>\n",
" <td>0x00</td>\n",
" <td>reserved u_spare_0 i2c_wdt_en i2c_wdt_sel spi_en</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>0x6F</td>\n",
" <td>-</td>\n",
" <td>-</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>0x6E</td>\n",
" <td>-</td>\n",
" <td>-</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>0x6D</td>\n",
" <td>SELF_TEST</td>\n",
" <td>0x00</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>gyr_self_test_ enable</td>\n",
" <td>acc_self_test_ amp</td>\n",
" <td>acc_self_test_ sign</td>\n",
" <td>acc_self_test_enable</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>0x6C</td>\n",
" <td>PMU_TRIGGER</td>\n",
" <td>0x00</td>\n",
" <td>reserved wakeup_int</td>\n",
" <td></td>\n",
" <td>gyr_sleep_state</td>\n",
" <td>gyr_wakeup_trigger</td>\n",
" <td></td>\n",
" <td>gyr_sleep_trigger</td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>0x6B</td>\n",
" <td>IF_CONF</td>\n",
" <td>0x00</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td>if_mode reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>spi3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>0x6A</td>\n",
" <td>CONF</td>\n",
" <td>0x00</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>nvm_prog_en</td>\n",
" <td>reserved</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>0x69</td>\n",
" <td>FOC_CONF</td>\n",
" <td>0x00</td>\n",
" <td>reserved foc_gyr_en</td>\n",
" <td></td>\n",
" <td>foc_acc_x</td>\n",
" <td></td>\n",
" <td>foc_acc_y</td>\n",
" <td></td>\n",
" <td>foc_acc_z</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>0x68</td>\n",
" <td>INT_FLAT_1</td>\n",
" <td>0x11</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td>int_flat_hold</td>\n",
" <td></td>\n",
" <td>int_flat_hy</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>0x67</td>\n",
" <td>INT_FLAT_0</td>\n",
" <td>0x08</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td>int_flat_theta</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>0x66</td>\n",
" <td>INT_ORIENT_1</td>\n",
" <td>0x48</td>\n",
" <td>int_orient_axes_ex</td>\n",
" <td>int_orient_ud_ en</td>\n",
" <td>int_orient_theta</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>0x65</td>\n",
" <td>INT_ORIENT_0</td>\n",
" <td>0x18</td>\n",
" <td>int_orient_hy int_orient_blocking int_orient_mode</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>0x64</td>\n",
" <td>INT_TAP_1</td>\n",
" <td>0x0A</td>\n",
" <td>reserved int_tap_th</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>0x63</td>\n",
" <td>INT_TAP_0</td>\n",
" <td>0x04</td>\n",
" <td>int_tap_quiet int_tap_shock</td>\n",
" <td></td>\n",
" <td>reserved int_tap_dur</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>0x62</td>\n",
" <td>INT_MOTION_3</td>\n",
" <td>0x24</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td>int_sig_mot_proof</td>\n",
" <td></td>\n",
" <td>int_sig_mot_skip</td>\n",
" <td></td>\n",
" <td>int_sig_mot_ sel</td>\n",
" <td>int_slo_nomo_ sel</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>0x60</td>\n",
" <td>INT_MOTION_1</td>\n",
" <td>0x14</td>\n",
" <td>int_anymo_th</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>0x5F</td>\n",
" <td>INT_MOTION_0</td>\n",
" <td>0x00</td>\n",
" <td>int_slo_nomo_dur int_anym_dur</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>0x5E</td>\n",
" <td>INT_LOWHIGH_4</td>\n",
" <td>0xC0</td>\n",
" <td>int_high_th</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>0x5D</td>\n",
" <td>INT_LOWHIGH_3</td>\n",
" <td>0x0B</td>\n",
" <td>int_high_dur</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>0x5C</td>\n",
" <td>INT_LOWHIGH_2</td>\n",
" <td>0x81</td>\n",
" <td>int_high_hy reserved int_low_mode int_low_hy</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>0x5B</td>\n",
" <td>INT_LOWHIGH_1</td>\n",
" <td>0x30</td>\n",
" <td>int_low_th</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>0x5A</td>\n",
" <td>INT_LOWHIGH_0</td>\n",
" <td>0x07</td>\n",
" <td>int_low_dur</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>0x59</td>\n",
" <td>INT_DATA_1</td>\n",
" <td>0x00</td>\n",
" <td>int_motion_src</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>0x58</td>\n",
" <td>INT_DATA_0</td>\n",
" <td>0x00</td>\n",
" <td>int_low_high_src</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>int_tap_src</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>0x57</td>\n",
" <td>INT_MAP_2</td>\n",
" <td>0x00</td>\n",
" <td>int2_flat</td>\n",
" <td>int2_orient</td>\n",
" <td>int2_s_tap</td>\n",
" <td>int2_d_tap</td>\n",
" <td>int2_nomotion</td>\n",
" <td>int2_anymotion</td>\n",
" <td>int2_highg</td>\n",
" <td>int2_lowg_step</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>0x56</td>\n",
" <td>INT_MAP_1</td>\n",
" <td>0x00</td>\n",
" <td>int1_drdy</td>\n",
" <td>int1_fwm</td>\n",
" <td>int1_ffull</td>\n",
" <td>int1_pmu_trig</td>\n",
" <td>int2_drdy</td>\n",
" <td>int2_fwm</td>\n",
" <td>int2_ffull</td>\n",
" <td>int2_pmu_trig</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>0x55</td>\n",
" <td>INT_MAP_0</td>\n",
" <td>0x00</td>\n",
" <td>int1_flat</td>\n",
" <td>int1_orient</td>\n",
" <td>int1_s_tap</td>\n",
" <td>int1_d_tap</td>\n",
" <td>int1_nomotion</td>\n",
" <td>int1_anymotion</td>\n",
" <td>int1_highg</td>\n",
" <td>int1_lowg_step</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>0x54</td>\n",
" <td>INT_LATCH</td>\n",
" <td>0x00</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td>int2_input_en</td>\n",
" <td>int1_input_en</td>\n",
" <td>int_latch</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>0x53</td>\n",
" <td>INT_OUT_CTRL</td>\n",
" <td>0x00</td>\n",
" <td>int2_output_en int2_od</td>\n",
" <td></td>\n",
" <td>int2_lvl</td>\n",
" <td>int2_edge_ctrl</td>\n",
" <td>int1_output_en</td>\n",
" <td>int1_od</td>\n",
" <td>int1_lvl</td>\n",
" <td>int1_edge_ctrl</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>0x52</td>\n",
" <td>INT_EN_2</td>\n",
" <td>0x00</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>int_step_det_en</td>\n",
" <td>int_nomoz_en</td>\n",
" <td>int_nomoy_en</td>\n",
" <td>int_nomox_en</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>0x51</td>\n",
" <td>INT_EN_1</td>\n",
" <td>0x00</td>\n",
" <td>reserved</td>\n",
" <td>int_fwm_en</td>\n",
" <td>int_ffull_en</td>\n",
" <td>int_drdy_en</td>\n",
" <td>int_low_en</td>\n",
" <td></td>\n",
" <td>int_highg_z_en int_highg_y_en int_highg_x_en</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>0x50</td>\n",
" <td>INT_EN_0</td>\n",
" <td>0x00</td>\n",
" <td>int_flat_en</td>\n",
" <td>int_orient_en</td>\n",
" <td>int_s_tap_en</td>\n",
" <td>int_d_tap_en</td>\n",
" <td>reserved</td>\n",
" <td>int_anymo_z_ en</td>\n",
" <td>int_anymo_y_ en</td>\n",
" <td>int_anymo_x_ en</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>0x4F</td>\n",
" <td>MAG_IF_4</td>\n",
" <td>0x00</td>\n",
" <td>write_data</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>0x4E</td>\n",
" <td>MAG_IF_3</td>\n",
" <td>0x4C</td>\n",
" <td>write_addr</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>0x4D</td>\n",
" <td>MAG_IF_2</td>\n",
" <td>0x42</td>\n",
" <td>read_addr</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>0x4C</td>\n",
" <td>MAG_IF_1</td>\n",
" <td>0x80</td>\n",
" <td>mag_manual_ en</td>\n",
" <td>reserved</td>\n",
" <td>mag_offset</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>mag_rd_burst</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>0x4B</td>\n",
" <td>MAG_IF_0</td>\n",
" <td>0x20</td>\n",
" <td>i2c_device_addr reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>0x4A</td>\n",
" <td>-</td>\n",
" <td>-</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>0x48</td>\n",
" <td>-</td>\n",
" <td>-</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>55</th>\n",
" <td>0x47</td>\n",
" <td>FIFO_CONFIG_1</td>\n",
" <td>0x10</td>\n",
" <td>fifo_gyr_en fifo_acc_en fifo_mag_en fifo_heade...</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>0x46</td>\n",
" <td>FIFO_CONFIG_0</td>\n",
" <td>0x80</td>\n",
" <td>fifo_water_mark</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>0x45</td>\n",
" <td>FIFO_DOWNS</td>\n",
" <td>0x88</td>\n",
" <td>acc_fifo_filt_ data</td>\n",
" <td>acc_fifo_downs</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>gyr_fifo_filt_ data</td>\n",
" <td>gyr_fifo_downs</td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>58</th>\n",
" <td>0x44</td>\n",
" <td>MAG_CONF</td>\n",
" <td>0x0B</td>\n",
" <td>reserved</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td>mag_odr</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>59</th>\n",
" <td>0x43</td>\n",
" <td>GYR_RANGE</td>\n",
" <td>0x00</td>\n",
" <td>reserved gyr_range</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>0x42</td>\n",
" <td>GYR_CONF</td>\n",
" <td>0x28</td>\n",
" <td>reserved gyr_bwp gyr_odr</td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>61 rows × 11 columns</p>\n",
"</div>"
],
"text/plain": [
" 0 1 2 \\\n",
"0 Register Address Register Name Default Value \n",
"1 0x7E CMD 0x00 \n",
"2 0x7D - - \n",
"3 0x7C - - \n",
"4 0x7B STEP_CONF_1 0x03 \n",
"5 0x7A STEP_CONF_0 0x15 \n",
"6 0x79 STEP_CNT_1 0x00 \n",
"7 0x78 STEP_CNT_0 0x00 \n",
"8 0x77 OFFSET_6 0x00 \n",
"9 0x76 OFFSET_5 0x00 \n",
"10 0x75 OFFSET_4 0x00 \n",
"11 0x74 OFFSET_3 0x00 \n",
"12 0x73 OFFSET_2 0x00 \n",
"13 0x72 OFFSET_1 0x00 \n",
"14 0x71 OFFSET_0 0x00 \n",
"15 0x70 NV_CONF 0x00 \n",
"16 0x6F - - \n",
"17 0x6E - - \n",
"18 0x6D SELF_TEST 0x00 \n",
"19 0x6C PMU_TRIGGER 0x00 \n",
"20 0x6B IF_CONF 0x00 \n",
"21 0x6A CONF 0x00 \n",
"22 0x69 FOC_CONF 0x00 \n",
"23 0x68 INT_FLAT_1 0x11 \n",
"24 0x67 INT_FLAT_0 0x08 \n",
"25 0x66 INT_ORIENT_1 0x48 \n",
"26 0x65 INT_ORIENT_0 0x18 \n",
"27 0x64 INT_TAP_1 0x0A \n",
"28 0x63 INT_TAP_0 0x04 \n",
"29 0x62 INT_MOTION_3 0x24 \n",
".. ... ... ... \n",
"31 0x60 INT_MOTION_1 0x14 \n",
"32 0x5F INT_MOTION_0 0x00 \n",
"33 0x5E INT_LOWHIGH_4 0xC0 \n",
"34 0x5D INT_LOWHIGH_3 0x0B \n",
"35 0x5C INT_LOWHIGH_2 0x81 \n",
"36 0x5B INT_LOWHIGH_1 0x30 \n",
"37 0x5A INT_LOWHIGH_0 0x07 \n",
"38 0x59 INT_DATA_1 0x00 \n",
"39 0x58 INT_DATA_0 0x00 \n",
"40 0x57 INT_MAP_2 0x00 \n",
"41 0x56 INT_MAP_1 0x00 \n",
"42 0x55 INT_MAP_0 0x00 \n",
"43 0x54 INT_LATCH 0x00 \n",
"44 0x53 INT_OUT_CTRL 0x00 \n",
"45 0x52 INT_EN_2 0x00 \n",
"46 0x51 INT_EN_1 0x00 \n",
"47 0x50 INT_EN_0 0x00 \n",
"48 0x4F MAG_IF_4 0x00 \n",
"49 0x4E MAG_IF_3 0x4C \n",
"50 0x4D MAG_IF_2 0x42 \n",
"51 0x4C MAG_IF_1 0x80 \n",
"52 0x4B MAG_IF_0 0x20 \n",
"53 0x4A - - \n",
"54 0x48 - - \n",
"55 0x47 FIFO_CONFIG_1 0x10 \n",
"56 0x46 FIFO_CONFIG_0 0x80 \n",
"57 0x45 FIFO_DOWNS 0x88 \n",
"58 0x44 MAG_CONF 0x0B \n",
"59 0x43 GYR_RANGE 0x00 \n",
"60 0x42 GYR_CONF 0x28 \n",
"\n",
" 3 4 \\\n",
"0 bit7 bit6 \n",
"1 cmd \n",
"2 reserved \n",
"3 reserved \n",
"4 reserved step_cnt_en \n",
"5 alpha min_threshold \n",
"6 step_cnt_15_8 \n",
"7 step_cnt_7_0 \n",
"8 gyr_off_en acc_off_en off_gyr_z_9_8 off_gyr_y_... \n",
"9 off_gyr_z_7_0 \n",
"10 off_gyr_y_7_0 \n",
"11 off_gyr_x_7_0 \n",
"12 off_acc_z \n",
"13 off_acc_y \n",
"14 off_acc_x \n",
"15 reserved u_spare_0 i2c_wdt_en i2c_wdt_sel spi_en \n",
"16 reserved \n",
"17 reserved \n",
"18 reserved \n",
"19 reserved wakeup_int \n",
"20 reserved \n",
"21 reserved \n",
"22 reserved foc_gyr_en \n",
"23 reserved \n",
"24 reserved \n",
"25 int_orient_axes_ex int_orient_ud_ en \n",
"26 int_orient_hy int_orient_blocking int_orient_mode \n",
"27 reserved int_tap_th \n",
"28 int_tap_quiet int_tap_shock \n",
"29 reserved \n",
".. ... ... \n",
"31 int_anymo_th \n",
"32 int_slo_nomo_dur int_anym_dur \n",
"33 int_high_th \n",
"34 int_high_dur \n",
"35 int_high_hy reserved int_low_mode int_low_hy \n",
"36 int_low_th \n",
"37 int_low_dur \n",
"38 int_motion_src reserved \n",
"39 int_low_high_src reserved \n",
"40 int2_flat int2_orient \n",
"41 int1_drdy int1_fwm \n",
"42 int1_flat int1_orient \n",
"43 reserved \n",
"44 int2_output_en int2_od \n",
"45 reserved \n",
"46 reserved int_fwm_en \n",
"47 int_flat_en int_orient_en \n",
"48 write_data \n",
"49 write_addr \n",
"50 read_addr \n",
"51 mag_manual_ en reserved \n",
"52 i2c_device_addr reserved \n",
"53 reserved \n",
"54 reserved \n",
"55 fifo_gyr_en fifo_acc_en fifo_mag_en fifo_heade... \n",
"56 fifo_water_mark \n",
"57 acc_fifo_filt_ data acc_fifo_downs \n",
"58 reserved \n",
"59 reserved gyr_range \n",
"60 reserved gyr_bwp gyr_odr \n",
"\n",
" 5 6 7 \\\n",
"0 bit5 bit4 bit3 \n",
"1 \n",
"2 \n",
"3 \n",
"4 \n",
"5 \n",
"6 \n",
"7 \n",
"8 \n",
"9 \n",
"10 \n",
"11 \n",
"12 \n",
"13 \n",
"14 \n",
"15 \n",
"16 \n",
"17 \n",
"18 gyr_self_test_ enable acc_self_test_ amp \n",
"19 gyr_sleep_state gyr_wakeup_trigger \n",
"20 if_mode reserved \n",
"21 \n",
"22 foc_acc_x foc_acc_y \n",
"23 int_flat_hold int_flat_hy \n",
"24 int_flat_theta \n",
"25 int_orient_theta \n",
"26 \n",
"27 \n",
"28 reserved int_tap_dur \n",
"29 int_sig_mot_proof int_sig_mot_skip \n",
".. ... ... ... \n",
"31 \n",
"32 \n",
"33 \n",
"34 \n",
"35 \n",
"36 \n",
"37 \n",
"38 \n",
"39 int_tap_src \n",
"40 int2_s_tap int2_d_tap int2_nomotion \n",
"41 int1_ffull int1_pmu_trig int2_drdy \n",
"42 int1_s_tap int1_d_tap int1_nomotion \n",
"43 int2_input_en int1_input_en int_latch \n",
"44 int2_lvl int2_edge_ctrl int1_output_en \n",
"45 int_step_det_en \n",
"46 int_ffull_en int_drdy_en int_low_en \n",
"47 int_s_tap_en int_d_tap_en reserved \n",
"48 \n",
"49 \n",
"50 \n",
"51 mag_offset \n",
"52 \n",
"53 \n",
"54 \n",
"55 \n",
"56 \n",
"57 gyr_fifo_filt_ data \n",
"58 mag_odr \n",
"59 \n",
"60 \n",
"\n",
" 8 9 \\\n",
"0 bit2 bit1 \n",
"1 \n",
"2 \n",
"3 \n",
"4 min_step_buf \n",
"5 steptime_min \n",
"6 \n",
"7 \n",
"8 \n",
"9 \n",
"10 \n",
"11 \n",
"12 \n",
"13 \n",
"14 \n",
"15 \n",
"16 \n",
"17 \n",
"18 acc_self_test_ sign acc_self_test_enable \n",
"19 gyr_sleep_trigger \n",
"20 \n",
"21 nvm_prog_en \n",
"22 foc_acc_z \n",
"23 \n",
"24 \n",
"25 \n",
"26 \n",
"27 \n",
"28 \n",
"29 int_sig_mot_ sel \n",
".. ... ... \n",
"31 \n",
"32 \n",
"33 \n",
"34 \n",
"35 \n",
"36 \n",
"37 \n",
"38 \n",
"39 reserved \n",
"40 int2_anymotion int2_highg \n",
"41 int2_fwm int2_ffull \n",
"42 int1_anymotion int1_highg \n",
"43 \n",
"44 int1_od int1_lvl \n",
"45 int_nomoz_en int_nomoy_en \n",
"46 int_highg_z_en int_highg_y_en int_highg_x_en \n",
"47 int_anymo_z_ en int_anymo_y_ en \n",
"48 \n",
"49 \n",
"50 \n",
"51 mag_rd_burst \n",
"52 \n",
"53 \n",
"54 \n",
"55 \n",
"56 \n",
"57 gyr_fifo_downs \n",
"58 \n",
"59 \n",
"60 \n",
"\n",
" 10 \n",
"0 bit0 \n",
"1 \n",
"2 \n",
"3 \n",
"4 \n",
"5 \n",
"6 \n",
"7 \n",
"8 \n",
"9 \n",
"10 \n",
"11 \n",
"12 \n",
"13 \n",
"14 \n",
"15 \n",
"16 \n",
"17 \n",
"18 \n",
"19 \n",
"20 spi3 \n",
"21 reserved \n",
"22 \n",
"23 \n",
"24 \n",
"25 \n",
"26 \n",
"27 \n",
"28 \n",
"29 int_slo_nomo_ sel \n",
".. ... \n",
"31 \n",
"32 \n",
"33 \n",
"34 \n",
"35 \n",
"36 \n",
"37 \n",
"38 \n",
"39 \n",
"40 int2_lowg_step \n",
"41 int2_pmu_trig \n",
"42 int1_lowg_step \n",
"43 \n",
"44 int1_edge_ctrl \n",
"45 int_nomox_en \n",
"46 \n",
"47 int_anymo_x_ en \n",
"48 \n",
"49 \n",
"50 \n",
"51 \n",
"52 \n",
"53 \n",
"54 \n",
"55 \n",
"56 \n",
"57 \n",
"58 \n",
"59 \n",
"60 \n",
"\n",
"[61 rows x 11 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tables[1].df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment