wio:wiopi-en
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
wio:wiopi-en [2021/06/20 10:23] – rjversluis | wio:wiopi-en [2024/04/13 16:28] (current) – [Command Line Options] babbel | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== WIOpi ====== | ||
[[: | [[: | ||
- | | + | ====== WIOpi ====== |
- | * [[: | + | [[: |
+ | **[[: | ||
+ | * [[: | ||
+ | * [[: | ||
+ | * [[: | ||
* [[: | * [[: | ||
+ | * [[: | ||
+ | * [[: | ||
\\ | \\ | ||
- | | Work In Progress | ||
{{: | {{: | ||
\\ | \\ | ||
+ | | Before mounting the header on the Zero, check this [[: | ||
+ | |||
+ | < | ||
+ | \\ | ||
+ | =====PiOS Versions===== | ||
+ | ^ Version ^ Remark ^ Date ^ | ||
+ | | PiOS 11 ' | ||
+ | | PiOS 12 ' | ||
+ | --></ | ||
+ | |||
+ | |||
+ | \\ | ||
=====Introduction===== | =====Introduction===== | ||
- | WIOpi is a program targeted for the Raspberry Pi and its GPIO.\\ | + | WIOpi is a program targeted for the Raspberry Pi and its GPIO. (Model 1, 2, 3, 4 and ZeroW.)\\ |
The hardware requirements and support are the same as for __**[[: | The hardware requirements and support are the same as for __**[[: | ||
By running the WIOpi program on the Raspberry Pi, it will behave and process like a WIO on ESP base.\\ | By running the WIOpi program on the Raspberry Pi, it will behave and process like a WIO on ESP base.\\ | ||
Line 17: | Line 33: | ||
^ WIOpi runs in context of user **pi**. ^\\ | ^ WIOpi runs in context of user **pi**. ^\\ | ||
//The user **pi** is default in the groups **gpio**, **i2c** and **spi**, so no need to run WIOpi in super user context.// \\ | //The user **pi** is default in the groups **gpio**, **i2c** and **spi**, so no need to run WIOpi in super user context.// \\ | ||
+ | **Note**: Type mobile should run in root context to be able to run a high performance motor thread.\\ | ||
< | < | ||
$ groups | $ groups | ||
Line 42: | Line 59: | ||
\\ | \\ | ||
+ | |||
+ | =====Supported Boards===== | ||
+ | * Raspberry ZeroW 1 and 2 | ||
+ | * Raspberry Pi 1, 2, 3 and 4 | ||
+ | |||
+ | |||
+ | \\ | ||
+ | |||
=====Install===== | =====Install===== | ||
Activate I2C, SPI and UART in the raspi-conf utility.\\ | Activate I2C, SPI and UART in the raspi-conf utility.\\ | ||
Line 59: | Line 84: | ||
+ | ====Swap Size==== | ||
+ | The default swap size of 100MB ist for a Zero with 512MB memory not enough.\\ | ||
+ | <code bash> | ||
+ | sudo nano / | ||
+ | </ | ||
+ | Change the swap size to 1024: | ||
+ | <code bash> | ||
+ | CONF_SWAPSIZE=1024 | ||
+ | </ | ||
+ | Restart the service: | ||
+ | <code bash> | ||
+ | sudo / | ||
+ | sudo / | ||
+ | </ | ||
\\ | \\ | ||
=====Command Line Options===== | =====Command Line Options===== | ||
^ Option ^ Description ^ | ^ Option ^ Description ^ | ||
+ | | -info | set trace level info | | ||
| -t < | | -t < | ||
- | | -server <ip> | Rocrail server IP or DNS name | | + | | -server <ip> | Rocrail server IP or DNS name ¹| |
| -id < | | -id < | ||
| -softpwm | Use software PWM for servos to enable play sound. | | | -softpwm | Use software PWM for servos to enable play sound. | | ||
Line 69: | Line 109: | ||
\\ | \\ | ||
+ | ¹ If WIOpi and the Rocrail server are operated on the same Raspberry pi, enter **localhost**. For autostart, enter the option in startwiopi.sh. | ||
=====Pinout===== | =====Pinout===== | ||
The Pinout and mapping is printed in the console after startup.\\ | The Pinout and mapping is printed in the console after startup.\\ | ||
It depends on the configuration found in the wiopi.ini.\\ | It depends on the configuration found in the wiopi.ini.\\ | ||
- | See for Raspberry Pi Pinout information: | + | See for Raspberry Pi Pinout information: |
+ | More detailed info: https:// | ||
+ | Or issue in a terminal the pinout command.\\ | ||
\\ | \\ | ||
Line 80: | Line 123: | ||
* __**[[: | * __**[[: | ||
* __**[[: | * __**[[: | ||
- | * __**[[: | + | * __**[[: |
* __**[[: | * __**[[: | ||
* __**[[: | * __**[[: | ||
Line 89: | Line 132: | ||
* __**[[: | * __**[[: | ||
* __**[[: | * __**[[: | ||
- | * __**[[: | + | * __**[[: |
* Mobile soft PWM for controlling a DC Motor, MOSFET or H-Bridge. ((//WIOpi must be started with sudo to generate a good quality PWM.// | * Mobile soft PWM for controlling a DC Motor, MOSFET or H-Bridge. ((//WIOpi must be started with sudo to generate a good quality PWM.// | ||
* WS2801 RGB LEDs over SPI (Output address > 128) | * WS2801 RGB LEDs over SPI (Output address > 128) | ||
* LEDScript support in case Port Type is set to Macro. | * LEDScript support in case Port Type is set to Macro. | ||
- | * 2 Servos on the hardware PWM pins (phys. 32 & 33). ((//WIOpi must be started with sudo to be able to use the PWM outputs.// | + | * 2 Servos on the hardware PWM pins (phys. 32 & 33 - address 129 and 130). ((//WIOpi must be started with sudo to be able to use the PWM outputs.// |
* Analog inputs: PCF8591 | * Analog inputs: PCF8591 | ||
+ | |||
+ | **Note:** //The WIOpi only saves servo positions in case of a shutdown.// | ||
+ | |||
+ | \\ | ||
+ | =====Onboard Servos===== | ||
+ | The two onboard servos have address 129 and 130.\\ | ||
+ | Mobile functions 1 and 2 are mapped to those onboard servo addresses.\\ | ||
+ | **Note:** //The WIOpi only saves servo positions in case of a shutdown.// | ||
Line 142: | Line 193: | ||
\\ | \\ | ||
- | =====Signals on Pi02/ | + | =====Signals on Pi02/Pi08/ |
- | __**[[: | + | __**[[: |
**Pi08**: 1...128 \\ | **Pi08**: 1...128 \\ | ||
- | **Pi02**: 129...256 (mapped on 1...128) \\ | + | **Pi02**: 1...128 \\ |
- | **WS2801** \\ | + | **WS2801**: 129...256 (mapped on 1...128) \\ |
+ | |||
+ | \\ | ||
+ | ===== ID12LA RFID Reader ===== | ||
+ | The default serial device is ''/ | ||
+ | < | ||
+ | serialdev="/ | ||
+ | </ | ||
+ | |< >| | ||
+ | ^ Raspberry pi Model ^ PiOS 10 ^ PiOS 11 ^ | ||
+ | | Zero 1 | / | ||
+ | | Rpi 1 | / | ||
+ | | Zero 2 | /dev/ttyS0 | / | ||
+ | | Rpi 2...4 | /dev/ttyS0 | | ||
+ | |||
+ | **Note:** //Seems to be PiOS version dependent; Check the system.//\\ | ||
\\ | \\ | ||
Line 168: | Line 234: | ||
| 3 Wire ||| | | 3 Wire ||| | ||
^ Function ^ Header ^ GPIO ^ Example TB6600 ^ | ^ Function ^ Header ^ GPIO ^ Example TB6600 ^ | ||
- | | STEP(Clock) | | + | | STEP(Clock) | |
| GND | 9 | - | EN-, DIR-, CLK- | | | GND | 9 | - | EN-, DIR-, CLK- | | ||
- | | DIR | | + | | DIR | |
- | | ENABLE | | + | | ENABLE | |
- | | HALL (Calibrate) | | + | | HALL (Calibrate) | |
{{ : | {{ : | ||
Line 192: | Line 258: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | |||
+ | ====Files==== | ||
+ | * https:// | ||
+ | |||
+ | |||
< | < | ||
Line 246: | Line 317: | ||
http://< | http://< | ||
</ | </ | ||
+ | |||
+ | ====Mobile==== | ||
+ | Function 8 can be used to activate and deactivate the CAM.\\ | ||
\\ | \\ | ||
=====I2C Slaves===== | =====I2C Slaves===== | ||
- | WIOpi supports up to 4 Arduino | + | WIOpi supports up to 4 I2C Slaves.\\ |
The reserved I2C device addresses are 0x7C, 0x7D, 0x7E and 0x7F.\\ | The reserved I2C device addresses are 0x7C, 0x7D, 0x7E and 0x7F.\\ | ||
- | The WIOnano can be used as skeleton:\\ | ||
- | * https:// | ||
To address a pin on a slave, the following parameters are involved: | To address a pin on a slave, the following parameters are involved: | ||
Line 286: | Line 358: | ||
\\ | \\ | ||
+ | |||
+ | |||
+ | =====CAN Slaves===== | ||
+ | The [[https:// | ||
+ | The CANGC modules must be programmed as follows: | ||
+ | * Long events (deselect Short events) | ||
+ | * The Node Nr. must be set equal to the module its CAN ID | ||
+ | * The Event Nr. must be set equal to the corresponding port number (1...16) | ||
+ | * SoD 4711 | ||
+ | :!: //The programming must be done by the RCAN library in Rocrail; It is not possible to program CANGCx over WIOpi. The same USBtin can be used for this purpose.// | ||
+ | \\ | ||
+ | ====Setup examples==== | ||
+ | {{: | ||
+ | {{: | ||
+ | ====Rocrail Addressing==== | ||
+ | ^ Object ^ Node ID ^ Address ^ Port ^ | ||
+ | | Sensor | WIOpi Node ID | Event Nr. + (Node Nr. * 256) | - | | ||
+ | | Output/ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | \\ | ||
+ | |||
=====User Pin Definitions===== | =====User Pin Definitions===== | ||
To remap pins for Pi01, Stepper and Mobile, the following child nodes in the '' | To remap pins for Pi01, Stepper and Mobile, the following child nodes in the '' | ||
Line 317: | Line 414: | ||
WIOpi use the __**[[: | WIOpi use the __**[[: | ||
This service must be __**[[: | This service must be __**[[: | ||
+ | \\ | ||
+ | If Auto Server Connect doesn' | ||
+ | <code xml> | ||
+ | <wiopi server=" | ||
+ | </ | ||
+ | WIOpi should be stopped before editing this file: | ||
+ | < | ||
+ | sudo killall wiopi | ||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
- | + | =====Info Level===== | |
- | \\ | + | You can edit the startwiopi.sh with sudo nano startwiopi.sh \\ |
- | =====Mobile Dual Motor===== | + | Add -info behind ./wiopi for information: |
< | < | ||
- | ---------------------------------- | + | #!/bin/sh |
- | | + | cd /home/pi/WIOpi |
- | -P-I-N-O-U-T---------------------- | + | sudo ./ |
- | | Name | BCM | Conn | | + | |
- | +------------------+------+------+ | + | |
- | | I2C SDA | 02 | 03 | | + | |
- | | I2C SCL | 03 | 05 | | + | |
- | | Pi01 TxD | + | |
- | | Pi01 RxD | + | |
- | | Pi01 LED1 | 23 | 16 | | + | |
- | | Pi01 LED2 | 24 | 18 | | + | |
- | | Pi01 Button | + | |
- | | Servo 0 | 12 | 32 | | + | |
- | | Servo 1 | 13 | 33 | | + | |
- | | Pixel CI | + | |
- | | Pixel DI | + | |
- | | Mobile ENABLE 1 | 18 | 12 | | + | |
- | | Mobile PWMFWD 1 | 17 | 11 | | + | |
- | | Mobile PWMREV 1 | 27 | 13 | | + | |
- | | Mobile ENABLE 2 | 19 | 35 | | + | |
- | | Mobile PWMFWD 2 | 05 | 29 | | + | |
- | | Mobile PWMREV 2 | 06 | 31 | | + | |
- | | Mobile LIGHTS1 | + | |
- | | Mobile LIGHTS2 | + | |
- | | Mobile F1 | 09 | 21 | | + | |
- | | Mobile F2 | 01 | 28 | | + | |
- | | Mobile F3 | 08 | 24 | | + | |
- | | Mobile F4 | 07 | 26 | | + | |
- | | Mobile F5 | 16 | 36 | | + | |
- | | Mobile F6 | 26 | 37 | | + | |
- | | Mobile F7 | 20 | 38 | | + | |
- | | Mobile F8 | 21 | 40 | | + | |
- | ---------------------------------- | + | |
</ | </ | ||
- | + | This should only be done for testing because of cpu utilization | |
- | + | =====Mobile Dual Motor===== | |
- | + | Locomotives with dual motors require dual H-Bridge support.\\ | |
- | + | Set the " | |
+ | The second H-Bridge connects to the I/O2 connector on pin 4, 5 and 6.\\ | ||
+ | The __**[[: | ||
+ | |< >| | ||
+ | ^ I/O2 ^ H-Bridge ^ Rpi Conn ^ WIODrive ^ | ||
+ | | 2 | GND | 25 | IBB1-3 | | ||
+ | | 4 | IN2 | 29 | IBB1-2 | | ||
+ | | 5 | IN1 | 31 | IBB1-1 | | ||
+ | | 6 | ENA | 35 | ESC1-3 | | ||
wio/wiopi-en.1624177416.txt.gz · Last modified: 2021/06/20 10:23 by rjversluis