Main Page

From Hackerspace ACKspace
Jump to: navigation, search
shiny ACKspace logo, without blocks


Link to Maintenance page


Welcome to ACKspace; a hackerspace located in Heerlen, The Netherlands.

A hackerspace is a place where people get together, socialize, share knowledge, tinker and build stuff.

In order to make this possible we have a collection of tools, (useful) stuff, work area and a lounge where we can relax and discuss our favorite games.

Visiting address:
ACKspace
Kloosterweg 1
6412 CN Heerlen
Building:"carbon6"
Telegram:https://t.me/ACKspacepub
Twitter:https://twitter.com/ACKspace
Mail: see the communication page
Telephone:+31-45-71-12345

Become a participant

Welkom bij ACKspace; een hackerspace in Heerlen, Nederland.

Een hackerspace is een plek waar mensen samenkomen, socializen, kennis delen, knutselen en dingen bouwen.

Om dit mogelijk te maken hebben we een verzameling gereedschap, (bruikbaar) spul, een werkruimte en een lounge waar we kunnen ontspannen en onze favoriete spellen kunnen bespreken.

Bezoekadres:
ACKspace
Kloosterweg 1
6412 CN Heerlen
Gebouw:"carbon6"
Telegram:https://t.me/ACKspacepub
Email: see the communication page
Telefoon:+31-45-71-12345

Deelnemer worden

Willkommen bei ACKspace; ein Hackerspace in Heerlen, Niederlande.

Ein Hackerspace ist ein Ort, an dem Menschen zusammenkommen, Sozialisieren, Wissen teilen, Dinge basteln und bauen.

Um dies zu ermöglichen, haben wir eine Sammlung von Tools, (nützliche) Sachen, einen Arbeitsbereich und eine Lounge, wo wir uns entspannen und unsere Lieblingsspiele diskutieren können.

Besuchsadresse:
ACKspace
Kloosterweg 1
6412 CN Heerlen
Gebäude:"carbon6"
Telegram:https://t.me/ACKspacepub
Email: see the communication page
Telefon:+31-45-71-12345

Werden Sie ein Teilnehmer (Englisch)

Featured articles:

Nebra
Project: Main Page
Featured: Yes
State Active
Members Xopr
GitHub No GitHub project defined. Add your project here.
Description Nebra playground
Picture
No project picture! Fill in form Picture or Upload a jpeg here


synopsis

Explore some hardware that was bought for cheap.


Nebra HNT Indoor Hotspot Miner (ROCK Pi Version)

xopr bought this model (twice); a complete set contains the following:

  • Rock Pi 4B+ v1.73 2GB RAM U.FL version: RS114B‑V173‑D2E16P1R3S0T1W1
  • custom hat with mPCIe slot containing a Maxiiot GL5712-EX (concentrator) with U.FL connector fitted with Nebra heatsink
  • aluminium casing with heatsink and plastic lid
  • 3dBi 19cm 2.4GHz antenna
  • 3dBi 21cm 860-930MHz antenna
  • power adapter USB-C 12V 2.5A with EU, UK, US and AU/NZ connector ⚠️ Presumably non-PD ⚠️
  • 1m ethernet cable
  • 2 Nebra and 2 QR Hardware id stickers
  • 1 useless instruction card


hat

The following 18 (plus 3.3V, 5V GND connections) are used. Note that the Rock PI pin is mentioned, along with the GPIO name and the (GPIO number)

