- Baud (final Prototype) Mac Os Sierra
- Baud (final Prototype) Mac Os Sierra
- Baud (final Prototype) Mac Os 11
- Baud (final Prototype) Mac Os 7
Apr 09, 2021 The console UART (ttymxc0) is a TTL UART at 115200 baud, 8n1 (8 data bits 1 stop bit), and no flow control. On the macrocontroller this is CN293 (TX), CN295 (RX). Various baseboards bring this out using different methods. The TS-8550 baseboard brings out a DB9 connector with the console as RS232. Academia.edu is a platform for academics to share research papers. A Bit More Detail!Crash-Bang Prototyping was started off the back of our own learning, to help smooth our iterative development processes. We focus on the development of open source hardware kits and tools, and providing resources and value to electronics enthusiasts, hobbyists, and small startups.
For more information, visit iniVation support
This page is about the eDVS4337, launched in 2014:
Table of contents
- Getting started
- Custom firmware development
- Firmware reprogramming
- Windows & MacOS X
- Firmware reprogramming
- UART Protocol (PC->Board)
- Event recording formats
- Connectors
- Optional: WLAN module
- Older eDVS prototypes
Specification
A standalone dynamic vision sensor circuit board with microcontroller
For specifications see the specificationspage.
Application examples:
- Autonomous mobile robotics.
- Surveillance, data recording.
- High-speed stand-alone tracking.
Microcontroller NXP LPC4337
- 32-bit dual ARM core.
- 204 MHz max operation frequency.
- Hardware FPU.
- 136 KB on board SRAM.
- 1MB program / data flash.
I/O - connectivity
- 1 USB 2.0 FTDI virtual serial port, up to 12 Mbps (shared with UART0).
- 2 UART connectors, up to 12 Mbps, hardware handshaking (one shared with FTDI/USB).
- 1 SPI/SSI/Microwire interface (up to 25Mbit full duplex; 50Mbit transmit only).
- 6 PWM digital output lines (0-2.8V).
- 4 PWM controlled power signals (for up to 2 independent bi-directional DC motors).
- 6 analog input lines (0-2.8V).
- 6 digital general purpose I/O lines (0-2.8V).
- 1 micro SD Card slot for data logging (32bit FAT file system).
Power
- Option 1: USB power or any 5V source as input.
- Option 2: Single Cell LiPo battery (re-charging through USB/5V).
Physical Specs
- Size: approx. 80x50mm (smaller than a credit card).
- Lens: S-mount (M12x0.5).
- Field of view: default ~55deg (hor./ver.); optional lenses 20 - 120deg.
Special Features
- Wake-up on visual activity, adjustable threshold.
- Hardware real-time clock.
- Optional external WLAN module (TCP/UDP socket connection).
Open source customizable microcontroller software, free GNU C compiler(NXP IDE).
PC demo software (jAER) to demonstrate event-based vision data andprocessing algorithms.
Board layout
Front:
Back:
Board Dimensions:
Getting started
Viewing and processing events
The officially supported software to view and process events coming fromthe eDVS is jAER. For instructions on installation and usage, see thejAER user guide.
Once installed, connect the eDVS via USB to your computer. The driversfor USB serial port emulation are already part of all modern operatingsystems, so no special installation is required at this point. Therecently connected devices should show up on your system as a serialcommunication device, for example as a COM: port on Windows or
/dev/ttyUSB
on Linux. If your OS does not find drivers, downloadFTDI's latest VCP drivers for FT232HL
Note for Linux users: you may need to ensure you have the correctpermissions for accessing /dev/ttyUSBn (where n = 0,1,2, etc). Forexample, running the following command as root:
chmod 666 /dev/ttyUSB0
Will give you access to device ttyUSB0.
Start jAER and ensure that, in the AEChip menu, thech.unizh.ini.jaer.chip.retina.DVS128 chip class is selected. If itisn't, just search for it in the menu and select it.
Click on the Interface menu (circled in red above) and select the itemnamed eDVS hardware interface chooser. In the second half of theconfiguration screen, select your serial device (COMx on Windows) andthen press Open serial port interface. If your device isn't showing upin jAER, try selecting rescan from the drop-down menu or click onRefresh port list.
For devices with serial numbers 613xx, use a Baud rate of 4 Mbps; fordevices with serial number 126xx, use a Baud rate of 12 Mbps.
You should now be seeing DVS events on your screen.
Biasing the DVS
You need to load a set of biases. The jAER userguide explains how todo this, in the section on 'biasing'. In order to get the bestperformance out of your device for your application, in terms of speed,noise etc, you need to adjust the biases. The biasingguide explains howto do this.
For the eDVS, you should use the standard bias sets for the DVS128. Youcan find these under:
jAER/biasgenSettings/DVS128
Tank my bug mac os. The default biases DVS128Slow.xml or DVS128Fast.xml are suitable formany situations.
Here is the default set of bias with associated names (which is loadedon power-up):
Custom firmware development
To take advantage of the more advanced features offered by the eDVS4337boards, you might need to tailor the standard firmware to your ownapplication's needs. The latest version of the firmware can be checkedout with Git from:
Please follow the instructions within that directories README.txt fileto install the LPCXpresso development environment.
Firmware reprogramming
The post build steps of the LPCXpresso build script generate an IntelHEX file for reprogramming through the UART0 port or the USB plug.
You can find already compiled HEX files at
The latest hex files are EDVSBoardOS-4mbps.hex; EDVSBoardOS-6mbps.hexand EDVSBoardOS-12mbps.hex. Choose the hex file denoted with the baudrate you want. If the higher baud rates (6 mbps and 12 mbps) don't work,you can move down to the 4 mbps file.
To enter reprogramming mode, use the programming command from a serialconsole (see section 'Accessing the devicemanually', below):
Pn
Ensure you do not hit any other keys or send further characters afterentering reprogramming mode. Just close the terminal window.
Windows & MacOS X
For Windows and Mac OS X, the supported tool is FlashMagic, available athttp://www.flashmagictool.com/.
The current version (12.40) runs on Windows XP/Vista/7/8 and version 8.50on MacOS X 10.6+. The following instruction were written for FlashMagic7.85, but still apply to newer version as well.
Step 1 - Communication - Device Section
Device: LPC4337
Com Port: Serial port of the FTDI chip, depends on system.
Baud Rate: 115200 (try lower baud rates if connection fails; e.g.19200)
Step 2 - Erase
Entire device should be selected
Step 3 - Hex File
Select the Hex file provided or the one you generated. If you build theproject with LPCExpresso, take the HEX file in the M4/Release (orM4/Debug) folder. The files in M4 contain the M0 code as well.
Step 4 - Options
‘Verify After Programming', ‘Fill Unused Flash' and ‘Go After Programming' must be ticked.
Step 5 - Start
Click the ‘Start' button
Step 6 - Waiting
Please stand by while new firmware is sent through the Serial Port toyour board.
Step 7 - Executing
After the programming and verification has ended, restart the device bysimply re-plugging the USB cable. Everything is working properly if you see the LED blinking on the back of the PCB board.Note: at the end of the process youmight see a message 'Operation Failed. (activating flash bank)', this isnormal, and the programming has taken effect.
If you get the error message ‘Operation Failed. Failed to autobaud -step 1' this is likely because you haven't entered programming mode asshown above.
Linux
Flash magic is not available for Linux; an open-source alternative is:
Further instructions on request (the process is similar to the above).
Recovering from faulty firmware
It is possible to create faulty firmware that isn't able to correctlyboot on the microprocessor of the eDVS. If this firmware gets flashed tothe device, it won't be able to start correctly and you won't be able tosimply reprogram it as detailed above, since the whole infrastructure toenter programming mode via USB isn't available then.
To correct this, it's possible to manually force the microprocessor toenter programming mode directly, by shorting a specific pin to GND(ground). This pin is P2_7, more information can be found in Section6.2 'Pin description' of the LPC4337datasheet.
On the PCB, this pin is pulled up to VCC through a pull-up resistor bydefault, as can be seen here:
The track highlighted in red on the under-side of the board is the pinin question, and to pull it down you can simply short it momentarilywith GND. The following schematic extract shows also all the nearby GNDpads:
While the pin is shorted to GND, press the RESET button (blue button onboth sides of the board) and release it. If done correctly, the LEDshould stop blinking. The controller will then start directly inprogramming mode, so you can then use FlashMagic and the usual procedureto upload new, good firmware.
Accessing the device manually
It is possible to manually access the eDVS and send commands to itdirectly. This can be done by using any serial console emulation programand connecting it to the device (such as 'hyperterm' or 'putty' onWindows OS or 'minicom' in Linux).
Here is an example using the popular Putty program on Windows, which canbe downloadedhere.
Once you've downloaded Putty, just run its executable. In the Sessionsettings (top left), change the Connection type to Serial and thenwrite the correct COM port (in our case COM3) into the Serial linetextbox, and set the Speed to 4000000 for devices with serial number613xx or to 12000000 for devices with serial numbers 126xx. Then switchto the Serial settings (bottom left) and verify that they match whatyou just entered. Further, change Flow control to RTS/CTS (i.e.enable hardware handshaking) and ensure Data bits is 8, Stop bitsis 1 and Parity is None (often referred to as 8N1). Then switchto the Terminal settings (third from the top left), and tick ImplicitCR in every LF, as well as set to Force off both Local echo andLocal line editing.
After pressing the Open button, you'll be able to send commands to thedevice. The list of commands is available in the next section.
UART Protocol (PC->Board)
Supported Commands (all commands need to be terminated by ‘n'; i.e. return):
Enabling / Disabling Data Streaming
Use the !S command to enable or disable data streaming. Format:
!Snb,p
Baud (final Prototype) Mac Os Sierra
where n = ‘-‘ disables streaming and n = ‘+' enables streaming; p is theperiod (in milliseconds) and b is a bitmask (see below). Example:
!S+10,8
will stream the ADC channel 0 and channel 2 (10=0b1010) readings at125Hz (8ms).
upcoming (example) reply:
List of available sensory data:
Bit | Decimal | Name | # | Description | Format |
---|---|---|---|---|---|
0 | 1 | BATTERY | 1 | battery voltage (in mVolt) | up to 4 digits (0.9999) |
1 | 2 | ADC CHANNEL 0 | 1 | raw ADC reading from pin 2 | up to 4 digits (0.1023) |
2 | 4 | ADC CHANNEL 1 | 1 | raw ADC reading from pin 3 | up to 4 digits (0.1023) |
3 | 8 | ADC CHANNEL 2 | 1 | raw ADC reading from pin 4 | up to 4 digits (0.1023) |
4 | 16 | ADC CHANNEL 3 | 1 | raw ADC reading from pin 5 | up to 4 digits (0.1023) |
5 | 32 | ADC CHANNEL 4 | 1 | raw ADC reading from pin 6 | up to 4 digits (0.1023) |
6 | 64 | ADC CHANNEL 5 | 1 | raw ADC reading from pin 7 | up to 4 digits (0.1023) |
7 | 128 | RAW GYRO | 3 | raw gyroscope data (3 axes) (+/- 2000º/s) | +/- up to 5 digits (+/-32767) |
8 | 256 | RAW ACC | 3 | raw accelerometer data (3 axes) (+/- 2g) | +/- up to 5 digits (+/-32767) |
9 | 512 | RAW COMP | 3 | raw magnetic values (3 axes) (+/- 1229 uT) | +/- up to 4 digits (+/-4095) |
10 | 1024 | CAL GYRO | 3 | calibrated gyroscope data in dps | up to 8 hexadecimal digits (Q16) |
11 | 2048 | CAL ACC | 3 | calibrated accelerometer data in g's | up to 8 hexadecimal digits (Q16) |
12 | 4096 | CAL COMP | 3 | calibrated magnetic values in microtesla | up to 8 hexadecimal digits (Q16) |
13 | 8192 | QUARTERNION | 4 | 9 axis quarternion | up to 8 hexadecimal digits (Q30) |
14 | 16384 | EULER ANGLES | 4 | Euler angles in degrees | up to 8 hexadecimal digits (Q30) |
15 | 32768 | ROTATION MATRIX | 9 | rotation matrix | up to 8 hexadecimal digits (Q30) |
16 | 65536 | HEADING | 1 | heading in degrees | up to 8 hexadecimal digits (Q16) |
17 | 131072 | LINEAR ACC | 3 | linear acceleration in m/s^2 | up to 8 hexadecimal digits (Float) |
18 | 262144 | IMU STATUS | 2 | IMU status: temperature in milliC, time in milliSec | +/- up to 5 digits (+/99999)and (+/- 31 bits) |
19 | 524288 | PWM_SIGNALS | 4 | currently set PWM duty cycles (in uS and %) | +/- up to 3 digits (+/-1000000 and +/-100) |
20 | 1048576 | MOTOR_CURRENTS | 2 | motor currents from the motor driver (in mA) | up to 4 digits (0.9999) |
21 | 2097152 | EVENT_RATE | 1 | event rate (events per second) | up to 7 digits (0.1000000) |
28 | 268435456 | MOTOR_SENSORS | 2 | wheel tick counter (only present in PushBot) | +/- up to 11 digits( +/- 31 bits) |
Custom application sensors should use bits 28 - 31; bits 22 - 27 arereserved for future applications.
Event recording formats
Streaming
You can specify the following formats for data streaming:
Every timestamp has 1 us resolution.
Examples:
Format | Data packet |
---|---|
!E0 will result in data packets | 1yyyyyyy.pxxxxxxx |
!E1 will result in data packets | 1yyyyyyy.pxxxxxxx.1ttttttt (time stamp wrap-around after 2^7 us = 128 us) 1yyyyyyy.pxxxxxxx.0ttttttt.1ttttttt (time stamp wrap-around after 2^14 us = 16 384 =~ 16 ms) 1yyyyyyy.pxxxxxxx.0ttttttt.0ttttttt.1ttttttt (time stamp wrap-around after 2^21 us = 2 097 152 us =~ 2 sec) 1yyyyyyy.pxxxxxxx.0ttttttt.0ttttttt.0ttttttt.1ttttttt (time stamp wrap-around after 2^28 us = 268 435 456 us =~ 4.5 min) |
!E2 will result in data packets: | 1yyyyyyy.pxxxxxxx.tttttttt.tttttttt (time stamp wrap-around after 2^16 us = 65 535 us =~ 65ms) |
!E3 will result in data packets: | 1yyyyyyy.pxxxxxxx.tttttttt.tttttttt.tttttttt (time stamp wrap-around after 2^24 = 16 777 216 us =~ 16 sec) |
!E3 will result in data packets: | 1yyyyyyy.pxxxxxxx.tttttttt.tttttttt.tttttttt.tttttttt (time stamp wrap-around after 2^24 = 4 294 967 296 us =~ 72 min) |
Recording
For event recording on SD-card, the format is always as !E1 above, i.e.1yyyyyyy.pxxxxxxx (p = polarity), followed by 1-4 bytes delta-timestamp(7 bits each); this size depends on how much time has passed (see tablebelow):
Time | Data packet |
---|---|
< 128us: | 1yyyyyyy.pxxxxxxx.1ttttttt |
< 16384 us: | 1yyyyyyy.pxxxxxxx.0ttttttt.1ttttttt |
< 2097152 us: | 1yyyyyyy.pxxxxxxx.0ttttttt.0ttttttt.1ttttttt |
else | 1yyyyyyy.pxxxxxxx.0ttttttt.0ttttttt.0ttttttt.1ttttttt |
(a leading 1 in a time stamp byte indicates the final byte oftime-stamp)
Connectors
The input voltage available in the connectors is the one present beforethe voltage regulator for the board. Most pins available have secondaryfunctions that can be used if needed.
I2C is available in the PWM outputs connector.
All connectors on the board are this type (6 pin or 8 pin):
If you want to connect to your custom device, consider acquiring some ofthose cables:
GPIO
Pin | Primary Function | Secondary Function(s) |
---|---|---|
1 | Supply Voltage | |
2 | GPIO2[5] | PWM Channel A 2 |
3 | GPIO2[6] | PWM Channel A 2 |
4 | GPIO2[2] | PWM Channel C 0 |
5 | GPIO5[12] | Timer2 Capture 2 |
6 | GPIO5[13] | Timer3 Capture 1 |
7 | GPIO5[14] | Timer0 Capture 2 |
8 | GND |
ADC
Pin | Function |
---|---|
1 | Analog Supply |
2 | ADC 0 |
3 | ADC 1 |
4 | ADC 2 |
5 | ADC 3 |
6 | ADC 4 |
7 | ADC 5 |
8 | Analog GND |
PWM Outputs
Pin | Primary Function | Secondary Function(s) | |
---|---|---|---|
1 | Supply Voltage | ||
2 | PWM Channel A 0 | TWI SDA | GPIO5[3] |
3 | PWM Channel A 1 | TWI SCK | GPIO5[4] |
4 | PWM Channel B 0 | GPIO5[15] | |
5 | PWM Channel B 1 | GPIO5[16] | |
6 | PWM Channel C 0 | GPIO5[7] | |
7 | PWM Channel C 1 | GPIO1[10] | |
8 | GND |
SPI
Pin | Primary Function | Secondary Function(s) |
---|---|---|
1 | Supply Voltage | |
2 | MOSI | GPIO0[9] |
3 | MISO | GPIO0[8] |
4 | SCK | |
5 | SSEL | GPIO0[4] |
6 | GND |
UART0 (Slave)
Pin | Primary Function | Secondary Function(s) |
---|---|---|
1 | Supply Voltage | |
2 | RXD | GPIO5[1] |
3 | TXD | GPIO5[0] |
4 | GND | |
5 | CTS | GPIO1[8] |
6 | RTS | GPIO0[10] |
UART is already set up in the default firmware. The UART0 port can beaccessed from outside and it supports exactly the same command structurethat USB supports, since the USB connection is in the end provided by anFTDI chip connected to UART0. This means you can get events from iteasily.
UART1 (Master)
Pin | Primary Function | Secondary Function(s) |
---|---|---|
1 | Supply Voltage | |
2 | TXD | GPIO1[14] |
3 | RXD | GPIO1[7] |
4 | GND | |
5 | RTS | GPIO2[11] |
6 | CTS | GPIO2[133] |
Optional: WLAN module
It is possible to connect a WLAN module to the eDVS using a cross-overcable, or directly to the eDVS+PushBot system.
This module connects to UART0 and substitutes as a Master in place ofthe USB cable and connector. It is important that USB not be connectedwhen trying to operate the WLAN module!
It will then be possible to connect to the WLAN module and send commandsto it exactly like you did via USB.
The WLAN module itself needs to be programmed, to set the various WLANparameters like SSID, encryption and so on.
The WLAN module automatically enters programming mode when it can't findor connect to the currently configured WLAN (this will always be thecase on newly purchased modules, which are configured with an ‘iniVation'SSID).
Connecting the wlan module to PC via USB->UART
To do the programming, you need a separate USB->UART programmer, aswell as a cross-over UART cable. Both are included when you purchase theWLAN module. Proceed as follows:
1) Connect the cross-over UART cable to the USB->UART programmer, and to the WLAN module's left UART port.
2) Connect to it exactly as you would connect to an eDVS, please refer to Accessing the device manually
3) Write ?? to get a list of all possible supported commands. Note that in recent WLAN modules that code has been changed with a ‘$$$' followed by the sign ‘>'. To get help on the command line type ‘help all', it will display a list of all available commands.
4) -S scans for all available networks in range and displays them.
5) You'll need to set at least SSID (-WS=), encryption type (-WE=<0,1,2,3>) and encryption key (-WK=).
6) Type -W! to save the settings.
7) Reset the module by powering it off and on again.
The WLAN module automatically connects to the network that has beenconfigured at power-on. The red LED will blink at a frequency ofapproximately once per second if the connection succeeded. In this case,you can then connect to it using its IP address and send commands. Ifthe connection to the saved WLAN fails, the red LED will start blinkingvery quickly, and the module will automatically enter programming mode,which, as described above, allows you to set its parameters and re-try.
To speak to the module once it's up and running, connect to it using itsIP address, port 56000 and the TCP protocol.
Any terminal program that supports telnet connections will do, forexample PuTTY.
It is also possible to enter programming mode over the network, bysending the following character sequence to the module:
///
Wait for one second, send three forward slashes, and again wait for onesecond.
Configuring the WIFI network credentials on the module with putty (new ZentriOS wlan module)
After connecting the module with the separate USB->UART programmer, aswell as a cross-over UART cable. Both are included when you purchase theWLAN module. You will need to connect via putty as described in thesection above.
a) To enable configuration of the wlan module, quickly type '$$$'in the putty console, then a '>' characterwill show up indicating that the device is in command mode
b) Type 'set wlan.ssid YOUR_NETWORK_NAME' to set the network name
Baud (final Prototype) Mac Os Sierra
c) Type 'set wlan.passkey YOUR_NETWORK_PASSKEY' to set the passwordof your network
e) Type 'set wlan.auto_join.enabled true' to enable auto joining thenetwork
f) This step is very important Type 'setuart.baud 1 4000000 raw' to set the baudrate to 4M, so thenext time you connect the module via serial, remember to set thebaudrate to 4M instead of 12M
g) Type 'set bus.mode stream' to enable the module to stream data fromthe pushbot
h) Type 'get wlan.mac', and the mac address of the module will showup, please note it down because it mightbe used in the later steps when we want to find it's allocated IPaddress
i) Type 'save' to save the settings
j) Type 'reboot' to reboot the module
Configure the wlan module via tcp (the Telnet function on putty) after we get the mac address of the module in the previous section
a) Connect the module to serial port again just like in section3 (remember to set the baudrate to 4M instead of12M because we have reset it in the previous section), it shallautomatically connect to the previously setnetwork.
b) Quickly type '$$$' in the putty console to enter command mode
c) Type 'get wlan.network.ip' to get the IPv4 address of the moduleallocated by the network
d) Close the serial port, but keep the module powered on
e) Now that we know the IP address, we can connect to the module viatelnet
f) Open putty again and choose the Connection Type as 'Telnet'
g) Enter the IP address of the module we just got, and the port number56001, then press 'Open', and the PCshould be able to communicate to the module via tcp now
Baud (final Prototype) Mac Os 11
h) ##### Alternatively, we can also fetch the IP address by usingnetscaning tools(e.g. 'arp-scan' on linuxand MAC OS) and look for the respective mac address of the wlan module
Communicating with the pushbot via wifi
Baud (final Prototype) Mac Os 7
Use a WLAN module (use batteries in the robot, but NO USB cable), open aTCP socket to 'IPWLANMODULE 56000' (note: use port 56000; Send commandsand/or read data. The DVS data/commands and the 'Pushbot' data/commandsare interleaved (both on the same communication channel).
Your software has to handle the 'split' between what is retina data andwhat is pushbot data (e.g. wheel encoder, IMU sensor).
Optional: PushBot
The PushBot is powered by 4xAA batteries (not supplied). There is apower switch on the base which should be switched to the ON position.
Connecting the PushBot to the eDVS is easy. Just plug the eDVS into thefront of the PushBot, and you're ready to go right away, if using theUSB connection. To connect to the eDVS, use the same settings asusual. The commands arealso the same, but certain ones, to enable or disable the motors forexample, will now work on the PushBot.
The PushBot gets really interesting if you've got a WLAN module too, soyou can actually control the robot from a distance.
The WLAN module needs to be connected to the back-side of the robot, asshown below (right UART port on WLAN module to only UART port on PushBotback-side). Please ensure that the WLAN module is configured and able toconnect to a network first!
Custom baudrate on Linux
The new eDVS-4337 boards have a FTDI232H chip which is able to support data rates up to 12MBaud.You can use a simple serial server software which gets packets from the serial line (coming from eDVS) and sends them over TCP/IP.If you choose to use your own software to acquire the data from the sensor you might have to configure the serial port access as shown here:
Just copy the code in a file named custom-edvs-iface.c and run from command line:
PushBot Documentation
LEDs blinking at 1Hz with 50% duty cycle
Laser Pointer blinking at 1KHz with 50% duty cycle
Buzzer buzzing at 2500KHz with 50% duty cycle