Posts Tagged ‘tool’
Orange Pi Development Boards

Human Readable Decoding of /proc/cpuinfo for Arm Processors

February 14th, 2018 13 comments

One of the most common way to get CPU information is to check the content of /proc/cpuinfo. For example, this is the output I get from running the command on NanoPi NEO (Allwinner H3) board:

Many fields are self-explanatory, but what about CPU implementer and CPU part numbers? Those are values stored in Arm’s CPUID Base Register, and 0x41 looks up to Arm implementer, while 0xc07 refers to Cortex A7. But I had to look it up to find out.

One solution would be to decode those values in the kernel, but the developers won’t do that probably because it may break user-space programs that rely on hexadecimal values. So instead,

In the meantime, I could try it out by compiling the code myself:

Let’s now run our freshly compiled lscpu to see if an Arm Cortex A7 processor is detected:

It works as ARM Cortex-A7 revision 5 is shown. It does not follow Arm’s new lower case logo / name, but who cares 🙂 We can see most of the information provided by /proc/cpuinfo and more, but the BogoMIPS number is different, and the last three lines with Hardware, Revision and Serial are not shown.

It’d be particular interesting to test it on products or boards with processors featuring custom Arm cores such as you should get values like “Qualcomm Krait” or “Marvell PJ4/PJ4b”.

Categories: Linux, Processors Tags: arm, Linux, tool

Getting Started with IkaScope WiFi Pen-Oscilloscope, and ScanaQuad SQ50 USB Logic Analyzer & Signal Generator

February 5th, 2018 8 comments

A couple of weeks ago, I received IkaScope WS200 pen-like WiFi oscilloscope, as well as ScanaQuad SQ50 USB logic analyzer & signal generator, and I’ve already checked out the hardware both both in a aforelinked unboxing post. I had also very shortly tried IkaScope with GOLE 10 mini PC, but just to showcase potential use case for a Windows 10 mini PC with an inclined touchscreen display. But at the time I did not really a proper measurement, as it was more to test the mini PC than the oscilloscope itself.

I’ve now had time to test IkaScope desktop program and mobile app in respectively Ubuntu 16.04 and Android 8.0.0, as well as ScanaStudio for ScanaQuad USB device using Ubuntu 16.04 only, since there’s no mobile version of the program. While I’ll focus on Ubuntu and Android, most of the instructions will be valid for Window 10 and Mac OS X for the desktop programs, and iOS for the mobile app. This will be more of a getting started guide / basic tutorial, than a review, as I’ll go through some of the issues I may have come across, and show the basic functions of the program/app.

IkaScope connected to Xiaomi Mi A1 Smartphone – Click to Enlarge

IkaScope with Android and Initial Setup

My original plan was to test the oscilloscope with my computer running Ubuntu 16.04, and then switch to Android. However, my computer is connected to the network via Ethernet, and I don’t have a spare working WiFi dongle anymore. The oscilloscope can also work with Ethernet only devices, as long as WiFi is configured in station mode, but by default it starts in access point mode, so I had to change my plan and instead install IkaScope Android app on my smartphone first.

Click to Enlarge

The app is still shown to be in development / a beta version, but as I did not encounter any critical issues, except at the beginning. To turn on the oscilloscope you have to press the probe tip, and should soon see the white LED blink, meaning some “IkaScopexxxx” access point should be setup and ready to go. However, after several attempts, I failed to find any IKASCOPE ESSID in the list of access point. Based on some recommendations on the Internet, I installed WiFiManager, and lo-and-behold IKDASCOPE-…200-00493 SSID showed up. I could easily connect to it, and since it’s an open network, no password is needed.

Time to launch IkaScope app. First you’ll go through a very short wizard showing the key zones in the app, and then we can tap on the top left corner, and click on Connect. It should then show your IkaScope in AP mode (White). 

While you could just select it, and start measurements like when I did when I played with in in Windows 10, it is recommends to switch to station mode. To do so, tap on the setup/configuration on the right side, which should bring you to the “add a network” page as shown below.

