I'm trying to establish a UART communication link by means of bit-banging. For the TX part, I am using the pigpio lib to form a 1Mbaud wave of bits (gpioWaveAddSerial). I have checked it and it with an oscilloscope and it performs as intended.

The problem is that for the receiving end, the same lib happens to limit the baud rate to 250000(gpioSerialReadOpen). Is there a way to read a bit wave at 1 Mbaud rate?

  • @Philippos pigpio doesn't use interrupts, it uses DMA to sample the GPIO.
    – joan
    Oct 24, 2017 at 14:12

1 Answer 1


I do not remember why the limit is 250k rather than say 500k or 1000k. I expect there was a reason. It may simply have been there was too much jitter at the higher bit rates to reliably clock the data.

I suggest you have a look at the code and examine the consequences of changing the constant PI_BB_SER_MAX_BAUD to 1000000.

  • Thanks for the answer. It appears that higher rates are quite unreliable. On to another solution then. Oct 24, 2017 at 15:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.