Fixing WifiModem64 Version 1.0

As hinted at earlier, I made a couple of mistakes when designing version 1.0 of the WifiModem64 and they will be fixed in version 1.1.

Still, with some minor manual modifications, those first boards are still usable. In short, RTS must be connected to WeMos D7 instead of D8 for the ESP8266 to boot reliably and the WS2812 LED must be connected to WeMos D5 instead of D0 if you intend to use it.

These are the step-by-step instructions to get WifiModem64 V1.0 on line:

1. Re-route RTS

Take a sharp knife, small screw driver or some other suitable tool and carefully cut the old trace to WeMos D8, which is marked (1) in the image below. Use a multimeter to make sure there is no more connection between R6 and WeMos D8. Solder an insulated piece of jumper wire between R6 and WeMos D7.

2. Re-route RGB LED

Take your tool of choice from step 1 and carefully cut the old trace to WeMos D0, which is marked (2) in the image above. Use a multimeter to make sure there is no more connection between DATA_IN of the WS2812 and WeMos D0. Solder an insulated piece of jumper wire between DATA_IN and WeMos D5.

3. Power Safety

Either fit components D1 and F1 on the top side of the PCB (diode and fuse), or close solder bridge JP1 on the bottom side.

4. Power Source

Fit either a 3 pin male header to JP6 and use a jumper to select between internal and external power supply or use a matching toggle switch instead.

5. Level Shifter

Depending on whether you believe that the ESP8266 needs level shifters on the data lines (I actually don’t), either fit the components R1-R8 and Q1-Q4 to the bottom side of the PCB, or close the solder bridges JP2-JP5.

6. WeMos Headers

Solder 8 pin female headers to the top side of the PCB to hold the WeMos module(s).

7. User Port Connector

Bend the copper leads of a user port connector slightly inwards, slide the PCB in between and solder all 24 leads to their respective pads on the PCB.

8. Optional Components

Depending on whether you intend to use them, fit any of the optional components:

  • baud rate reset switch SW1
  • C64 reset switch SW2
  • micro USB connector J2 for external power
  • LED1 and C1 for the RGB status LED
  • WeMos OLED display on U2

Please note that firmware support for the RGB LED and the OLED display is still being developed!

9. Flash Firmware

Make sure the WeMos D1 mini is NOT connected to your C64 before flashing the firmware. Then there are two options. If you’d like to compile the firmware yourself:

  1. Install the Arduino IDE
  2. Install Arduino Core for ESP8266
  3. Fetch the WifiModem64 project
  4. Open, compile, and upload WifiModem64.ino

If you’d rather flash my pre-compiled binary:

  1. Download and extract the archive
  2. Follow the instructions to upload to the ESP8266

10. Initial Setup

Follow Alwyz’s instructions for the initial setup of the modem if you want to use it at 9600 baud.

Components

To save you from the need to open the actual schematics when soldering components to the board, here is the relevant part of the BOM:

D1 B5819WS (0805)
J1 C64 User Port Connector
U2 WeMos_D1_mini_OLED_Shield
R1,R2,R3,R4,R5,R6,R7,R8 10k (0805)
U1 WeMos_mini
LED1 WS2812B
C1 100n
F1 0.5A (1206)
J2 USB_B
Q1,Q2,Q3,Q4 BSS138

The Modular WifiModem64

I’ve been playing with the ESP8266 since late 2014 and it was love on first sight: so many possible uses for such a small device at such a low price tag. And very early on I thought: wouldn’t it be great to build a WiFi “modem” from this? That shouldn’t be too hard. But I didn’t find the time to pursue the idea then. When I remembered again this summer, I was not surprised but still excited to find that others had had the same idea and hadn’t been as lazy as me.

Alwyz’s instructions on how to build such a device couldn’t be easier! I followed them and it worked like a charm. For the next months, my setup then looked like variations of this:

I wanted something tidier that would still be inexpensive and stay true to the easy-to-assemble spirit of the original version. So I decided to go with the WeMos D1 Mini variant of the ESP8266 modules. It is easily available and for a price as low as $2.60. It is supported by the Arduino IDE, allowing to flash the firmware with no equipment other than a PC and a micro USB cable. This is the board I’ve come up with:

The minimal setup is quite easy:

  1. Solder the User Port connector and the female pin headers.
  2. Close a hand full of solder bridges.
  3. Program the WeMos module and plug it in.

The board offers a bunch of optional extras that aren’t strictly required but may be freely combined to upgrade the device:

  • An OLED display can be plugged into the second WeMos slot.
  • A WS2812B RGB LED can be fitted and used as an extended status indicator.
  • There are pads for a diode and fuse to protect the C64.
  • Alternatively, external power can be supplied through an optional USB connector.
  • Additional components may be fitted for level shifting between 5V and 3.3V. (Personally I don’t think they are needed and the ESP8266 can cope with the 5V. But this way the board is “one size fits all”.)
  • There are pads for a reset switch and a second one to interact with the modem.
  • Potentially, other shields like the LED Matrix could be added instead of the OLED.

Somewhat unfortunately, I made a last minute change to the board layout before I ordered, hoping to make it more compatible with other WeMos shields. I missed the fact that with this wiring a pull-down resistor is required for the ESP to boot. I patched the resistor to the bottom side of my first build but still the ESP needs a second try from time to time. So I might reconsider this in a future revision.

KiCAD and Arduino sources will follow when I find the time to do some cleaning up.