You can add just one, but if you add more, you’ll likely get better coverage. Note that the oscilloscope on supports 2.4 GHz, so your 5 GHz ESSID won’t show up.

Now you can go back, maybe wait for the oscilloscope to turn off, and turn it on again by pressing the tip, and a solid Blue LED should show on the device…

.. STA mode (Blue) icon will have replaced the AP mode (white) icon in the mobile app.

Go back again, and you’ll see IKASCOPE WS200 connected in station mode. The screenshot below also shows “CNX-SOFTWARE_5GHz” ESSID, but that’s the connection used by the phone, not the scope.

I’ll detailed the options about the app into more details in the Ubuntu section as they have the same features, and I could only find some cosmetic differences between the mobile and desktop version. I still used the Android app to measure the 16 MHz clock signal from an Arduino Leonardo clone as shown in the top picture.

You can see a short demo about the measurement below.

IkaScope in Ubuntu 16.04

Now that IkaScope WS200 probe is in station mode, I can use it with my Ethernet connected Ubuntu 16.04 computer.

You’ll find IkaScope desktop program on the company website for Windows (.exe) , Linux, and Mac OS X. In the case of Linux, the program is distributed as a tarball, which you need to extract, before running the installation script:

There’s also a an script to remove the program if you don’t need it anymore. Note the tools only work on 64-bit x86 platforms (x86-64).
After installation IkaScope can be found in the dash, but if I click on the icon, nothing happens, even after a reboot. So I launched it from the terminal instead:

Just like  in Android, you’ll get through a short “tutorial” at the beginning showing the main parts of the interface. Click on IkaScope icon on the top left corner of the program, and connect to find IkaScope.

My probe was  already setup in Station mode, so all I had to do was to select, but if you are using a computer with WiFi, and WS200 probe is in AP mode, you’ll need to connect to the access point, and ideally change that to station mode as shown in the Android section.

I did the same measurement on Arduino Leonardo board, but without using AUTOSET at first. You could then change the voltage and time resolution and offset as needed, but in most case, you’ll probably want to simply use AUTOSET to let the program automatically select the best settings.

A 16 MHz signal has a 62.5 ns period, so first I used the cursor in TIME mode, and moved A and B to confirm both the period and frequency.

Cursors can also be used for voltage (vertical scale). An easier to check the frequency is to use the Measure menu, which allows to automatically reports frequency, period, width, duty, voltage average/peak-to-peak/rms/max/min, and rising and falling times.

Other options include coupling (DC or AC), and Trigger which can be set to automatic, normal, single, rising / falling / both edges  as shown in the screenshot below.

There’s no math function, but I’ve read the company may implement FFT and other functions in the future. I charged the oscilloscope around two weeks ago, and battery level is still well higher than 50%, even after that review. The company estimates a charge should last around one week with a typical use. That’s because the oscilloscope will automatically turn off if it is not being used.

ScanaQuad SQ50 Logic Analyzer in Ubuntu 16.04

Let’s now move on to ScanaQuad SQ50 USB logic analyzer. We’ll need ScanaStudio program available for Windows, Linux, and Mac OS X. That’s what I had to do to install the program in Ubuntu 16.04:

Contrary to Ikascope program, ScanaStudio will install on both 32-bit and 64-bit x86 operating systems. An uninstall script is also provided.

Again the icon can be found in the Dash, but clicking on it won’t launch the program, so I started from a terminal:

The first time I launched the program I was prompted to update the protocols, which are written in JavaScript, and open source with the code on Github.

Click on Download / Update checked button to have the latest protocols loaded into the program. After that, you should get to the main user interface.

I clicked to create a new workspace, which showed several ScanaQuad “demo” devices, but no way to connect to the actual hardware.

However, after searching in the knowledge base, I found out I may have to use the Device wizard compatibility, which can be accessed from the top right icon, and will start a 5-step wizard asking you to disconnect any SUB serial device – including your ScanaQuad -,and reconnect the ScanQuad.