After painstakingly measuring, xopr found the schematic

  • LEDs (via common GND)
    • green: pin 18 via resistor GPIO4_D4 (156)
    • amber: 3.3v, pin 1 via resistor
  • pushbutton: pin 16 GPIO4_D2 (154)
  • jumper pins (via common GND)
    • "915MHz": pin 33 GPIO2_B4 (76)
    • "868MHz": pin 31 GPIO2_B1 (73)
    • "470MHz": pin 29 GPIO2_B2 (74)
    • "433MHz": pin 32 GPIO3_C0 (112)
  • CN212224B (most likely ATECC108); Nebra ECC key/swarm key storage cryptographic coprocessor
    1. NC?
    2. NC?
    3. NC?
    4. GND
    5. pin 3 GPIO2_A7 (71) SCL?
    6. pin 5 GPIO2_B0 (72) SDA?
    7. NC?
    8. 3.3v GPIO 1
  • 24C32F EEPROM at address 0x50, seems empty
    1. GND
    2. GND
    3. GND
    4. GND
    5. pin 27 SDA, GPIO2_A0 (64), using pull up
    6. pin 28 SCL, GPIO2_A1 (65), using pull up
  • MiniPCIe X1 connector
    • 2: 3.3v via regulator on 5V rail
    • 4: GND
    • 9: GND
    • 15: GND
    • 18: GND
    • 21: GND
    • 22: pin 15 GPIO4_C5 (149) "MiniPCI3-22-PERST#" -> /Reset
    • 24: 3.3v via regulator on 5V rail
    • 26: GND
    • 27: GND
    • 29: GND
    • 31: pin 8 GPIO4_C4 (148) "MiniPCIe-31 PETn0" -> ??
    • 33: pin 10 GPIO4_C3 (147) "MiniPCIe-33 PETp0" -> ??
    • 34: GND
    • 35: GND
    • 37: GND
    • 39: 3.3v via regulator on 5V rail
    • 40: GND
    • 41: 3.3v via regulator on 5V rail
    • 43: GND
    • 45: pin 23 GPIO1_B1 (41) "MiniPCI3-45-Reserved" -> SCK
    • 47: pin 21 GPIO1_A7 (39) "MiniPCI3-47-Reserved" -> MISO
    • 49: pin 19 GPIO1_B0 (40) "MiniPCI3-49-Reserved" -> MOSI
    • 50: GND
    • 51: pin 24 GPIO1_B2 (42) "MiniPCI3-51-Reserved" -> CSN
    • 52: 3.3v via regulator on 5V rail

Note that although the measurements were done twice, verify them yourself before tinkering.


Flash new image

preparation

Assuming debian-based OS.

Make sure you have a USB-A to USB-A cable;

create one by grabbing 2 idential USB cables, snip the device part off and solder it together using the same colors.
xopr had some luck with a USB-A to USB-C cable combined with a USB-A to USB-C-female adapter having the adapter on the host side and the regular end on the ROCK PI.
Other combinations did not work.

install dependencies:

sudo apt-get update
sudo apt-get install -y libudev-dev libusb-1.0-0-dev dh-autoreconf pkg-config libusb-1.0 build-essential git wget

build/install tool:

git clone https://github.com/rockchip-linux/rkdeveloptool
cd rkdeveloptool
autoreconf -i
./configure
make -j $(nproc)
sudo make install
# OR: sudo cp rkdeveloptool /usr/local/sbin/

download loader:

wget https://dl.radxa.com/rockpi4/images/loader/rk3399_loader_v1.27.126.bin

download (and extract) latest image (via github latest release):

wget https://github.com/radxa-build/rock-pi-4b-plus/releases/download/rsdk-r5/rock-pi-4b-plus_bookworm_kde_r5.output_512.img.xz
xz -d rock-pi-4b-plus_bookworm_kde_r5.output_512.img.xz

flash device

  • power off board
  • (you can safely skip this step, Nebra unit has no SPI flash soldered; it seems located on the HAT) short GPIO 23 with 25 (black and left of it on the inside middle)
  • put switch in OTG (device) mode (away from blue USB 3 port)
  • connect the board to your PC using a USB Type-A to Type-A cable top port
  • press+hold Maskrom button (under HDMI plug towards USB-C connector); use a wooden popsicle stick for example
  • power on the board
  • wait until green LED is steady on (should be instant)
  • release the Maskrom button
  • Use rkdeveloptool to flash the image to the onboard eMMC:
    lsusb lists: Bus 003 Device 078: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode, similar to "list device": rkdeveloptool ld
    sudo rkdeveloptool db rk3399_loader_v1.27.126.bin will say: Downloading bootloader succeeded.
    sudo rkdeveloptool wl 0 rock-pi-4b-plus_bookworm_kde_r5.output_512.img will say after about 5 minutes: Write LBA from file (100%)
    sudo rkdeveloptool rd will say: Reset Device OK.: you should be good to go!

TODO

  • mount E22-900M22S using original hat tricks or perfboard to;
  • get MeshCore or Meshtastic working
IPv6-only day
Attention:
You are looking at an event that took place in the past
Event: Main Page
Featured: Yes
State: Planned
Start date: 2026/06/06
Start time: 6:66
End date: 2026/06/06
End time: 26:66
Contact: Xopr
Kind: Party, Workshop
Location: Location::ACKspace
URL: https://en.wikipedia.org/wiki/World IPv6 Day and World IPv6 Launch Day
Fee: give up on IPv4
Short description: Let's plan this together!


Let's do IPv6 on 6-6'26

synopsis

Preliminary text to get things going. Some things need to be worked out before actually switching off IPv4.

  • our internet provider doesn't do IPv6, we are (double?) NAT'ed and have a single dynamic external IPv4 address so regular tunnelbroking is a challenge; external VPS might be a necessity.
  • maybe add a "maintenance"-warning to indicate intermittent internet availability
  • research some challenges other people experienced
    LoRa pager
Project: Main Page
Featured: Yes
State Completed
Members Xopr
GitHub No GitHub project defined. Add your project here.
Description GRAND CENTRAL :: HACK THE PLANET
Picture
No project picture! Fill in form Picture or Upload a jpeg here


synopsis

Modify the famous Motorola Advisor (from the movie Hackers) so it listens to the LoRa band.


ingredients

  • Motorola Advisor I with single AAA battery
  • RFM95 SX1276 module with helix antenna
  • step-up (boost) converter to 3.3v
  • Arduino pro mini 3.3v
  • RSS.EXE (for resetting password) and ADVISOR.EXE
  • optional but advised: programming jig with pogo pins
  • AdvisorRadio.ino that translates LoRa messages into POCSAG 512

Basically, Pena Sarajärvi did all the heavy lifting back in 2021[1]

information snippets

external pager header pinout:

  1. TDO (RxD) top
  2. RDI (TxD) middle
  3. GND bottom

2400 baud 3.3v (probably 5v tolerable)


pinout of the mini header inside the pager (small pitch, maybe 1mm):

  1. B++
  2. GND (connected to Arduino, RFM95 and step-up converter)
  3. B+ (connected to step-up converter)
  4. LIM_DATA (connected to Arduino)
  5. A0/SDI/MOSI
  6. A1/SCK
  7. A2/SS (connected to Arduino)
  8. NC/Audio

command to send a message using LilyGO TTGO LoRa32 868MHz ESP32 with a better antenna, running OpenMqttGateway 1.8.1:

mosquitto_pub -h <IP> -t "ackspace/OMG_ESP32_LORA/commands/MQTTtoLORA" -m '{"message":"0118999:Hack the planet! "}'


result

Some notes:

  • the range is a bit disappointing: successful transmission at a little over 100m line of sight using default settings on both pager and 'gateway'

todo

  • files and commands

references

TrafficSlight
Project: Main Page
Featured: Yes
State Active
Members Xopr
GitHub trafficslight
Description Mini traffic light from scrap material
Picture
Trafficslight built.jpg


synopsis

Create small wireless traffic lights

ingredients

  • OSB for the back
  • old perforated print
  • piece of thin PVC tube
  • plastic egg "carton" cut in half as lens
  • half plastic mayonase jar for the back

result


todo

Project: Main Page
Featured: Yes
State Active
Members xopr
GitHub No GitHub project defined. Add your project here.
Description Cloudless Inkbird IBBQ-4T
Picture
No project picture! Fill in form Picture or Upload a jpeg here



synopsis

Remove Barbecue temperature sensor from the cloud, adding it to Home Assistant.

xopr had some gift cards to spare and paid €69,- for it (noice!)

requirements

  • ESP-12 module flashed with Tasmota using a programming jig (or in-circuit with extra reset jumper)
  • solder iron + solder
  • desoldering iron or lots of solder
  • hairdryer or equivalent
  • small philips screwdriver
  • flat screwdriver or spudger
  • utility or exacto knife
  • (optional) wires for in-circuit programming

