Main Page

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
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
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
- IPv6-only day (Party, Workshop, 6 June 2026)
- Pizza-meet (Meeting, 4 July 2026)
- Bbq (Party, 22 August 2026)
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
- NC?
- NC?
- NC?
- GND
- pin 3 GPIO2_A7 (71) SCL?
- pin 5 GPIO2_B0 (72) SDA?
- NC?
- 3.3v GPIO 1
- 24C32F EEPROM at address 0x50, seems empty
- GND
- GND
- GND
- GND
- pin 27 SDA, GPIO2_A0 (64), using pull up
- 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:
lsusblists:Bus 003 Device 078: ID 2207:330c Fuzhou Rockchip Electronics Company RK3399 in Mask ROM mode, similar to "list device":rkdeveloptool ldsudo rkdeveloptool db rk3399_loader_v1.27.126.binwill say: Downloading bootloader succeeded.sudo rkdeveloptool wl 0 rock-pi-4b-plus_bookworm_kde_r5.output_512.imgwill say after about 5 minutes: Write LBA from file (100%)sudo rkdeveloptool rdwill 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
| 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:
- TDO (RxD) top
- RDI (TxD) middle
- GND bottom
2400 baud 3.3v (probably 5v tolerable)
pinout of the mini header inside the pager (small pitch, maybe 1mm):
- B++
- GND (connected to Arduino, RFM95 and step-up converter)
- B+ (connected to step-up converter)
- LIM_DATA (connected to Arduino)
- A0/SDI/MOSI
- A1/SCK
- A2/SS (connected to Arduino)
- 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 | |
| |
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
- upload pics
- better firmware
Inkbird IBBQ-4T
| 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.
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
ResetandGNDon 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
- Superb research information here: https://community.home-assistant.io/t/inkbird-bbq4t-local-control/309433/7
- Link to google spreadsheet containing the specific Tuya commands: https://docs.google.com/spreadsheets/d/1hQ805Ksk2wpGK8vPj0LHx7F3GaqZKFMFnVoLVZFEPiw/edit?gid=0#gid=0






