BIT Console - Cybersecurity mod

Hello, I just wanted to share a cool mod I did to the BIT. The following changes were made:

  • added a wire between the positive USB-C pin to the battery JST positive pin. This wire has a diode who only lets the current flow from the USB-c port. This mod allows powering the console using only the PC connection.

  • Added an external 2.4Ghz wifi antenna. By soldering the SMA to ipex cable to the ESP32 S3 Mini’s internal wifi antenna, this mod improves WIFI and Bluetooth range. The internal antenna’s traces had to be cutted to sepparate the positive and ground traces in order to support an external dipole antenna.

  • Replaced the 3x 1.5v battery holder with a 3.7V Li-Ion battery, a TP4056 battery charging module with discharge protection, and a 5V step-up booster module. A supplimentary switch was added in order to power on and off the board. The existing switch is also working but since the battery power is delivered to the JST connector, the additional switch was required to prevent any current draw when the console is turned off.

  • Flashed a customised ESP32 Marauder firmware that was specially tuned up to work with existing push buttons and use the TFT display’s pinout.

To be added:
-MicroSD slot
-GPS Neo-6M module
-custom PCBs that use the existing GPIO slot (for example: external modules with NRF24, CC1101, RFID etc)




Disclaimer: this project is intended only for educational purposes. Do not test networks that you do not own or have express approval to do so.





That is Amazing! Keep up the good work!

1 Like

OMG! THATS SO GOOD!

Here at my BIT Console im trying to get pico OS Running, its not so good but once i get all the professional tools i will maybe show a instruction!

You can probably design a ui and maybe make a full tutorial, beacouse that would be great for all the people out there! Maybe Circuitmess considers making a actual PCB for this!

btw you used micropython to code it right?
i would love to get the source code but can you try making one without all those features?
Regards,
Petar

No. I just used Arduino IDE to upload the code into the esp32. The Esp32 Marauder is written in C++. The only changes I’ve made are the pins declared for the TFT display.

I had to carefully unstick the tft panel and trace all the tft pins continuity to the esp32. I couldn’t find a proper documentation of the TFT display pinout on the circuitmess website. I even asked for it and they did not shared such thing.

Even the BIT firmware is not written for Arduino IDE so I had to do the LoyanGFX stuff on my own.

Also, the BIT console did not power on when plugging in the USB port without turning on the battery too. So I had to add a wire between the usb port + to the JST + pin.

Also, micropython is not persistent in the memory, but my code is. I can reboot it and save settings and stuff.

These things really are a mess

Everytime i try using the original ESP32 on the BIT it doesnt work. Im pretty sure i have to use some esp tool to remove the firmware beacouse im pretty sure its like protecting me from flashing the firmware. Is it possible to somehow put a custom firmware WITHOUT making a bridge. By the way im pretty sure you can flash a esp32 with a battery.

I am using arduino IDE with esptool set up. I have also changed some of the compilation instructions for the Esp32 LOLIN D32, D32S2 and D32S3. the whole procedure of setting up Arduino IDE for this firmware can be found on the justcallmekoko’'s github page for esp32 marauder firmware. I’m not gonna link it here, it’s just one hit on google. It explains in the wiki tutorial how to setup esptool and configure arduino IDE.
And I am not using the battery. That wire I have added was to provide 5v directly from the usb-C port. It’s a shame they didn’t implemented such thing as powering on the usb.

Oh, that makes it more clear. Im trying to program a new firmware for the bit and make it public. Probably will be on github all i used.
Hope to see more upgrades!

Hey! Forgot to ask one thing. Do you maybe know the model for the circuitmess bit screen? I need it for my software. Thanks!

Most likely I will get banned by the circuitmess staff for displaying this because they don’t even provide such documentation and will never will:
.
.
WACKY ROBOTS CONNECTOR PINOUT (from switch to reset btn)
bottom pins (soldered towards pcb edge)
CON.–ESP32
pin 1 - GND
pin 2 - GPIO1
pin 3 - GPIO38
pin 4 - GPIO39
pin 5 - GPIO40
pin 6 - GPIO41
pin 7 - GPIO42
pin 8 - TXD0
pin 9 - RXD0
pin10 - 3V3
.
top pins (soldered to towards display)
CON.–ESP32
pin 11 - 3v3
pin 12 - GPIO21
pin 13 - GPIO26
pin 14 - GPIO33
pin 15 - GPIO34
pin 16 - GPIO11
pin 17 - GPIO10
pin 18 - GPIO9
pin 19 - GPIO2
pin 20 - GND
.
.
.
DISPLAY PINOUT
1.8 inch 128x160 ST7735S
from battery connector to esp32
.
NR—ESP32–DISPLAY
pin 1 - GND - NC
pin 2 - GND - GND
pin 3 - GND - LED-K
pin 4 - 3V3? - LED-A
pin 5 - GND - GND
pin 6 - GPIO16 - RESET
pin 7 - GPIO15 - A0/DC
pin 8 - GPIO14 - SDA
pin 9 - GPIO13 - SCL
pin 10 - 3V3 - VCC
pin 11 - 3V3 - IOVCC
pin 12 - GND - CS
pin 13 - GND - GND
pin 14 - GND - NC
.
.
.
USB-C PINOUT
from left to right with connector pointing up
NR—ESP32-USBC
pin 1 - GND - GND
pin 2 - NC - VBUS 5v
pin 3 - NC - SBU1
pin 4 - NC - CC2
pin 5 - GPIO20 - D-
pin 6 - GPIO19 - D+
pin 7 - GPIO20 - D+
pin 8 - GPIO19 - D-
pin 9 - NC - SBU2
pin10 - NC - CC1
pin11 - NC - VBUS 5V
pin12 - GND - GND
.
.
BUTTONS PINOUT
button left - GPIO3
button down - GPIO4
button right - GPIO6
button up - GPIO5
button A - GPIO7
button B - GPIO8
button menu - GPIO9
.
.
PINS DEFINED IN THE FIRMWARE
#define BTN_DOWN 4
#define BTN_UP 5
#define BTN_LEFT 3
#define BTN_RIGHT 6
#define BTN_A 7
#define BTN_B 8
#define BTN_MENU 9

#define PIN_BL 12
#define PIN_BUZZ 11
#define PIN_BATT 10

#define I2C_SDA 1
#define I2C_SCL 2
.
#define TFT_SCK 13
#define TFT_MOSI 14
#define TFT_DC 15
#define TFT_RST 16
.
#define DET_1 44
#define DET_2 21
#define ADDR_1 43
#define ADDR_2 42
#define ADDR_3 41
#define ADDR_4 40
#define ADDR_5 39
#define ADDR_6 38
.
#define CTRL_1 37
#define CTRL_2 36
#define CTRL_3 35
#define CTRL_4 34
#define CTRL_5 33
#define CTRL_6 26
.
#define LED_DOWN 48
#define LED_UP 47
#define LED_LEFT 0
#define LED_RIGHT 18
#define LED_A 17
#define LED_B 45
#define LED_MENU 46


Thank you so much! Beacouse i did check the firmware and i did find the correct display but i didnt know how to power it on.

Hey, i still didnt figure out how to use the display. It does show a white screen but it wont respond to any inputs. Can you maybe send me your intialization code to try running it from that? Thanks!