Close
0%
0%

WiFi Wart

The WiFi Wart is a wall charger with a monster inside.

Public Chat
Similar projects worth following
A wall charger with a Linux SBC/wifi router inside.

The WiFi Wart is a wall charger housing a 1.2Ghz microprocessor and two WiFi radios. Security professionals and hobbyists can use it to conduct WiFi attacks, such as man in the middle, network deauthing and password sniffing. The design is completely open-source: electrical, mechanical and software. In addition, all the tools used in the design are also open source: KiCad, FreeCAD and Buildroot (or perhaps OpenWRT).

Blog Post Zero

Blog Post One

Blog Post Two

Join our Discord community!

nff_r0.1.zip

Build files for the NFF (non-form-factor) revision 0.1!

Zip Archive - 18.95 MB - 07/27/2021 at 17:54

Download

  • 1 × AS4C512M16D3L-12BIN RAM
  • 1 × Allwinnder A33 Main Processor

  • Mains Blade Interface

    Machinehum (Ryan Walker)07/27/2021 at 17:43 0 comments

    I've been scouring the internet trying to find an off-the-shelf part like this...

    The part circled above it is a through-hole stamped part that makes contact with the blade connector, it's the power entry connector for the board. It's an extremely low-cost connector that has to be done right. If the component is to fail it could short against other components causing a fire. The component that actually plugs into the wall is custom as well and is "insert moulded" directly into the case itself. As I couldn't find any existing component I would have to draw one up myself, being new to FreeCAD and mechanical engineering I knew this one would be a challenge. Poking around enough, I found the Sheet Metal Toolbox to be the tool. This toolbox is for sheet metal, you lay out a flat design and add bends where you please. As a starting point, I desoldered a contact from the board above and flattened it out...

    Then sketched it flat...

    To make bends you sketch a line, then click the line and face. You define a bend angle and bend radius.

    I then integrated it into the board file in Kicad exported a step file and reimported it into the FreeCAD assembly, there is still some alignment to be done but it's good enough for now.

    Until next time ;) !

  • [ 1.042110] Waiting for root device /dev/mmcblk0p1...

    Machinehum (Ryan Walker)07/01/2021 at 17:30 0 comments

    Buildroot is a cruel mistress... I've started building the image from the A33-OLinuXino. I used the open source files from this as a reference design for the wifi wart; I thought it would be a breeze. It turns out the PMIC used by Olinux has all the bells and whistles, I2C for control which u-boot (system bootloader) needs to configure voltages and whatnot. After ripping all that code out, I got to a point where the bootloader jamming the kernel into RAM and changing the program counter to the start address. However, I'm getting stuck on some mmc stuff...

    U-Boot SPL 2021.01 (Jun 30 2021 - 12:27:42 -0700)
    DRAM: 1024 MiB
    Trying to boot from MMC1
    
    
    U-Boot 2021.01 (Jun 30 2021 - 12:27:42 -0700) Allwinner Technology
    
    CPU:   Allwinner A33 (SUN8I 1667)
    Model: Olimex A33-OLinuXino
    DRAM:  1 GiB
    MMC:   mmc@1c0f000: 0
    Loading Environment from FAT... Unable to use mmc 0:1... Setting up a 800x480 lcd console (overscan 0x0)
    In:    serial
    Out:   vga
    Err:   vga
    Net:   No ethernet found.
    starting USB...
    Bus usb@1c19000: No host cable detected: Port not available.
    Hit any key to stop autoboot:  2  1  0 
    switch to partitions #0, OK
    mmc0 is current device
    Scanning mmc 0:1...
    Found U-Boot script /boot/boot.scr
    294 bytes read in 2 ms (143.6 KiB/s)
    ## Executing script at 43100000
    21702 bytes read in 3 ms (6.9 MiB/s)
    4058272 bytes read in 187 ms (20.7 MiB/s)
    ## Flattened Device Tree blob at 49000000
       Booting using the fdt blob at 0x49000000
       Using Device Tree in place at 49000000, end 490084c5
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 5.0.0 (machinehum@whitebox) (gcc version 10.3.0 (Buildroot 2021.05-280-g6dd9e246a7)) #1 SMP Wed Jun 30 11:51:11 PDT 2021
    [    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
    [    0.000000] CPU: div instructions available: patching division code
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] OF: fdt: Machine model: Olimex A33-OLinuXino
    [    0.000000] Memory policy: Data cache writealloc
    [    0.000000] cma: Reserved 16 MiB at 0x7dc00000
    [    0.000000] psci: probing for conduit method from DT.
    [    0.000000] psci: Using PSCI v0.1 Function IDs from DT
    [    0.000000] random: get_random_bytes called from start_kernel+0x98/0x3fc with crng_init=0
    [    0.000000] percpu: Embedded 16 pages/cpu @(ptrval) s34572 r8192 d22772 u65536
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260233
    [    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p1 rootwait panic=10
    [    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
    [    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Memory: 1011440K/1047076K available (6144K kernel code, 436K rwdata, 1516K rodata, 1024K init, 242K bss, 19252K reserved, 16384K cma-reserved, 244248K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (7136 kB)
    [    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
    [    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 437 kB)
    [    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 243 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    [    0.000000] rcu: Hierarchical RCU implementation.
    [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
    [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
    [    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
    [    0.000000] GIC: Using split EOI/Deactivate mode
    [    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
    [ 0.000000] clocksource: arch_sys_counter:...
    Read more »

View all 2 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates