Tuesday, December 6, 2022

D.I.Y. Electronic Chess Board

3D-printed Chess Board with Piece Recognition and Connection with Lichess
main controller: ESP32-WROOM w/ OLED display
RFID reader: mini RC522 modules
piece RFID: NTAG213 stickers


part 1: Assembly

part 2: Demo

Sunday, July 10, 2022

3D-Printed WALL-E Replica

3D-printed WALL-E replica - Wi-Fi controlled using ESP32, with OLED display and audio output.

main controller: ESP32 DEVKIT (with local web server)
motors: 2x 37GB520 (wheels/tracks - driven using TB6612FNG) and 7x MG90S servos
other accessories: 1x OLED display, 1x microSD interface, 1x audio-amplifier

original 3D design: thingiverse.com/thing:3703555

Saturday, June 18, 2022

DIY Mini Chess Clock

DIY rechargeable mini-chess-clock using SAMD21 mini board and 0.91" 128x32 OLED display.


 Arduino code: chess-clock.ino

Monday, May 2, 2022

Cheap CMSIS-DAP/DAPLink Debugger+Serial Port Module

Cheap CMSIS-DAP/DAPLink SWD module based on NS32F103CBT6 (an STM32-clone?). It has both a debugger and a serial/UART port on a single USB device just like the J-Link OB v2 debugger (based on STM32F072) - better than those ST-Link debugger clones.

MCU interface:

  • SWD (with pull-up resistors to 3V3)
    • PB10 - CLK
    • PB11 - DAT
    • PA9 - TXD
    • PA10 - RXD
  • LEDs (active high)
    • PA2 - running status
    • PA3 - connected status
  • USB:
    • PA11
    • PA12 (with fixed pull-up resistor)


(*should work also on chips with smaller ROM STM32F103C8 (like the BluePill C8)

Tested only on Ubuntu host.
sample kernel logs if using original FW:

usb 1-1: new full-speed USB device number 44 using xhci_hcd
usb 1-1: New USB device found, idVendor=c251, idProduct=f001, bcdDevice= 1.00
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: CMSIS_DAP
usb 1-1: Manufacturer: CMSIS-DAP by ARM
usb 1-1: SerialNumber: 202108120001
cdc_acm 1-1:1.0: ttyACM0: USB ACM device
hid-generic 0003:C251:F001.0015: hiddev0,hidraw2: USB HID v1.00 Device [CMSIS-DAP by ARM CMSIS_DAP] on usb-0000:00:14.0-1/input2

Sample kernel logs if using the modified FW:

usb 1-1: new full-speed USB device number 52 using xhci_hcd
usb 1-1: device descriptor read/64, error -71
usb 1-1: new full-speed USB device number 53 using xhci_hcd
usb 1-1: New USB device found, idVendor=0d28, idProduct=0204, bcdDevice= 1.00
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: DAPLink CMSIS-DAP
usb 1-1: Manufacturer: ARM
usb 1-1: SerialNumber: 20220218979699080605210b3030153632303030
cdc_acm 1-1:1.0: ttyACM0: USB ACM device
usbcore: registered new interface driver cdc_acm
usbhid 1-1:1.2: couldn't find an input interrupt endpoint
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver

Sample openocd configuration:

source [find interface/cmsis-dap.cfg]
transport select swd
source [find target/stm32f4x.cfg]
adapter speed 4000
reset halt
If using the original FW, need to add these on the configuration:
cmsis_dap_vid_pid 0xc251 0xf001
cmsis_dap_backend hid

Not tested:

  • UDisk drag-n-drop (looks like not working)
  • WebUSB


size comparison (from left to right) :
  1. Blue Pill STM32F103C8
  2. WCH-Link (based on 8051 mcu) - cheaper
  3. NS32F103CB module
  4. J-Link OB v2 clone (STM32F072CB)




Monday, October 5, 2020

STM32 LED Color Matching For Kids

Fun activity for kids with simple LED circuit! The LEDs will light up when the corresponding connectors of the same color are matching.
STM32 Blue Pill (STM32F103C8T6-development-board) circuit connections:
STM32CubeIDE Project: main.c:

Tuesday, April 14, 2020

TVplus Go on Windows 10 PC

Part 2 of TVplus Go on Laptop

Using VirtualBox running Android-x86 guest OS on a Windows 10 PC.
1. Android-x86 via VirtualBox
2. Adjust screen resolution. TVplusgo app runs better on 16:9 resolutions (e.g. 1280x720).
3. Enable native bridge (ARM translation layer)
4. Disable root or hide root via Magisk (note: install only v1.0.28 or older of the TVplusgo app).
5. VirtualBox USB pass-through (the official android emulator for Windows, or the Qemu itself, currently does not support USB pass-through).

Tuesday, January 7, 2020

TVplus Go Teardown

Teardown of ABS-CBN TVplus Go USB dongle. This dongle looks like ADTH DGI 1011 (*although the PCB indicates "DGI1012_RevD" instead).

dmesg log when plugged:
[ 2555.447630] usb 1-1: new high-speed USB device number 13 using xhci_hcd
[ 2555.601320] usb 1-1: New USB device found, idVendor=048d, idProduct=9308, bcdDevice= 1.00
[ 2555.601325] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2555.601329] usb 1-1: Product: DGI1011
[ 2555.601331] usb 1-1: Manufacturer: Atlanta DTH, Inc.
[ 2555.601333] usb 1-1: SerialNumber: 000000

The USB chip has a marking of "Tolka101" - most probably developed by Tolka Taiwan Inc. - same company who develops the tvplus go app (?). Beside this chip looks like an external EEPROM chip. (*there are no markings on the RF frontend chip).

For simple modification, I replaced the micro-USB connector with an "older" (but more reliable) type-A USB connector+cable - more suitable since I'm using the dongle on laptop or PC more often than my android phone.