Everything is pretty self-explanatory, and this step may be needed in either Linux or Mac OS X, but not in Windows. You should now see your ScanaQuad USB logic analyzer listed when creating a new workspace, possibly after a reboot (but not needed here).

I selected ScanaQuad SQ50, and clicked on Create workspace button. The very first time, I had to wait as ScanaStudio updated ScanaQuad firmware, which took around a minute. Your workspace should now be shown with the 4-channel used by the tool and some default configuration.

Click to Enlarge

Since last week I reviewed tinyLIDAR, a board based on STM32L0 MCU + VL53L0X ToF sensor that returns the distance from obstacles up to 2 meters away, and that interfaces with the host processor over I2C, I decided to monitor I2C signals with the device.

Click to Enlarge

I connected the black probe to a ground pin, the green probe to SCL, and the red probe to SDA as shown above.

Click to Enlarge

In ScanaStudio, I set sampling rate to 1 MHz, voltage to 5V, clicked on Add new in the Protocols section, selected I2C from the list, assigned CH 3 (Red) to SDA  and CH 4 (Green) to SDL, and clicked Finish. Finally, I also set a trigger to start capture whenever I2C signals are detected.

Click to Enlarge

Now we can click Start at the top right of the interface to make the program wait for the trigger. Going the “Arduino GUI terminal” for tinyLIDAR board, I press enter to read distance (2 byte) from I2C device with address 0x10.

The command ‘D’ should be 0x44 according the ASCII table, and the distance returned is 120 mm.

Click to Enlarge

Right after pressing enter, ScanaStudio captured the SDA and SCL signal and decoded data with a write and a read command as expected:

  • Write 0x10 with 0x88
  • Read 0x10 with 0x00 and 0x78

I would have expected 0x44 (‘D) in the write command, but for some reasons I have not looked into, the command is shifted by one bit. The read data is however fully as expected as 0x78 converted to 120 mm.

I then made the sensor to face the ceiling in order to get a longer distance and use the two fields.

The terminal reports 1823mm, and the I2C capture show 0x071F distance which indeed converts to 1823 mm. So all good here.

If you’re interested in the other supported protocols, you could check out the aforelinked Github repository, and the screenshot below (correct as of February 5, 2018).

More protocols may eventually be supported, or you could roll your own JavaScript decoder if needed.

ScanaQuad SQ50 Signal Generator in Ubuntu 16.04

ScanaQuad also works as a signal generator using the same ScanaStudio program. Mixed mode is supported too, with two inputs for the logic analyzer, and two outputs for the signal generator. I expected to be able to  easily generate sine waves, square waves, and sawtooth waves, but one you switch to Generator mode, the only two options in the Signal builder section are:

  • Square signal wizard up between 1 Hz and 12.5 MHz (min/max values depend on sampling rate) with with duty cycle slider.

Click to Enlarge

  • Signal builder script

Click to Enlarge

The latter has template with all sort of signal include 1-wire, HDMI-CEC, MODBUS, PWM, SPI, and so on. It also mean you should be able to create seesaw and sine waves, but you may have to work (i.e. write some JavaScript code) for it.

Instead of feeding back the signal to the device in mixed mode, I used SQ50 to generate signals, and WS200 probe for measurement.

  • CH1 generating 12.5 MHz square wave with 25% duty cycle

Not what I would call a neat square signal, and the 25% duty signal is not quite right either due to the distorsion.

  • Let’s lower the frequency to 1 MHz with the same duty cycle.

That’s more like it, although there’s still some noise.

    • CH2 generating FM signals

The waveform looks fairly good, and matches the one defined in ScanaStudio.

I’d like to thank Ikalogic for the opportunity to test their measurement devices. IkaScope WS200 oscilloscope sells for 299 Euros exc. VAT, while ScanaQuad SQ50 goes for 89 Euros exc. VAT, and other USB LA+SG models with better specifications such as SQ200 go for up to 149 Euros.

The Stress Terminal UI (s-tui) is a Pretty CPU and Temperature Monitoring Terminal App

August 30th, 2017 12 comments

