Synaptics TouchPad on Panasonic CF-MX4

This wulf7 [1] is a really nice guy that helped me run full featured Synaptics TouchPad with FreeBSD on Panasonic Toughbook CF-MX4 [2][3]. Now it works for moused and libinput with all multitouch gestures like two or three finger scroll, scale, etc! The problem was in detection mechanism as device is connected over multiplexer with both PS/2 and SMBus but multitouch works only over SMBus. Although fix requires change and rebuild of FreeBSD Kernel I hope it gets quickly to the upstream [4]. I had a chance to exercise building whole FreeBSD distribution into the USB memstick image, so I could test driver fix on a target computer without even touching its hard drive contents :-)

/* psm has a special support for GenMouse + SynTouchpad combination */
if (active_ports_count >= 2) {
    for (port = 0; port < KBDC_AUX_MUX_NUM_PORTS; port++) {

That 2 above had to be changed into 1 in /usr/src/sys/dev/atkbdc/psm.c. Nice? That’s what I call a one-bit-fix :-)

In addition, when you work with Synaptics Touchpad in Xorg and you want to use its all features like tap-to-click, natural (swapped) two finger scroll, two and three finger gestures, don’t use moused,xmodmap, or xinput as this will produce inconsistent behavior in applications based on different toolkits (i.e. GTK will scroll up while Qt will scroll down etc), instead use the new way of input based on libinput and modify MatchIsTouchpad section of /usr/local/share/X11/xorg.conf.d/40-libinput.conf like:

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event5"
        Option "NaturalScrolling" "on"
        Option "Tapping" "on"
        Option "ClickMethod" "clickfinger"
        Driver "libinput"
EndSection

[1] https://github.com/wulf7/iichid
[2] https://github.com/wulf7/iichid/issues/51
[3] https://github.com/wulf7/iichid/issues/53
[4] https://reviews.freebsd.org/D28502

JTAGulator

I just did a self-assembly of JTAGulator. This simple and amazing device indeed works and shortens JTAG pinout search from days to seconds. AMAZING! I have some spare devices to sale cheap in EU, if you want one let me know! :-)

JTAGulator is an open source hardware tool, created by Joe Grand / Grand Idea Studio, that assists in identifying OCD connections from test points, vias, or component pads on a target device. All you need is a target device, bunch of tap wires / cables, USB-Mini cable, and serial terminal to operate JTAGulator.



On-chip debug (OCD) interfaces can provide chip-level control of a target device and are a primary vector used by engineers, researchers, and hackers to extract program code or data, modify memory contents, or affect device operation on-the-fly. Depending on the complexity of the target device, manually locating available OCD connections can be a difficult and time consuming task, sometimes requiring physical destruction or modification of the device.

LibSWD-0.7 RELEASE

It is my great pleasure to inform you folks that, almost after four years, I did a new release of LibSWD-0.7 [1], a low-level embedded systems access open framework. Special thanks goes to Andrew Parlane of Carallon Ltd [2] for his much appreciated contributions! Well now I feel like I need to invent some nice small device based on ARM Cortex-M0 CPU :-)

[1] https://github.com/cederom/LibSWD
[2] http://www.carallon.com/

OrangeADE: Orange Autonomous Device Evaluation

I have recently started the OrangeADE project [1], that is Orange Autonomous Device Evaluation, an online platform to evaluate security level of network equipment and verify against known vulnerabilities. OrangeADE is released as Open-Source under the “new” 3-Clause BSD license. Enjoy the work in progress! :-)

[1] https://github.com/CeDeROM/OrangeADE

Is Blend4Web a Blender Game Engine replacement?

You just need to see this awsome Mars Curiosity [1] simuluator [2] made by NASAJPL [3] with Blender3D [4] Blend4Web [5] HTML5 [6] WebGL [7] Free and Open-Source Software :-)

Screen Shot 2017-01-15 at 15.25.15

[1] https://www.nasa.gov/mission_pages/msl
[2] https://eyes.nasa.gov/curiosity
[3] http://www.jpl.nasa.gov
[4] https://www.blender.org
[5] https://www.blend4web.com
[6] https://www.w3.org/TR/html5
[7] https://www.khronos.org/webgl

FreeBSD Synaptics Trackpad/Touchpad

Use advanced features of your Synaptics Trackpad on a laptop running FreeBSD [1] with:

  • set in /boot/loader.conf:
    hw.psm.synaptics_support="1"
  • set in /etc/rc.conf:
    moused_enable="YES"
  • set in /etc/X11/xorg.conf:
    Section "InputDevice"
        Identifier      "Mouse0"
        Driver          "mouse"
        Option          "Protocol"      "auto"
        Option          "Device"        "/dev/sysmouse"
        Option          "ZAxisMapping"  "4 5 6 7"
    EndSection

If you want to have “MacBook” like two-finger scrolling along with other parameters you can set in /etc/sysctl.conf:

hw.psm.synaptics.min_pressure=16
hw.psm.synaptics.max_pressure=220
hw.psm.synaptics.max_width=10

