diff --git a/README.md b/README.md index c88baaa..1a95e28 100644 --- a/README.md +++ b/README.md @@ -11,12 +11,39 @@ Here's a short list of the different programs and what they do: - **rs485_receive.py**: receives utf-8 encoded strings and prints them out as soon as a \n is received. -- **rs485_pingpong.py**: this implements a simple ping-pong over two channels (4 converters needed). For more information, see [Wiring]. +- **rs485_pingpong.py**: this implements a simple ping-pong over two channels (4 converters needed). For more information, see [[Wiring]]. + + +## Prerequisites + +To be able to run all the examples successfully, you need two MicroPython-enabled Microcontrollers (Raspberry Pi Pico 1 tested) and 4 TTL-UART to RS485 converters, with two of them connected to each μController (see [[Wiring]]). +Also, both microcontrollers should have MicroPython running on them (at time of writing this the latest tested version was 1.23.0). + +If you met all these requirements, let's start wiring the parts together! ## Wiring -TODO +For the (simple) send and receive programs, theres just to devices with MicroPython (rp2 flavor tested) needed, as well as two TTL-UART to RS485 converters, one connected to each of them. For the ping-pong example, you will need two channels (one for sending and one for receiving) for each MicroPython device. When using WaveShares Pico 2-Channel HAT, no wiring (between converters and microcontroller) is needed at all! + +Just wire two MicroPython devices as shown below (obviously connect different converters to the different microcontrollers ;) + +| Converter | Pin on converter | Pin on Pi Pico1 | +| ----------------------------------------- | -------------------- | --------------------------- | +| TTL-UART to RS485 converter 1 | DI (driver in) | GP0 (UART0 TX) | +| TTL-UART to RS485 converter 1 | RO (receiver out) | GP1 (UART0 RX) | +| TTL-UART to RS485 converter 1 | DE (driver enable) | GP2 (set HIGH/LOW) | +| TTL-UART to RS485 converter 1 | RE (receiver enable) | GP2 (set HIGH/LOW) | +| TTL-UART to RS485 converter 22 | DI (driver in) | GP4 (UART1 TX) | +| TTL-UART to RS485 converter 22 | RO (receiver out) | GP5 (UART1 RX) | +| TTL-UART to RS485 converter 22 | DE (driver enable) | GP3 (set HIGH/LOW) | +| TTL-UART to RS485 converter 22 | RE (receiver enable) | GP3 (set HIGH/LOW) | + +[1] as I used the Pico, adjust for your favourite microcontroller (but don't forget also changing the pinout in the programs as well1) + +[2] only needed for the ping pong example + +Then, connecting the A+, B- and GND wires of the respective converters together (converter 1 of μC1 to converter 1 of μC2, converter 2 of μC1 to converter 2 of μC2), you've just created a simple RS485 bus! Now upload the scripts to both Microcontrollers and try what you want to try! ## Useful links