While it’s possible to do monitoring with tools like RPI-Monitor on headless or remote systems, top and htop are likely the commonly used tools to monitor CPU and process usage in the terminal. There’s now a new and different option with the Stress Terminal UI that display pretty charts for frequency, CPU usage, and temperature in the terminal, and as its name implies it can also stress the system.

I’ve first installed it in my main computer running Ubuntu 16.04.2 as follows:

and then just started it

It took the screenshot above after enabling stress operation for a few seconds, and while frequency and CPU utilization in percent are updated properly, temperature is not, at least on my system. I had to enable “Smooth Graph” option to see any changes in the first two charts. I tried to run the app again with sudo, but still no temperature update, and that’s because the program is confused since I have two “temp1” values in my machine, one for “it8720” that will always show a constant temperature (45 °C) and one for “AMD CPU” that will vary depending on the load.

Click to Enlarge

A good solution would have to have an option to select the sensor, but there’s no such option for s-tui right now:

I switched to an ARM platform, namely NanoPi NEO board:

So it does not work with Python 3, and requires Python 2.7. Let’s give it another try:

I could install it and run it, but only CPU and temperature charts would be drawn.

The temperature sensor may have not been detected due to the following error:

msr appears to be be something called “model-specific registers”, and only used for x86 CPU, so ARM detection did not work or was not performed here. The developers did test the program successfully with a Raspberry Pi 3 board however. He’s also aware of issues with temperature sensors:

If the temperature does not show up, your sensor might not be supported. Try opening an issue on github and we can look into it

So overall, it’s still work in progress. Support for showing info for multiple cores would be nice, but probably only suitable in a full screen terminal.

Via It’s FOSS

Categories: Linux, Testing, Ubuntu Tags: arm, how-to, Linux, tool, ubuntu, x86

HT-01 “Helping Hand” Soldering Stand Comes with 6 Arms, a USB powered Fan

July 7th, 2017 2 comments

I have a “helping hand” in my office with two flexible arms and alligator clamps, and a magnifier that I use sometimes to solder or unsolder components more easily. The metallic arm are not always easy to put in the right position, and the base is not always heavy enough, but it does the job most of the time. But I’ve just come across with a helping hand station with 6 flexible gooseneck arms that may allow for more positions and easier setup, as well as hold a USB powered fan to such out fumes or blow them away, and/or a lamp.

HT-01 soldering station features:

  • Aluminum alloy base – 140 x 100 x 12mm (purple or black)
  • 6x universal joint pipe of 300mm length with alligator clip
  • 1  5V USB output regulator plate with two USB ports up to 5V/3A to connect fans
  • 1x 5V USB Fan
  • 1x Soldering Iron Holder
  • Power Input  for battery?
  • Product weight – 580g

I first found it on GeekBuying for $41.99 shipped, but there are similar designs minus the USB ports, on Amazon US and Banggood. The video shows an unboxing and short test of the model sold on Banggood.

Categories: Hardware Tags: electronics, tool

HDFury Vertex is a High-End HDMI 2.0 Splitter, Scaler, and Diagnostic Tool

July 4th, 2017 No comments

Most people won’t need this, but if you are working on HDMI, HDFury Vertex HDMI 2.0b splitter and scaler could be a very useful product. It comes with one HDMI 2.0b input port, two HDMI 2.0b output ports, some audio ports, an OLED display showing EDID, HDR, and other information, and a Windows tool allowing you to find out the full details about your HDMI connection over USB.

