Simple Dev board for the RAK4630 module.
My main motivation is to make a cheap and easy to make nRF52 based meshtastic node.
Simple Dev board for the RAK4630 module.
My main motivation is to make a cheap and easy to make nRF52 based meshtastic node.
Allright so, the SX126 doesn’t work. well it’s because I don’t know much about powering the thing.
I’ll try to fix it in our electronics club.
I have found the issue! It’s in the way I’m powering it. The nRF52 is fine because of it’s internal DC-DC convertor. And the SX is connected to the 3V3 line which isn’t connected anywhere. So the fix should be to have an LDO powering the 3V3 line. There’s also an onboard LDO or DC-DC but these go to 3.7V. No frie today
https://forum.rakwireless.com/t/rak4630-schematic-vdd-nrf-question/13897/8
https://semtech.my.salesforce.com/sfc/p/#E0000000JelG/a/RQ000008nKCH/hp2iKwMDKWl34g1D3LBf_zC7TGBRIo2ff5LMnS8r19s
https://docs.rakwireless.com/product-categories/wisduo/rak4630-module/overview/
https://docs.rakwireless.com/product-categories/wisduo/rak4630-module/datasheet/#schematic-diagram
https://docs.rakwireless.com/product-categories/wisduo/rak4630-module/quickstart/
https://images.docs.rakwireless.com/wisblock/rak4631/datasheet/schematic.png
https://docs.rakwireless.com/product-categories/wisblock/rak19007/datasheet/#schematic-diagram
With my frined we have beem able to flash a bootloader and meshtastic FW.
The first thing we did is to folow this tutorial https://docs.rakwireless.com/product-categories/wisblock/rak4631-r/dfu/#converting-rak4631-r-to-rak4631 we used windows for this, it’s after my atempts at folowing the meshtastic tutorial on meshtastic docks on Linux. Then we folowed this tutorial https://meshtastic.org/docs/getting-started/flashing-firmware/nrf52/convert-rak4631r/. And installed the RAK4631 firmware wersion.
We were able to connect wia the mobile app, but we weren’t able to send any messages.
The radio couldn’t initiate. I think that it’s an HW issu,e but I could be wrong.
//\ E S H T /\ S T / C
….
[0m[34mDEBUG [0m| ??:??:?? 1 [34mSX126xInterface(cs=42, irq=47, rst=38, busy=46)
[0m[34mDEBUG [0m| ??:??:?? 1 [34mSX126X_DIO3_TCXO_VOLTAGE defined, using DIO3 as TCXO reference voltage at 1.800000 V
[0m[32mINFO [0m| ??:??:?? 1 [32mStart meshradio init
[0m[32mINFO [0m| ??:??:?? 1 [32mRadio freq=869.525, config.lora.frequency_offset=0.000
[0m[32mINFO [0m| ??:??:?? 1 [32mSet radio: region=EU_868, name=MediumFast, config=4, ch=0, power=27
[0m[32mINFO [0m| ??:??:?? 1 [32mmyRegion->freqStart -> myRegion->freqEnd: 869.400024 -> 869.650024 (0.250000 MHz)
[0m[32mINFO [0m| ??:??:?? 1 [32mnumChannels: 1 x 250.000kHz
[0m[32mINFO [0m| ??:??:?? 1 [32mchannel_num: 1
[0m[32mINFO [0m| ??:??:?? 1 [32mfrequency: 869.525024
[0m[32mINFO [0m| ??:??:?? 1 [32mSlot time: 12 msec, preamble time: 32 msec
[0m[32mINFO [0m| ??:??:?? 1 [32mFinal Tx power: 22 dBm
[0m[32mINFO [0m| ??:??:?? 1 [32mSX126x init result -707
[0m[33mWARN [0m| ??:??:?? 1 [33mNo SX1262 radio
Log in to leave a comment
After a lot of back and forth from and to my workshop, I managed to get a serial enamurated. A big leap forward!
The problems:
Now I need to check which bootloader is on there (it needs to be the Arduino one) and flash the MeshTastic FW onto it. Charm it with I2C environmental sensors. And also build the other one.
Log in to leave a comment
After soldering it, I’ve tried to debug it. So I checked the resistance between the capacitor and I noticed that it was around 2M ohms. So I replaced it with another one this time 100nF.
And now it went back to 9mA! And after that I realized that I forgot to hook up the Vbat_NRF to the USB VBUS. yikes 😅
And now it seems to be working!
So I began the search for antennas as I was worried about the PA without antennas. (It took me around 15 mins which I didn’t log)
When I went through my FPV box the second time it hit me. I have PFV drone ELRS antennas with the right ufl connector! BT is fine but LoRa is sub GHz and I was worried that i still may blow the PA, so I asked ChatGPT and it told me that the SX LoRa chips PA is pretty resilient. Oh nice
After that I plugged it in into my Linux laptop and it seemed to kinda work so I ran dmesg and there it was although it wasn’t properly enumerated. But that’s progress.
OFC I was the whole time frantically checking the voltage and my cheapo multimeter tripped me up as it was showing 6.7V on the USB which scared me. Luckily it’s just a drained battery.
So I needed to run back down to the shop multiple times in -10C. But I love saunas and cold hardening. ;)
I’ll debug the USB tomorrow, it’s getting late, and I can’t think straight.
Log in to leave a comment
I thought about soldering the PCB in an oven but this will be messy.
I’ve made a similar breakout PCB for a different module with pads underneath.
This one has castellated holes thankfully.
I’ve soldered on a pin and a pin on the other side on the shorter side.
Then I put a ball of solder on my iron and went over all the pins. Also a lot of flux helped.
It was so cumbersome as the ball of solder was sticking so much. I also don’t have the smallest soldering iron tip so heating up the small castellated holes wasn’t ideal.
So after it looked finished I heated it up with a heat gun. Which was a mistake as the substrate isn’t made for high temperatures and it started to delaminate, so I stopped of course.
After doing that I checked with a multimeter if the traces weren’t bridged. Which thankfully wasn’t.
So I plugged it into my PSU. And I saw no signs of life. I thought that the current draw was below mA, So I checked the voltage on the trace, but there wasn’t any voltage on the 3V3 trace. And then I found out that I managed to desolder the pins from the PCB presumably when using the hot air.
So I soldered back on and tested it. It worked! I saw 15mA.
Then I soldered up the RST circuitry. And now I don’t see signs of life.
Let’s debug. Probably going to desolder the pullup and cap.
Log in to leave a comment
At our shool we use the good old school method of etching our PCBs. I etched on tuesday after shool club.
The steps were:
Evhery step is so time consuming. I’ve made a batch of three PCB’s in total which took me like 2.5 hours after school to make. Also you need to babysit evhery step in the process, as it can go downhill really fast.
It’s cumbersome to log the full 2.5 hours and it wouldn’t be honest as I done them in paralel so thats why I’ll log around a halve a hour. Please feel free to make adjusments
And there it is pretty good PCBs.
After that I cleaned it using Líh. Drilled holes in DDM as I hadn’t had more time after shool. It took halve a hour.
We normally put a Kalafuna (Flux) on there to provent it from oxidizing and it makes it better to solder.
Made a super short readme for this project.
Log in to leave a comment
I’ve finished the board. Also thought about making the PCB, and I decided to etch it in school.
That’s why there are THT components. Also one clever thing I’m quite proud of is the USB-C connector. As we would only do the back side, and we don’t need to care about the front.
I didn’t know how far apart the headers should be. So I thought about making it like an ESP dev board, but that would force the board to be a lot longer than needed. So I took the components and roughly layout them out to their corresponding positions, like top or bottom. and that way I knew that almost all components would be at the top aside of the USB-C connector. The USB-C was positioned on top of the module. After routing, I’ve noticed that it’s interfering with the module.
After that, I made pretty labels and that’s it. At least for the PCB.
When I’ll return from winter break I’ll manufacture the PCB. I’m also going to log that. :)
Log in to leave a comment
I’ve started working on this project the day prior to Flavortown. 😅
I’ve looked at the meshtastic RAK4631 definition, as I won’t need to make my own board definition.
I have in mind that most likely I’ll be CNC milling the PCB. That’s why I also added a USB2.0 header to be able to hack in a USB cable.
Ehm… many blank stares into the RAK datasheet…
I came up with a minimal schematic seen in the second screenshot.
Then I looked into the pin definition and named the pins with their functions, which was a mistake, as I wouldn’t really know which pin is which and I would need to reference the pin definition which is quite cumbersome.
So I went with “{PX.Y}/{Relevant Fn}”
Added pin headers, as Dev boards would be useless without it. ;)
And today I added the menu button and LED. Noted: the nrf52 chip can’t provide enough power to drive the LED by itself.
And that should be it for schematic!
Log in to leave a comment