% USB tutorials and articles

@string{USBIF = {{USB Implementers Forum, Inc.}}}
@string{MSFT = {{Microsoft Corporation}}}
@string{STM = {{ST Microelectronics}}}

@online{usb-nutshell,
	title = {USB in a NutShell},
	author = {Craig Peacock},
	url = {https://www.beyondlogic.org/usbnutshell},
	urldate = {2018-05-12}
}

@online{usb-made-simple,
	title = {USB Made Simple},
	author = {{MQP Electronics Ltd.}},
	url = {http://www.usbmadesimple.co.uk/},
	year = {2008},
	urldate = {2018-05-12}
}

@online{tty-usb-acm,
	title = {What is the difference between /dev/ttyUSB and /dev/ttyACM?},
	author = {Samuel Tardieu},
	url = {https://rfc1149.net/blog/2013/03/05/what-is-the-difference-between-devttyusbx-and-devttyacmx/},
	year = {2013},
	urldate = {2018-05-12}
}

@online{usb-tscsi,
	title = {Mass Storage FAQ},
	author = {Jan Axelson},
	url = {http://janaxelson.com/mass_storage_faq.htm},
	year = {2013},
	urldate = {2018-05-12}
}


@online{usb-tscsi-wtf,
	title = {Discussion in a USB storage driver development mailing list (site defunct, available via Archive.org)},
	url = {https://lists.one-eyed-alien.net/pipermail/usb-storage/2004-September/000795.html},
	year = {2004},
	urldate = {2018-05-12}
}

@online{usb-function,
	title = {Windows 2000 Professional Resource Kit / USB Functions},
	author = MSFT,
	url = {https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc939102(v%3dtechnet.10)},
	year = {2008},
	urldate = {2018-05-12}
}



@techreport{usb-class-list,
	title = {USB Class Codes},
	author = USBIF,
	url = {http://www.usb.org/developers/defined_class},
	year = {2016},
	urldate = {2018-05-12}
}

% USB specification

@techreport{usbif-spec,
	title = {Universal Serial Bus Specification},
	author = USBIF,
	url = {http://www.usb.org/developers/docs/usb20_docs/},
	year = {2000},
	urldate = {2018-05-12}
}

@techreport{usbif-msco,
	title = {USB Mass Storage Class, Specification Overview},
	author = USBIF,
	url = {http://www.usb.org/developers/docs/devclass_docs/Mass_Storage_Specification_Overview_v1.4_2-19-2010.pdf},
	year = {2010},
	urldate = {2018-05-12}
}

@techreport{usbif-bot,
	title = {USB Mass Storage Class, Bulk-Only Transport},
	author = USBIF,
	url = {http://www.usb.org/developers/docs/devclass_docs/usbmassbulk_10.pdf},
	year = {1999},
	urldate = {2018-05-12}
}

@techreport{usbif-dfu,
	title = {USB Device Class Specification for Device Firmware Upgrade},
	author = USBIF,
	url = {http://www.usb.org/developers/docs/devclass_docs/DFU_1.1.pdf},
	year = {2004},
	urldate = {2018-05-17}
}

@online{dfu-util,
	title = {dfu-util},
	author = {{Harald Welte and Stefan Schmidt and Tormod Volden}},
	url = {http://dfu-util.sourceforge.net/},
	year = {2016},
	urldate = {2018-05-17}
}

@techreport{usbif-cdc,
	title = {Class definitions for Communication Devices 1.2},
	author = USBIF,
	url = {http://www.usb.org/developers/docs/devclass_docs/CDC1.2_WMC1.1_012011.zip},
	year = {2010},
	urldate = {2018-05-12}
}

@techreport{usbif-iad,
	title = {USB Interface Association Descriptor, Device Class Code and Use Model},
	author = USBIF,
	url = {http://www.usb.org/developers/docs/whitepapers/iadclasscode_r10.pdf},
	year = {2003},
	urldate = {2018-05-12}
}

% Virtual FS

@online{ms-fat,
	title = {How FAT Works},
	author = MSFT,
	url = {https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc776720(v=ws.10)},
	year = {2009},
	urldate = {2018-05-12}
}

@online{os-support-table,
	title = {Comparison of File Systems: OS Support},
	author = {{Wikipedia contributors}},
	url = {https://en.wikipedia.org/wiki/Comparison_of_file_systems#OS_support},
	urldate = {2018-05-12}
}

@online{daplink,
	title = {Arm Mbed DAPLink},
	author = {{ARM Limited}},
	url = {https://github.com/ARMmbed/DAPLink},
	year = {2018},
	urldate = {2018-05-12}
}

@online{fat16-brainy,
	title = {FAT16 Structure Information},
	author = {Jack Dobiash},
	url = {http://home.teleport.com/~brainy/fat16.htm},
	year = {1999},
	urldate = {2018-05-12}
}

@online{fat16-maverick,
	title = {FAT16 File System},
	author = {{LKT Software}},
	url = {http://www.maverick-os.dk/FileSystemFormats/FAT16_FileSystem.html},
	year = {1999},
	urldate = {2018-05-12}
}

@online{fat16-phobos,
	title = {A tutorial on the FAT file system},
	author = {Bob Eager},
	url = {http://www.tavi.co.uk/phobos/fat.html},
	year = {2017},
	urldate = {2018-05-12}
}

@online{fat-lfn,
	author = {vinDaci},
	title = {Long Filename Specification},
	year = {1998},
	url = {http://home.teleport.com/~brainy/lfn.htm},
	urldate = {2018-05-12}
}

@techreport{fat-whitepaper,
	author = MSFT,
	title = {FAT: General Overview of On-Disk Format},
	url = {https://staff.washington.edu/dittrich/misc/fatgen103.pdf},
	year = {2000},
	urldate = {2018-05-12}
}


% FreeRTOS

@online{freertos-ports-list,
	title = {FreeRTOS Ports},
	author = {{Real Time Engineers Ltd.}},
	url = {https://www.freertos.org/a00090.html},
	urldate = {2018-05-12}
}

@online{freertos-task-switching,
	title = {How FreeRTOS Works: FreeRTOS Implementation},
	author = {{Real Time Engineers Ltd.}},
	url = {https://www.freertos.org/implementation/main.html},
	urldate = {2018-05-12}
}

@online{freertos-stackov,
	title = {FreeRTOS Stack Usage and Stack Overflow Checking},
	author = {{Real Time Engineers Ltd.}},
	url = {https://www.freertos.org/Stacks-and-stack-overflow-checking.html},
	urldate = {2018-05-12}
}

@book{freertos-book,
	title = {Mastering the FreeRTOS™ Real Time Kernel},
	subtitle = {A Hands-On Tutorial Guide},
	author = {Richard Barry},
	publisher= {Real Time Engineers Ltd.},
	url = {https://www.freertos.org/Documentation/161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf},
	year = {2016},
	urldate = {2018-05-12}
}

@manual{freertos-rm,
	title = {The FreeRTOS™ Reference Manual},
	publisher= {Real Time Engineers Ltd.},
	url = {https://www.freertos.org/Documentation/FreeRTOS_Reference_Manual_V10.0.0.pdf},
	year = {2018},
	urldate = {2018-05-12}
}


% STM32
@online{stm-vcom,
	author = STM,
	title = {STSW-STM32102: STM32 Virtual COM Port Driver},
	url = {http://www.st.com/en/development-tools/stsw-stm32102.html},
	urldate = {2018-05-17}
}

@techreport{stm-timer-coockbook,
	author = STM,
	title = {AN4776: General-purpose timer cookbook},
	year = {2017},
	url = {http://www.st.com/resource/en/application_note/dm00236305.pdf},
	urldate = {2018-05-12}
}

@techreport{stm-tsc-training,
	author = STM,
	title = {STM32L4 training: Touch Sensing Controller},
	year = {2017},
	url = {http://www.st.com/resource/en/product_training/stm32l4_peripheral_touchsense.pdf},
	urldate = {2018-05-12}
}

% (couldnt find a proper link)
@techreport{stm-tsc-ppt,
	author = STM,
	title = {Touch Sensing Controller (TSC) presentation},
	year = {2015},
	url = {https://wenku.baidu.com/view/8472044a6137ee06eef9180c.html?re=view},
	urldate = {2018-05-12}
}

@techreport{stm-tsc-an1,
	author = STM,
	title = {AN4299: Guidelines to improve conducted noise robustness on STM32F0 Series, STM32F3 Series, STM32L0 Series and STM32L4 Series touch sensing	applications},
	year = {2018},
	url = {http://www.st.com/resource/en/application_note/dm00085385.pdf},
	urldate = {2018-05-12}
}

@techreport{stm-tsc-an2,
	author = STM,
	title = {AN4310: Sampling capacitor selection guide for MCU based touch sensing
	applications},
	year = {2015},
	url = {http://www.st.com/resource/en/application_note/dm00087593.pdf},
	urldate = {2018-05-12}
}

@techreport{stm-tsc-an3,
	author = STM,
	title = {AN4312: Guidelines for designing touch sensing applications
	with surface sensors},
	year = {2017},
	url = {http://www.st.com/resource/en/application_note/dm00087990.pdf},
	urldate = {2018-05-12}
}

@techreport{stm-tsc-an4,
	author = STM,
	title = {AN4316: Tuning a STMTouch-based application},
	year = {2015},
	url = {http://www.st.com/resource/en/application_note/dm00088471.pdf},
	urldate = {2018-05-12}
}

@techreport{sd-spec,
	author = {{SD Group}},
	title = {SD Specifications, Part 1: Physical Layer Simplified Specification},
	year = {2010},
	url = {https://www.cs.utexas.edu/~simon/395t_os/resources/Part_1_Physical_Layer_Simplified_Specification_Ver_3.01_Final_100518.pdf},
	urldate = {2018-05-13}
}


% other articles
@article{all-about-dds,
	title={All about direct digital synthesis},
	author={Murphy, Eva and Slattery, Colm},
	series={Ask The Application Engineer},
	volume={33},
	url={http://www.analog.com/media/en/analog-dialogue/volume-38/number-3/articles/all-about-direct-digital-synthesis.pdf},
	year={2004}
}

@techreport{understanding-i2c,
	author = {Jonathan Valdez, Jared Becker},
	title = {Understanding the I2C Bus},
	year = {2015},
	url = {http://www.ti.com/lit/an/slva704/slva704.pdf},
	urldate = {2018-05-12},
	organization = {Texas Instruments}
}

@manual{i2c-spec,
	title = {I2C-bus specification and user manual},
	author = {{NXP Semiconductors}},
	url = {https://www.nxp.com/docs/en/user-guide/UM10204.pdf},
	year = {2014},
	urldate = {2018-05-12}
}

@manual{nrf-manual,
	title = {nRF24L01+ Single Chip 2.4GHz Transceiver Product Specification v1.0},
	author = {{Nordic Semiconductor}},
	url = {http://www.nordicsemi.com/eng/content/download/2726/34069/file/nRF24L01P_Product_Specification_1_0.pdf},
	year = {2008},
	urldate = {2018-05-12}
}

@manual{semtech-manual,
	title = {SX1276/77/78/79 datasheet},
	author = {{Semtech Corporation}},
	url = {https://www.semtech.com/uploads/documents/DS_SX1276-7-8-9_W_APP_V5.pdf},
	year = {2016},
	urldate = {2018-05-12}
}


@manual{f072-rm,
	title = {RM0091: STM32F0x1/STM32F0x2/STM32F0x8 reference manual},
	author = STM,
	url = {http://www.st.com/resource/en/reference_manual/dm00031936.pdf},
	year = {2017},
	urldate = {2018-05-12}
}

@manual{f072-ds,
	title = {STM32F072x8/STM32F072xB datasheet},
	author = STM,
	url = {http://www.st.com/resource/en/datasheet/stm32f072c8.pdf},
	year = {2017},
	urldate = {2018-05-12}
}


@manual{f103-rm,
	title = {RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx reference manual},
	author = STM,
	url = {http://www.st.com/resource/en/reference_manual/cd00171190.pdf},
	year = {2009},
	urldate = {2018-05-12}
}

@manual{f103-ds,
	title = {STM32F103x8/STM32F103xB datasheet},
	author = STM,
	url = {http://www.st.com/resource/en/datasheet/CD00161566.pdf},
	year = {2015},
	urldate = {2018-05-12}
}

@online{pidcodes,
	title = {pid.codes, a registry of USB PID codes for open source hardware projects},
	url = {http://pid.codes/},
	urldate = {2018-05-12}
}

@online{eev-gpio-pu,
	author = {{EEVblog Electronics Community Forum}},
	title = {Driving the 1K5 USB pull-up resistor on D+},
	url = {https://www.eevblog.com/forum/projects/driving-the-1k5-usb-pull-up-resistor-on-d/},
	urldate = {2018-05-12}
}

@online{disco-f072,
	author = STM,
	title = {Discovery kit with STM32F072RB MCU},
	url = {http://www.st.com/en/evaluation-tools/32f072bdiscovery.html},
	urldate = {2018-05-16}
}


@online{cubemx,
	author = STM,
	title = {STM32Cube initialization code generator},
	url = {http://www.st.com/en/development-tools/stm32cubemx.html},
	urldate = {2018-05-18}
}


% Figure sources

@online{buspirate-product-page,
	author = {{Seeed Technology Co.,Ltd.}},
	title = {Bus Pirate v4},
	url = {https://www.seeedstudio.com/Bus-Pirate-v4-p-740.html},
	urldate = {2018-05-12}
}

@online{buspirate,
	author = {Ian Lesnet},
	title = {Bus Pirate},
	url = {http://dangerousprototypes.com/docs/Bus_Pirate},
	urldate = {2018-05-20}
}

@online{nidevice1,
	author = {{National Instruments}},
	title = {I²C/SPI Interface Device},
	url = {https://www.ni.com/en-gb/shop/select/i2c-spi-interface-device},
	urldate = {2018-05-12}
}

@online{nidevice2,
	author = {{National Instruments}},
	title = {USB-6008},
	url = {http://www.ni.com/en-gb/support/model.usb-6008.html},
	urldate = {2018-05-12}
}

@online{tphasedevice,
	author = {{Total Phase, Inc.}},
	title = {USB-6008 product page},
	url = {https://www.totalphase.com/products/aardvark-i2cspi/},
	urldate = {2018-05-12}
}


@online{arduinodtr,
	author = {{NKC Electronics}},
	title = {Retrofitting AutoReset feature into an old Arduino serial board},
	url = {https://playground.arduino.cc/Learning/AutoResetRetrofit},
	urldate = {2018-05-13}
}

@online{tinyframerepo,
	author = {Hruška, Ondřej},
	title = {TinyFrame, a library for building and parsing data frames for serial interfaces},
	url = {https://github.com/MightyPork/TinyFrame},
	urldate = {2018-05-13}
}

@online{matlabpy,
	author = {{The MathWorks, Inc.}},
	title = {Using MATLAB with Python},
	url = {https://www.mathworks.com/solutions/matlab-and-python.html},
	urldate = {2018-05-13}
}


@online{numpyscipy,
	author = {{SciPy developers}},
	title = {SciPy.org},
	url = {https://www.scipy.org/},
	urldate = {2018-05-13}
}



@techreport{ow-datasheet,
	author = {{Dallas Semiconductor}},
	title = {DS18S20 High Precision	1-Wire Digital Thermometer},
	url = {https://datasheets.maximintegrated.com/en/ds/DS18S20.pdf},
	urldate = {2018-05-13}
}

@techreport{ow-appnote,
	author = {{Dallas Semiconductor}},
	title = {AN162: Interfacing the DS18X20/DS1822 1-Wire Temperature Sensor in a Micro-controller Environment},
	url = {https://www.maximintegrated.com/en/app-notes/index.mvp/id/162},
	urldate = {2018-05-13}
}

@techreport{ow-uart,
	author = {{Dallas Semiconductor}},
	title = {AN214: Using a UART to Implement a 1-Wire Bus Master},
	url = {https://www.maximintegrated.com/en/app-notes/index.mvp/id/214},
	urldate = {2018-05-13}
}


@techreport{neopixel-ds,
	author = {{Worldsemi}},
	title = {WS2812B datasheet},
	url = {www.world-semi.com/DownLoadFile/108},
	urldate = {2018-05-13}
}

@techreport{adc-sar,
	author = {{Maxim Integrated}},
	title = {AN1080: Understanding SAR ADCs: Their Architecture and	Comparison with Other ADCs},
	year = {2001},
	url = {https://pdfserv.maximintegrated.com/en/an/AN1080.pdf},
	urldate = {2018-05-13}
}

@techreport{fcap-twotypes,
	author = {{SiTime Corporation}},
	title = {AN10033: Frequency Measurement Guidelines for Oscillators},
	url = {https://www.sitime.com/api/gated/AN10033-Frequency-Measurement-Guidelines-for-Oscillators.pdf},
	urldate = {2018-05-13}
}

@inproceedings{fcap-increasing,
	author = {Paul Boven},
	booktitle = {Proceedings of the 50. VHF meeting in Weinheim},
	title = {Increasing the resolution of reciprocal frequency counters},
	url = {https://www.febo.com/pipermail/time-nuts/attachments/20071201/e7833af5/attachment.pdf},
	urldate = {2018-05-13}
}

@ARTICLE{floatpaper,
	journal={IEEE Std 754-2008}, 
	title={IEEE Standard for Floating-Point Arithmetic}, 
	year={2008},
	pages={1-70}, 
	keywords={IEEE standards;floating point arithmetic;programming;IEEE standard;arithmetic formats;computer programming;decimal floating-point arithmetic;754-2008;NaN;arithmetic;binary;computer;decimal;exponent;floating-point;format;interchange;number;rounding;significand;subnormal}, 
	doi={10.1109/IEEESTD.2008.4610935}
}





@online{piheader,
	author = {{Raspberry Pi Foundation}},
	title = {GPIO - Raspberry Pi Documentation},
	url = {https://www.raspberrypi.org/documentation/usage/gpio/README.md},
	urldate = {2018-05-19}
}

@online{piheaderxyz,
	author = {Phil Howard},
	title = {Raspberry Pi GPIO Pinout interactive diagram},
	url = {https://pinout.xyz/},
	urldate = {2018-05-19}
}




@online{gex-gh,
	title = {GEX USB GPIO platform source code repository},
	author = {Ondřej Hruška},
	url = {https://github.com/gexpander},
	year = {2018},
	urldate = {2018-05-21}
}