hardware

The thermometer has a backlit display, beeper, USB-C charge (only) port and a 7.4Wh 3.7v battery. It's wireless part is based on Tuya: a Chinese IoT cloud provider and the first revision had an Espressif wifi chip. This version has a WBR3 module based on Realtek chips which is incompatible with the current open source solutions.

The only way is to replace the module with an ESP-12, pull GPIO15 low and CH_PD high with a 10-20k resistor.

Image
Naked PCB with a transplanted ESP module. Notice the required resistors for running and optional jumper for in-circuit programming
Image
probes in Home Assistant

opening and replacing the module

  • grab a hairdryer and utility/exacto knife
  • heat the front plate and pry open carefully to not scratch off the paint. The adhesive is foamy so pushing the knife too far might make it curl up
  • use small philips screwdriver to open up the case and remove the board (USB-C side first; bend the case a bit, and don't lose the knob)
  • remove the Realtek module
  • solder on the ESP module (either pre-programmed or solder extra wires)
  • solder a resistor between CH_PD and VCC and one between GND and GPIO15
  • if you want to program in-circuit, keep the Tuya MCU in reset by bridging Reset and GND on the breakout pads while flashing the ESP

firmware settings

After connecting to Tasmota, go to Configuration -> Other and set template {"NAME":"Tuya","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54}

Next, go to console and enter the following commands:

  • set as template module (using TuyaMCU): module 0
  • set baudrate to 115200: SetOption97 1
  • Backlog TuyaMCU 99,1; TuyaMCU 11,19; TuyaMCU 35,101; TuyaMCU 81,102; TuyaMCU 12,104
  • Add two rules and activate them. The first rule sets an enum value for the mute button, the second one publishes the raw hex values on the probes subtopic:
Rule1 ON power1#state=1 DO TuyaSend4 19,1 ENDON ON power1#state=0 DO TuyaSend4 19,0 ENDON
Rule2 ON TuyaReceived#DpType0Id107 DO Publish stat/%topic%/probes %value% ENDON
Backlog Rule1 1; Rule2 1
  • Set button names: Backlog WebButton1 F/C; WebButton2 Mute

home assistant

Note that the published hex value contains 4x8 hex characters as little endian farenheit values where the first byte is ignored (it seems to toggle between 0 and 1)

In the configuration.yaml file, set the following:

mqtt:
  sensor:
    - name: "Barbecue probe 1"
      state_topic: "stat/tasmota_5B7316/probes"
      unique_id: "barbecue_probe_1"
      value_template: "{{(0xffff * value[6:8] | int(base=16) + 0xff * value[4:6] | int(base=16) + value[2:4] | int(base=16)) / 100 }}"
      unit_of_measurement: "°F"
      device_class: temperature
    - name: "Barbecue probe 2"
      state_topic: "stat/tasmota_5B7316/probes"
      unique_id: "barbecue_probe_2"
      value_template: "{{(0xffff * value[14:16] | int(base=16) + 0xff * value[12:14] | int(base=16) + value[10:12] | int(base=16)) / 100 }}"
      unit_of_measurement: "°F"
      device_class: temperature
    - name: "Barbecue probe 3"
      state_topic: "stat/tasmota_5B7316/probes"
      unique_id: "barbecue_probe_3"
      value_template: "{{(0xffff * value[22:24] | int(base=16) + 0xff * value[20:22] | int(base=16) + value[18:20] | int(base=16)) / 100 }}"
      unit_of_measurement: "°F"
      device_class: temperature
    - name: "Barbecue probe 4"
      state_topic: "stat/tasmota_5B7316/probes"
      unique_id: "barbecue_probe_4"
      value_template: "{{(0xffff * value[30:32] | int(base=16) + 0xff * value[28:30] | int(base=16) + value[26:28] | int(base=16)) / 100 }}"
      unit_of_measurement: "°F"
      device_class: temperature

todo

  • ignore the sensor if it is not plugged in (there is a bitmask command but it's safe to assume >1000 degrees is not a realistic value
  • add instructions/commands to set display timer, temperature alarm and other stuff

links

(refresh table)