Tag: Hardware rss

Posts

05 September '21 / Dimitris Zervas

For the past 5 years I’ve been obsessed about finding a super quick way to make hobby-grade PCBs at home. The race I was looking to win was the “I don’t want to wait 3 weeks being able to do nothing after I remembered that I2C needs in-series resistors”. I want to get my board in my hands in about an hour without doing much.

And I found the way, but most importantly, I found the workflow. Let me show you!

28 April '21 / Dimitris Zervas

Often the nRF52 micros get stuck or misbehave and reach a weird state with the pairings. Often the solution is just to clear them so here’s adafruit’s code to do that and a platform.io ini to make it easy.

platformio.ini

[env:clearbonds]
platform = nordicnrf52
board = particle_xenon
framework = arduino

The board can be any nrf52 board, it can be any generic board that uses the same chip that you actually have. For example particle_xenon uses nRF52840, so it can be used for any 52840 board. It might though not flash the correct LEDs, so just hook up the serial port.

27 May '20 / Dimitris Zervas

This is a small journey on how I reverse engineered the MagicForce 68 keyboard and tried to add bluetooth functionality to it. It’s a small keyboard (68 keys, 65%) and is USB-only (it’s not the smart model). It has a controller that I can’t flash with a custom firmware, so I had to hook wires on it.

The Hardware

The first step in determining what I was against, was to at least partially disassemble the keyboard.

22 April '20 / Dimitris Zervas

First of all, lets flash Adafruit’s NRF52 bootloader for easier future flashing

My J-Link was “Broken. No longer used” - or so the JLink tools said (AKA bought from e-bay). So I had to go to openocd).

Connect the J-Link (or any SWD capable debugger supported by openocd - even an FT232 breakout will do) to the target - I have a Bluefruit by Adafruit.

pip3 install --user intelhex

cd Adafruit_nRF52_Bootloader
git clone https://github.com/adafruit/Adafruit_nRF52_Bootloader
git submodule update --init

make BOARD=feather_nrf52832 all
FIRMWARE=lib/softdevice/s132_nrf52_6.1.1/s132_nrf52_6.1.1_softdevice.hex

sudo openocd -f board/nordic_nrf52_dk.cfg -c init -c “reset init” -c halt -c “nrf5 mass_erase” -c “program $FIRMWARE verify” -c reset -c exit

FIRMWARE=_build/build-feather_nrf52832/feather_nrf52832_bootloader-0.3.2-28-g79a6a0c-nosd.hex

sudo openocd -f board/nordic_nrf52_dk.cfg -c init -c “reset init” -c halt -c “program $FIRMWARE verify” -c reset -c exi
💡**NOTE**: `nrf5` command was missing from my package manager’s `openocd` and I needed to install the git version!

Now the bootloader should be flash and we’re able to flash over serial from now on! Lets flash micropython (I advise not flashing master but a stable tag)