DIY Blockstream Jade + Camera - Low Cost Bitcoin Hardware Wallet ESP32-CAM, WROVER-CAM T-Camera-Plus
Вставка
- Опубліковано 1 сер 2024
- github.com/3rdIteration/Jade/...
Buy a Retail Jade: store.blockstream.com/product...
STL files for cases: www.printables.com/@CryptoGui...
Purchase Links (Aliexpress)
T-Camera Plus Builds
T-Camera Plus: s.click.aliexpress.com/e/_DEg...
MicroSD Sniffer: s.click.aliexpress.com/e/_DFh...
Battery: s.click.aliexpress.com/e/_DkG...
ESP32-Wrover-Cam Builds
Generic ESP32-Wrover-Cam: s.click.aliexpress.com/e/_DBi...
Freenove ESP32-Wrover-Cam: www.aliexpress.us/item/325680...
1.14 Pico LCD Hat: s.click.aliexpress.com/e/_Dej...
1.3 Inch LCD Hat: s.click.aliexpress.com/e/_DEc...
Dupont Connector Wires: s.click.aliexpress.com/e/_Den...
Digital Push buttons: s.click.aliexpress.com/e/_DdV...
ESP32-Cam Builds
ESP32-Cam: s.click.aliexpress.com/e/_Dmx...
CP2104 USB To Serial: s.click.aliexpress.com/e/_DD8...
1.14 135x240 ST7789 LCD: www.aliexpress.us/item/225580...
Dupont Connector Wires: s.click.aliexpress.com/e/_Den...
Digital Push buttons: s.click.aliexpress.com/e/_DdV...
3d Printer Sovol SV06
www.amazon.com/Sovol-Planetar...
00:00 - Intro
00:31 - Hardware Overview
01:27 - Recommended Process for Building Devices
03:07 - Freenove ESP32-Wrover-Cam + Pico 1.14 LCD
08:28 - ESP32-Wrover-Cam + 1.3 LCD Hat (Same as Seedsigner)
10:45 - Customising Display Driver via Menuconfig
12:15 - Note on Different ESP32-Wrover-Cam boards
14:35 - Lilygo T-Camera-Plus (with MicroSD Sniffer)
19:40 - Lilygo T-Camera-Plus (PCB Soldered Button and Battery)
19:49 - Accessing IO0 by Soldering to PCB
21:17 - Fixing T-Camera-Plus Battery Discharge when Off
25:24 - ESP32-CAM
32:54 - Enabling NoRadio, Secure Boot, etc
36:41 - Overview of current device limitations
37:56 - Adding camera to T-Display, M5-Fire, etc
38:38 - Note regarding 3d printed cases
39:05 - Conclusion - Наука та технологія
Great content as usual!
Thanks :)
This is top notch content. It’s like a whole class on electronics. Hats off to you!!!
Thanks, glad it helped
Now let it run Doom on it to hide it as a gaming console.
This is golden. Thanks for your Effort!
Would certainly be tight to fit both the firmware and Doom on there, but some alternative game would certainly be do-able :)
Awesome video. Very thorough! Did you try accomplishing this with the M5Stack or M5StickC connected to a camera module such as the Unit Cam from M5Stack? Edit: Just reached the end of the video where you mention this. What a bummer that the M5Stack devices did not work with camera.
Thanks :) Yea it's shame. It could certainly be accomplished with their barcode scanner addon, but that is quite expensive and connecting a secondary MCU via a unit cam is a really bad idea in terms of security.
Great Video! Hope to see more from you!
One question: Is there a reason why you use a 1.14 inch display? Can I use a 0.96inch 80x160 lcd with the same pins as yours?
Thank you for the content
The UI is designed around 135x240, so will be very badly cropped. (Though if you are so inclined, you could re-do the UI for a smaller screen)
Absolutely incredible content, and your contributions to the Jade OSS project are laudable too. I was wondering if you experimented with tapping into the unpopulated pads at the bottom right corner of the Lilygo T-Camera Plus PCB for IO. Those are apparently meant for an MPU6050 gyro, so I imagine it would be possible to use them to add buttons and make the UX a little more pleasant. What made you use the SD card pins specifically? Again thanks for the high quality content!
Thanks. :)
Basically those pads are already connected to the i2c bus, so aren't available to be used for general purpose IO, but additional buttions could be added via an i2c GPIO extender. (I have a bunch of those but thought they added a bit too much complexity for most folk in terms of DIY)
The ESP32 has very limited GPIO if a camera and display are in use, and with this board, the pin on the MicroSD slot it literally the only one available that can be used for a button. (GPIO scarcity is the same issue with the ESP32-CAM)
@@CryptoGuide Got it! That makes sense. Thank you for your reply.
No worries. Basically once they add support for ESP32-S3, it will open up a more available IO
Another amazing video!!! I have a question, for obvious reason a device with a camera will be more secure, but between a Bluetooth or USB connection which one will be more secure?
It depends, but one advantage of Bluetooth is that it lets you verify that the Jade you are holding is actually your device, not just one that someone has swapped to phish your PIN.
Great video, could you do one about this new ledger recover feature? Everyone is saying ledger devices are no longer secure as they added firmware to extract private keys. Could this be exploited?
I'll probably do that next now that they have released all the info that they are likely to. Simply put it's probably fine for most people, especially if they don't use the service.
What I don't like is that there isn't really any opt-in to having this functionality enabled on your device, as it's baked into the firmware for everyone rather than being some optional extra. The whole thing seems like a disaster waiting to happen...
That said, I also don't think there is any reason to panic and rush to replace it, move funds, etc, as this is often where mistakes happen. If you want to move, be sure to take your time...
It's possible to use a LILYGO T-Display S3 AMOLED with Camera Shield?
Jade doesn't currently support ESP32-S3 based boards
Thanks for the very nice content I would appreciate if you make the M5Stack + Camera ^__^
No PSRAM, so it won't work
@@CryptoGuide what about M5Stack Fire?
The Fire could theoretically work, but they have a bunch of other IO devices hardwired in and I was unable to get the camera working due to this.
I was able to flash the Jade. It stated, “Multiple decode errors occurred: Try checking the baud rate and XTAL frequency setting in menuconfig.” Stupidly, I was pressing buttons and accidentally got 12 words and a PIN code while it was still plugged into Terminal . . . When I unplugged it from Terminal and plugged it into a power source it powers up and it says, Top left: Jade FE5354, top right: the battery and bluetooth, Middle: Setup Jade, and the Bottom says, Uninitialized 1.0.25-29-g8.
What should I do?
Thank you.
So what's your issue with doing it while connected? (And even with that, what's stopping you from just generating a new seed again?)
@@CryptoGuide
"So what's your issue with doing it while connected? " - It wasn't connected to a "bitcoin software" app, it was connected to the actual Terminal program at the time. 🤷🏻 I was just trying to give full context.
"And even with that, what's stopping you from just generating a new seed again?" -
Thank you, I get that. Since Im not a programmer, I was just checking that since it was flashed onto my DIY Jade, everything is all good despite that error code?
"Multiple decode errors occurred: Try checking the baud rate and XTAL frequency setting in menuconfig."
So I can disregard that, and as long as Jade is performing as it should, Im all good? Again, Im not a programmer, Im just ensuring that there are no obvious security risks?
Basically if you have enabled secure boot and it's all runnkng still, then it's the same security as a retail Jade. (Even if you don't enable secure boot, you should avoid running the debug config)
@@CryptoGuide
I was able to complete everything, the Jade functions and Secure Boot is installed. The issue is that it does not connect to the Blockstream app. I tried on two iPhones via bluetooth and on a MacBook Pro (which we used to set up the Jade to begin with) via USB.
Do you know what the problem is? Thank you in advance.
So does it connect to something like Sparrow over USB?
Can you tell me if I can do it with this Ov7670 camera module
Using a liligo t-display and if it is too difficult to adapt
You could use a different camera module, but the T-display doesn't have enough RAM to work properly without some other very major modifications of the code.
@@CryptoGuide I took the model with more memory ( I don't remember if it was flash or ram ) , can you tell me where +- I would have to go to make these modifications and if this module I mentioned works
The d-display versions have different amounts of flash, but all have the same amount of RAM.
8:38 Can you make the cable mapping for this 2nd LCD hat and freenove? It's not clear and not available on the github, it's only for the smaller LCD hat that's available, difficult to see with your bent wires. Thanks
Do you mean the waveshare hat? (With a Square display)
yes, the bigger LCD hat @@CryptoGuide
the wiring for that one is very unclear
It's at the bottom of the page, just look at the labels and connect it as per the tables.
still not clear @@CryptoGuide , if you can provide the sample picture of your wiring would be great, very difficult to follow by names because I have 1.44 waveshare LCD hat and it has no label on the pin holes, on the ESP32 there are clear labels though, just on the LCD hat there is nothing so very difficult to follow any guides because I don't know where the cable should go to from the ESP to the LDC hat.
Can you make tutorial on macos terminal?
The process is the same as Linux once you have the ESP-IDF installed
Can you physically disable wifi/bt?
If you mean removing hardware, no, but you can just disable that functionality in the firmware and flash that. (Which turns that specific hardware into a paperweight)
why are you not using the capacitive touch "button" capability of the esp32?
Basically the intent was to stick as closely to the retail codebase as possible and the LCD hats are nice and easy to mount.
That said, you could certainly cut the costs even more if you reconfigured the buttons to work in this way and went with a basic LCD. :)
@@CryptoGuide I was just thinking of easy of assembly, by just having a cable tip in a tiny hole
do you know how to configure it, would you want to put it in your fork?
It can be done, but I'm not really included to have to support it, as it creates a while range of other potential issues in terms of folk using it.
I have a question. Is there only one blockchain or does each currency have a blockchain
There are multiple blockchains, with some of the blockchains having multiple types of correcy running on them.
Thanks for the great content! I attempted to flash a ESP32-WROVER-DEV and getting the following:
"A fatal error occurred: bootloader/bootloader.bin requires chip revision in range [v3.0 - v3.99] (this chip is revision v1.0). Use --force to flash anyway."
Any ideas?
That's very strange, but it does seem like some boards have the older revision like yours.
Basically you need to remove: CONFIG_ESP32_REV_MIN_3=y from the config template and then it should work fine.
If you go to enable secure boot then it will use secure boot v1, same as the M5StickC-Plus in my original Jade DIY video.
@@CryptoGuide Appreciate the quick response! This is what comes up now:
...jade.elf section `.iram0.text' will not fit in region `iram0_0_seg'
...IRAM0 segment data does not fit.
...region `iram0_0_seg' overflowed by 2616 bytes
collect2: error: ld returned 1 exit status
make[3]: *** [CMakeFiles/jade.elf.dir/build.make:476: jade.elf] Error 1
make[2]: *** [CMakeFiles/Makefile2:2172: CMakeFiles/jade.elf.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:2064: CMakeFiles/flash.dir/rule] Error 2
make: *** [Makefile:273: flash] Error 2
HINT: The applications static IRAM usage is larger than the available IRAM size.
For more information on how to reduze IRAM usage run 'idf.py docs -sp api-guides/performance/ram-usage.html#optimizing-iram-usage'
The last time I saw this was when someone had a clone decide that not only had the old hardware revision, but also ended up having the voltage regulators soldered on backwards on the reverse of the board. (All of this is why the clone board are often not worth it)
@@CryptoGuide lmao, yeah. I wouldn't have bothered with a clone if I knew about this (and I ordered 5 of these haha). I've used generic esp32s in the past without issues so I figured this time would be no different. Oh well... 😂
So do all five have the same issue?
What pin (10 20 40) to order. In the notes to order the jumper wires it was on female to female 30cm 10pin. That’s what I ordred and then realized the mistake.
So please tell me exactly what to order. I read the build. So male to female 10cm but what pin? (They give a choice of 10, 20, 40) and I believe it comes with 40 pieces or 40 jump wires.
I sent them a note saying male to female 10cm and 10pin????
If you want to fit it into a small case you want the shorter ones. (10cm)
I know that part now BUT WHAT PIN - look at the link you listed.
It says pin 10 20 40
I am not talking about lenth of jumper wire
I am talkiabout pin. It gives you a choice please look at your link you posted if you don’t understand
Thank you
And I do want it to fit in case exactly like you showed.
Thank you 😀
I don't understand the question then. Which part are you talking about?
To order the part I pressed your link for the jumper cable. To order the jumper cables it gives choices 1st male female next choice length of wire and the THIRD CHOICE IS SPECIFICATIONS - it lost 10 pin 20minutes 40pin I MEED TO KNOW WHAT SPECIFICATION TO POCK PLEASE. If you click the link which you posted I promise it will make sense. @@CryptoGuide
In your opinion, what is the best way to spread your crypto holdings across multiple cold wallets? Would you recommend using multiple seeds and devices? Or have multiple devices with the same seed? Or have multiple accounts within the same wallet and seed?
The only split that makes sense to me is hot/cold/HODL, of which the latter two could just be lumped together. If you are only looking for privacy, accounting or segregated in terms of smart contracts, then accounts are sufficient.
Every extra seed you introduce dramatically increases the chance of messing things up...
I just thought that if one seed became compromised, then at least the crypto under another seed would be protected.
Why would a seed get compromised? You are far more likely to make a mistake or screw up multiple backups than for someone to compromise a seed.
How to recover invalid eth private key
BTCRecover can do this, just watch my videos on installing and using it.
If you are totally stuck you can request a paid private session. They are $100 USD for an hour over zoom/Skype. (Full details, terms and request form are here: cryptoguide.tips/recovery-services-consultations/)
If you want to use our paid services (either private session or trusted recovery), you can fill out the form here and we can find a time forms.office.com/r/KEypP0FRvN
An emulator that could run Jade on a Tails OS flashed usb would be fun to play with. Anyone hear of such a thing? (I'm not currently educated enough to make it myself, btw)
Block stream are actually releasing an emulator shortly
Sweet! Thanks for the reply, and great work on the video. I'm always surprised there are not more options like this out there for people. @@CryptoGuide
.
Dude your child is pissed! I'm also a father so I know how it goes
He certainly was, first major tantrum preserved for posterity ;)