Legal Removal Request This form is for reporting content posted on the AB Electronics UK forums that you believe violates your personal legal rights or applicable local laws for your country. Post: I have spent most of the day trying to make the C library faster and unfortunately due to the way the SPI driver works in Linux it does not look like it will be possible to get the full speed out of the ADC. The screenshot from my logic analyser below shows the problem. The Linux SPI driver sets the enable line low early and waits for more than the length of an extra byte before setting it high so you lose the equivalent time of two bytes of data on each sample. This seems to be a feature of the SPI driver and I can not find a way around the problem. Once the enable line does go high it takes approximately 22us for the library to process the data before starting the next loop. I have tried trimming the code down to the bare minimum but I couldn't get the time much below 22us so I think this is the limit of the C library and the Raspberry Pi. [img]/docs/forumpost/nkgomae.png[/img] The pigpio library gets around this problem by bit-banging the SPI bus instead of using the SPI driver which may allow a faster sample rate but as this could make the C library incompatible with existing code as well as other hardware platforms I don't want to make the change to use pigpio on our C library. You could try using the pigpio library and example code for the MCP3202 in your project and see if it gives you any better results. Another alternative would be to connect the ADC-DAC Pi to a separate microcontroller like an Arduino. The Arduino could read the samples from the ADC and send the data to the Raspberry Pi via the I2C or UART port. The main advantage of this is the low level of hardware access would give you consistent timing for the sample reads. The Arduino would also only have a single task running on the microcontroller whereas the Raspberry Pi has dozens of other processes taking up CPU time. With an Arduino Uno or any other 5V Arduino, you could run the ADC-DAC Pi at 5V allowing you to use a faster clock speed on the SPI bus. A 5V Arduino would need to use a level shifter for the connection between the Arduino and the Raspberry Pi to drop the 5V bus down to 3.3V. Select the country where you are claiming legal rights. Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua and Barbuda Argentina Aruba Australia Austria Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bosnia And Herzegovina Botswana Bouvet Island Brazil British Indian Ocean Territory British Virgin Islands Brunei Bulgaria Burkina Faso Burundi Cambodia Cameroon Canada Canary Islands Cape Verde Cayman Islands Central African Republic Chad Channel Islands Chile Christmas Island Cocos (Keeling) Islands Colombia Comoros Congo Cook Islands Costa Rica Croatia Cuba Cyprus Czech Republic Denmark Djibouti Dominica Dominican Republic East Timor Ecuador Egypt El Salvador Equatorial Guinea Estonia Ethiopia Falkland Islands (Malvinas) Faroe Islands Federated States of Micronesia Fiji Finland France French Guiana French Polynesia French Southern Territories Gabon Gambia Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guyana Haiti Heard Island and McDonald Islands Honduras Hong Kong Hungary Iceland India Indonesia Ireland Israel Italy Jamaica Japan Jordan Kazakhstan Kenya Kiribati Kuwait Kyrgyzstan Laos Latvia Lesotho Liechtenstein Lithuania Luxembourg Macau Macedonia Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Martinique Mauritania Mauritius Mayotte Mexico Micronesia, Federated States Of Moldova, Republic Of Monaco Mongolia Montenegro Montserrat Morocco Mozambique Myanmar Namibia Nauru Nepal Netherlands Netherlands Antilles New Caledonia New Zealand Nicaragua Niue Norfolk Island Northern Mariana Islands Norway Oman Palau Panama Papua New Guinea Paraguay Peru Philippines Pitcairn Poland Portugal Puerto Rico Qatar Reunion Romania Russia Rwanda Samoa San Marino Sao Tome and Principe Saudi Arabia Serbia Seychelles Singapore Slovakia Slovenia Solomon Islands South Africa South Georgia and the South Sandwich Islands South Korea Spain Sri Lanka St. Helena St. Kitts and Nevis St. Lucia St. Pierre and Miquelon St. Vincent and the Grenadines Suriname Svalbard and Jan Mayen Islands Swaziland Sweden Switzerland Syria Taiwan Tajikistan Tanzania Thailand Togo Tokelau Tonga Trinidad and Tobago Tunisia Turkey Turkmenistan Turks and Caicos Islands Tuvalu U.S. Virgin Islands Uganda Ukraine United Arab Emirates United Kingdom United States United States Minor Outlying Islands Uruguay Uzbekistan Vanuatu Vatican City Venezuela Vietnam Wallis and Futuna Islands Western Sahara Yemen Yugoslavia Zambia What legal issue or problem do you wish to report? Please select Privacy / Erasure under GDPR Defamation Intellectual Property Hate Speech Other Please enter the following information so we can process your report. Contact Name: Contact Email: Details of complaint: Submit Complaint