hw.psm.synaptics.vscroll_hor_area=1300
hw.psm.synaptics.vscroll_ver_area=-600
hw.psm.synaptics.vscroll_min_delta=50
hw.psm.synaptics.vscroll_div_min=100
hw.psm.synaptics.vscroll_div_max=150

hw.psm.synaptics.weight_current=3
hw.psm.synaptics.weight_previous=6
hw.psm.synaptics.weight_previous_na=20
hw.psm.synaptics.weight_len_squared=2000

hw.psm.synaptics.div_min=9
hw.psm.synaptics.div_max=17
hw.psm.synaptics.div_max_na=30
hw.psm.synaptics.div_len=100

hw.psm.synaptics.margin_top=200
hw.psm.synaptics.margin_right=200
hw.psm.synaptics.margin_bottom=200
hw.psm.synaptics.margin_left=200

hw.psm.synaptics.window_min=4
hw.psm.synaptics.window_max=10
hw.psm.synaptics.multiplicator=10000

[1] https://wiki.freebsd.org/SynapticsTouchpad

Sony Xperia Unlocked Mobile Firmware Restore

Sony Xperia phones are my favorite. Very good and durable electronics, amazing photo camera, nice utilities on top of standard Google Android OS. I have also always respected Xperia for allowing users to unlock their phones for Open-Source Firmware Customization on this amazing hardware..

xperiacompanionfail

Unfortunately, Sony seems to have this habit to make a bad decisions, so amazing hardware is not always followed with a good software. This is why Open-Source Customization is so important. I have already found several nice devices with a really bad firmware. What is more, this corruption seems to spread, and Sony blocks factory firmware restore for an unlocked devices with their official Xperia Companion utility. This means unlocking a device does not only Voids a Warranty, but also silently makes it Impossible to Go Back to a Stock Firmware! This is really bad idea.

emma

Luckily smart people tends to predict and help each other out. Developer team of Sony Mobile released EMMA utility (nice name by the way) that allows you to re-flash mobile that is unlocked in case something goes wrong or you simply want to get back to a stock firmware.

Open-Source Firmware Customization will become a standard, even for large enterprises, with mutual benefit to their customers, because looking at the big picture we are part of the same eco(no)system..

NXP Technology Days 2016

It was fun to take part in NXP Technology Days 2016. Last year fusion of Freescale into NXP looks good, lots of useful solutions and possibilities gathered in one place. Very interesting On-Chip Security Mechanisms for Embedded Systems and Open-Source implementations for i.MX6 CPU family. Let’s hope that (probably upcoming) fusion of NXP into Qualcomm will not affect Open-Source Community in a bad way..

20161004-nxptechdays-tcedro-small

CeDeROM CASING for M24LR-DISCOVERY

As an exercise, I have just designed (using FreeCAD) and 3D-Printed (using semi-translucent PLA material) a casing for M24LR-DISCOVERY (CR95HF NFC Reader). Let me know if you need one :-)

Read More

Sony Xperia M5 Bugs

I have just bought next inexpensive Xperia M5 phone with pretty nice hardware. However I already found those things to be missing or deliberately removed:

  • USB OTG does not work (solved).
  • CardBoard VR does not work.

Update regarding USB OTG – “it’s not a bug its a feature” – after you connect a USB device using OTG cable you need to run “Detect USB device” application that will make OTG work. Considering security this may be a good choice to allow external devices by hand.

Dualshock4 PS4 Controller Bluetooth Pairing

dualshock4-bluetooth-pair-cederom

There is one simple way I have discovered to pair with Dualshock4 Playstation4 controller using standard Bluetooth Pairing Procedure. Make sure controller is turned off, then press and hold SHARE button, then press and hold PLAYSTATION button until LED starts to blink (two short white blinks every few seconds). You can now discover and enjoy your Dualshock4 controller with any Bluetooth (HID) enabled device. No cables and no additional applications necessary! :-)

Dualshock4 is a really nice high quality and precise controller that can be used in many more interesting applications than only playing games. It is compatible with Bluetooth HID and USB HID standard. It contains 2 analog joysticks, 2 analog sliders, 13 buttons, touch-pad, accelerometer, vibrator, audio speaker with headset port, RGB LED, micro-USB port, and external expansion port..

Unfortunately, lack of self-compatibility seems to be a strong disadvantage of Playstation platform. Not only because PS4 does not run old software. Dualshock4 seems to have different way of handling button events as compared to Dualshock3 (default Playstation3 controller). It has some sort of auto-repeat feature (like PC BIOS keyboard) instead of button change events (like MIDI). This renders Dualshock4 unreliable on Playstation3 platform because of massive control glitches. Also DS4 PS button does not produce system menu on PS3, so you cannot use it as the main controller replacement. Sadly, it is impossible to use DS3 controller on PS4 as well. Hopefully, switching CPU to AMD64 and OS to FreeBSD could bring more self-compatibility to Playstation in future..