HDFury Vertex hardware specifications:

  • HDMI revision: HDMI 2.0b (Level A) 600Mcsc – 18Gbps
  • Max Resolution: 4K60 4:4:4 8b, 4K60 4:2:2 12b, 4K120 4:2:0 8b or 8K30 4:2:0 8b
  • I/O – 2 HDMI In, 2 HDMI Out, IR, RS232, USB, Analog Jack, Optical Out.
  • Upscale port – FHD 1080p to UHD 2160p & 4K/DCI
  • Downscale port – UHD 2160p & 4K/DCI to FHD 1080p
  • Signal Conversion – Resolution, Chroma Subsampling, Color Space, Color Depth, HDCP
  • HDCP Conversion – Any HDCP to any HDCP with CST1 support
  • Operating Modes – 18Gbps Scaler, Splitter & Matrix with CEC, ARC and EDID management
  • Special Modes – CEC Command, HTPC, Disable HDR, HDMI Doctor and booster.
  • EDID Modes – 10 EDID Flags, 100 EDID Banks (10 custom)
  • Infoframe Modes -: Capture, edit, block or replace HDR metadata, AVI & VSIF, Read SPD, Audio, HDMI Vendor, HDMI Forum
  • On Screen Display – Editable with custom text and mask. (cover TV channel logo)
  • OLED Display – 3.12″ diagonal, 256×64, 32 green colors
  • Dimension – 10 x 6 x 3 cm
  • Weight – 130g

The unit ships with a power supply and  a mini USB cable by default, but the company also optionally offers a Smart PSU for power monitoring, HDMI cables, and a GoBlue kit to add Bluetooth connectivity in case you want to use the Android/iOS app for monitoring data.

Sample Info Displayed on OLED Display

The picture above shows what kind of info you can expect to show on the OLED display with info about HDMI in, HDMI out, etc… But if you really to get the full HDMI details and control, you can connect the device to your computer USB port, and install VERTEX UTILITY Windows GUI 0.5.

There’s also a public API/DLL (but where? I could not find it…) to develop your own program for Vertex. You’ll find more details including the mobile apps, the Windows program, the user guide, and other documentation in the product page, where you can also pre-order HDFury Vertex for $349 with delivery scheduled for November 2017…

Categories: Hardware, Testing Tags: hdfury, hdmi, tool

Android Studio 3.0 Preview Release with Support for Kotlin Programming Language, Android O Preview Images

May 18th, 2017 No comments

Most Android apps used to be programmed in Java with the Eclipse IDE, then Google introduced Android Studio in 2013 which has now replaced the latter, and with the release of Android Studio 3.0 Canary 1 preview, the company is now offering developers to program apps using Kotlin language instead of Java.

Click to Enlarge

Kotlin programming language is 100% compatible with Java language, and you can even mix Kotlin and Java in your code. Kotlin can make your code much more simple while declaring classes, and it has a few other improvements over Java. Android Studio also include a Java to Kotlin converter. The language has already been used by Expedia, Flipboard, Pinterest, Square, and others.

Android Studio 3.0 also brings many other improvement, such as performance profiling tools for the CPU, memory, and networks showing your app performance in real-time, and faster Gradle builds for large sized app projects.

Android Studio 3.0 also brings changes specific to the Android platform development such as:

  • Support for Instant App development
  • Inclusion of the Google Play Store in the Android O emulator system images
  • Font resources management
  • New wizards for Android O development, etc..

The video below gives a good overview of the many changes done in Android Studio 3.0.

You can download Android Studio 3.0 Canary 1 for Linux, Windows, or Mac to give it a try. It’s also a good way to try Android O, if you don’t own a recent Nexus or Pixel device, or don’t want to flash a beta image to your phone.

$79 Digilent OpenScope Open Source Multi-function Programmable Instrument Works over USB and WiFi (Crowdfunding)

February 1st, 2017 8 comments

Digilent OpenScope is an open source, portable, multi-function programmable instrument used for capturing, visualizing, and controlling analog and digital signals, that works with your smartphone or computer over USB or WiFi, and it can also be used in standalone mode as a development board, like you would use an Arduino or Raspberry Pi board.

OpenScope MZ key features and specifications:

  • MCU – Microchip PIC32 MZ (MZ2048EFG124) MIPS Warrior M-class micro-controller @ up to 200 MHz with 2048KB flash, 512 KB RAM
  • External Storage – micro SD slot
  • Wireless Connectivity – WiFi module
  • USB – 1x micro USB for power and programming over FTDI
  • Programming / Debugging – micro USB port, programming header
  • Expansion – 30-pin Fly Wire connector with:
    • 2x scope channels with 12 bits @ 2 MHz bandwidth and up to 6.25MS/s sampling rate
    • 1x function generator output with 1 MHz bandwidth and up to 10MS/s update rate
    • 10x user programmable DIO pins up to 25 MHz update rate
  • Misc – 4x user LEDs, programming and reset buttons
  • Power Supply – via micro USB or ext pin; programmable power supplies up to 50 mA and +/- 4V

The platform can be used with (soon-to-be) open source, web based Waveforms Live multi-instrument software written in JavaScript and allowing you to  use OpenScope as an oscilloscope, a function generator, a logic analyzer, a power supply, or a data logger.

Since the software runs in a web browser it will work with most operating systems including Linux, Windows, Mac OS X, Android or iOS. As mentioned in the introduction, OpenScope is also a development board, and can be programmed using the Arduino IDE or Microchip MPLAB-X IDE. The company will provide  a programmer’s guide, and make PIC32MZ firmware, the agent source code, the browser app for Android & IOS, the communication protocol, and the JavaScript API available on Github

Digilent launched OpenScope on Kickstarter, where the board can be backed together with a 3D printed enclosure for $79. An “OpenScope Learning Edition” is also offered for $150 with a “parts kit with workbook example”, but no details have been provided for the latter. Delivery is planned for June or August 2017 depending on selected reward, and shipping is free to the US, but adds $20 to the rest of the world.

BitScope Blade Industrial Mounting & Power Systems Support Up to 40 Raspberry Pi Boards

January 27th, 2017 12 comments

BitScope Designs, a manufacturer of embedded mixed signal test, measurement and data acquisition systems, has announced the launch of a new models of their industrial desktop, rack or wall mountable power and mounting power systems with BitScope Blade Uno, Duo, and Quattro supporting respectively 1, 2 and 4 Raspberry Pi 3/2/B+/A+ boards. The blades can also be mounted in a 19″ rack with up to 40 Raspberry Pi boards.

The three systems share many of the same specifications:

  • Power Supply

    40 Rapsberry Pi Rack with (Older Versions) of BitScope Blade Quattro

    • Unregulated 9V to 48V DC power, compatible with most 12V & 24V UPS, most DC solar power systems
    • 4A (peak) switch mode supply built-in
    • 2.1mm socket or industrial power tabs
    • Can be used with low cost passive PoE,
    • Can power external USB, HDD & SSD
    • 5V auxiliary power for example for Pi Display
  • Expansion& I/O ports
    • Full access to RPi’s I2C, SPI, UART & most GPIO
    • Slot for camera connector for each Pi
    • HDMI and audio accessible from Pi in BAY one
    • Blade HUB I/O expansion sockets for each Pi
    • Compatible with BitScope CAP industrial I/O
  • Mount System
    • Rack mount to build compute cluster solutions
    • 4 x 3mm tabs and wall mounting stand-offs

Wall Mounted BitScope Blade Duo (Older Version) with2 Raspberry Pi boards

Each model also has specific features:

  • BitScope Blade UNO (BB01B)
    • Designed for one Raspberry Pi and one HAT
    • Power and connect up to 4x BitScopes
    • Raspberry Pi power control header,
    • 2x USB power sockets
  • BitScope Blade DUO (BB02B)
    • Designed for 2x Raspberry Pi boards
    • Power and connect up to 8x BitScopes
    • Individual power and reset inputs for each Pi
  • BitScope Blade QUATTRO (BB04B)
    • Designed for 4x Raspberry Pi boards
    • Power and connect up to 16x BitScopes
    • Individual power and reset inputs for each Pi.

Back side of BitScope Blade Duo – Click to Enlarge

The HUB CAP expansion sockets are used to connect BitScope mixed signal scopes & analyzers, which can be controlled by BitScope DSO software running on the Raspberry Pi board with oscilloscope, logic analyzer, wave generator, and other modes of operation.

You’ll find a few more details on the press release, and the new BitScope Blades can be purchased exclusively on Element14 starting at 32.5 GBP (~$41 US). BitScope also has a “Blades” product page, but it is currently referring to the older versions.